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