该技能聚焦 scikit-learn 模型的可解释性与可解释诊断,核心问题是模型为何做出某个预测,而不仅是预测结果本身。
用途:验证模型是否依赖物理上有意义的特征(如药物发现场景);发现模型学到的偏差或捷径特征;向非专家解释单条预测;对复杂系统变量影响做全局排序;支持科学审计与合规。
主要能力:区分模型特定(如随机森林 feature_importances_)与模型无关(SHAP、置换重要性)方法;区分全局解释与局部解释;区分特征重要性与特征贡献方向。内置工具示例: from sklearn.inspection import permutation_importance, PartialDependenceDisplay result = permutation_importance(model, X_test, y_test, n_repeats=10) PartialDependenceDisplay.from_estimator(model, X, features=['temp', 'pressure'])
使用要点:优先在测试集上用置换重要性,而非默认树重要性(后者偏向高基数特征如唯一 ID);用 PartialDependenceDisplay 观察特征与目标的函数关系;线性模型在比较系数前需先缩放特征;注意特征相关性会使重要性被分摊;SHAP 可配合任意 scikit-learn 模型,用 shap.Explainer(model.predict, X_test) 生成结果,再用 shap.plots.bar 看全局、shap.plots.waterfall 看单样本。
验证流程:先排查单个特征重要性异常偏高(可能是时间戳或 ID 造成的数据泄漏);用不同随机种子多次运行置换重要性做稳定性分析,若头部特征变化大则模型不可靠;用二维 PDP 检查特征交互(如压力仅在温度高于某阈值时才有影响)。
限制与注意:非正则化模型的系数方差大,不宜直接据此下结论;重要性与预测性不等于因果性;多重共线性会导致解释失真。具体安装、版本或额外命令资料未提供。