সংবেদনশীলতা বিশ্লেষণ নির্দিষ্ট অবস্থার অধীনে একটি নির্ভরশীল পরিবর্তনশীলের উপর স্বাধীন কারণগুলির একটি সংগ্রহের প্রভাব নির্ধারণ করতে ব্যবহৃত হয়।
সাধারণ শর্তে মডেলের ইনপুট দ্বারা মডেলের আউটপুট কীভাবে প্রভাবিত হয় তা নির্ধারণ করার জন্য এটি একটি শক্তিশালী পদ্ধতি। এই পোস্টে, আমি SALib, একটি বিনামূল্যে পাইথন সংবেদনশীলতা বিশ্লেষণ প্যাকেজ ব্যবহার করে সংবেদনশীলতা বিশ্লেষণের একটি দ্রুত ওভারভিউ দেব।
সংবেদনশীলতা সূচক হিসাবে পরিচিত একটি সংখ্যাসূচক মান, প্রায়শই প্রতিটি ইনপুটের সংবেদনশীলতার প্রতিনিধিত্ব করে। অনেক ধরনের সংবেদনশীলতা সূচক রয়েছে:
- প্রথম-ক্রম সূচক: আউটপুট বৈচিত্র্যের জন্য একটি একক মডেল ইনপুটের অবদান গণনা করে।
- দ্বিতীয়-ক্রম সূচক: আউটপুট বৈচিত্র্যে দুটি মডেল ইনপুটের অবদান গণনা করে।
- টোটাল-অর্ডার ইনডেক্স: আউটপুট ভ্যারিয়েন্সে একটি মডেল ইনপুটের অবদানের পরিমাণ নির্ধারণ করে, প্রথম-ক্রম প্রভাব (একা ইনপুট ওঠানামা) এবং যেকোনো উচ্চ-ক্রম মিথস্ক্রিয়া উভয়ই অন্তর্ভুক্ত করে।
সালিব কি?
সালিব একটি পাইথন-ভিত্তিক ওপেন সোর্স সংবেদনশীলতা মূল্যায়ন করার জন্য টুলকিট। এটির একটি বিচ্ছিন্ন কর্মপ্রবাহ রয়েছে, যার অর্থ এটি গাণিতিক বা গণনামূলক মডেলের সাথে সরাসরি যোগাযোগ করে না। পরিবর্তে, SALib মডেল ইনপুটগুলি (একটি নমুনা ফাংশনের মাধ্যমে) এবং মডেল আউটপুট থেকে সংবেদনশীলতা সূচকগুলি (বিশ্লেষণ ফাংশনের মাধ্যমে) গণনা করার দায়িত্বে রয়েছে।
একটি সাধারণ SALib সংবেদনশীলতা বিশ্লেষণ চারটি ধাপ নিয়ে গঠিত:
- মডেল ইনপুট (প্যারামিটার) এবং প্রতিটির জন্য নমুনা পরিসীমা নির্ধারণ করুন।
- মডেল ইনপুট তৈরি করতে, নমুনা ফাংশন চালান।
- উৎপন্ন ইনপুট ব্যবহার করে মডেলের মূল্যায়ন করুন এবং মডেলের ফলাফল সংরক্ষণ করুন।
- সংবেদনশীলতা সূচকগুলি গণনা করতে, আউটপুটগুলিতে বিশ্লেষণ ফাংশনটি ব্যবহার করুন।
Sobol, Morris, এবং FAST হল SALib দ্বারা প্রদত্ত সংবেদনশীলতা বিশ্লেষণের কয়েকটি পদ্ধতি। প্রদত্ত অ্যাপ্লিকেশনের জন্য কোন পদ্ধতিটি সর্বোত্তম তা অনেকগুলি কারণ প্রভাবিত করে, যেমনটি আমরা পরে দেখব। আপাতত, মনে রাখবেন যে আপনি যে কৌশল ব্যবহার করেন না কেন আপনাকে শুধুমাত্র দুটি ফাংশন, নমুনা এবং বিশ্লেষণ ব্যবহার করতে হবে। কিভাবে SALib ব্যবহার করতে হয় তা ব্যাখ্যা করার জন্য আমরা আপনাকে একটি মৌলিক উদাহরণের মাধ্যমে গাইড করব।
সালিব উদাহরণ - সোবোল' সংবেদনশীলতা বিশ্লেষণ
এই উদাহরণে, আমরা ইশিগামি ফাংশনের সোবোলের সংবেদনশীলতা পরীক্ষা করব, যেমনটি নীচে দেখানো হয়েছে। উচ্চ অরৈখিকতা এবং ননমোনোটোনিসিটির কারণে, ইশিগামি ফাংশনটি অনিশ্চয়তা এবং সংবেদনশীলতা বিশ্লেষণ পদ্ধতিগুলি মূল্যায়ন করতে ব্যাপকভাবে ব্যবহৃত হয়।
পদক্ষেপগুলি নিম্নরূপ হয়:
1. সালিব আমদানি করা
প্রথম ধাপ হল প্রয়োজনীয় লাইব্রেরি যোগ করা। SALib এর নমুনা এবং বিশ্লেষণ ফাংশনগুলি পাইথন মডিউলগুলিতে আলাদা রাখা হয়। স্যাটেলাইট নমুনা আমদানি করা এবং সোবোল বিশ্লেষণ ফাংশন, উদাহরণস্বরূপ, নীচে দেখানো হয়েছে।
আমরা ইশিগামি ফাংশনও ব্যবহার করি, যা SALib-এ একটি পরীক্ষা ফাংশন হিসাবে উপলব্ধ। অবশেষে, আমরা NumPy আমদানি করি কারণ SALib এটিকে একটি ম্যাট্রিক্সে মডেল ইনপুট এবং আউটপুট সংরক্ষণ করতে ব্যবহার করে।
2. মডেল ইনপুট
মডেল ইনপুট তারপর সংজ্ঞায়িত করা আবশ্যক. ইশিগামি ফাংশন তিনটি ইনপুট গ্রহণ করে: x1, x2 এবং x3। SALib-এ, আমরা একটি ডিক্ট তৈরি করি যা ইনপুটের সংখ্যা, তাদের নাম এবং প্রতিটি ইনপুটের সীমা নির্দিষ্ট করে, যেমনটি নীচে দেখানো হয়েছে।
3. নমুনা এবং মডেল তৈরি করুন
তারপর নমুনা তৈরি করা হয়। আমরা একটি Sobol সংবেদনশীলতা বিশ্লেষণ করছি সল্টেলি স্যাম্পলার ব্যবহার করে নমুনা তৈরি করতে হবে। এই ক্ষেত্রে, প্যারাম মান হল একটি NumPy ম্যাট্রিক্স। আমরা প্যারাম values.shape চালিয়ে ম্যাট্রিক্স 8000 by 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 শতাংশে সেট করা হয়। আউটপুট করতে, সমস্ত সূচক, কনসোল=True-তে কীওয়ার্ড প্যারামিটার প্রিন্ট ব্যবহার করুন। বিকল্পভাবে, নীচের চিত্রিত হিসাবে, আমরা Si থেকে পৃথক মান মুদ্রণ করতে পারি।
আমরা দেখতে পাচ্ছি যে x1 এবং x2-এর প্রথম-ক্রম সংবেদনশীলতা রয়েছে, কিন্তু x3-এর কোনো প্রথম-ক্রমের প্রভাব আছে বলে মনে হয় না।
যদি মোট-অর্ডার সূচকগুলি প্রথম-অর্ডার সূচকগুলির তুলনায় উল্লেখযোগ্যভাবে বড় হয়, তবে উচ্চ-অর্ডার মিথস্ক্রিয়া অবশ্যই ঘটছে। আমরা দ্বিতীয়-ক্রম সূচকগুলি দেখে এই উচ্চ-ক্রমের মিথস্ক্রিয়াগুলি দেখতে পারি:
আমরা লক্ষ্য করতে পারি যে x1 এবং x3 উল্লেখযোগ্য মিথস্ক্রিয়া আছে। এর পরে, ফলাফলটি আরও অধ্যয়নের জন্য একটি পান্ডাস ডেটাফ্রেমে রূপান্তরিত হতে পারে।
5. চক্রান্ত
আপনার সুবিধার জন্য, মৌলিক চার্টিং সুবিধা প্রদান করা হয়. প্লট() ফাংশন পরবর্তী ম্যানিপুলেশনের জন্য ম্যাটপ্লটলিব অক্ষ বস্তু তৈরি করে।
উপসংহার
SALib হল একটি পরিশীলিত সংবেদনশীলতা বিশ্লেষণ টুলকিট। SALib-এর অন্যান্য কৌশলগুলির মধ্যে রয়েছে ফুরিয়ার অ্যামপ্লিটিউড সেনসিটিভিটি টেস্ট (FAST), মরিস মেথড, এবং ডেল্টা-মোমেন্ট স্বাধীন পরিমাপ। যদিও এটি একটি পাইথন লাইব্রেরি, এটি যেকোন ধরনের মডেলের সাথে কাজ করার উদ্দেশ্যে করা হয়েছে।
SALib মডেল ইনপুট তৈরি এবং মডেল আউটপুট মূল্যায়নের জন্য একটি সহজে ব্যবহারযোগ্য কমান্ড-লাইন ইন্টারফেস অফার করে। চেক আউট সালিব ডকুমেন্টেশন আরও জানতে.
নির্দেশিকা সমন্ধে মতামত দিন