特征重要性和 SHAP
模型最依赖哪些因素
特征重要性和 SHAP 是 CoddyKit 上的免费 Data Science Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Data Science Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Data Science Academy 课程共包含 4 节课。
哪些特征发挥了作用?
模型训练完成后,您会想知道哪些输入推动了它的预测。这个排序称为特征重要性。🔍
树模型内置的重要性
树模型会提供一个快速的 feature_importances_ 数组。数值越高,表示该特征越常被用于划分数据。
importances = model.feature_importances_与特征名称配对
重要性数组只是一些数字,因此请将它与列名称压缩配对,以便看出每个分数对应哪个特征。
import pandas as pd
fi = pd.Series(model.feature_importances_, index=X.columns)排序以查看主要驱动因素
对重要性 Series 进行排序,可以找出模型中承载大部分信号的少数特征。
fi.sort_values(ascending=False).head()树模型的注意事项
树模型内置的分数可能偏向取值种类多的列。它们反映的是使用情况,不一定能体现对预测的真实影响。
置换重要性
一种更公平且与模型无关的方法是置换重要性:打乱一列数据,然后衡量分数下降了多少。
from sklearn.inspection import permutation_importance
r = permutation_importance(model, X_test, y_test)认识 SHAP
如果要了解每次预测的细节,可以使用 SHAP 值,它会公平地将每个预测分配给促成该预测的各个特征。
SHAP 源于博弈论
SHAP 借鉴了博弈论:每个特征都是一名参与者,而它的值就是该特征为某一次特定预测赢得的贡献。
计算 SHAP 值
您需要为拟合好的模型构建一个 explainer,然后让它为您关注的各行计算 SHAP 值。
import shap
explainer = shap.Explainer(model)
values = explainer(X_test)从局部得到全局
对所有行的 SHAP 值取绝对值后求平均,就能得到可信的全局重要性排序,而它是由局部解释构建的。
shap.plots.bar(values)解释一次预测
SHAP 还可以说明某一行为什么得到这样的分数,列出哪些特征推高了预测结果,哪些特征拉低了预测结果。
shap.plots.waterfall(values[0])快速检查
哪种方法能提供公平且与模型无关的重要性分数?
回顾
您使用了树模型、置换和 SHAP 方法对特征进行排序,从快速评分逐步深入到公平的逐次预测贡献。接下来,了解一个特征如何改变输出。🎯
常见问题解答
「特征重要性和 SHAP」课时是免费的吗?
是的 — 「特征重要性和 SHAP」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Data Science Academy 课程的其余内容,请升级到 CoddyKit PRO。 Data Science Academy 课程共包含 4 节课。
「特征重要性和 SHAP」这节课中我会学到什么?
模型最依赖哪些因素 你通过在浏览器中直接运行的动手代码来练习 Data Science Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Data Science Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Data Science Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「特征重要性和 SHAP」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Data Science Academy 课中编写并运行代码吗?
能。每节 Data Science Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 特征重要性和 SHAP
- 部分依赖的直观理解
- 能够说服利益相关者的图表
- 从笔记本到仪表板