
10 تک لاینر پایتون برای محاسبه اهمیت ویژگی مدل
تصویر توسط ناشر
آشنایی با مدل های یادگیری ماشینی یک جنبه ضروری برای ایجاد سیستم های هوش مصنوعی قابل اعتماد است. قابل درک بودن چنین مدلهایی به دو ویژگی اساسی بستگی دارد: توضیح پذیری و تفسیر پذیری. اولی به این موضوع اشاره دارد که چقدر میتوانیم «جرات» یک مدل را توصیف کنیم (یعنی چگونه کار میکند و چگونه به نظر میرسد)، در حالی که دومی به این موضوع مربوط میشود که چگونه انسانها به راحتی میتوانند روابط ثبت شده بین ویژگیهای ورودی و خروجیهای پیشبینیشده را درک کنند. همانطور که می بینیم، تفاوت بین آنها ظریف است، اما یک پل قدرتمند وجود دارد که این دو را به هم متصل می کند: اهمیت ویژگی ها.
این مقاله 10 تک لاینر ساده اما مؤثر پایتون را برای محاسبه اهمیت ویژگیهای مدل از زوایای مختلف نشان میدهد – به شما کمک میکند نه تنها نحوه رفتار مدل یادگیری ماشین خود، بلکه همچنین چرایی پیشبینی (های) آن را درک کنید.
1. اهمیت ویژگی های ساخته شده در مدل های مبتنی بر درخت تصمیم
مدل های مبتنی بر درخت مانند جنگل های تصادفی و XGBoost مجموعهها به شما امکان میدهند با استفاده از ویژگیهایی مانند:
اهمیت = model.feature_importances_
مهم است = مدل.ویژگی_اهمیت_ |
توجه داشته باشید که model باید شامل یک مدل آموزش قبلی باشد. نتیجه یک جدول حاوی اهمیت ویژگی است، اما اگر میخواهید نسخه واضحتری داشته باشید، این کد با ترکیب نام ویژگیها برای مجموعه دادهای مانند عنبیه، همه در یک خط، بر روی خط قبلی بهبود مییابد.
print(“اهمیت های ویژگی:”، لیست(zip(iris.feature_names, model.feature_importances_)))
چاپ کنید(“اهمیت ویژگی:”، فهرست(زیپ(عنبیه.ویژگی_نام ها، مدل.ویژگی_اهمیت_))) |
2. ضرایب در مدل های خطی
مدلهای خطی سادهتر مانند رگرسیون خطی و رگرسیون لجستیک نیز وزن ویژگیها را از طریق ضرایب آموخته شده نشان میدهند. این راهی است که اولین آنها را مستقیماً و تمیز به دست آورید (شاخص موقعیت را برای بدست آوردن همه وزن ها بردارید):
اهمیت = abs(model.coef_[0])
مهم است = عضلات شکم(مدل.coef_[0]) |
3. مرتب سازی ویژگی ها بر اساس اهمیت
مشابه نسخه بهبودیافته شماره 1 در بالا، از این یک خط مفید میتوان برای رتبهبندی ویژگیها بر اساس مقادیر اهمیت آنها به ترتیب نزولی استفاده کرد: یک نمای کلی از این که کدام ویژگی بیشترین یا بیشترین تأثیر را در پیشبینیهای مدل دارد.
sorted_features = مرتب شده (zip (ویژگی ها، اهمیت ها)، کلید = lambda x: x[1]معکوس = درست)
sorted_features = مرتب شده است(زیپ(ویژگی ها، مهم است)، کلید=لامبدا x: x[1]، معکوس=درست است) |
4. اهمیت جایگشت مستقل از مدل
اهمیت جایگشت یک رویکرد اضافی برای اندازهگیری اهمیت یک ویژگی است، از جمله به هم زدن مقادیر آن و تجزیه و تحلیل اینکه چگونه یک معیار مورد استفاده برای اندازهگیری عملکرد مدل (به عنوان مثال، دقت یا خطا) کاهش مییابد. در نتیجه، این یک لاینر مستقل از مدل scikit-یادگیری برای اندازه گیری افت عملکرد ناشی از مخلوط کردن تصادفی مقادیر یک ویژگی استفاده می شود.
از sklearn.inspection import permutation_importance result = permutation_importance(model, X, y).importances_mean
از آنجایی که یاد بگیرند.بازرسی واردات جایگشت_اهمیت نتیجه = جایگشت_اهمیت(مدل، X، بله).اهمیت_معنی |
5. میانگین از دست دادن دقت در جایگشت های اعتبار سنجی متقاطع
این یک راه حل ساده و مؤثر برای آزمایش جایگشت ها در زمینه فرآیندهای اعتبارسنجی متقابل است که تأثیر مخلوط کردن هر ویژگی را بر عملکرد مدل تجزیه و تحلیل می کند. ک چین خورده است.
وارد کردن numpy به عنوان np از sklearn.model_selection اهمیت واردات cross_val_score = [(cross_val_score(model, X.assign(**{f: np.random.permutation(X[f])})، y).mean()) برای f در X.columns]
واردات ناتوان به عنوان n.p. از آنجایی که یاد بگیرند.model_selection واردات cross_val_score مهم است = [(cross_val_score(model, X.assign(**{f: np.random.permutation(X[f])})، بله).معنی()) برای f در X.ستون ها] |
6. تجسم اهمیت جایگشت با Eli5
الی 5 – یک شکل کوتاه از “توضیح دهید مثل من 5 هستم” – در زمینه یادگیری ماشین پایتون، کتابخانه ای برای توضیح واضح است. این یک نمای HTML تعاملی سبک از اهمیت ویژگی ها را ارائه می دهد، که آن را به ویژه برای لپ تاپ ها راحت می کند و برای هر دو مدل خطی یا درختی آموزش دیده مناسب است.
واردات eli5 eli5.show_weights (مدل، ویژگی_نام ها=ویژگی ها)
واردات eli5 eli5.نمایش_وزن ها(مدل، ویژگی_نام ها=ویژگی ها) |
7. اهمیت جهانی ویژگی های SHAP
شکل یک کتابخانه محبوب و قدرتمند برای توضیح بیشتر اهمیت ویژگی های مدل است. میتوان از آن برای محاسبه میانگین مقادیر مطلق SHAP (شاخصهای اهمیت ویژگی در SHAP) برای هر ویژگی، همه در یک رویکرد اندازهگیری مستقل از مدل و نظریه محور استفاده کرد.
وارد کردن numpy به عنوان np import shap shap_values = shap.TreeExplainer(model).shap_values(X) importants = np.abs(shap_values).mean(0)
واردات ناتوان به عنوان n.p. واردات شکل shape_values = شکل.TreeExplainer(مدل).shape_values(X) مهم است = n.p..عضلات شکم(shape_values).معنی(0) |
8. نمودار خلاصه مقادیر SHAP
برخلاف اهمیت کلی ویژگیهای SHAP، نمودار خلاصه نه تنها اهمیت کلی ویژگیها را در یک مدل، بلکه جهتهای آنها را نیز ارائه میکند، و از نظر بصری به درک اینکه چگونه مقادیر ویژگیها پیشبینیها را بالا یا پایین میبرند، کمک میکند.
shap.summary_plot(shap_values,
شکل.خلاصه_طرح(shape_values، X) |
بیایید به یک مثال تصویری از نتیجه به دست آمده نگاه کنیم:

9. توضیحات تک پیش بینی با SHAP
یکی از جنبههای جالب SHAP این است که نه تنها به توضیح رفتار کلی مدل و اهمیت ویژگی کمک میکند، بلکه به توضیح اینکه چگونه ویژگیها به طور خاص بر یک پیشبینی واحد تأثیر میگذارند نیز کمک میکند. به عبارت دیگر، میتوانیم یک پیشبینی فردی را آشکار یا تجزیه کنیم و توضیح دهیم که چگونه و چرا مدل آن نتیجه خاص را ایجاد کرده است.
shap.force_plot(shap.TreeExplainer(model).value_expected, shap_values[0]X.iloc[0])
شکل.نیرو_طرح(شکل.TreeExplainer(مدل).مقدار_ انتظاری، shape_values[0]، X.iloc[0]) |
10. اهمیت ویژگی های مستقل از مدل با LIME
آهک یک کتابخانه جایگزین برای SHAP است که توضیحات جایگزین محلی را تولید می کند. به جای استفاده از یکی یا دیگری، این دو کتابخانه به خوبی یکدیگر را تکمیل میکنند و امکان برآورد بهتر اهمیت ویژگی را حول پیشبینیهای فردی فراهم میکنند. این مثال این کار را برای یک مدل رگرسیون لجستیک آموزش دیده قبلی انجام می دهد.
از import lime.lime_tabular LimeTabularExplainer exp = LimeTabularExplainer(X.values, feature_names=features).explain_instance(X.iloc[0]model.predict_proba)
از آنجایی که آهک.tabular_file واردات LimeTabularExplainer انقضا = LimeTabularExplainer(X.ارزش ها، ویژگی_نام ها=ویژگی ها).توضیح_نمونه(X.iloc[0]، مدل.predict_proba) |
نتیجه گیری
این مقاله 10 عبارت موثر پایتون را برای کمک به درک بهتر، توضیح و تفسیر مدلهای یادگیری ماشین با تمرکز بر اهمیت ویژگیها نشان داده است. درک اینکه چگونه مدل شما از داخل کار می کند، به لطف این ابزارها دیگر یک جعبه سیاه مرموز نیست.
