အာရုံခံနိုင်မှု ခွဲခြမ်းစိတ်ဖြာခြင်းကို အချို့သောအခြေအနေများအောက်တွင် မှီခိုကိန်းရှင်တစ်ခုအပေါ် အမှီအခိုကင်းသောအချက်များစုစည်းမှု၏ အကျိုးသက်ရောက်မှုကို ဆုံးဖြတ်ရန်အတွက် အသုံးပြုသည်။
ယေဘူယျအားဖြင့် မော်ဒယ်၏ သွင်းအားစုများမှ မော်ဒယ်၏ အထွက်အား မည်သို့အကျိုးသက်ရောက်သည်ကို ဆုံးဖြတ်ရန် ခိုင်မာသောချဉ်းကပ်မှုတစ်ခုဖြစ်သည်။ ဤပို့စ်တွင်၊ အခမဲ့ Python sensitivity ခွဲခြမ်းစိတ်ဖြာမှုပက်ကေ့ချ်ဖြစ်သော SALib ကို အသုံးပြု၍ အာရုံခံနိုင်စွမ်းဆိုင်ရာ ခွဲခြမ်းစိတ်ဖြာချက်၏ အကျဉ်းချုပ်ကို ကျွန်ုပ်တင်ပြပါမည်။
အာရုံခံနိုင်စွမ်း အညွှန်းကိန်းဟု လူသိများသော ကိန်းဂဏာန်းတန်ဖိုးသည် ထည့်သွင်းမှုတစ်ခုစီ၏ အာရုံခံနိုင်စွမ်းကို မကြာခဏ ကိုယ်စားပြုသည်။ အာရုံခံနိုင်စွမ်းညွှန်းကိန်း အမျိုးအစားများစွာ ရှိပါသည်။
- ပထမအမှာစာညွှန်းကိန်းများ- မော်ဒယ်တစ်ခုထဲထည့်သွင်းမှု၏ ပံ့ပိုးမှုအား ထုတ်ပေးမှုကွဲလွဲမှုကို တွက်ချက်သည်။
- ဒုတိယအမှာစာညွှန်းကိန်းများ- ထုတ်ပေးမှုကွဲလွဲမှုကို ထုတ်ပေးရန်အတွက် မော်ဒယ်ထည့်သွင်းမှုနှစ်ခု၏ ပံ့ပိုးမှုကို တွက်ချက်သည်။
- စုစုပေါင်းမှာယူမှုအညွှန်း- အထွက်ကွဲပြားမှုအတွက် မော်ဒယ်ထည့်သွင်းမှု၏ပံ့ပိုးကူညီမှုကို တွက်ချက်ပြီး၊ ပထမမှာယူမှုအကျိုးသက်ရောက်မှုများ (ထည့်သွင်းမှုတစ်ခုတည်းတွင် အတက်အကျရှိသော) နှင့် ပိုမိုမြင့်မားသောအမှာစာ အပြန်အလှန်သက်ရောက်မှုများ ပါဝင်သည်။
SALib ဆိုတာ ဘာလဲ။
SALib Python-based တစ်ခုဖြစ်သည်။ open-source အာရုံခံနိုင်စွမ်း အကဲဖြတ်ခြင်းအတွက် ကိရိယာအစုံ။ ၎င်းတွင် သီးခြားလုပ်ဆောင်မှုအသွားအလာတစ်ခုပါရှိသည်၊ ဆိုလိုသည်မှာ ၎င်းသည် သင်္ချာ သို့မဟုတ် တွက်ချက်မှုဆိုင်ရာ မော်ဒယ်နှင့် တိုက်ရိုက် သက်ရောက်မှုမရှိပါ။ ယင်းအစား၊ SALib သည် မော်ဒယ်၏ သွင်းအားစုများ (နမူနာလုပ်ဆောင်ချက်များထဲမှ တစ်ခုမှတဆင့်) ထုတ်လုပ်ခြင်းနှင့် မော်ဒယ်အထွက်များမှ အာရုံခံနိုင်စွမ်းညွှန်းကိန်းများ (ခွဲခြမ်းစိတ်ဖြာမှုလုပ်ဆောင်ချက်များထဲမှ တစ်ခုမှတစ်ဆင့်) ကို တွက်ချက်ခြင်းတွင် တာဝန်ရှိပါသည်။
ပုံမှန် SALib အာရုံခံနိုင်စွမ်းခွဲခြမ်းစိတ်ဖြာမှုတွင် အဆင့်လေးဆင့် ပါဝင်သည်-
- မော်ဒယ်ထည့်သွင်းမှုများ (ပါရာမီတာများ) နှင့် တစ်ခုစီအတွက် နမူနာအကွာအဝေးကို သတ်မှတ်ပါ။
- မော်ဒယ်ထည့်သွင်းမှုများကို ဖန်တီးရန် နမူနာလုပ်ဆောင်ချက်ကို လုပ်ဆောင်ပါ။
- ထုတ်လုပ်လိုက်သော သွင်းအားစုများကို အသုံးပြု၍ မော်ဒယ်ကို အကဲဖြတ်ပြီး မော်ဒယ်ရလဒ်များကို သိမ်းဆည်းပါ။
- အာရုံခံနိုင်စွမ်းအညွှန်းကိန်းများကိုတွက်ချက်ရန်၊ အထွက်များပေါ်ရှိ ခွဲခြမ်းစိတ်ဖြာမှုလုပ်ဆောင်ချက်ကို အသုံးပြုပါ။
Sobol၊ Morris နှင့် FAST တို့သည် SALib မှ ပံ့ပိုးပေးသော အာရုံခံနိုင်မှု ခွဲခြမ်းစိတ်ဖြာနည်းအချို့မျှသာဖြစ်သည်။ အကြောင်းရင်းများစွာသည် ကျွန်ုပ်တို့နောက်ပိုင်းတွင်တွေ့ရသည့်အတိုင်း ပေးထားသောအက်ပ်တစ်ခုအတွက် အကောင်းဆုံးနည်းလမ်းကို လွှမ်းမိုးပါသည်။ လက်ရှိအချိန်တွင် သင်မည်သည့်နည်းပညာကိုအသုံးပြုသည်ဖြစ်စေ သင်အသုံးပြုသည့်နည်းပညာကိုမခွဲခြားဘဲ လုပ်ဆောင်ချက်နှစ်ခု၊ နမူနာနှင့် ခွဲခြမ်းစိတ်ဖြာရန်သာ လိုအပ်ကြောင်း သတိရပါ။ SALib ကိုအသုံးပြုပုံဖော်ပြရန် အခြေခံနမူနာတစ်ခုမှတဆင့် သင့်အား လမ်းညွှန်ပါမည်။
SALib ဥပမာ – Sobol ၏ အာရုံခံနိုင်စွမ်း ခွဲခြမ်းစိတ်ဖြာခြင်း။
ဤဥပမာတွင်၊ အောက်တွင်ဖော်ပြထားသည့်အတိုင်း Ishigami function ၏ Sobol ၏ sensitivity ကို စစ်ဆေးပါမည်။ ၎င်း၏မြင့်မားသော linearity နှင့် nonmonotonicity ကြောင့်၊ Ishigami လုပ်ဆောင်ချက်ကို မသေချာမရေရာမှုနှင့် အာရုံခံစားနိုင်မှုခွဲခြမ်းစိတ်ဖြာမှုနည်းစနစ်များကို အကဲဖြတ်ရန် ကျယ်ပြန့်စွာအသုံးပြုပါသည်။
အဆင့်များမှာ အောက်ပါအတိုင်းဖြစ်သည်-
1. SALib တင်သွင်းခြင်း။
ပထမအဆင့်မှာ လိုအပ်သော စာကြည့်တိုက်များကို ထည့်သွင်းရန်ဖြစ်သည်။ SALib ၏နမူနာနှင့် ခွဲခြမ်းစိတ်ဖြာခြင်းလုပ်ဆောင်ချက်များကို Python modules များတွင် ထူးခြားစွာထားရှိထားပါသည်။ ဂြိုလ်တုနမူနာကို တင်သွင်းခြင်းနှင့် Sobol ပိုင်းခြားစိတ်ဖြာခြင်းလုပ်ဆောင်ချက်များကို ဥပမာအားဖြင့် အောက်တွင်ဖော်ပြထားသည်။
ကျွန်ုပ်တို့သည် SALib တွင် စမ်းသပ်မှုတစ်ခုအဖြစ် ရနိုင်သော Ishigami လုပ်ဆောင်ချက်ကိုလည်း အသုံးပြုပါသည်။ နောက်ဆုံးတွင်၊ SALib သည် မော်ဒယ်ထည့်သွင်းမှုများနှင့် အထွက်များကို matrix တစ်ခုတွင် သိမ်းဆည်းရန် ၎င်းကိုအသုံးပြုသောကြောင့် NumPy ကို တင်သွင်းပါသည်။
2. မော်ဒယ်ထည့်သွင်းခြင်း။
ထို့နောက် မော်ဒယ်ထည့်သွင်းမှုများကို သတ်မှတ်ရပါမည်။ Ishigami လုပ်ဆောင်ချက်သည် x1၊ x2 နှင့် x3 input သုံးခုကို လက်ခံသည်။ SALib တွင်၊ ကျွန်ုပ်တို့သည် အောက်ဖော်ပြပါအတိုင်း ထည့်သွင်းမှုအရေအတွက်၊ ၎င်းတို့၏အမည်များနှင့် ကန့်သတ်ချက်များကို ဖော်ပြသည့် အမိန့်တစ်ခုစီကို တည်ဆောက်ပါသည်။
3. နမူနာများနှင့် မော်ဒယ်ကို ဖန်တီးပါ။
ထို့နောက် နမူနာများကို ထုတ်ပေးသည်။ Sobol sensitivity ခွဲခြမ်းစိတ်ဖြာမှုကို လုပ်ဆောင်နေသောကြောင့် Saltelli နမူနာကို အသုံးပြု၍ နမူနာများကို ဖန်တီးရန် လိုအပ်ပါသည်။ ဤကိစ္စတွင်၊ param တန်ဖိုးများသည် NumPy matrix ဖြစ်သည်။ param values.shape ကို run ခြင်းဖြင့် matrix သည် 8000 x 3 ဖြစ်သည်ကို ကျွန်ုပ်တို့ သတိပြုနိုင်ပါသည်။ နမူနာ 8000 ကို Saltelli နမူနာဖြင့် ဖန်တီးခဲ့သည်။ Saltelli sampler သည် N သည် 1024 (ကျွန်ုပ်တို့ပေးထားသော ကန့်သတ်ဘောင်) နှင့် D သည် 3. (မော်ဒယ်ထည့်သွင်းမှုအရေအတွက်) နေရာတွင် နမူနာများကို ဖန်တီးသည်။
ယခင်က ဖော်ပြခဲ့သည့်အတိုင်း SALib သည် သင်္ချာ သို့မဟုတ် တွက်ချက်မှုပုံစံ အကဲဖြတ်ခြင်းတွင် ပါဝင်ခြင်းမရှိပါ။ မော်ဒယ်ကို Python နဲ့ရေးထားရင်၊ ပုံမှန်အားဖြင့် နမူနာထည့်သွင်းမှုတစ်ခုစီကို လှည့်ပတ်ပြီး မော်ဒယ်ကို အကဲဖြတ်ပါလိမ့်မယ်-
မော်ဒယ်ကို Python တွင် မဖန်တီးပါက နမူနာများကို စာသားဖိုင်တွင် သိမ်းဆည်းနိုင်သည်-
param values.txt ရှိ စာကြောင်းတစ်ခုစီသည် မော်ဒယ်ထည့်သွင်းမှုတစ်ခုကို ကိုယ်စားပြုသည်။ မော်ဒယ်၏အထွက်ကို စာကြောင်းတစ်ခုစီတွင် အထွက်တစ်ခုဖြင့် အလားတူပုံစံဖြင့် အခြားဖိုင်တစ်ခုသို့ သိမ်းဆည်းထားသင့်သည်။ ၎င်းနောက်၊ အထွက်များနှင့်အတူ တင်ဆောင်နိုင်သည်-
ဤဥပမာတွင်၊ ကျွန်ုပ်တို့သည် SALib မှ Ishigami လုပ်ဆောင်ချက်ကို အသုံးပြုမည်ဖြစ်သည်။ ဤစမ်းသပ်မှုလုပ်ဆောင်ချက်များကို အောက်ပါအတိုင်း အကဲဖြတ်နိုင်ပါသည်။
4. လေ့လာဆန်းစစ်မှုလုပ်ဆောင်ပါ။
မော်ဒယ်ရလဒ်များကို Python တွင် ထည့်သွင်းပြီးနောက် အာရုံခံနိုင်စွမ်းအညွှန်းကိန်းများကို နောက်ဆုံးတွင် တွက်ချက်နိုင်သည်။ ဤဥပမာတွင်၊ ပထမ၊ ဒုတိယနှင့် စုစုပေါင်းအမှာစာညွှန်းကိန်းများကိုတွက်ချက်ရန် sobol.analyze ကိုအသုံးပြုပါမည်။
Si သည် “S1” “S2” “ST” “S1 conf” “S2 conf” နှင့် “ST conf” သော့များပါရှိသော Python အဘိဓာန်ဖြစ်သည်။ _conf သော့များသည် ယေဘုယျအားဖြင့် 95 ရာခိုင်နှုန်း သတ်မှတ်ထားသည့် ဆက်စပ်ယုံကြည်မှုကြားကာလများကို ထိန်းထားသည်။ အညွှန်းကိန်းများအားလုံးကို ထုတ်ပေးရန်အတွက်၊ console=True အတွက် သော့ချက်စာလုံးပါရာမီတာကို ပရင့်ထုတ်ရန် အသုံးပြုပါ။ တနည်းအားဖြင့် အောက်ဖော်ပြပါအတိုင်း၊ ကျွန်ုပ်တို့သည် တစ်ဦးချင်းတန်ဖိုးများကို Si မှ ရိုက်နှိပ်နိုင်ပါသည်။
x1 နှင့် x2 သည် ပထမမှာယူမှု sensitivity ရှိသည်ကို ကျွန်ုပ်တို့တွေ့မြင်နိုင်သော်လည်း x3 သည် ပထမမှာယူမှုအပေါ် သက်ရောက်မှုရှိပုံမပေါ်ပါ။
စုစုပေါင်းမှာယူမှုညွှန်းကိန်းများသည် ပထမအမှာစာညွှန်းကိန်းများထက် သိသိသာသာကြီးနေပါက၊ မှာယူမှုအဆင့်မြင့်သော အပြန်အလှန်ဆက်သွယ်မှုများမှာ သေချာပေါက်ဖြစ်လာပါသည်။ ဒုတိယအမှာစာညွှန်းကိန်းများကိုကြည့်ရှုခြင်းဖြင့် ဤအဆင့်မြင့်သော အပြန်အလှန်တုံ့ပြန်မှုများကို ကျွန်ုပ်တို့မြင်နိုင်သည်-
x1 နှင့် x3 တွင် သိသာထင်ရှားသော အပြန်အလှန်အကျိုးသက်ရောက်မှုများရှိသည်ကို ကျွန်ုပ်တို့ သတိပြုမိနိုင်ပါသည်။ ထို့နောက် ဆက်လက်လေ့လာရန်အတွက် ရလဒ်အား Pandas DataFrame အဖြစ် ပြောင်းလဲနိုင်ပါသည်။
5. ကြံစည်ခြင်း။
သင့်အဆင်ပြေစေရန်အတွက် အခြေခံဇယားဆွဲခြင်းဆိုင်ရာ အထောက်အကူပြုပစ္စည်းများကို ပေးဆောင်ထားပါသည်။ plot() လုပ်ဆောင်ချက်သည် နောက်ဆက်တွဲခြယ်လှယ်မှုအတွက် matplotlib ဝင်ရိုးအရာဝတ္ထုများကို ထုတ်လုပ်ပေးသည်။
ကောက်ချက်
SALib သည် ဆန်းပြားသော အာရုံခံနိုင်စွမ်း ခွဲခြမ်းစိတ်ဖြာမှု ကိရိယာအစုံဖြစ်သည်။ SALib ရှိ အခြားသောနည်းပညာများတွင် Fourier Amplitude Sensitivity Test (FAST)၊ Morris Method နှင့် Delta-Moment Independent Measure တို့ ပါဝင်သည်။ ၎င်းသည် Python စာကြည့်တိုက်တစ်ခုဖြစ်သော်လည်း မည်သည့်ပုံစံများဖြင့် လုပ်ဆောင်ရန် ရည်ရွယ်ထားသည်။
SALib သည် မော်ဒယ်ထည့်သွင်းမှုများဖန်တီးရန်နှင့် မော်ဒယ်ရလဒ်များကို အကဲဖြတ်ရန်အတွက် အသုံးပြုရလွယ်ကူသော command-line interface ကို ပေးထားသည်။ ထွက်ခွာသည် SALib စာတမ်း ပိုမိုလေ့လာသင်ယူရန်။
တစ်ဦးစာပြန်ရန် Leave