संवेदनशीलता विश्लेषण का उपयोग कुछ शर्तों के तहत आश्रित चर पर स्वतंत्र कारकों के संग्रह के प्रभाव को निर्धारित करने के लिए किया जाता है।
यह यह निर्धारित करने के लिए एक मजबूत दृष्टिकोण है कि सामान्य शब्दों में मॉडल का आउटपुट मॉडल के इनपुट से कैसे प्रभावित होता है। इस पोस्ट में, मैं एक निःशुल्क पायथन संवेदनशीलता विश्लेषण पैकेज SALib का उपयोग करके संवेदनशीलता विश्लेषण का एक त्वरित अवलोकन दूंगा।
एक संख्यात्मक मान जिसे संवेदनशीलता सूचकांक के रूप में जाना जाता है, अक्सर प्रत्येक इनपुट की संवेदनशीलता का प्रतिनिधित्व करता है। संवेदनशीलता सूचकांक कई प्रकार के होते हैं:
- प्रथम-क्रम सूचकांक: आउटपुट विचरण में एकल मॉडल इनपुट के योगदान की गणना करता है।
- दूसरे क्रम के सूचकांक: आउटपुट विचरण में दो मॉडल इनपुट के योगदान की गणना करता है।
- कुल-क्रम सूचकांक: आउटपुट विचरण में एक मॉडल इनपुट के योगदान की मात्रा निर्धारित करता है, जिसमें प्रथम-क्रम प्रभाव (अकेले इनपुट में उतार-चढ़ाव) और किसी भी उच्च-क्रम इंटरैक्शन दोनों शामिल होते हैं।
सलिब क्या है?
सालिब एक पायथन-आधारित है खुले स्रोत संवेदनशीलता मूल्यांकन करने के लिए टूलकिट। इसमें एक अलग वर्कफ़्लो है, जिसका अर्थ है कि यह गणितीय या कम्प्यूटेशनल मॉडल के साथ सीधे बातचीत नहीं करता है। इसके बजाय, SALib मॉडल इनपुट (नमूना कार्यों में से एक के माध्यम से) का उत्पादन करने और मॉडल आउटपुट से संवेदनशीलता सूचकांकों (विश्लेषण कार्यों में से एक के माध्यम से) की गणना करने का प्रभारी है।
एक विशिष्ट SALib संवेदनशीलता विश्लेषण में चार चरण होते हैं:
- प्रत्येक के लिए मॉडल इनपुट (पैरामीटर) और नमूना सीमा निर्धारित करें।
- मॉडल इनपुट बनाने के लिए, नमूना फ़ंक्शन चलाएँ।
- उत्पन्न इनपुट का उपयोग करके मॉडल का मूल्यांकन करें और मॉडल परिणामों को सहेजें।
- संवेदनशीलता सूचकांकों की गणना करने के लिए, आउटपुट पर विश्लेषण फ़ंक्शन का उपयोग करें।
सोबोल, मॉरिस और फास्ट SALib द्वारा प्रदान की गई संवेदनशीलता विश्लेषण विधियों में से कुछ हैं। कई कारक प्रभावित करते हैं कि किसी दिए गए एप्लिकेशन के लिए कौन सा दृष्टिकोण सर्वोत्तम है, जैसा कि हम बाद में देखेंगे। फिलहाल, ध्यान रखें कि आपको केवल दो कार्यों का उपयोग करने की आवश्यकता है, नमूना और विश्लेषण, चाहे आप कोई भी तकनीक अपनाएं। SALib का उपयोग कैसे करें, यह समझाने के लिए हम आपको एक बुनियादी उदाहरण के माध्यम से मार्गदर्शन करेंगे।
सैलिब उदाहरण - सोबोल' संवेदनशीलता विश्लेषण
इस उदाहरण में, हम इशिगामी फ़ंक्शन की सोबोल संवेदनशीलता की जांच करेंगे, जैसा कि नीचे दिखाया गया है। इसकी उच्च गैर-रैखिकता और गैर-एकरूपता के कारण, इशिगामी फ़ंक्शन का व्यापक रूप से अनिश्चितता और संवेदनशीलता विश्लेषण पद्धतियों का मूल्यांकन करने के लिए उपयोग किया जाता है।
चरण इस प्रकार हैं:
1. सैलिब आयात करना
पहला कदम आवश्यक पुस्तकालयों को जोड़ना है। SALib के नमूना और विश्लेषण कार्यों को पायथन मॉड्यूल में अलग रखा गया है। उदाहरण के लिए, उपग्रह नमूना और सोबोल विश्लेषण कार्यों को आयात करना नीचे दिखाया गया है।
हम इशिगामी फ़ंक्शन का भी उपयोग करते हैं, जो SALib में एक परीक्षण फ़ंक्शन के रूप में उपलब्ध है। अंत में, हम NumPy को आयात करते हैं क्योंकि SALib इसका उपयोग मैट्रिक्स में मॉडल इनपुट और आउटपुट को संग्रहीत करने के लिए करता है।
2. मॉडल इनपुट
फिर मॉडल इनपुट को परिभाषित किया जाना चाहिए। इशिगामी फ़ंक्शन तीन इनपुट स्वीकार करता है: X1, x2, और x3। SALib में, हम एक निर्देश का निर्माण करते हैं जो इनपुट की संख्या, उनके नाम और प्रत्येक इनपुट पर सीमाएं निर्दिष्ट करता है, जैसा कि नीचे देखा गया है।
3. नमूने और मॉडल तैयार करें
फिर नमूने तैयार किए जाते हैं। चूंकि हम सोबोल संवेदनशीलता विश्लेषण कर रहे हैं इसलिए हमें साल्टेली सैंपलर का उपयोग करके नमूने बनाने की आवश्यकता है। इस मामले में, परम मान एक NumPy मैट्रिक्स हैं। हम देख सकते हैं कि पैरामीटर मान.आकार चलाकर मैट्रिक्स 8000 गुणा 3 है। साल्टेली सैंपलर से 8000 नमूने बनाए गए। साल्टेली सैंपलर नमूने बनाता है, जहां एन 1024 है (हमारे द्वारा प्रदान किया गया पैरामीटर) और डी 3 है (मॉडल इनपुट की संख्या)।
जैसा कि पहले कहा गया है, SALib गणितीय या कम्प्यूटेशनल मॉडल मूल्यांकन में संलग्न नहीं है। यदि मॉडल पायथन में लिखा गया है, तो आप आम तौर पर प्रत्येक नमूना इनपुट के माध्यम से लूप करेंगे और मॉडल का आकलन करेंगे:
यदि मॉडल पायथन में विकसित नहीं हुआ है तो नमूने को टेक्स्ट फ़ाइल में सहेजा जा सकता है:
पैरामीटर values.txt में प्रत्येक पंक्ति एक मॉडल इनपुट का प्रतिनिधित्व करती है। मॉडल के आउटपुट को समान शैली में दूसरी फ़ाइल में सहेजा जाना चाहिए, प्रत्येक पंक्ति पर एक आउटपुट के साथ। उसके बाद, आउटपुट को इसके साथ लोड किया जा सकता है:
इस उदाहरण में, हम SALib से इशिगामी फ़ंक्शन का उपयोग करने जा रहे हैं। इन परीक्षण कार्यों का मूल्यांकन निम्नानुसार किया जा सकता है:
4. विश्लेषण करें
मॉडल परिणामों को पायथन में लोड करने के बाद हम अंततः संवेदनशीलता सूचकांकों की गणना कर सकते हैं। इस उदाहरण में, हम पहले, दूसरे और कुल-क्रम सूचकांकों की गणना करने के लिए sobol.analyze का उपयोग करेंगे।
Si एक पायथन डिक्शनरी है जिसमें "S1," "S2," "ST," "S1 conf," "S2 conf," और "ST conf" कुंजियाँ हैं। _conf कुंजियाँ संबंधित आत्मविश्वास अंतराल रखती हैं, जो आम तौर पर 95 प्रतिशत पर सेट होती हैं। सभी सूचकांकों को आउटपुट करने के लिए, कंसोल = ट्रू पर कीवर्ड पैरामीटर प्रिंट का उपयोग करें। वैकल्पिक रूप से, जैसा कि नीचे दिखाया गया है, हम Si से अलग-अलग मान प्रिंट कर सकते हैं।
हम देख सकते हैं कि x1 और x2 में प्रथम-क्रम संवेदनशीलता है, लेकिन x3 पर कोई प्रथम-क्रम प्रभाव नहीं दिखता है।
यदि कुल-ऑर्डर सूचकांक पहले-ऑर्डर सूचकांकों की तुलना में काफी बड़े हैं, तो उच्च-ऑर्डर इंटरैक्शन निश्चित रूप से हो रहे हैं। हम दूसरे क्रम के सूचकांकों को देखकर इन उच्च-क्रम की अंतःक्रियाओं को देख सकते हैं:
हम देख सकते हैं कि x1 और x3 में महत्वपूर्ण अंतःक्रियाएँ हैं। उसके बाद, परिणाम को आगे के अध्ययन के लिए पांडा डेटाफ़्रेम में बदला जा सकता है।
5. प्लॉटिंग
आपकी सुविधा के लिए, बुनियादी चार्टिंग सुविधाएं प्रदान की जाती हैं। प्लॉट() फ़ंक्शन बाद के हेरफेर के लिए matplotlib अक्ष ऑब्जेक्ट उत्पन्न करता है।
निष्कर्ष
SALib एक परिष्कृत संवेदनशीलता विश्लेषण टूलकिट है। SALib की अन्य तकनीकों में फूरियर एम्प्लीट्यूड सेंसिटिविटी टेस्ट (FAST), मॉरिस मेथड और डेल्टा-मोमेंट इंडिपेंडेंट मेज़र शामिल हैं। हालाँकि यह एक पायथन लाइब्रेरी है, इसका उद्देश्य किसी भी प्रकार के मॉडल के साथ काम करना है।
SALib मॉडल इनपुट बनाने और मॉडल आउटपुट का आकलन करने के लिए उपयोग में आसान कमांड-लाइन इंटरफ़ेस प्रदान करता है। चेक आउट सैलिब दस्तावेज़ीकरण अधिक जानने के लिए।
एक जवाब लिखें