යම් යම් කොන්දේසි යටතේ යැපෙන විචල්යයක් මත ස්වාධීන සාධක එකතුවක බලපෑම තීරණය කිරීම සඳහා සංවේදීතා විශ්ලේෂණය භාවිතා කරයි.
එය ආකෘතියේ ප්රතිදානය සාමාන්ය වශයෙන් ආකෘතියේ යෙදවුම් මගින් බලපාන්නේ කෙසේද යන්න තීරණය කිරීම සඳහා ප්රබල ප්රවේශයකි. මෙම සටහනෙන්, නොමිලේ Python සංවේදීතා විශ්ලේෂණ පැකේජයක් වන SALib භාවිතා කරමින් මම සංවේදීතා විශ්ලේෂණය පිළිබඳ ඉක්මන් දළ විශ්ලේෂණයක් ලබා දෙන්නෙමි.
සංවේදිතා දර්ශකය ලෙස හඳුන්වන සංඛ්යාත්මක අගයක්, එක් එක් ආදානයේ සංවේදිතාව නිතර නිරූපණය කරයි. සංවේදීතා දර්ශක වර්ග ගණනාවක් තිබේ:
- පළමු අනුපිළිවෙල දර්ශක: නිමැවුම් විචලනය සඳහා තනි මාදිලි ආදානයක දායකත්වය ගණනය කරයි.
- දෙවන පෙළ දර්ශක: නිමැවුම් විචලනය සඳහා ආදර්ශ යෙදවුම් දෙකක දායකත්වය ගණනය කරයි.
- සම්පූර්ණ අනුපිළිවෙල දර්ශකය: ප්රථම පෙළ ප්රයෝග (ආදානය තනිව උච්චාවචනය වන) සහ ඕනෑම ඉහළ පෙළේ අන්තර්ක්රියා යන දෙකම ඇතුළත් කරමින්, ප්රතිදාන විචලනය සඳහා ආදර්ශ ආදානයක දායකත්වය ප්රමාණ කරයි.
SALib යනු කුමක්ද?
සාලිබ් පයිතන් මත පදනම් වේ විවෘත කේතය සංවේදීතා තක්සේරු කිරීම සඳහා මෙවලම් කට්ටලය. එයට වෙන් වූ කාර්ය ප්රවාහයක් ඇත, එයින් අදහස් වන්නේ එය ගණිතමය හෝ ගණනය කිරීමේ ආකෘතිය සමඟ සෘජුව අන්තර්ක්රියා නොකරන බවයි. ඒ වෙනුවට, SALib විසින් ආදර්ශ ආදාන (නියැදි ශ්රිත වලින් එකක් හරහා) නිෂ්පාදනය කිරීම සහ ආකෘති නිමැවුම් වලින් සංවේදීතා දර්ශක (විශ්ලේෂණ ශ්රිතයක් හරහා) ගණනය කිරීම භාරව සිටී.
සාමාන්ය SALib සංවේදීතා විශ්ලේෂණයක් පියවර හතරකින් සමන්විත වේ:
- එක් එක් සඳහා ආදර්ශ ආදාන (පරාමිතීන්) සහ නියැදි පරාසය තීරණය කරන්න.
- ආකෘති ආදාන සෑදීමට, නියැදි ශ්රිතය ක්රියාත්මක කරන්න.
- උත්පාදනය කරන ලද යෙදවුම් භාවිතයෙන් ආකෘතිය ඇගයීම සහ ආදර්ශ ප්රතිඵල සුරකින්න.
- සංවේදීතා දර්ශක ගණනය කිරීම සඳහා, ප්රතිදාන මත විශ්ලේෂණ කාර්යය භාවිතා කරන්න.
Sobol, Morris, සහ FAST යනු SALib විසින් සපයන ලද සංවේදීතා විශ්ලේෂණ ක්රමවලින් කිහිපයක් පමණි. දී ඇති යෙදුමක් සඳහා වඩාත් සුදුසු ප්රවේශය කුමක්ද යන්න බොහෝ සාධක බලපායි, අපි පසුව බලමු. දැනට, ඔබ කුමන තාක්ෂණයක් භාවිතා කළත්, ඔබට අවශ්ය වන්නේ නියැදි සහ විශ්ලේෂණය යන කාර්යයන් දෙකක් පමණක් භාවිතා කළ යුතු බව මතක තබා ගන්න. SALib භාවිතා කරන ආකාරය නිදර්ශනය කිරීම සඳහා අපි ඔබට මූලික උදාහරණයකින් මඟ පෙන්වනු ඇත.
SALib උදාහරණය – Sobol'sensitivity Analysis
මෙම උදාහරණයේදී, පහත දැක්වෙන පරිදි, අපි Ishigami ශ්රිතයේ Sobol' සංවේදීතාව පරීක්ෂා කරන්නෙමු. එහි ඉහළ රේඛීය නොවන සහ ඒකාකාරී නොවන බව නිසා, Ishigami ශ්රිතය අවිනිශ්චිතතාවය සහ සංවේදීතා විශ්ලේෂණ ක්රමවේද ඇගයීම සඳහා බහුලව භාවිතා වේ.
පියවර පහත පරිදි සිදු වේ:
1. SALib ආනයනය කිරීම
පළමු පියවර වන්නේ අවශ්ය පුස්තකාල එකතු කිරීමයි. SALib හි නියැදි සහ විශ්ලේෂණ කාර්යයන් Python මොඩියුලවල වෙන් වෙන්ව තබා ඇත. උදාහරණයක් ලෙස, චන්ද්රිකා නියැදිය සහ Sobol විශ්ලේෂණ කාර්යයන් ආනයනය කිරීම පහත දැක්වේ.
අපි SALib හි පරීක්ෂණ ශ්රිතයක් ලෙස ලබා ගත හැකි Ishigami ශ්රිතය ද භාවිතා කරමු. අවසාන වශයෙන්, අපි NumPy ආයාත කරන්නේ SALib එය න්යාසයක ආදර්ශ ආදාන සහ ප්රතිදානයන් ගබඩා කිරීමට භාවිතා කරන බැවිනි.
2. ආදර්ශ ආදානය
ඉන්පසු ආදර්ශ ආදාන නිර්වචනය කළ යුතුය. Ishigami ශ්රිතය ආදාන තුනක් පිළිගනී: x1, x2, සහ x3. SALib හි, අපි පහත දැක්වෙන පරිදි ආදාන ගණන, ඒවායේ නම් සහ එක් එක් ආදානයේ සීමාවන් සඳහන් කරන නියෝගයක් ගොඩනඟමු.
3. සාම්පල සහ ආකෘතිය උත්පාදනය කරන්න
ඉන්පසු සාම්පල උත්පාදනය කරනු ලැබේ. අපි Sobol සංවේදීතා විශ්ලේෂණයක් සිදු කරන බැවින් අපි Saltelli නියැදිය භාවිතයෙන් සාම්පල නිර්මාණය කළ යුතුය. මෙම අවස්ථාවෙහිදී, පරාමිතික අගයන් NumPy න්යාසයකි. param values.shape ධාවනය කිරීමෙන් matrix 8000 by 3 බව අපට නිරීක්ෂණය කළ හැක. සැල්ටෙලි සාම්පලයෙන් සාම්පල 8000ක් නිර්මාණය කරන ලදී. Saltelli නියැදිය සාම්පල නිර්මාණය කරයි, එහිදී 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” යතුරු ඇති පයිතන් ශබ්දකෝෂයකි. _conf යතුරු සාමාන්යයෙන් සියයට 95 ලෙස සකසා ඇති ආශ්රිත විශ්වාස කාල අන්තරයන් රඳවා ගනී. ප්රතිදානය කිරීමට, සියලුම දර්ශක, console=True සඳහා මූල පද පරාමිති මුද්රණය භාවිතා කරන්න. විකල්පයක් ලෙස, පහත දැක්වෙන පරිදි, අපි Si වෙතින් තනි අගයන් මුද්රණය කළ හැක.
x1 සහ x2 පළමු පෙළ සංවේදිතාව ඇති බව අපට දැකිය හැක, නමුත් x3 කිසිදු පළමු පෙළ බලපෑමක් ඇති බවක් නොපෙනේ.
සම්පූර්ණ ඇණවුම් දර්ශක පළමු පෙළ දර්ශකවලට වඩා සැලකිය යුතු ලෙස විශාල නම්, ඉහළ අනුපිළිවෙලෙහි අන්තර්ක්රියා නිසැකවම සිදු වේ. දෙවන පෙළ දර්ශක දෙස බැලීමෙන් අපට මෙම ඉහළ පෙළේ අන්තර්ක්රියා දැකිය හැකිය:
x1 සහ x3 සැලකිය යුතු අන්තර්ක්රියා ඇති බව අපට නිරීක්ෂණය කළ හැක. ඉන්පසුව, වැඩිදුර අධ්යයනය සඳහා ප්රතිඵලය Pandas DataFrame බවට පරිවර්තනය කළ හැක.
5. කුමන්ත්රණය
ඔබගේ පහසුව සඳහා මූලික ප්රස්ථාර පහසුකම් සපයා ඇත. ප්ලොට්() ශ්රිතය පසුකාලීනව හැසිරවීම සඳහා matplotlib අක්ෂ වස්තු නිපදවයි.
නිගමනය
SALib යනු සංකීර්ණ සංවේදීතා විශ්ලේෂණ මෙවලම් කට්ටලයකි. SALib හි අනෙකුත් තාක්ෂණික ක්රම අතර ෆූරියර් විස්තාරය සංවේදීතා පරීක්ෂණය (ෆාස්ට්), මොරිස් ක්රමය සහ ඩෙල්ටා-මොමන්ට් ස්වාධීන මිනුම ඇතුළත් වේ. එය පයිතන් පුස්තකාලයක් වන අතර, එය ඕනෑම ආකාරයක මාදිලි සමඟ ක්රියා කිරීමට අදහස් කෙරේ.
SALib ආදර්ශ යෙදවුම් නිර්මාණය කිරීම සහ ආදර්ශ ප්රතිදානයන් තක්සේරු කිරීම සඳහා භාවිතයට පහසු විධාන-රේඛා අතුරු මුහුණතක් ඉදිරිපත් කරයි. පරීක්ෂාකාරී වන්න SALib ලියකියවිලි වැඩි විස්තර දැනගැනීම සඳහා.
ඔබමයි