संवेदनशीलता विश्लेषणाचा उपयोग विशिष्ट परिस्थितींमध्ये अवलंबून असलेल्या चलवर स्वतंत्र घटकांच्या संग्रहाचा प्रभाव निर्धारित करण्यासाठी केला जातो.
मॉडेलच्या आऊटपुटवर मॉडेलच्या इनपुटचा सामान्य शब्दात कसा परिणाम होतो हे ठरवण्यासाठी हा एक मजबूत दृष्टीकोन आहे. या पोस्टमध्ये, मी SALib, मोफत पायथन संवेदनशीलता विश्लेषण पॅकेज वापरून संवेदनशीलता विश्लेषणाचे द्रुत विहंगावलोकन देईन.
संवेदनशीलता निर्देशांक म्हणून ओळखले जाणारे संख्यात्मक मूल्य, वारंवार प्रत्येक इनपुटची संवेदनशीलता दर्शवते. संवेदनशीलता निर्देशांकांचे अनेक प्रकार आहेत:
- प्रथम-ऑर्डर निर्देशांक: आउटपुट भिन्नतेमध्ये एकल मॉडेल इनपुटच्या योगदानाची गणना करते.
- द्वितीय-क्रम निर्देशांक: आउटपुट भिन्नतामध्ये दोन मॉडेल इनपुटच्या योगदानाची गणना करते.
- एकूण-ऑर्डर इंडेक्स: आउटपुट भिन्नतेमध्ये मॉडेल इनपुटच्या योगदानाचे प्रमाण ठरवते, ज्यामध्ये प्रथम-ऑर्डर प्रभाव (एकटे इनपुट चढ-उतार) आणि कोणत्याही उच्च-ऑर्डर परस्परसंवादाचा समावेश होतो.
सालिब म्हणजे काय?
सालिब पायथनवर आधारित आहे मुक्त स्रोत संवेदनशीलता मूल्यांकन करण्यासाठी टूलकिट. यात एक अलिप्त कार्यप्रवाह आहे, याचा अर्थ ते गणितीय किंवा संगणकीय मॉडेलशी थेट संवाद साधत नाही. त्याऐवजी, SALib मॉडेल इनपुट्स (नमुना फंक्शन्सपैकी एकाद्वारे) तयार करण्याचे आणि मॉडेल आउटपुटमधून संवेदनशीलता निर्देशांकांची (विश्लेषण फंक्शन्सपैकी एकाद्वारे) गणना करण्याचे प्रभारी आहे.
ठराविक SALib संवेदनशीलता विश्लेषणामध्ये चार पायऱ्या असतात:
- मॉडेल इनपुट (मापदंड) आणि प्रत्येकासाठी नमुना श्रेणी निश्चित करा.
- मॉडेल इनपुट तयार करण्यासाठी, नमुना कार्य चालवा.
- व्युत्पन्न केलेल्या इनपुटचा वापर करून मॉडेलचे मूल्यमापन करा आणि मॉडेलचे परिणाम जतन करा.
- संवेदनशीलता निर्देशांकांची गणना करण्यासाठी, आउटपुटवर विश्लेषण फंक्शन वापरा.
सोबोल, मॉरिस आणि फास्ट या SALib द्वारे प्रदान केलेल्या संवेदनशीलता विश्लेषण पद्धतींपैकी काही आहेत. दिलेल्या ऍप्लिकेशनसाठी कोणता दृष्टिकोन सर्वोत्तम आहे यावर अनेक घटक प्रभाव टाकतात, जसे की आपण नंतर पाहू. तूर्तास, हे लक्षात ठेवा की आपण कोणतेही तंत्र वापरत असलात तरीही, आपल्याला फक्त दोन कार्ये वापरण्याची आवश्यकता आहे, नमुना आणि विश्लेषण. SALib चा वापर कसा करायचा हे स्पष्ट करण्यासाठी आम्ही तुम्हाला मूलभूत उदाहरणाद्वारे मार्गदर्शन करू.
SALib उदाहरण - Sobol' संवेदनशीलता विश्लेषण
या उदाहरणात, खाली दाखवल्याप्रमाणे, आम्ही इशिगामी कार्याची सोबोलची संवेदनशीलता तपासू. त्याच्या उच्च नॉनलाइनरिटी आणि नॉनमोनोटोनिसिटीमुळे, इशिगामी फंक्शनचा वापर अनिश्चितता आणि संवेदनशीलता विश्लेषण पद्धतींचे मूल्यांकन करण्यासाठी मोठ्या प्रमाणावर केला जातो.
पायऱ्या खालीलप्रमाणे जातात:
1. SALib आयात करणे
पहिली पायरी म्हणजे आवश्यक लायब्ररी जोडणे. SALib चे नमुना आणि विश्लेषण फंक्शन्स Python मॉड्युलमध्ये वेगळे ठेवले जातात. उपग्रह नमुना आयात करणे आणि सोबोल विश्लेषण कार्ये, उदाहरणार्थ, खाली दर्शविली आहे.
आम्ही इशिगामी फंक्शन देखील वापरतो, जे SALib मध्ये चाचणी कार्य म्हणून उपलब्ध आहे. शेवटी, आम्ही NumPy आयात करतो कारण SALib ते मॅट्रिक्समध्ये मॉडेल इनपुट आणि आउटपुट संचयित करण्यासाठी वापरतो.
2. मॉडेल इनपुट
मॉडेल इनपुट नंतर परिभाषित करणे आवश्यक आहे. इशिगामी फंक्शन तीन इनपुट स्वीकारते: x1, x2 आणि x3. SALib मध्ये, आम्ही खाली पाहिल्याप्रमाणे इनपुटची संख्या, त्यांची नावे आणि प्रत्येक इनपुटवरील मर्यादा निर्दिष्ट करणारी डिक्ट तयार करतो.
3. नमुने आणि मॉडेल तयार करा
त्यानंतर नमुने तयार केले जातात. आम्ही सॉबोल सेन्सिटिव्हिटी विश्लेषण करत असल्यामुळे आम्हाला सॉल्टेली सॅम्पलर वापरून नमुने तयार करावे लागतील. या प्रकरणात, परम मूल्ये एक NumPy मॅट्रिक्स आहेत. param values.shape चालवून मॅट्रिक्स 8000 बाय 3 आहे हे आपण पाहू शकतो. सॉल्टेली सॅम्पलरसह 8000 नमुने तयार केले गेले. सॉल्टेली सॅम्पलर नमुने तयार करतो, जेथे N 1024 (आम्ही प्रदान केलेले पॅरामीटर) आणि D 3. (मॉडेल इनपुटची संख्या) आहे.
आधी सांगितल्याप्रमाणे, SALib गणितीय किंवा संगणकीय मॉडेल मूल्यमापनात गुंतलेला नाही. जर मॉडेल पायथनमध्ये लिहिलेले असेल, तर तुम्ही सामान्यत: प्रत्येक नमुना इनपुटमधून लूप कराल आणि मॉडेलचे मूल्यांकन कराल:
जर मॉडेल Python मध्ये विकसित केले नसेल तर नमुने मजकूर फाइलमध्ये जतन केले जाऊ शकतात:
param values.txt मधील प्रत्येक ओळ एक मॉडेल इनपुट दर्शवते. मॉडेलचे आउटपुट प्रत्येक ओळीवर एक आउटपुटसह, समान शैलीमध्ये दुसर्या फाइलमध्ये जतन केले जावे. त्यानंतर, आउटपुट यासह लोड केले जाऊ शकतात:
या उदाहरणात, आपण SALib चे Ishigami फंक्शन वापरणार आहोत. या चाचणी कार्यांचे खालीलप्रमाणे मूल्यांकन केले जाऊ शकते:
4. विश्लेषण करा
मॉडेल परिणाम पायथनमध्ये लोड केल्यानंतर आम्ही शेवटी संवेदनशीलता निर्देशांकांची गणना करू शकतो. या उदाहरणात, आम्ही प्रथम, द्वितीय आणि एकूण-ऑर्डर निर्देशांकांची गणना करण्यासाठी sobol.analyze वापरू.
Si हा Python डिक्शनरी आहे ज्यामध्ये “S1,” “S2,” “ST,” “S1 conf,” “S2 conf,” आणि “ST conf” या की आहेत. _conf की संबंधित कॉन्फिडन्स इंटरव्हल्स धारण करतात, जे साधारणपणे 95 टक्के सेट केले जातात. आउटपुट करण्यासाठी, सर्व निर्देशांक, console=True करण्यासाठी कीवर्ड पॅरामीटर प्रिंट वापरा. वैकल्पिकरित्या, खाली स्पष्ट केल्याप्रमाणे, आम्ही Si वरून वैयक्तिक मूल्ये मुद्रित करू शकतो.
आम्ही पाहू शकतो की x1 आणि x2 मध्ये प्रथम-ऑर्डरची संवेदनशीलता आहे, परंतु x3 वर कोणतेही प्रथम-ऑर्डर प्रभाव असल्याचे दिसत नाही.
जर एकूण-ऑर्डर निर्देशांक प्रथम-ऑर्डर निर्देशांकांपेक्षा लक्षणीयरीत्या मोठ्या असतील, तर उच्च-ऑर्डर परस्परसंवाद निश्चितपणे होत आहेत. दुसऱ्या क्रमाचे निर्देशांक पाहून आम्ही हे उच्च-ऑर्डर परस्परसंवाद पाहू शकतो:
x1 आणि x3 मध्ये महत्त्वपूर्ण परस्परसंवाद आहेत हे आपण पाहू शकतो. त्यानंतर, परिणाम पुढील अभ्यासासाठी पांडा डेटाफ्रेममध्ये बदलला जाऊ शकतो.
5. प्लॉटिंग
तुमच्या सोयीसाठी, मूलभूत चार्टिंग सुविधा प्रदान केल्या आहेत. प्लॉट() फंक्शन त्यानंतरच्या मॅनिपुलेशनसाठी मॅटप्लॉटलिब अक्ष ऑब्जेक्ट्स तयार करते.
निष्कर्ष
SALib एक अत्याधुनिक संवेदनशीलता विश्लेषण टूलकिट आहे. SALib मधील इतर तंत्रांमध्ये Fourier Amplitude Sensitivity Test (FAST), मॉरिस मेथड आणि डेल्टा-मोमेंट इंडिपेंडंट मेजर यांचा समावेश होतो. ही पायथन लायब्ररी असताना, ती कोणत्याही प्रकारच्या मॉडेल्ससह ऑपरेट करण्याचा हेतू आहे.
SALib मॉडेल इनपुट तयार करण्यासाठी आणि मॉडेल आउटपुटचे मूल्यांकन करण्यासाठी वापरण्यास सुलभ कमांड लाइन इंटरफेस देते. तपासा SALib दस्तऐवजीकरण अधिक जाणून घ्या.
प्रत्युत्तर द्या