Chapter 11 可解释机器学习

可解释机器学习(Explainable AI, XAI)旨在提高机器学习模型的透明度,使其决策过程更容易理解和解释。以下是一些常见的可解释机器学习方法和技术,以及示例。

11.1 特征重要性分析:

特征重要性分析可用于确定模型中哪些特征对预测结果的影响最大。

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 创建随机森林分类器
clf = RandomForestClassifier()

# 训练模型
clf.fit(X, y)

# 输出特征重要性
## RandomForestClassifier()
feature_importances = clf.feature_importances_
print("特征重要性:", feature_importances)
## 特征重要性: [0.11083126 0.02104152 0.42912438 0.43900284]

11.2 局部可解释性模型:

局部可解释性模型通常用于解释单个样本的预测结果。一种常见的方法是使用局部线性模型(Local Interpretable Model-Agnostic Explanations, LIME)。

from lime.lime_tabular import LimeTabularExplainer
import numpy as np

explainer = LimeTabularExplainer(X, mode="classification")
sample_idx = 0  # 选择要解释的样本索引
explanation = explainer.explain_instance(X[sample_idx], clf.predict_proba)

explanation.show_in_notebook()
## <IPython.core.display.HTML object>

11.3 SHAP值:

SHAP(SHapley Additive exPlanations)值是一种基于博弈论的方法,用于解释每个特征对模型输出的贡献。

import shap

explainer = shap.TreeExplainer(clf)
sample_idx = 0  # 选择要解释的样本索引
shap_values = explainer.shap_values(X[sample_idx])

shap.initjs()
shap.force_plot(explainer.expected_value[0], shap_values[0], X[sample_idx])