Զգայունության վերլուծությունը օգտագործվում է որոշակի պայմաններում անկախ գործոնների հավաքածուի ազդեցությունը կախված փոփոխականի վրա որոշելու համար:
Սա ուժեղ մոտեցում է որոշելու, թե ինչպես է մոդելի արդյունքի վրա ազդում մոդելի մուտքերը ընդհանուր առումներով: Այս գրառման մեջ ես կտամ զգայունության վերլուծության արագ ակնարկ՝ օգտագործելով SALib՝ Python-ի զգայունության վերլուծության անվճար փաթեթը:
Թվային արժեքը, որը հայտնի է որպես զգայունության ինդեքս, հաճախ ներկայացնում է յուրաքանչյուր մուտքագրման զգայունությունը: Գոյություն ունեն զգայունության ինդեքսների մի քանի տեսակներ.
- Առաջին կարգի ինդեքսներ. հաշվարկում է մեկ մոդելի մուտքագրման ներդրումը ելքային շեղման մեջ:
- Երկրորդ կարգի ինդեքսներ. հաշվարկում է մոդելի երկու մուտքերի ներդրումը ելքային շեղման մեջ:
- Ընդհանուր կարգի ինդեքս. քանակականացնում է մոդելի ներդրման ներդրումը ելքային շեղումների մեջ՝ ներառելով և՛ առաջին կարգի էֆեկտները (միայն ներածումը տատանվում է), և՛ ավելի բարձր կարգի փոխազդեցություններ:
Ի՞նչ է SALib-ը:
ՍԱԼԻԲ Python-ի վրա հիմնված է բաց աղբյուր գործիքակազմ՝ զգայունության գնահատումներ կատարելու համար: Այն ունի անջատված աշխատանքային հոսք, ինչը նշանակում է, որ այն ուղղակիորեն չի փոխազդում մաթեմատիկական կամ հաշվողական մոդելի հետ: Փոխարենը, SALib-ը պատասխանատու է մոդելի մուտքերի արտադրության համար (նմուշի գործառույթներից մեկի միջոցով) և հաշվելու զգայունության ինդեքսները (վերլուծական գործառույթներից մեկի միջոցով) մոդելի արդյունքներից:
SALib-ի տիպիկ զգայունության վերլուծությունը բաղկացած է չորս քայլից.
- Որոշեք մոդելի մուտքերը (պարամետրերը) և յուրաքանչյուրի համար նմուշի տիրույթը:
- Մոդելի մուտքեր ստեղծելու համար գործարկեք նմուշի գործառույթը:
- Գնահատեք մոդելը՝ օգտագործելով ստացված մուտքերը և պահպանեք մոդելի արդյունքները:
- Զգայունության ինդեքսները հաշվարկելու համար օգտագործեք վերլուծության ֆունկցիան արդյունքների վրա:
Sobol-ը, Morris-ը և FAST-ը SALib-ի կողմից տրամադրված զգայունության վերլուծության մեթոդներից ընդամենը մի քանիսն են: Շատ գործոններ ազդում են, թե որ մոտեցումն է լավագույնը տվյալ կիրառման համար, ինչպես կտեսնենք ավելի ուշ: Առայժմ հիշեք, որ անհրաժեշտ է օգտագործել միայն երկու գործառույթ՝ նմուշառում և վերլուծում, անկախ այն բանից, թե ինչ տեխնիկա եք օգտագործում: Մենք ձեզ կառաջնորդենք հիմնական օրինակով, որպեսզի պատկերացնենք, թե ինչպես օգտագործել SALib-ը:
SALib Օրինակ – Սոբոլի զգայունության վերլուծություն
Այս օրինակում մենք կուսումնասիրենք Ishigami ֆունկցիայի Sobol' զգայունությունը, ինչպես ցույց է տրված ստորև: Իր բարձր ոչ գծային և ոչ միապաղաղության պատճառով Ishigami ֆունկցիան լայնորեն օգտագործվում է անորոշության և զգայունության վերլուծության մեթոդոլոգիաները գնահատելու համար:
Քայլերն ընթանում են հետևյալ կերպ.
1. SALib-ի ներմուծում
Առաջին քայլը անհրաժեշտ գրադարաններն ավելացնելն է: SALib-ի նմուշը և վերլուծության գործառույթները տարբեր են պահվում Python մոդուլներում: Արբանյակային նմուշի ներմուծումը և Sobol-ի վերլուծության գործառույթները, օրինակ, ներկայացված են ստորև:
Մենք նաև օգտագործում ենք Ishigami ֆունկցիան, որը հասանելի է որպես թեստային ֆունկցիա SALib-ում: Վերջապես, մենք ներմուծում ենք NumPy-ն, քանի որ SALib-ն այն օգտագործում է մոդելի մուտքերն ու ելքերը մատրիցայում պահելու համար:
2. Մոդելի մուտքագրում
Այնուհետև պետք է սահմանվեն մոդելի մուտքերը: Ishigami ֆունկցիան ընդունում է երեք մուտք՝ x1, x2 և x3: SALib-ում մենք կառուցում ենք թելադրանք, որը սահմանում է մուտքերի քանակը, դրանց անունները և յուրաքանչյուր մուտքագրման սահմանաչափերը, ինչպես երևում է ստորև:
3. Ստեղծեք նմուշներ և մոդել
Այնուհետև նմուշները ստեղծվում են: Մենք պետք է ստեղծենք նմուշներ՝ օգտագործելով Saltelli նմուշառիչը, քանի որ մենք Sobol-ի զգայունության վերլուծություն ենք անում: Այս դեպքում պարամի արժեքները NumPy մատրից են: Մենք կարող ենք դիտարկել, որ մատրիցը 8000 է 3-ի վրա՝ գործարկելով param values.shape: Saltelli նմուշառիչով ստեղծվել է 8000 նմուշ։ Saltelli նմուշառիչը ստեղծում է նմուշներ, որտեղ N-ը 1024 է (մեր տրամադրած պարամետրը) և D-ն 3 է (մոդելի մուտքագրումների քանակը):
Ինչպես նախկինում ասվեց, SALib-ը չի զբաղվում մաթեմատիկական կամ հաշվողական մոդելի գնահատմամբ: Եթե մոդելը գրված է Python-ով, դուք սովորաբար պտտվում եք յուրաքանչյուր նմուշի մուտքագրման միջոցով և գնահատում մոդելը.
Նմուշները կարող են պահպանվել տեքստային ֆայլում, եթե մոդելը մշակված չէ Python-ում.
Param values.txt-ի յուրաքանչյուր տող ներկայացնում է մեկ մոդելի մուտքագրում: Մոդելի ելքը պետք է պահվի մեկ այլ ֆայլում նույն ոճով, յուրաքանչյուր տողում մեկ ելք ունենալով: Դրանից հետո ելքերը կարող են բեռնվել հետևյալով.
Այս օրինակում մենք կօգտագործենք Ishigami ֆունկցիան SALib-ից: Այս թեստային գործառույթները կարելի է գնահատել հետևյալ կերպ.
4. Կատարել վերլուծություն
Մենք վերջապես կարող ենք հաշվարկել զգայունության ինդեքսները մոդելի արդյունքները Python-ում բեռնելուց հետո: Այս օրինակում մենք կօգտագործենք sobol.analyze՝ առաջին, երկրորդ և ընդհանուր կարգի ինդեքսները հաշվարկելու համար:
Si-ն Python բառարան է, որն ունի «S1», «S2», «ST», «S1 conf», «S2 conf» և «ST conf» ստեղները։ _conf ստեղները պահում են համապատասխան վստահության միջակայքերը, որոնք սովորաբար սահմանվում են 95 տոկոսով: Բոլոր ինդեքսները դուրս բերելու համար օգտագործեք հիմնաբառի պարամետրը print to console=True: Որպես այլընտրանք, ինչպես ցույց է տրված ստորև, մենք կարող ենք տպել առանձին արժեքները Si-ից:
Մենք կարող ենք տեսնել, որ x1-ը և x2-ն ունեն առաջին կարգի զգայունություն, բայց x3-ը կարծես թե չունի առաջին կարգի ազդեցություն:
Եթե ընդհանուր կարգի ինդեքսները զգալիորեն ավելի մեծ են, քան առաջին կարգի ինդեքսները, ապա, ամենայն հավանականությամբ, տեղի են ունենում ավելի բարձր կարգի փոխազդեցություններ: Մենք կարող ենք տեսնել այս ավելի բարձր կարգի փոխազդեցությունները՝ դիտելով երկրորդ կարգի ինդեքսները.
Մենք կարող ենք նկատել, որ x1-ը և x3-ը զգալի փոխազդեցություններ ունեն: Դրանից հետո արդյունքը կարող է փոխակերպվել Pandas DataFrame-ի՝ հետագա ուսումնասիրության համար:
5. Հողամաս
Ձեր հարմարության համար տրամադրվում են հիմնական գծապատկերային հարմարություններ: plot() ֆունկցիան արտադրում է matplotlib առանցքի օբյեկտներ հետագա մանիպուլյացիայի համար:
Եզրափակում
SALib-ը զգայունության վերլուծության բարդ գործիքակազմ է: SALib-ի այլ տեխնիկան ներառում է Ֆուրիեի ամպլիտուդի զգայունության թեստը (FAST), Մորիսի մեթոդը և դելտա-մոմենտ անկախ չափումը: Չնայած այն Python գրադարան է, այն նախատեսված է ցանկացած տեսակի մոդելների հետ աշխատելու համար:
SALib-ն առաջարկում է հեշտ օգտագործվող հրամանի տող ինտերֆեյս՝ մոդելի մուտքեր ստեղծելու և մոդելի արդյունքները գնահատելու համար: Ստուգեք SALib փաստաթղթեր սովորել ավելին:
Թողնել գրառում