સંવેદનશીલતા પૃથ્થકરણનો ઉપયોગ અમુક શરતો હેઠળ આશ્રિત ચલ પર સ્વતંત્ર પરિબળોના સંગ્રહની અસર નક્કી કરવા માટે થાય છે.
સામાન્ય શબ્દોમાં મોડેલના ઇનપુટ દ્વારા મોડેલના આઉટપુટને કેવી રીતે અસર થાય છે તે નક્કી કરવા માટે તે એક મજબૂત અભિગમ છે. આ પોસ્ટમાં, હું મફત પાયથોન સંવેદનશીલતા વિશ્લેષણ પેકેજ, SALib નો ઉપયોગ કરીને સંવેદનશીલતા વિશ્લેષણની ઝડપી ઝાંખી આપીશ.
એક સંખ્યાત્મક મૂલ્ય જે સંવેદનશીલતા સૂચકાંક તરીકે ઓળખાય છે, વારંવાર દરેક ઇનપુટની સંવેદનશીલતાને રજૂ કરે છે. સંવેદનશીલતા સૂચકાંકોના અસંખ્ય પ્રકારો છે:
- ફર્સ્ટ-ઓર્ડર સૂચકાંકો: આઉટપુટ વેરિઅન્સમાં સિંગલ મોડલ ઇનપુટના યોગદાનની ગણતરી કરે છે.
- સેકન્ડ-ઓર્ડર સૂચકાંકો: આઉટપુટ વેરિઅન્સમાં બે મોડલ ઇનપુટ્સના યોગદાનની ગણતરી કરે છે.
- ટોટલ-ઓર્ડર ઇન્ડેક્સ: આઉટપુટ વેરિઅન્સમાં મોડલ ઇનપુટના યોગદાનને પ્રમાણિત કરે છે, જેમાં ફર્સ્ટ-ઓર્ડર ઇફેક્ટ્સ (એકલા ઇનપુટમાં વધઘટ) અને કોઈપણ ઉચ્ચ-ક્રમની ક્રિયાપ્રતિક્રિયાઓનો સમાવેશ થાય છે.
સાલિબ શું છે?
સાલિબ પાયથોન આધારિત છે ખુલ્લા સ્ત્રોત સંવેદનશીલતા મૂલ્યાંકન કરવા માટે ટૂલકીટ. તેની પાસે એક અલગ વર્કફ્લો છે, જેનો અર્થ છે કે તે ગાણિતિક અથવા કોમ્પ્યુટેશનલ મોડલ સાથે સીધો સંપર્ક કરતું નથી. તેના બદલે, SALib મોડેલ આઉટપુટમાંથી મોડલ ઇનપુટ્સ (એક સેમ્પલ ફંક્શન દ્વારા) અને સંવેદનશીલતા સૂચકાંકો (વિશ્લેષણ કાર્યોમાંથી એક દ્વારા) ની ગણતરી કરવાનો હવાલો સંભાળે છે.
લાક્ષણિક SALib સંવેદનશીલતા વિશ્લેષણમાં ચાર પગલાંઓ હોય છે:
- મોડેલ ઇનપુટ્સ (પરિમાણો) અને દરેક માટે નમૂના શ્રેણી નક્કી કરો.
- મોડેલ ઇનપુટ્સ બનાવવા માટે, સેમ્પલ ફંક્શન ચલાવો.
- જનરેટ કરેલ ઇનપુટ્સનો ઉપયોગ કરીને મોડેલનું મૂલ્યાંકન કરો અને મોડેલ પરિણામોને સાચવો.
- સંવેદનશીલતા સૂચકાંકોની ગણતરી કરવા માટે, આઉટપુટ પર વિશ્લેષણ કાર્યનો ઉપયોગ કરો.
સોબોલ, મોરિસ અને ફાસ્ટ એ SALib દ્વારા પૂરી પાડવામાં આવેલ સંવેદનશીલતા વિશ્લેષણ પદ્ધતિઓમાંથી માત્ર થોડીક છે. આપેલ એપ્લિકેશન માટે કયો અભિગમ શ્રેષ્ઠ છે તે ઘણા પરિબળો પ્રભાવિત કરે છે, કારણ કે આપણે પછી જોઈશું. હાલમાં, ધ્યાનમાં રાખો કે તમારે ફક્ત બે કાર્યોનો ઉપયોગ કરવાની જરૂર છે, નમૂના અને વિશ્લેષણ, તમે ગમે તે તકનીકનો ઉપયોગ કરો છો. SALib નો ઉપયોગ કેવી રીતે કરવો તે સમજાવવા માટે અમે તમને મૂળભૂત ઉદાહરણ દ્વારા માર્ગદર્શન આપીશું.
સાલિબ ઉદાહરણ - સોબોલ સંવેદનશીલતા વિશ્લેષણ
આ ઉદાહરણમાં, અમે નીચે બતાવ્યા પ્રમાણે, ઇશિગામી કાર્યની સોબોલની સંવેદનશીલતાની તપાસ કરીશું. તેની ઉચ્ચ બિનરેખીયતા અને નોનમોનોટોનિસિટીને કારણે, અનિશ્ચિતતા અને સંવેદનશીલતા વિશ્લેષણ પદ્ધતિઓનું મૂલ્યાંકન કરવા માટે ઇશિગામી કાર્યનો વ્યાપકપણે ઉપયોગ થાય છે.
પગલાં નીચે પ્રમાણે જાય છે:
1. SALib આયાત કરવું
પ્રથમ પગલું જરૂરી પુસ્તકાલયો ઉમેરવાનું છે. SALib ના નમૂના અને વિશ્લેષણ કાર્યો પાયથોન મોડ્યુલોમાં અલગ રાખવામાં આવે છે. સેટેલાઇટ નમૂનાની આયાત અને સોબોલ વિશ્લેષણ કાર્યો, ઉદાહરણ તરીકે, નીચે બતાવેલ છે.
અમે Ishigami ફંક્શનનો પણ ઉપયોગ કરીએ છીએ, જે SALib માં ટેસ્ટ ફંક્શન તરીકે ઉપલબ્ધ છે. છેલ્લે, અમે NumPy આયાત કરીએ છીએ કારણ કે SALib તેનો ઉપયોગ મેટ્રિક્સમાં મોડલ ઇનપુટ્સ અને આઉટપુટ સ્ટોર કરવા માટે કરે છે.
2. મોડલ ઇનપુટ
મોડલ ઇનપુટ્સ પછી વ્યાખ્યાયિત થયેલ હોવું જ જોઈએ. ઇશિગામી ફંક્શન ત્રણ ઇનપુટ્સ સ્વીકારે છે: x1, x2 અને x3. SALib માં, અમે એક ડિક્ટ બનાવીએ છીએ જે ઇનપુટની સંખ્યા, તેમના નામો અને દરેક ઇનપુટ પરની મર્યાદા દર્શાવે છે, જે નીચે આપેલ છે.
3. નમૂનાઓ અને મોડેલ બનાવો
પછી નમૂનાઓ બનાવવામાં આવે છે. અમે સોબોલ સેન્સિટિવિટી એનાલિસિસ કરી રહ્યા હોવાથી અમારે સાલ્ટેલી સેમ્પલરનો ઉપયોગ કરીને નમૂનાઓ બનાવવાની જરૂર છે. આ કિસ્સામાં, પરમ મૂલ્યો NumPy મેટ્રિક્સ છે. આપણે param values.shape ચલાવીને અવલોકન કરી શકીએ છીએ કે મેટ્રિક્સ 8000 બાય 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 ટકા પર સેટ હોય છે. આઉટપુટ કરવા માટે, બધા સૂચકાંકો, console=True માટે કીવર્ડ પેરામીટર પ્રિન્ટનો ઉપયોગ કરો. વૈકલ્પિક રીતે, નીચે દર્શાવ્યા મુજબ, અમે Si માંથી વ્યક્તિગત મૂલ્યો છાપી શકીએ છીએ.
અમે જોઈ શકીએ છીએ કે x1 અને x2માં પ્રથમ-ક્રમની સંવેદનશીલતા છે, પરંતુ x3 પર કોઈ પ્રથમ-ક્રમની અસર હોય તેવું લાગતું નથી.
જો કુલ-ઓર્ડર સૂચકાંકો પ્રથમ-ઓર્ડર સૂચકાંકો કરતાં નોંધપાત્ર રીતે મોટા હોય, તો ઉચ્ચ-ક્રમની ક્રિયાપ્રતિક્રિયાઓ ચોક્કસપણે થઈ રહી છે. બીજા ક્રમના સૂચકાંકોને જોઈને આપણે આ ઉચ્ચ-ક્રમની ક્રિયાપ્રતિક્રિયાઓ જોઈ શકીએ છીએ:
અમે અવલોકન કરી શકીએ છીએ કે x1 અને x3 નોંધપાત્ર ક્રિયાપ્રતિક્રિયા ધરાવે છે. તે પછી, પરિણામ વધુ અભ્યાસ માટે પાંડા ડેટાફ્રેમમાં પરિવર્તિત થઈ શકે છે.
5. કાવતરું
તમારી સુવિધા માટે, મૂળભૂત ચાર્ટિંગ સુવિધાઓ પ્રદાન કરવામાં આવે છે. પ્લોટ() ફંક્શન અનુગામી મેનીપ્યુલેશન માટે matplotlib એક્સિસ ઑબ્જેક્ટ્સનું ઉત્પાદન કરે છે.
ઉપસંહાર
SALib એ એક અત્યાધુનિક સંવેદનશીલતા વિશ્લેષણ ટૂલકીટ છે. SALib માં અન્ય તકનીકોમાં ફૌરિયર એમ્પ્લિટ્યુડ સેન્સિટિવિટી ટેસ્ટ (FAST), મોરિસ મેથડ અને ડેલ્ટા-મોમેન્ટ ઇન્ડિપેન્ડન્ટ મેઝરનો સમાવેશ થાય છે. જ્યારે તે પાયથોન લાઇબ્રેરી છે, ત્યારે તેનો હેતુ કોઈપણ પ્રકારના મોડલ સાથે કામ કરવાનો છે.
SALib મોડલ ઇનપુટ્સ બનાવવા અને મોડલ આઉટપુટનું મૂલ્યાંકન કરવા માટે ઉપયોગમાં સરળ કમાન્ડ-લાઇન ઇન્ટરફેસ આપે છે. તપાસો SALib દસ્તાવેજીકરણ વધુ જાણવા માટે.
એક જવાબ છોડો