ചില വ്യവസ്ഥകളിൽ ഒരു ആശ്രിത വേരിയബിളിൽ സ്വതന്ത്ര ഘടകങ്ങളുടെ ശേഖരത്തിന്റെ സ്വാധീനം നിർണ്ണയിക്കാൻ സെൻസിറ്റിവിറ്റി വിശകലനം ഉപയോഗിക്കുന്നു.
പൊതുവേ മോഡലിന്റെ ഇൻപുട്ടുകൾ മോഡലിന്റെ ഔട്ട്പുട്ടിനെ എങ്ങനെ സ്വാധീനിക്കുന്നുവെന്ന് നിർണ്ണയിക്കുന്നതിനുള്ള ശക്തമായ ഒരു സമീപനമാണിത്. ഈ പോസ്റ്റിൽ, ഒരു സൗജന്യ പൈത്തൺ സെൻസിറ്റിവിറ്റി വിശകലന പാക്കേജായ SALib ഉപയോഗിച്ച് സെൻസിറ്റിവിറ്റി വിശകലനത്തിന്റെ ഒരു ദ്രുത അവലോകനം ഞാൻ നൽകും.
സെൻസിറ്റിവിറ്റി ഇൻഡക്സ് എന്നറിയപ്പെടുന്ന ഒരു സംഖ്യാ മൂല്യം, ഓരോ ഇൻപുട്ടിന്റെയും സെൻസിറ്റിവിറ്റിയെ പ്രതിനിധീകരിക്കുന്നു. നിരവധി തരം സെൻസിറ്റിവിറ്റി സൂചികകൾ ഉണ്ട്:
- ഫസ്റ്റ്-ഓർഡർ സൂചികകൾ: ഔട്ട്പുട്ട് വേരിയൻസിലേക്ക് ഒരൊറ്റ മോഡൽ ഇൻപുട്ടിന്റെ സംഭാവന കണക്കാക്കുന്നു.
- രണ്ടാം ഓർഡർ സൂചികകൾ: ഔട്ട്പുട്ട് വേരിയൻസിന് രണ്ട് മോഡൽ ഇൻപുട്ടുകളുടെ സംഭാവന കണക്കാക്കുന്നു.
- ടോട്ടൽ-ഓർഡർ ഇൻഡക്സ്: ഔട്ട്പുട്ട് വേരിയൻസിനായി ഒരു മോഡൽ ഇൻപുട്ടിന്റെ സംഭാവനയെ കണക്കാക്കുന്നു, ഇത് ഫസ്റ്റ്-ഓർഡർ ഇഫക്റ്റുകളും (ഇൻപുട്ട് മാത്രം ചാഞ്ചാടുന്നു) ഏതെങ്കിലും ഉയർന്ന-ഓർഡർ ഇടപെടലുകളും ഉൾക്കൊള്ളുന്നു.
എന്താണ് സാലിബ്?
സാലിബ് ഒരു പൈത്തൺ അടിസ്ഥാനമാക്കിയുള്ളതാണ് ഓപ്പൺ സോഴ്സ് സെൻസിറ്റിവിറ്റി വിലയിരുത്തലുകൾ നടത്തുന്നതിനുള്ള ടൂൾകിറ്റ്. ഇതിന് വേർപെടുത്തിയ വർക്ക്ഫ്ലോ ഉണ്ട്, അതായത് ഇത് ഗണിതശാസ്ത്രമോ കമ്പ്യൂട്ടേഷണൽ മോഡലുമായോ നേരിട്ട് സംവദിക്കുന്നില്ല. പകരം, മോഡൽ ഇൻപുട്ടുകൾ (സാമ്പിൾ ഫംഗ്ഷനുകളിലൊന്നിലൂടെ) ഉൽപ്പാദിപ്പിക്കുന്നതിനും മോഡൽ ഔട്ട്പുട്ടുകളിൽ നിന്നുള്ള സെൻസിറ്റിവിറ്റി സൂചികകൾ (വിശകലന ഫംഗ്ഷനുകളിലൊന്ന് വഴി) കണക്കാക്കുന്നതിനും SALib ന്റെ ചുമതലയാണ്.
ഒരു സാധാരണ SALib സെൻസിറ്റിവിറ്റി വിശകലനം നാല് ഘട്ടങ്ങൾ ഉൾക്കൊള്ളുന്നു:
- മോഡൽ ഇൻപുട്ടുകളും (പാരാമീറ്ററുകൾ) ഓരോന്നിനും സാമ്പിൾ ശ്രേണിയും നിർണ്ണയിക്കുക.
- മോഡൽ ഇൻപുട്ടുകൾ സൃഷ്ടിക്കാൻ, സാമ്പിൾ ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുക.
- ജനറേറ്റ് ചെയ്ത ഇൻപുട്ടുകൾ ഉപയോഗിച്ച് മോഡൽ വിലയിരുത്തുകയും മോഡൽ ഫലങ്ങൾ സംരക്ഷിക്കുകയും ചെയ്യുക.
- സെൻസിറ്റിവിറ്റി സൂചികകൾ കണക്കാക്കാൻ, ഔട്ട്പുട്ടുകളിലെ വിശകലന പ്രവർത്തനം ഉപയോഗിക്കുക.
സോബോൾ, മോറിസ്, ഫാസ്റ്റ് എന്നിവ സാലിബ് നൽകുന്ന സെൻസിറ്റിവിറ്റി വിശകലന രീതികളിൽ ചിലത് മാത്രമാണ്. നൽകിയിരിക്കുന്ന ആപ്ലിക്കേഷനിൽ ഏത് സമീപനമാണ് ഏറ്റവും മികച്ചതെന്ന് പല ഘടകങ്ങളും സ്വാധീനിക്കുന്നു, നമുക്ക് പിന്നീട് നോക്കാം. തൽക്കാലം, നിങ്ങൾ ഏത് സാങ്കേതികത ഉപയോഗിച്ചാലും സാമ്പിൾ, വിശകലനം എന്നീ രണ്ട് ഫംഗ്ഷനുകൾ മാത്രമേ നിങ്ങൾ ഉപയോഗിക്കാവൂ എന്ന് ഓർമ്മിക്കുക. SALib എങ്ങനെ ഉപയോഗിക്കാമെന്ന് വ്യക്തമാക്കുന്നതിന് ഞങ്ങൾ ഒരു അടിസ്ഥാന ഉദാഹരണത്തിലൂടെ നിങ്ങളെ നയിക്കും.
സാലിബ് ഉദാഹരണം - സോബോളിന്റെ സെൻസിറ്റിവിറ്റി വിശകലനം
ഈ ഉദാഹരണത്തിൽ, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ ഇഷിഗാമി ഫംഗ്ഷന്റെ സോബോളിന്റെ സംവേദനക്ഷമത ഞങ്ങൾ പരിശോധിക്കും. ഉയർന്ന രേഖീയതയില്ലാത്തതും ഏകതാനമല്ലാത്തതുമായതിനാൽ, ഇഷിഗാമി ഫംഗ്ഷൻ അനിശ്ചിതത്വത്തിന്റെയും സംവേദനക്ഷമതയുടെയും വിശകലന രീതികൾ വിലയിരുത്തുന്നതിന് വ്യാപകമായി ഉപയോഗിക്കുന്നു.
ഘട്ടങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ പോകുന്നു:
1. സാലിബ് ഇറക്കുമതി ചെയ്യുന്നു
ആവശ്യമായ ലൈബ്രറികൾ കൂട്ടിച്ചേർക്കുക എന്നതാണ് ആദ്യപടി. പൈത്തൺ മൊഡ്യൂളുകളിൽ SALib-ന്റെ സാമ്പിളും വിശകലന പ്രവർത്തനങ്ങളും വ്യത്യസ്തമായി സൂക്ഷിക്കുന്നു. സാറ്റലൈറ്റ് സാമ്പിളും സോബോൾ അനലൈസിംഗ് ഫംഗ്ഷനുകളും ഇറക്കുമതി ചെയ്യുന്നത്, ഉദാഹരണത്തിന്, ചുവടെ കാണിച്ചിരിക്കുന്നു.
ഞങ്ങൾ ഇഷിഗാമി ഫംഗ്ഷനും ഉപയോഗിക്കുന്നു, ഇത് സാലിബിൽ ഒരു ടെസ്റ്റ് ഫംഗ്ഷനായി ലഭ്യമാണ്. അവസാനമായി, ഒരു മാട്രിക്സിൽ മോഡൽ ഇൻപുട്ടുകളും ഔട്ട്പുട്ടുകളും സംഭരിക്കുന്നതിന് SALib ഉപയോഗിക്കുന്നതിനാൽ ഞങ്ങൾ NumPy ഇറക്കുമതി ചെയ്യുന്നു.
2. മോഡൽ ഇൻപുട്ട്
അപ്പോൾ മോഡൽ ഇൻപുട്ടുകൾ നിർവചിക്കേണ്ടതുണ്ട്. ഇഷിഗാമി ഫംഗ്ഷൻ മൂന്ന് ഇൻപുട്ടുകൾ സ്വീകരിക്കുന്നു: x1, x2, x3. SALib-ൽ, താഴെ കാണുന്നത് പോലെ ഇൻപുട്ടുകളുടെ എണ്ണം, അവയുടെ പേരുകൾ, ഓരോ ഇൻപുട്ടിന്റെയും പരിധികൾ എന്നിവ വ്യക്തമാക്കുന്ന ഒരു ഡിക്ട് ഞങ്ങൾ നിർമ്മിക്കുന്നു.
3. സാമ്പിളുകളും മോഡലും സൃഷ്ടിക്കുക
തുടർന്ന് സാമ്പിളുകൾ നിർമ്മിക്കുന്നു. ഞങ്ങൾ സോബോൾ സെൻസിറ്റിവിറ്റി വിശകലനം നടത്തുന്നതിനാൽ സാൽടെല്ലി സാമ്പിൾ ഉപയോഗിച്ച് സാമ്പിളുകൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്. ഈ സാഹചര്യത്തിൽ, പാരാം മൂല്യങ്ങൾ ഒരു NumPy മാട്രിക്സ് ആണ്. param values.shape പ്രവർത്തിപ്പിക്കുന്നതിലൂടെ മാട്രിക്സ് 8000 by 3 ആണെന്ന് നമുക്ക് നിരീക്ഷിക്കാം. സാൽറ്റെല്ലി സാമ്പിൾ ഉപയോഗിച്ച് 8000 സാമ്പിളുകൾ സൃഷ്ടിച്ചു. സാൽറ്റെല്ലി സാമ്പിളുകൾ സാമ്പിളുകൾ സൃഷ്ടിക്കുന്നു, ഇവിടെ N 1024 (ഞങ്ങൾ നൽകിയ പാരാമീറ്റർ) D ഉം 3. (മോഡൽ ഇൻപുട്ടുകളുടെ എണ്ണം).
മുമ്പ് പറഞ്ഞതുപോലെ, SALib ഗണിതശാസ്ത്രമോ കമ്പ്യൂട്ടേഷണലോ മോഡൽ മൂല്യനിർണ്ണയത്തിൽ ഏർപ്പെട്ടിട്ടില്ല. മോഡൽ പൈത്തണിലാണ് എഴുതിയതെങ്കിൽ, നിങ്ങൾ സാധാരണയായി ഓരോ സാമ്പിൾ ഇൻപുട്ടിലൂടെയും ലൂപ്പ് ചെയ്യുകയും മോഡൽ വിലയിരുത്തുകയും ചെയ്യും:
പൈത്തണിൽ മോഡൽ വികസിപ്പിച്ചിട്ടില്ലെങ്കിൽ, സാമ്പിളുകൾ ഒരു ടെക്സ്റ്റ് ഫയലിലേക്ക് സംരക്ഷിക്കാൻ കഴിയും:
param values.txt ലെ ഓരോ വരിയും ഒരു മോഡൽ ഇൻപുട്ടിനെ പ്രതിനിധീകരിക്കുന്നു. മോഡലിന്റെ ഔട്ട്പുട്ട് സമാനമായ ശൈലിയിൽ മറ്റൊരു ഫയലിൽ സേവ് ചെയ്യണം, ഓരോ ലൈനിലും ഒരു ഔട്ട്പുട്ട്. അതിനുശേഷം, ഔട്ട്പുട്ടുകൾ ഇതുപയോഗിച്ച് ലോഡ് ചെയ്യാം:
ഈ ഉദാഹരണത്തിൽ, ഞങ്ങൾ സാലിബിൽ നിന്നുള്ള ഇഷിഗാമി ഫംഗ്ഷൻ ഉപയോഗിക്കാൻ പോകുന്നു. ഈ ടെസ്റ്റ് പ്രവർത്തനങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ വിലയിരുത്താം:
4. വിശകലനം നടത്തുക
മോഡൽ ഫലങ്ങൾ പൈത്തണിലേക്ക് ലോഡുചെയ്തതിന് ശേഷം നമുക്ക് ഒടുവിൽ സെൻസിറ്റിവിറ്റി സൂചികകൾ കണക്കാക്കാം. ഈ ഉദാഹരണത്തിൽ, ആദ്യത്തേതും രണ്ടാമത്തേതും മൊത്തം ഓർഡർ സൂചികകളും കണക്കാക്കാൻ ഞങ്ങൾ sobol.analyze ഉപയോഗിക്കും.
“S1,” “S2,” “ST,” “S1 conf,” “S2 conf,” “ST conf” എന്നീ കീകളുള്ള ഒരു പൈത്തൺ നിഘണ്ടുവാണ് Si. _conf കീകൾ അനുബന്ധ കോൺഫിഡൻസ് ഇടവേളകൾ നിലനിർത്തുന്നു, അവ സാധാരണയായി 95 ശതമാനമായി സജ്ജീകരിച്ചിരിക്കുന്നു. ഔട്ട്പുട്ട് ചെയ്യുന്നതിന്, എല്ലാ സൂചികകളും, കൺസോൾ=ട്രൂ എന്ന കീവേഡ് പാരാമീറ്റർ പ്രിന്റ് ഉപയോഗിക്കുക. പകരമായി, ചുവടെ ചിത്രീകരിച്ചിരിക്കുന്നതുപോലെ, നമുക്ക് Si-യിൽ നിന്ന് വ്യക്തിഗത മൂല്യങ്ങൾ പ്രിന്റ് ചെയ്യാം.
x1, x2 എന്നിവയ്ക്ക് ഫസ്റ്റ്-ഓർഡർ സെൻസിറ്റിവിറ്റി ഉണ്ടെന്ന് നമുക്ക് കാണാൻ കഴിയും, എന്നാൽ x3 ന് ഫസ്റ്റ്-ഓർഡർ ഇംപാക്ടുകളൊന്നും ഉള്ളതായി കാണുന്നില്ല.
ടോട്ടൽ-ഓർഡർ സൂചികകൾ ഫസ്റ്റ്-ഓർഡർ സൂചികകളേക്കാൾ വളരെ വലുതാണെങ്കിൽ, ഉയർന്ന ക്രമത്തിലുള്ള ഇടപെടലുകൾ തീർച്ചയായും നടക്കുന്നു. രണ്ടാം ഓർഡർ സൂചികകൾ നോക്കുന്നതിലൂടെ നമുക്ക് ഈ ഉയർന്ന ക്രമത്തിലുള്ള ഇടപെടലുകൾ കാണാൻ കഴിയും:
x1 നും x3 നും കാര്യമായ ഇടപെടലുകൾ ഉണ്ടെന്ന് നമുക്ക് നിരീക്ഷിക്കാം. അതിനുശേഷം, കൂടുതൽ പഠനത്തിനായി ഫലം ഒരു പാണ്ടാസ് ഡാറ്റ ഫ്രെയിമിലേക്ക് രൂപാന്തരപ്പെടുത്തിയേക്കാം.
5. പ്ലോട്ടിംഗ്
നിങ്ങളുടെ സൗകര്യാർത്ഥം, അടിസ്ഥാന ചാർട്ടിംഗ് സൗകര്യങ്ങൾ നൽകിയിട്ടുണ്ട്. പ്ലോട്ട്() ഫംഗ്ഷൻ, തുടർന്നുള്ള കൃത്രിമത്വത്തിനായി മാറ്റ്പ്ലോട്ട്ലിബ് ആക്സിസ് ഒബ്ജക്റ്റുകൾ നിർമ്മിക്കുന്നു.
തീരുമാനം
SALib ഒരു അത്യാധുനിക സെൻസിറ്റിവിറ്റി വിശകലന ടൂൾകിറ്റാണ്. ഫോറിയർ ആംപ്ലിറ്റ്യൂഡ് സെൻസിറ്റിവിറ്റി ടെസ്റ്റ് (ഫാസ്റ്റ്), മോറിസ് മെത്തേഡ്, ഡെൽറ്റ-മൊമെന്റ് ഇൻഡിപെൻഡന്റ് മെഷർ എന്നിവയാണ് സാലിബിലെ മറ്റ് സാങ്കേതിക വിദ്യകൾ. ഇതൊരു പൈത്തൺ ലൈബ്രറിയാണെങ്കിലും, ഏത് തരത്തിലുള്ള മോഡലുകളുമായും ഇത് പ്രവർത്തിക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ്.
മോഡൽ ഇൻപുട്ടുകൾ സൃഷ്ടിക്കുന്നതിനും മോഡൽ ഔട്ട്പുട്ടുകൾ വിലയിരുത്തുന്നതിനുമായി ഉപയോഗിക്കാൻ എളുപ്പമുള്ള കമാൻഡ്-ലൈൻ ഇന്റർഫേസ് SALib വാഗ്ദാനം ചെയ്യുന്നു. ചെക്ക് ഔട്ട് SALib ഡോക്യുമെന്റേഷൻ കൂടുതലറിയാൻ.
നിങ്ങളുടെ അഭിപ്രായങ്ങൾ രേഖപ്പെടുത്തുക