Мэдрэмжийн шинжилгээг тодорхой нөхцөлд хамаарах хувьсагчдад бие даасан хүчин зүйлсийн цуглуулгын нөлөөллийг тодорхойлоход ашигладаг.
Энэ нь ерөнхий утгаараа загварын орц нь тухайн загварын гаралтад хэрхэн нөлөөлж байгааг тодорхойлох хүчтэй арга юм. Энэ нийтлэлд би Python-ийн мэдрэмжийн шинжилгээний үнэгүй багц болох SALib ашиглан мэдрэмжийн шинжилгээний талаар товч тоймыг өгөх болно.
Мэдрэмжийн индекс гэж нэрлэгддэг тоон утга нь ихэвчлэн оролт бүрийн мэдрэмжийг илэрхийлдэг. Мэдрэмжийн индексийн олон төрөл байдаг:
- Нэгдүгээр эрэмбийн индексүүд: нэг загварын оролтын гаралтын хэлбэлзэлд оруулах хувь нэмрийг тооцдог.
- Хоёрдугаар эрэмбийн индексүүд: хоёр загварын орцын гаралтын хэлбэлзэлд оруулах хувь нэмрийг тооцдог.
- Нийт эрэмбийн индекс: Нэгдүгээр эрэмбийн нөлөө (дангаараа хэлбэлздэг оролт) болон дээд эрэмбийн харилцан үйлчлэлийн аль алиныг нь багтаасан загварын оролтын гаралтын хэлбэлзэлд оруулах хувь нэмрийг хэмждэг.
SALib гэж юу вэ?
САЛиб нь Python дээр суурилсан нээлттэй эх үүсвэр мэдрэмжийн үнэлгээ хийх хэрэгсэл. Энэ нь салангид ажлын урсгалтай бөгөөд энэ нь математик эсвэл тооцооллын загвартай шууд харьцдаггүй гэсэн үг юм. Үүний оронд SALib нь загварын оролтыг (түүврийн функцүүдийн аль нэгээр нь) гаргаж, загварын гаралтаас мэдрэмжийн индексийг (шинжилгээний функцүүдийн аль нэгээр нь) тооцоолох үүрэгтэй.
Ердийн SALib мэдрэмжийн шинжилгээ нь дөрвөн үе шатаас бүрдэнэ.
- Загварын оролт (параметр) болон түүврийн хүрээ тус бүрийг тодорхойлно.
- Загварын оролтыг үүсгэхийн тулд жишээ функцийг ажиллуулна уу.
- Үүсгэсэн оролтыг ашиглан загварыг үнэлж, загварын үр дүнг хадгална.
- Мэдрэмжийн индексийг тооцоолохын тулд гаралт дээрх анализын функцийг ашиглана уу.
Собол, Моррис, FAST зэрэг нь SALib-ийн өгсөн мэдрэмжийн шинжилгээний цөөн хэдэн аргууд юм. Өгөгдсөн хэрэглээнд аль арга нь хамгийн тохиромжтой вэ гэдэгт олон хүчин зүйл нөлөөлдөг бөгөөд үүнийг дараа нь харах болно. Одоогийн байдлаар та ямар ч техник ашиглаж байгаагаас үл хамааран дээж авах, дүн шинжилгээ хийх хоёр функцийг ашиглах хэрэгтэй гэдгийг санаарай. Бид SALib-ийг хэрхэн ашиглахыг харуулах үндсэн жишээгээр танд зааварчилгаа өгөх болно.
SALib-ийн жишээ – Соболын мэдрэмжийн шинжилгээ
Энэ жишээнд бид доор үзүүлсэн шиг Ишигами функцийн Соболын мэдрэмжийг шалгах болно. Ишигами функц нь шугаман бус, монотон бус шинж чанартай байдаг тул тодорхойгүй байдал, мэдрэмжийн шинжилгээний арга зүйг үнэлэхэд өргөн хэрэглэгддэг.
Алхамууд дараах байдлаар явагдана.
1. SALib импортлох
Эхний алхам бол шаардлагатай номын сангуудыг нэмэх явдал юм. SALib-ийн дээж, шинжилгээний функцуудыг Python модулиудад тус тусад нь хадгалдаг. Жишээлбэл, хиймэл дагуулын дээж болон Соболын шинжилгээний функцийг импортлохыг доор харуулав.
Мөн бид SALib дээр туршилтын функцээр ашиглах боломжтой Ишигами функцийг ашигладаг. Эцэст нь SALib нь загварын оролт, гаралтыг матрицад хадгалахад ашигладаг тул бид NumPy-г импортолдог.
2. Загварын оролт
Дараа нь загварын оролтыг тодорхойлсон байх ёстой. Ишигами функц нь x1, x2, x3 гэсэн гурван оролтыг хүлээн авдаг. SALib дээр бид оролтын тоо, тэдгээрийн нэр, оролт тус бүрийн хязгаарыг тодорхойлсон dict-ийг бүтээдэг.
3. Дээж болон загвар үүсгэх
Дараа нь дээжүүд үүсдэг. Бид Sobol мэдрэмжийн шинжилгээ хийж байгаа тул Saltelli дээж авагчийг ашиглан дээж үүсгэх хэрэгтэй. Энэ тохиолдолд параметрийн утга нь NumPy матриц болно. Бид param values.shape-г ажиллуулснаар матриц 8000-аас 3 байгааг харж болно. Saltelli дээж авагчийн тусламжтайгаар 8000 дээжийг бүтээсэн. Saltelli дээж авагч нь дээж үүсгэдэг бөгөөд N нь 1024 (бидний өгсөн параметр), D нь 3. (загварын оролтын тоо).
Өмнө дурьдсанчлан SALib нь математик эсвэл тооцооллын загварын үнэлгээнд оролцдоггүй. Хэрэв загвар нь Python хэл дээр бичигдсэн бол та жишээний оролт бүрийг давтаж, загварыг үнэлдэг.
Хэрэв загвар нь Python дээр боловсруулагдаагүй бол дээжийг текст файлд хадгалах боломжтой.
Param values.txt доторх мөр бүр нь нэг загварын оролтыг илэрхийлнэ. Загварын гаралтыг мөр бүрт нэг гаралттай ижил төстэй загвараар өөр файлд хадгалах ёстой. Үүний дараа гаралтыг дараах байдлаар ачаалж болно:
Энэ жишээнд бид SALib-ийн Ишигами функцийг ашиглах болно. Эдгээр туршилтын функцийг дараах байдлаар үнэлж болно.
4. Дүн шинжилгээ хийх
Загварын үр дүнг Python-д ачаалсны дараа бид эцэст нь мэдрэмжийн индексийг тооцоолж чадна. Энэ жишээнд бид sobol.analyze ашиглан эхний, хоёр дахь, нийт эрэмбийн индексийг тооцоолох болно.
Si нь “S1,” “S2,” “ST,” “S1 conf,” “S2 conf”, “ST conf” гэсэн товчлууруудтай Python толь бичиг юм. _conf товчлуурууд нь ерөнхийдөө 95 хувь гэж тохируулсан холбогдох итгэлийн интервалуудыг агуулна. Бүх индексийг гаргахын тулд print гэсэн түлхүүр үгийг ашиглан console=True. Эсвэл доор үзүүлсэн шиг бид Si-аас хувь хүний утгыг хэвлэж болно.
Бид x1 ба x2 нь нэгдүгээр зэргийн мэдрэмжтэй байгааг харж болно, гэхдээ x3 нь нэгдүгээр зэрэглэлийн нөлөө үзүүлэхгүй бололтой.
Хэрэв нийт эрэмбийн индексүүд нэгдүгээр эрэмбийн индексүүдээс хамаагүй их байвал дээд эрэмбийн харилцан үйлчлэл явагдах нь гарцаагүй. Бид хоёр дахь эрэмбийн индексийг харснаар эдгээр дээд эрэмбийн харилцан үйлчлэлийг харж болно.
x1 ба x3 нь чухал харилцан үйлчлэлтэй байгааг бид ажиглаж болно. Үүний дараа үр дүнг цаашдын судалгаанд зориулж Pandas DataFrame болгон хувиргаж болно.
5. Хуйвалдаан
Таны тав тухыг хангах үүднээс үндсэн графикийн хэрэгслүүдийг хангасан. plot() функц нь дараачийн залруулга хийхэд зориулж matplotlib тэнхлэгийн объектуудыг үүсгэдэг.
Дүгнэлт
SALib бол мэдрэмжийн шинжилгээний нарийн төвөгтэй хэрэгсэл юм. SALib-ийн бусад арга техникүүдэд Фурье далайцын мэдрэмжийн тест (FAST), Моррис арга, Дельта-Моментийн бие даасан хэмжүүр орно. Энэ нь Python номын сан боловч ямар ч төрлийн загвартай ажиллахад зориулагдсан.
SALib нь загварын оролтыг үүсгэх, загварын гаралтыг үнэлэхэд ашиглахад хялбар тушаалын мөрийн интерфейсийг санал болгодог. Шалгах SALib баримт бичиг илүү ихийг мэдэхийг.
хариу үлдээх