可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测

作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。模型我们将使用来自

各位老铁们,大家好,今天由我来为大家分享可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

# 加载有用的库import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.model_selection import cross_val_score`# 读取数据setdf=pd.read_csv(‘./data/diabetes.csv’)# 分离特征和目标变量X=df .drop(columns=’Outcome’)y=df[‘Outcome’]# 创建训练测试数据X_train, X_test, y_train, y_test=train_test_split(X, y,test_size=0.3, stratify=y, random_state=13)# Build模型rf_clf=RandomForestClassifier(max_features=2, n_estimators=100 ,bootstrap=True)# 对测试数据进行预测y_pred=rf_clf.predict(X_test)# 分类报告print(classification_report(y_pred, y_test))rf_clf.fit(X_train, y_train )

SHAP

SHapley Additive exPlanations 的缩写。该方法旨在通过计算每个特征对预测的贡献来解释实例/观察的预测。

# 导入SHAP库import shap# 将JS可视化代码加载到notebookshap.initjs()# 创建explainerexplainer=TreeExplainer(rf_clf)”’计算所有X_test的shap_values而不是单行,以便有更多数据用于绘图.’ ”shap_values=explainer.shap_values(X_test)print(‘变量重要性图-全局解释’)figure=plt.figure()shap.summary_plot(shap_values, X_test)SHAP有很多用于模型解释的可视化图表,但我们将突出显示其中的一些。

特征重要性汇总图

print(‘变量重要性图- 全局解释’)figure=plt.figure()shap.summary_plot(shap_values, X_test)

从上图我们可以得出以下结论:

它显示了从最重要到最不重要(从上到下)的重要功能列表。所有特征似乎对诊断为糖尿病(标签=1)或未诊断为糖尿病(标签=0)的两个类别的贡献相同,因为它们基本上都占据了矩形的50%。根据该模型,葡萄糖是对预测贡献最大的特征。年龄是第二大影响因素,怀孕是第五大预测因素。具体分类结果汇总图

# 摘要图深入研究标签1shap.summary_plot(shap_values[1], X_test)

对于分类问题,每个标签都有一个SHA 值。在我们的示例中,我们使用预测1(真)来显示此类别的结果摘要。该图的表示内容如下:

特征的重要性和排名与摘要图表中的相同。排名越高,重要性越高。图中的每个点代表单个数据实例的特征值。颜色指示该特征是具有高值(红色)还是低值(蓝色)。 X 轴表示对预测输出的正贡献或负贡献。当我们将这些分析应用于特征时,我们得到以下结论:

对于葡萄糖:我们看到大多数高值(红点)对预测输出有正向贡献(x 轴为正)。换句话说,如果单个数据实例的葡萄糖含量较高,则其获得1 结果(诊断为糖尿病)的几率会大大增加,而含量较低(蓝点)的几率较低(负x 轴值) )被诊断患有糖尿病的结果。糖尿病的可能性。

对于年龄:对年龄执行相同的分析。年龄越高,数据实例(患者)最有可能被诊断为糖尿病。

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测

另一方面,当涉及未成年人时,该模型似乎很混乱,因为我们可以在垂直线(X 轴=0)的每一侧观察到几乎相同数量的数据点。由于年龄特征似乎使分析变得混乱,我们可以使用下面的相关图来获取更细粒度的信息。

相关图(依赖图)

# 年龄特征依赖图hap.dependence_plot(‘Age’, shap_values[1], X_test, Interaction_index=’Age’)

从相关图中我们可以清楚地看到,30岁以下的患者被诊断为糖尿病的风险较低,而30岁以上的患者被诊断为糖尿病的风险较高。

LIME

Local Interpretable Model Agnostic Explanation 的缩写。本地意味着它可以用来解释机器学习模型的单独预测。

使用起来也非常简单,只需要2 个步骤:(1) 导入模块,(2) 使用训练值、特征和目标来拟合解释器。

# 导入LimeTabularExplainer 模块from Lime.lime_tabular import LimeTabularExplainer# 获取类名class_names=[‘Has wedding’, ‘No Diabetes’]# 获取特征名称feature_names=list(X_train.columns)# 使用训练数据集拟合解释器LimeTabularExplainerterpreter=LimeTabularExplainer(X_train.values, feature_names=feature_names, class_names=class_names, mode=’classification’) 在代码中,我们使用class_names 创建两个标签而不是1 和0,因为使用名称会更直观。

解释一下单例

这里的解释是针对测试数据中的单个实例

#对测试数据中的第8个实例进行解释explainer.explain_instance(X_test.iloc[8], rf_clf.predict_proba)#显示模型的解释结果explaination.show_in_notebook(show_table=True, show_all=False)

用户评论

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
北朽暖栀

这篇博客介绍得真好!我一直对可解释性高的 AI 模型很感兴趣,现在终于有方法来理解模型是怎么做出决策的了。LIME 和 SHAP 听起来都很有用,要学习一下怎么用它们来解释我的机器学习模型。

    有8位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
孤独症

我以前也想过如何让 AI 的决策更透明,确实有时候很难知道黑盒模型到底在想什么!这篇文章很好的介绍了两种方法,看来下次可以试试 LIME 和 SHAP 来分析我的模型了。

    有8位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
|赤;焰﹏゛

终于有人讲解的可解释 AI 让人懂得了!我一直觉得模型预测的结果无法解读很蛋疼,现在有了 LIME 和 SHAP ,我就能知道哪些特征对最终结果影响最大啦!

    有17位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
来瓶年的冰泉

这篇文章很有帮助,特别是在实际应用中如何利用 XAI 进行改进方面。虽然 LIME 和 SHAP 比较复杂,但我相信只要深入理解它们的原理,就能更好的指导模型调整和优化。

    有7位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
信仰

可解释的 AI 很重要啊,这样才能更好地信任机器学习的结果!这篇博客把 LIME 和 SHAP 的方法介绍的很透彻,但是感觉还是需要实践才能真正掌握。

    有19位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
迷路的男人

我以前不太关注 XAI,现在看来确实很有必要了。这篇文章让我对 LIME 和 SHAP 有了一些了解,也让我看到在实际应用中,可解释的 AI 能为我们带来哪些价值。

    有11位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
金橙橙。-

这篇博客写的太容易理解了! 就算没有机器学习基础也能看懂 LIME 和 SHAP 的原理。现在终于明白怎么用这些方法来探索模型的黑盒机制啦!

    有12位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
纯情小火鸡

LIME 和 SHAP 听起来确实很酷,但实际操作过程似乎还是蛮复杂的啊。需要多花时间去学习和实践才能真正掌握这些工具。希望以后会有更多关于 XAI 的文章讲解。

    有12位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
月下独酌

可解释 AI 是未来发展的趋势嘛!这篇文章把 LIME 和 SHAP 介绍的非常详细,对于想深入了解 XAI 的人来说是个很好的入门指南。

    有19位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
涐们的幸福像流星丶

学习一下LIME和SHAP,可以让模型更加预测更准确吧?看来要多学习一些关于可解释 AI 的知识了!

    有20位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
半世晨晓。

感觉 LIME 和 SHAP 都是比较理论性的方法,在实际应用中是否真的能有效地解释模型的预测结果还是需要验证。希望后续会有更多案例分析来支撑这些方法的实用价值。

    有20位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
太难

我觉得可解释 AI 更像是一种辅助工具吧,不能完全替代人类的判断能力。而且 LIME 和 SHAP 也只是解释模型局部决策的一种方式,对于全局预测的解释或许还存在局限性。

    有10位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
玻璃渣子

这篇文章给我启发很大!原来除了单纯追求模型精度以外,可解释性和透明度也是非常重要的指标,尤其是在一些需要高度信任度的领域,比如医疗诊断、金融风险评估等等,XAI 甚至能起到至关重要的作用!

    有9位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
命运不堪浮华

学习 LIME 和 SHAP ,能够将我们对机器学习的理解从“黑盒”迈向“透明”! 这真的很令人兴奋啊!

    有15位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
丢了爱情i

可解释的 AI 真是一门值得学习的技术,它能帮助我们更好地理解模型是如何工作并提升模型的可靠性!

    有19位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
何年何念

这篇文章介绍得不错,不过 LIME 和 SHAP 其实还有很多其他的应用场景,期待看到更多关于 XAI 的文章和案例分享。

    有9位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
微信名字

虽然可解释 AI 很酷,但我还是觉得模型本身的性能才是最关键的。即使模型很透明,但预测结果不准确依然没什么用

    有15位网友表示赞同!

可解释的人工智能(XAI):如何使用LIME 和SHAP 更好地解释模型的预测
寻鱼水之欢

我感觉 LIME 和 SHAP 这些方法在处理复杂的大规模数据集时可能会有瓶颈。希望未来能出现更高效、更通用的 XAI 工具。

    有6位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/111981.html

(0)
小su's avatar小su
上一篇 2024年8月31日 下午9:43
下一篇 2024年8月31日 下午9:44

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注