تصویر سازی خروجی از مدل یادگیری ماشینی

شکل ۱. تصویرسازی خروجی از مدل یادگیری ماشینی
شکل ۱. تصویرسازی خروجی از مدل یادگیری ماشینی
منتشر‌شده در: towardsdatascience به تاریخ ۱۳ ژوئن ۲۰۲۱
لینک منبع Visualizing Output Of Machine Learning Model

تفسیر یک مدل یادگیری ماشین کار دشواری است، زیرا ما واقعا نمی‌دانیم که این مدل در داخل آن جعبه سیاه چگونه کار می‌کند. تفسیر مورد نیاز است تا بتوانیم بهترین مدل را برای داده‌های خود انتخاب کرده و آن را تقویت کنیم. Shap یک کتابخانه پیتون منبع باز است که برای توضیح مدل‌ها استفاده می‌شود. می‌تواند انواع متعددی از تجسم‌ها را ایجاد کند که به تفسیر مدل و توضیح نحوه کار مدل کمک می‌کند.

در این مقاله، انواع مختلف تصویرسازی مدل یادگیری ماشینی را خواهیم دید که می‌تواند با استفاده از Shap ایجاد شود.

بیایید شروع کنیم …

نصب کتابخانه‌های مورد نیاز

ما با نصب Shap با استفاده از pip شروع می‌کنیم. فرمانی که در زیر داده شده‌است این کار را خواهد کرد.

pip install shap

وارد کردن کتابخانه‌های مورد نیاز

در این مرحله، ما کتابخانه‌های مورد نیاز برای بارگذاری داده‌ها، ایجاد یک مدل، و ایجاد تجسم‌های آن مدل را وارد می‌کنیم.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import shap
from sklearn.model_selection import train_test_split
import xgboost as xgb

ساخت مدل

در این مرحله، ما مدل یادگیری ماشینی را ایجاد خواهیم کرد. برای این مقاله، من در حال ایجاد یک مدل XGBoost هستم، اما شما می‌توانید هر مدلی از انتخاب خود را انتخاب کنید. مجموعه داده‌هایی که ما برای این مدل استفاده خواهیم کرد مجموعه داده معروف دیابت است که می‌تواند از کاگل دانلود شود.

df = pd.read_csv('/content/Diabetes.csv')
features = ['Pregnancies', 'Glucose','BloodPressure','SkinThickness','Insulin','BMI','DiabetesPedigreeFunction','Age']
Y = df['Outcome']
X = df[features]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 1234)
xgb_model = xgb.XGBRegressor(random_state=42)
xgb_model.fit(X_train, Y_train)

ایجاد تصویر سازی

حالا ما یک توضیح برای شکل دادن ایجاد می‌کنیم و مقادیر شکل را برای مدل خود پیدا می‌کنیم و با استفاده از آن‌ها تجسم‌ها را ایجاد می‌کنیم.

explainer = shap.Explainer(xgb_model)
shap_values = explainer(X_test)

۱. نوار بار

shap.plots.bar(shap_values, max_display=10)

شکل ۲: نمودار بار مقادیر تکان
شکل ۲: نمودار بار مقادیر تکان

۲. نمودار Cohort

shap.plots.bar(shap_values.cohorts(2).abs.mean(0))

شکل ۳: مجموعه طرح Cohort
شکل ۳: مجموعه طرح Cohort

۳. نقشه حرارتی

shap.plots.heatmap(shap_values[1:100])

شکل ۴: نقشه حرارتی
شکل ۴: نقشه حرارتی

۴. نمودار آبشاری

shap.plots.waterfall(shap_values[0]) # For the first observation

شکل ۵: نمودار آبشاری
شکل ۵: نمودار آبشاری

۵. نموادر نیرو

برای این طرح، ما باید «js» را نیز آغاز کنیم.

shap.initjs()
explainer = shap.TreeExplainer(xgb_model)
shap_values = explainer.shap_values(X_test)
def p(j):
return(shap.force_plot(explainer.expected_value, shap_values[j,:], X_test.iloc[j,:]))
p(0)

شکل ۶: نمودار نیرو
شکل ۶: نمودار نیرو

۶. نمودار تصمیم

shap_values = explainer.shap_values(X_test)[1]
print("The expected value is ", expected_value)
print("The final prediction is ", xgb_model.predict(X_test)[1])
shap.decision_plot(expected_value, shap_values, X_test)

شکل ۷: نمودار تصمیم
شکل ۷: نمودار تصمیم

این روشی است که شما می‌توانید از Shap برای ایجاد تجسم‌های مرتبط با مدل‌های یادگیری ماشین و آنالیز آن‌ها استفاده کنید. پیش بروید و این را با مجموعه داده‌های مختلف و مدل‌های یادگیری ماشین امتحان کنید و اجازه دهید نظر شما را در بخش پاسخ بدانم.

این مقاله در هم‌کاری با پیوش اینگل است.

از خواندن متشکرم!

این متن با استفاده از ربات ترجمه مقاله دیتاساینس ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.
مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.