হোয়াট-ইফ টুল সহ ক্লাউড এআই প্ল্যাটফর্মে স্থাপন করা একটি আর্থিক এমএল মডেল বিশ্লেষণ করা

1. ওভারভিউ

এই ল্যাবে, আপনি আর্থিক ডেটার উপর প্রশিক্ষিত এবং ক্লাউড AI প্ল্যাটফর্মে স্থাপন করা একটি XGBoost মডেল বিশ্লেষণ করতে What-if টুল ব্যবহার করবেন।

আপনি কি শিখুন

আপনি কিভাবে শিখবেন:

  • AI প্ল্যাটফর্ম নোটবুকের একটি পাবলিক মর্টগেজ ডেটাসেটে একটি XGBoost মডেলকে প্রশিক্ষণ দিন
  • AI প্ল্যাটফর্মে XGBoost মডেলটি স্থাপন করুন
  • What-if টুল ব্যবহার করে মডেলটি বিশ্লেষণ করুন

Google ক্লাউডে এই ল্যাবটি চালানোর জন্য মোট খরচ প্রায় $1

2. একটি দ্রুত XGBoost প্রাইমার

XGBoost হল একটি মেশিন লার্নিং ফ্রেমওয়ার্ক যা ভবিষ্যদ্বাণীমূলক মডেল তৈরি করতে ডিসিশন ট্রি এবং গ্রেডিয়েন্ট বুস্টিং ব্যবহার করে। এটি একটি গাছের বিভিন্ন লিফ নোডের সাথে সম্পর্কিত স্কোরের উপর ভিত্তি করে একাধিক সিদ্ধান্ত গাছকে একত্রিত করে কাজ করে।

নীচের চিত্রটি একটি সাধারণ সিদ্ধান্ত গাছের মডেলের একটি ভিজ্যুয়ালাইজেশন যা আবহাওয়ার পূর্বাভাসের উপর ভিত্তি করে একটি স্পোর্টস গেম খেলা উচিত কিনা তা মূল্যায়ন করে:

308a0bfc70733abf.png

কেন আমরা এই মডেলের জন্য XGBoost ব্যবহার করছি? যদিও প্রথাগত নিউরাল নেটওয়ার্কগুলিকে চিত্র এবং পাঠ্যের মতো অসংগঠিত ডেটাতে সর্বোত্তম কার্য সম্পাদন করতে দেখানো হয়েছে, সিদ্ধান্ত গাছগুলি প্রায়শই এই কোডল্যাবে আমরা যে মর্টগেজ ডেটাসেট ব্যবহার করব তার মতো কাঠামোগত ডেটাতে অত্যন্ত ভাল কার্য সম্পাদন করে।

3. আপনার পরিবেশ সেটআপ করুন

এই কোডল্যাব চালানোর জন্য আপনার একটি Google ক্লাউড প্ল্যাটফর্ম প্রকল্পের প্রয়োজন হবে যাতে বিলিং সক্ষম থাকে৷ একটি প্রকল্প তৈরি করতে, এখানে নির্দেশাবলী অনুসরণ করুন।

ধাপ 1: ক্লাউড এআই প্ল্যাটফর্ম মডেল এপিআই সক্ষম করুন

আপনার ক্লাউড কনসোলের AI প্ল্যাটফর্ম মডেল বিভাগে নেভিগেট করুন এবং সক্ষম করুন ক্লিক করুন যদি এটি ইতিমধ্যে সক্ষম না থাকে।

d0d38662851c6af3.png

ধাপ 2: Compute Engine API সক্ষম করুন

কম্পিউট ইঞ্জিনে নেভিগেট করুন এবং সক্ষম নির্বাচন করুন যদি এটি ইতিমধ্যে সক্ষম না থাকে। আপনার নোটবুক উদাহরণ তৈরি করতে আপনার এটির প্রয়োজন হবে৷

ধাপ 3: একটি AI প্ল্যাটফর্ম নোটবুক উদাহরণ তৈরি করুন

আপনার ক্লাউড কনসোলের AI প্ল্যাটফর্ম নোটবুক বিভাগে নেভিগেট করুন এবং New Instance-এ ক্লিক করুন। তারপর GPU ছাড়া সর্বশেষ TF Enterprise 2.x ইন্সট্যান্স টাইপ নির্বাচন করুন:

7d16190440ab2e9c.png

ডিফল্ট বিকল্পগুলি ব্যবহার করুন এবং তারপরে তৈরি করুন ক্লিক করুন। একবার উদাহরণ তৈরি হয়ে গেলে, JupyterLab খুলুন নির্বাচন করুন:

772f8868d3841ba0.png

ধাপ 4: XGBoost ইনস্টল করুন

একবার আপনার JupyterLab ইনস্ট্যান্স খুলে গেলে, আপনাকে XGBoost প্যাকেজ যোগ করতে হবে।

এটি করতে, লঞ্চার থেকে টার্মিনাল নির্বাচন করুন:

28dcf2790ce77c96.png

তারপরে ক্লাউড এআই প্ল্যাটফর্ম দ্বারা সমর্থিত XGBoost এর সর্বশেষ সংস্করণ ইনস্টল করতে নিম্নলিখিতটি চালান:

pip3 install xgboost==0.90

এটি সম্পূর্ণ হওয়ার পরে, লঞ্চার থেকে একটি পাইথন 3 নোটবুক ইনস্ট্যান্স খুলুন। আপনি আপনার নোটবুকে শুরু করার জন্য প্রস্তুত!

ধাপ 5: পাইথন প্যাকেজ আমদানি করুন

আপনার নোটবুকের প্রথম ঘরে, নিম্নলিখিত আমদানি যোগ করুন এবং সেলটি চালান। আপনি উপরের মেনুতে ডান তীর বোতাম টিপে বা কমান্ড-এন্টার টিপে এটি চালাতে পারেন:

import pandas as pd
import xgboost as xgb
import numpy as np
import collections
import witwidget

from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.utils import shuffle
from witwidget.notebook.visualization import WitWidget, WitConfigBuilder

4. ডেটা ডাউনলোড এবং প্রক্রিয়া করুন

আমরা একটি XGBoost মডেল প্রশিক্ষণের জন্য ffiec.gov থেকে একটি বন্ধকী ডেটাসেট ব্যবহার করব৷ আমরা মূল ডেটাসেটে কিছু প্রিপ্রসেসিং করেছি এবং মডেলটি প্রশিক্ষণের জন্য আপনার ব্যবহার করার জন্য একটি ছোট সংস্করণ তৈরি করেছি। মডেলটি ভবিষ্যদ্বাণী করবে যে একটি নির্দিষ্ট বন্ধকী আবেদন অনুমোদিত হবে কি না

ধাপ 1: প্রি-প্রসেসড ডেটাসেট ডাউনলোড করুন

আমরা আপনার জন্য Google ক্লাউড স্টোরেজে ডেটাসেটের একটি সংস্করণ উপলব্ধ করেছি৷ আপনি আপনার Jupyter নোটবুকে নিম্নলিখিত gsutil কমান্ডটি চালিয়ে এটি ডাউনলোড করতে পারেন:

!gsutil cp 'gs://mortgage_dataset_files/mortgage-small.csv' .

ধাপ 2: পান্ডাদের সাথে ডেটাসেট পড়ুন

আমাদের পান্ডাস ডেটাফ্রেম তৈরি করার আগে আমরা প্রতিটি কলামের ডেটা টাইপের একটি ডিক্ট তৈরি করব যাতে পান্ডাস আমাদের ডেটাসেট সঠিকভাবে পড়তে পারে:

COLUMN_NAMES = collections.OrderedDict({
 'as_of_year': np.int16,
 'agency_code': 'category',
 'loan_type': 'category',
 'property_type': 'category',
 'loan_purpose': 'category',
 'occupancy': np.int8,
 'loan_amt_thousands': np.float64,
 'preapproval': 'category',
 'county_code': np.float64,
 'applicant_income_thousands': np.float64,
 'purchaser_type': 'category',
 'hoepa_status': 'category',
 'lien_status': 'category',
 'population': np.float64,
 'ffiec_median_fam_income': np.float64,
 'tract_to_msa_income_pct': np.float64,
 'num_owner_occupied_units': np.float64,
 'num_1_to_4_family_units': np.float64,
 'approved': np.int8
})

পরবর্তীতে আমরা একটি DataFrame তৈরি করব, এটিকে আমরা উপরে উল্লেখিত ডেটা প্রকারগুলি পাস করব। আসল ডেটাসেট নির্দিষ্ট উপায়ে অর্ডার করা হলে আমাদের ডেটা এলোমেলো করা গুরুত্বপূর্ণ। আমরা এটি করার জন্য shuffle নামে একটি sklearn ইউটিলিটি ব্যবহার করি, যা আমরা প্রথম ঘরে আমদানি করেছি:

data = pd.read_csv(
 'mortgage-small.csv',
 index_col=False,
 dtype=COLUMN_NAMES
)
data = data.dropna()
data = shuffle(data, random_state=2)
data.head()

data.head() পান্ডাসে আমাদের ডেটাসেটের প্রথম পাঁচটি সারি প্রিভিউ করতে দেয়। উপরের সেলটি চালানোর পরে আপনার এরকম কিছু দেখতে হবে:

29106b71103235a6.png

এই বৈশিষ্ট্যগুলি আমরা আমাদের মডেল প্রশিক্ষণের জন্য ব্যবহার করব৷ আপনি যদি শেষ পর্যন্ত স্ক্রোল করেন, আপনি শেষ কলামটি approved দেখতে পাবেন, যা আমরা ভবিষ্যদ্বাণী করছি। 1 এর মান নির্দেশ করে যে একটি নির্দিষ্ট আবেদন অনুমোদিত হয়েছিল এবং 0 নির্দেশ করে যে এটি অস্বীকার করা হয়েছিল।

ডেটাসেটে অনুমোদিত/অস্বীকৃত মানগুলির বিতরণ দেখতে এবং লেবেলগুলির একটি নমপি অ্যারে তৈরি করতে, নিম্নলিখিতগুলি চালান:

# Class labels - 0: denied, 1: approved
print(data['approved'].value_counts())

labels = data['approved'].values
data = data.drop(columns=['approved'])

ডেটাসেটের প্রায় 66% অনুমোদিত অ্যাপ্লিকেশন রয়েছে।

ধাপ 3: শ্রেণীগত মানগুলির জন্য ডামি কলাম তৈরি করা

এই ডেটাসেটে শ্রেণীবদ্ধ এবং সংখ্যাসূচক মানের মিশ্রণ রয়েছে, কিন্তু XGBoost-এর জন্য সমস্ত বৈশিষ্ট্য সংখ্যাসূচক হওয়া প্রয়োজন। এক-হট এনকোডিং ব্যবহার করে শ্রেণীগত মান উপস্থাপন করার পরিবর্তে, আমাদের XGBoost মডেলের জন্য আমরা Pandas get_dummies ফাংশনের সুবিধা নেব।

get_dummies একাধিক সম্ভাব্য মান সহ একটি কলাম নেয় এবং এটিকে শুধুমাত্র 0s এবং 1s সহ প্রতিটি কলামের একটি সিরিজে রূপান্তর করে। উদাহরণস্বরূপ, যদি আমাদের কাছে "নীল" এবং "লাল" এর সম্ভাব্য মান সহ একটি কলাম "রঙ" থাকে, তাহলে get_dummies এটিকে 2 টি কলামে রূপান্তরিত করবে যা "color_blue" এবং "color_red" নামক বুলিয়ান 0 এবং 1 মান সহ।

আমাদের শ্রেণীবদ্ধ বৈশিষ্ট্যগুলির জন্য ডামি কলাম তৈরি করতে, নিম্নলিখিত কোডটি চালান:

dummy_columns = list(data.dtypes[data.dtypes == 'category'].index)
data = pd.get_dummies(data, columns=dummy_columns)

data.head()

আপনি যখন এই সময় ডেটার পূর্বরূপ দেখবেন, তখন আপনি একক বৈশিষ্ট্য দেখতে পাবেন (যেমন নীচের চিত্রের purchaser_type ) একাধিক কলামে বিভক্ত:

83aacfaad626e538.png

ধাপ 4: ট্রেন এবং পরীক্ষা সেটে ডেটা বিভক্ত করা

মেশিন লার্নিং এর একটি গুরুত্বপূর্ণ ধারণা হল ট্রেন/টেস্ট স্প্লিট। আমরা আমাদের বেশিরভাগ ডেটা নেব এবং আমাদের মডেলকে প্রশিক্ষণ দেওয়ার জন্য এটি ব্যবহার করব, এবং আমরা আমাদের মডেলের ডেটার উপর পরীক্ষা করার জন্য বাকিগুলি আলাদা করে রাখব যা আগে কখনও দেখা যায়নি৷

আপনার নোটবুকে নিম্নলিখিত কোড যোগ করুন, যা আমাদের ডেটা বিভক্ত করতে স্কিট লার্ন ফাংশন train_test_split ব্যবহার করে:

x,y = data,labels
x_train,x_test,y_train,y_test = train_test_split(x,y)

এখন আপনি আপনার মডেল তৈরি এবং প্রশিক্ষণের জন্য প্রস্তুত!

5. একটি XGBoost মডেল তৈরি করুন, প্রশিক্ষণ দিন এবং মূল্যায়ন করুন

ধাপ 1: XGBoost মডেলটিকে সংজ্ঞায়িত করুন এবং প্রশিক্ষণ দিন

XGBoost এ একটি মডেল তৈরি করা সহজ। আমরা মডেল তৈরি করতে XGBClassifier ক্লাস ব্যবহার করব, এবং আমাদের নির্দিষ্ট শ্রেণীবিভাগের কাজের জন্য সঠিক objective প্যারামিটারটি পাস করতে হবে। এই ক্ষেত্রে আমরা reg:logistic ব্যবহার করি যেহেতু আমরা একটি বাইনারি শ্রেণীবিভাগের সমস্যা পেয়েছি এবং আমরা চাই মডেলটি একটি একক মান (0,1): 0 এর পরিসরে আউটপুট করুক যা অনুমোদিত নয় এবং 1 অনুমোদিত নয়।

নিম্নলিখিত কোড একটি XGBoost মডেল তৈরি করবে:

model = xgb.XGBClassifier(
    objective='reg:logistic'
)

আপনি fit() পদ্ধতিতে কল করে এবং প্রশিক্ষণের ডেটা এবং লেবেলগুলি পাস করে কোডের একটি লাইন দিয়ে মডেলটিকে প্রশিক্ষণ দিতে পারেন।

model.fit(x_train, y_train)

ধাপ 2: আপনার মডেলের নির্ভুলতা মূল্যায়ন করুন

আমরা এখন predict() ফাংশন দিয়ে আমাদের পরীক্ষার ডেটাতে ভবিষ্যদ্বাণী তৈরি করতে আমাদের প্রশিক্ষিত মডেল ব্যবহার করতে পারি।

তারপরে আমরা আমাদের পরীক্ষার ডেটার উপর ভিত্তি করে আমাদের মডেলের নির্ভুলতা গণনা করতে Scikit Learn এর accuracy_score ফাংশন ব্যবহার করব। আমরা আমাদের পরীক্ষার সেটে প্রতিটি উদাহরণের জন্য মডেলের পূর্বাভাসিত মানগুলির সাথে গ্রাউন্ড ট্রুথ মানগুলিকে পাস করব:

y_pred = model.predict(x_test)
acc = accuracy_score(y_test, y_pred.round())
print(acc, '\n')

আপনি 87% এর কাছাকাছি নির্ভুলতা দেখতে পাবেন, কিন্তু মেশিন লার্নিংয়ে সবসময় এলোমেলোতার একটি উপাদান থাকে বলে আপনার ক্ষেত্রে কিছুটা তারতম্য হবে।

ধাপ 3: আপনার মডেল সংরক্ষণ করুন

মডেল স্থাপন করার জন্য, একটি স্থানীয় ফাইলে সংরক্ষণ করতে নিম্নলিখিত কোডটি চালান:

model.save_model('model.bst')

6. ক্লাউড এআই প্ল্যাটফর্মে মডেল স্থাপন করুন

আমরা আমাদের মডেলটি স্থানীয়ভাবে কাজ করতে পেরেছি, তবে এটি ভাল হবে যদি আমরা যে কোনও জায়গা থেকে এটির উপর ভবিষ্যদ্বাণী করতে পারি (শুধু এই নোটবুক নয়!) এই ধাপে আমরা এটিকে ক্লাউডে স্থাপন করব।

ধাপ 1: আমাদের মডেলের জন্য একটি ক্লাউড স্টোরেজ বালতি তৈরি করুন

আসুন প্রথমে কিছু এনভায়রনমেন্ট ভেরিয়েবল সংজ্ঞায়িত করি যা আমরা কোডল্যাবের বাকি অংশ জুড়ে ব্যবহার করব। আপনার Google ক্লাউড প্রকল্পের নাম, আপনি যে ক্লাউড স্টোরেজ বাকেটটি তৈরি করতে চান তার নাম (বৈশ্বিকভাবে অনন্য হতে হবে) এবং আপনার মডেলের প্রথম সংস্করণের সংস্করণের নাম দিয়ে নীচের মানগুলি পূরণ করুন:

# Update these to your own GCP project, model, and version names
GCP_PROJECT = 'your-gcp-project'
MODEL_BUCKET = 'gs://storage_bucket_name'
VERSION_NAME = 'v1'
MODEL_NAME = 'xgb_mortgage'

এখন আমরা আমাদের XGBoost মডেল ফাইল সংরক্ষণ করার জন্য একটি স্টোরেজ বালতি তৈরি করতে প্রস্তুত। যখন আমরা স্থাপন করব তখন আমরা এই ফাইলটিতে ক্লাউড এআই প্ল্যাটফর্ম নির্দেশ করব।

একটি বালতি তৈরি করতে আপনার নোটবুকের মধ্যে থেকে এই gsutil কমান্ডটি চালান:

!gsutil mb $MODEL_BUCKET

ধাপ 2: মডেল ফাইলটি ক্লাউড স্টোরেজে কপি করুন

এর পরে, আমরা আমাদের XGBoost সংরক্ষিত মডেল ফাইলটি ক্লাউড স্টোরেজে কপি করব। নিম্নলিখিত gsutil কমান্ড চালান:

!gsutil cp ./model.bst $MODEL_BUCKET

ফাইলটি কপি করা হয়েছে তা নিশ্চিত করতে আপনার ক্লাউড কনসোলের স্টোরেজ ব্রাউজারে যান:

31e2567fa0117214.png

ধাপ 3: মডেল তৈরি করুন এবং স্থাপন করুন

আমরা মডেল স্থাপনের জন্য প্রায় প্রস্তুত! নিম্নলিখিত ai-platform gcloud কমান্ডটি আপনার প্রকল্পে একটি নতুন মডেল তৈরি করবে। আমরা একে বলব xgb_mortgage :

!gcloud ai-platform models create $MODEL_NAME --region='global'

এখন মডেল স্থাপনের সময়। আমরা এই gcloud কমান্ড দিয়ে এটি করতে পারি:

!gcloud ai-platform versions create $VERSION_NAME \
--model=$MODEL_NAME \
--framework='XGBOOST' \
--runtime-version=2.1 \
--origin=$MODEL_BUCKET \
--python-version=3.7 \
--project=$GCP_PROJECT \
--region='global'

এটি চলাকালীন, আপনার AI প্ল্যাটফর্ম কনসোলের মডেল বিভাগটি পরীক্ষা করুন। আপনি সেখানে আপনার নতুন সংস্করণ স্থাপন করা দেখতে হবে:

342875ba92becad1.png

ডিপ্লয় সফলভাবে সম্পন্ন হলে আপনি একটি সবুজ চেক চিহ্ন দেখতে পাবেন যেখানে লোডিং স্পিনার আছে। স্থাপনে 2-3 মিনিট সময় নিতে হবে।

ধাপ 4: স্থাপন করা মডেল পরীক্ষা করুন

আপনার নিয়োজিত মডেল কাজ করছে তা নিশ্চিত করতে, একটি ভবিষ্যদ্বাণী করতে gcloud ব্যবহার করে পরীক্ষা করুন। প্রথমে, আমাদের পরীক্ষা সেট থেকে প্রথম উদাহরণ সহ একটি JSON ফাইল সংরক্ষণ করুন:

%%writefile predictions.json
[2016.0, 1.0, 346.0, 27.0, 211.0, 4530.0, 86700.0, 132.13, 1289.0, 1408.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0]

এই কোডটি চালিয়ে আপনার মডেল পরীক্ষা করুন:

prediction = !gcloud ai-platform predict --model=xgb_mortgage --region='global' --json-instances=predictions.json --version=$VERSION_NAME --verbosity=none

print(prediction)

আপনার আউটপুটে আপনার মডেলের ভবিষ্যদ্বাণী দেখতে হবে। এই বিশেষ উদাহরণটি অনুমোদিত হয়েছে, তাই আপনি 1 এর কাছাকাছি একটি মান দেখতে পাবেন।

7. আপনার মডেল ব্যাখ্যা করতে What-if টুল ব্যবহার করুন

ধাপ 1: কি-ইফ টুল ভিজ্যুয়ালাইজেশন তৈরি করুন

আপনার AI প্ল্যাটফর্ম মডেলগুলির সাথে What-if টুলটিকে সংযুক্ত করতে, আপনাকে সেই উদাহরণগুলির জন্য গ্রাউন্ড ট্রুথ মান সহ আপনার পরীক্ষার উদাহরণগুলির একটি উপসেট পাস করতে হবে। আসুন তাদের গ্রাউন্ড ট্রুথ লেবেল সহ আমাদের 500 টি পরীক্ষার উদাহরণগুলির একটি Numpy অ্যারে তৈরি করি:

num_wit_examples = 500
test_examples = np.hstack((x_test[:num_wit_examples].values,y_test[:num_wit_examples].reshape(-1,1)))

হোয়াট-ইফ টুলটি চালু করা একটি WitConfigBuilder অবজেক্ট তৈরি করা এবং আমরা বিশ্লেষণ করতে চাই এমন AI প্ল্যাটফর্ম মডেলটি পাস করার মতোই সহজ।

আমরা এখানে ঐচ্ছিক adjust_prediction প্যারামিটার ব্যবহার করি কারণ What-if টুলটি আমাদের মডেলের প্রতিটি ক্লাসের জন্য স্কোরের একটি তালিকা আশা করে (এই ক্ষেত্রে 2)। যেহেতু আমাদের মডেল 0 থেকে 1 এর মধ্যে শুধুমাত্র একটি একক মান প্রদান করে, তাই আমরা এই ফাংশনে এটিকে সঠিক বিন্যাসে রূপান্তর করি:

def adjust_prediction(pred):
  return [1 - pred, pred]

config_builder = (WitConfigBuilder(test_examples.tolist(), data.columns.tolist() + ['mortgage_status'])
  .set_ai_platform_model(GCP_PROJECT, MODEL_NAME, VERSION_NAME, adjust_prediction=adjust_prediction)
  .set_target_feature('mortgage_status')
  .set_label_vocab(['denied', 'approved']))
WitWidget(config_builder, height=800)

মনে রাখবেন ভিজ্যুয়ালাইজেশন লোড হতে এক মিনিট সময় লাগবে। যখন এটি লোড হয়, আপনি নিম্নলিখিত দেখতে হবে:

4c0b00e6afcdbe01.png

y-অক্ষ আমাদেরকে মডেলের ভবিষ্যদ্বাণী দেখায়, 1 হল উচ্চ আত্মবিশ্বাসের approved ভবিষ্যদ্বাণী, এবং 0 হল একটি উচ্চ আত্মবিশ্বাস denied ভবিষ্যদ্বাণী৷ x-অক্ষ হল সমস্ত লোড করা ডেটা পয়েন্টের স্প্রেড।

ধাপ 2: পৃথক ডেটা পয়েন্ট অন্বেষণ করুন

What-if টুলের ডিফল্ট ভিউ হল ডেটাপয়েন্ট এডিটর ট্যাব। এখানে আপনি যেকোন পৃথক ডেটা পয়েন্টে ক্লিক করতে পারেন এর বৈশিষ্ট্যগুলি দেখতে, বৈশিষ্ট্যের মানগুলি পরিবর্তন করতে এবং সেই পরিবর্তনটি কীভাবে একটি পৃথক ডেটা পয়েন্টে মডেলের পূর্বাভাসকে প্রভাবিত করে তা দেখতে পারেন৷

নীচের উদাহরণে আমরা .5 থ্রেশহোল্ডের কাছাকাছি একটি ডেটা পয়েন্ট বেছে নিয়েছি। এই নির্দিষ্ট ডেটা পয়েন্টের সাথে যুক্ত বন্ধকী আবেদনটি CFPB থেকে উদ্ভূত হয়েছে। আমরা সেই বৈশিষ্ট্যটিকে 0 এ পরিবর্তন করেছি এবং agency_code_Department of Housing and Urban Development (HUD) এর মান 1 এ পরিবর্তন করেছি যদি এই ঋণের পরিবর্তে HUD থেকে উদ্ভূত হয় তাহলে মডেলের ভবিষ্যদ্বাণীর কী হবে:

717620d6a1330479.png

আমরা কী-ইফ টুলের নীচের বাম অংশে দেখতে পাচ্ছি, এই বৈশিষ্ট্যটি পরিবর্তন করার ফলে মডেলটির approved ভবিষ্যদ্বাণী উল্লেখযোগ্যভাবে 32% কমে গেছে। এটি নির্দেশ করতে পারে যে এজেন্সি থেকে ঋণের উৎপত্তি মডেলটির আউটপুটে একটি শক্তিশালী প্রভাব রয়েছে, কিন্তু নিশ্চিত হওয়ার জন্য আমাদের আরও বিশ্লেষণ করতে হবে।

UI-এর নীচের বাম অংশে, আমরা প্রতিটি ডেটা পয়েন্টের জন্য গ্রাউন্ড ট্রুথ মানও দেখতে পারি এবং মডেলের ভবিষ্যদ্বাণীর সাথে তুলনা করতে পারি:

60ff20ae80ed5e27.png

ধাপ 3: কাউন্টারফ্যাকচুয়াল বিশ্লেষণ

এরপর, যেকোনো ডেটাপয়েন্টে ক্লিক করুন এবং নিকটতম কাউন্টারফ্যাকচুয়াল ডেটাপয়েন্ট স্লাইডারটি ডানদিকে সরান:

ae64fd7abefe5449.png

এটি নির্বাচন করা আপনাকে ডেটা পয়েন্ট দেখাবে যেটির বৈশিষ্ট্য মানগুলি আপনার নির্বাচিত আসলটির সাথে সবচেয়ে বেশি মিল রয়েছে, কিন্তু বিপরীত পূর্বাভাস। তারপরে দুটি ডেটা পয়েন্টের পার্থক্য কোথায় তা দেখতে আপনি বৈশিষ্ট্যের মানগুলির মাধ্যমে স্ক্রোল করতে পারেন (পার্থক্যগুলি সবুজ এবং গাঢ় রঙে হাইলাইট করা হয়েছে)।

ধাপ 4: আংশিক নির্ভরতা প্লট দেখুন

প্রতিটি বৈশিষ্ট্য সামগ্রিকভাবে মডেলের ভবিষ্যদ্বাণীগুলিকে কীভাবে প্রভাবিত করে তা দেখতে, আংশিক নির্ভরতা প্লট বাক্সটি চেক করুন এবং নিশ্চিত করুন যে বিশ্বব্যাপী আংশিক নির্ভরতা প্লট নির্বাচন করা হয়েছে:

72117b5ceb683841.png

এখানে আমরা দেখতে পাচ্ছি যে HUD থেকে উদ্ভূত ঋণগুলি অস্বীকার করার সম্ভাবনা কিছুটা বেশি। গ্রাফটি এই আকৃতি কারণ এজেন্সি কোড একটি বুলিয়ান বৈশিষ্ট্য, তাই মান শুধুমাত্র 0 বা 1 হতে পারে।

applicant_income_thousands একটি সংখ্যাগত বৈশিষ্ট্য, এবং আংশিক নির্ভরতার প্লটে আমরা দেখতে পাচ্ছি যে উচ্চতর আয় একটি আবেদন অনুমোদিত হওয়ার সম্ভাবনাকে কিছুটা বাড়িয়ে দেয়, কিন্তু শুধুমাত্র প্রায় $200k পর্যন্ত। $200k পরে, এই বৈশিষ্ট্যটি মডেলের পূর্বাভাসকে প্রভাবিত করে না।

ধাপ 5: সামগ্রিক কর্মক্ষমতা এবং ন্যায্যতা অন্বেষণ করুন

এরপরে, পারফরমেন্স এবং ফেয়ারনেস ট্যাবে যান। এটি প্রদত্ত ডেটাসেটে মডেলের ফলাফলের সামগ্রিক কর্মক্ষমতা পরিসংখ্যান দেখায়, যার মধ্যে কনফিউশন ম্যাট্রিক্স, পিআর কার্ভ এবং ROC বক্ররেখা রয়েছে।

একটি বিভ্রান্তি ম্যাট্রিক্স দেখতে গ্রাউন্ড ট্রুথ বৈশিষ্ট্য হিসাবে mortgage_status নির্বাচন করুন:

fe1384ee47699498.png

এই বিভ্রান্তি ম্যাট্রিক্স মোটের শতাংশ হিসাবে আমাদের মডেলের সঠিক এবং ভুল ভবিষ্যদ্বাণী দেখায়। আপনি যদি প্রকৃত হ্যাঁ / পূর্বাভাসিত হ্যাঁ এবং প্রকৃত না / পূর্বাভাসিত কোন স্কোয়ার যোগ করেন তবে এটি আপনার মডেলের মতো একই নির্ভুলতা যোগ করবে (প্রায় 87%)।

এছাড়াও আপনি থ্রেশহোল্ড স্লাইডারের সাথে পরীক্ষা করতে পারেন, ঋণের জন্য approved ভবিষ্যদ্বাণী করার সিদ্ধান্ত নেওয়ার আগে মডেলটিকে ইতিবাচক শ্রেণিবিন্যাসের স্কোর বাড়াতে এবং কমাতে হবে এবং এটি কীভাবে সঠিকতা, মিথ্যা ইতিবাচক এবং মিথ্যা নেতিবাচক পরিবর্তন করে তা দেখুন। এই ক্ষেত্রে, নির্ভুলতা .55 -এর থ্রেশহোল্ডের কাছাকাছি সর্বোচ্চ।

এরপর, ড্রপডাউন দ্বারা বাম স্লাইসে , loan_purpose_Home_purchase নির্বাচন করুন:

f3f1858d627d57ab.png

আপনি এখন আপনার ডেটার দুটি উপসেটের কার্যকারিতা দেখতে পাবেন: "0" স্লাইসটি দেখায় কখন ঋণটি বাড়ি কেনার জন্য নয় এবং "1" স্লাইসটি যখন লোনটি একটি বাড়ি কেনার জন্য হয়। পারফরম্যান্সের পার্থক্যের জন্য দুটি স্লাইসের মধ্যে সঠিকতা, মিথ্যা পজিটিভ এবং মিথ্যা নেতিবাচক হার দেখুন।

আপনি যদি বিভ্রান্তির ম্যাট্রিক্সগুলি দেখার জন্য সারিগুলি প্রসারিত করেন তবে আপনি দেখতে পাবেন যে মডেলটি বাড়ি কেনার জন্য ~70% ঋণ আবেদনের জন্য "অনুমোদিত" এবং শুধুমাত্র 46% ঋণের জন্য ভবিষ্যদ্বাণী করে যা বাড়ি কেনার জন্য নয় (সঠিক শতাংশগুলি পরিবর্তিত হবে আপনার মডেল):

318a8d5a8ffc6bea.png

আপনি যদি বাম দিকের রেডিও বোতামগুলি থেকে জনসংখ্যাগত সমতা নির্বাচন করেন, তাহলে দুটি থ্রেশহোল্ড সামঞ্জস্য করা হবে যাতে মডেলটি উভয় স্লাইসে একই শতাংশ আবেদনকারীদের জন্য approved পূর্বাভাস দেয়। এটি প্রতিটি স্লাইসের জন্য সঠিকতা, মিথ্যা ইতিবাচক এবং মিথ্যা নেতিবাচককে কী করে?

ধাপ 6: বৈশিষ্ট্য বিতরণ অন্বেষণ করুন

অবশেষে, কী-ইফ টুলের বৈশিষ্ট্য ট্যাবে নেভিগেট করুন। এটি আপনাকে আপনার ডেটাসেটের প্রতিটি বৈশিষ্ট্যের জন্য মানগুলির বিতরণ দেখায়:

48ab3c4879793324.png

আপনার ডেটাসেট ভারসাম্যপূর্ণ কিনা তা নিশ্চিত করতে আপনি এই ট্যাবটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, দেখে মনে হচ্ছে ডেটাসেটে খুব কম লোন ফার্ম সার্ভিস এজেন্সি থেকে এসেছে। মডেলের নির্ভুলতা উন্নত করতে, ডেটা উপলব্ধ থাকলে আমরা সেই সংস্থা থেকে আরও ঋণ যোগ করার কথা বিবেচনা করতে পারি।

আমরা এখানে মাত্র কয়েকটি কী-ইফ টুল এক্সপ্লোরেশন ধারণা বর্ণনা করেছি। টুলের সাথে খেলা চালিয়ে যেতে নির্দ্বিধায়, অন্বেষণ করার জন্য আরও অনেক এলাকা আছে!

8. পরিষ্কার করা

আপনি যদি এই নোটবুকটি ব্যবহার চালিয়ে যেতে চান তবে এটি ব্যবহার না করার সময় এটি বন্ধ করার পরামর্শ দেওয়া হয়। আপনার ক্লাউড কনসোলের নোটবুক UI থেকে, নোটবুকটি নির্বাচন করুন এবং তারপরে থামুন নির্বাচন করুন:

879147427150b6c7.png

আপনি যদি এই ল্যাবে আপনার তৈরি করা সমস্ত সংস্থান মুছে ফেলতে চান তবে নোটবুকের উদাহরণটি বন্ধ করার পরিবর্তে কেবল মুছুন৷

আপনার ক্লাউড কনসোলে নেভিগেশন মেনু ব্যবহার করে, সঞ্চয়স্থানে ব্রাউজ করুন এবং আপনার মডেল সম্পদগুলি সঞ্চয় করার জন্য আপনার তৈরি করা উভয় বালতি মুছে দিন।