人工智能用于可解释机器学习的 Python 库( 二 )


让我们用ELI5来观察一下上面我们训练的模型的特征重要性 。
import eli5
eli5.show_weights(model, feature_names = X.columns.tolist())
人工智能用于可解释机器学习的 Python 库
本文插图
默认的 , `show_weights`方法采用GAIN来计算权重 , 但你也可以传入其他`importance_type`来控制特征重要性的计算 。
也可以通过`show_prediction`来观察某一个样本的预测结果的原因 。
from eli5 import show_predictionshow_prediction(model, X_train.iloc[1], feature_names = X.columns.tolist(),
show_feature_values=True)
人工智能用于可解释机器学习的 Python 库
本文插图
LIME
LIME(模型无关局部可解释)是一个用来解释模型做出的预测的工具包 。 LIME支持对多种分类器的单个样本预测进行解释 , 并且原生支持scikit-learn 。
下面让我们用LIME对上述我们训练的模型的一些预测进行解释 。
LIME可以用pip进行安装
pip install lime首先我们构建explainer , 它通过训练数据集数组 , 模型中用到的特征名称和目标变量的类别名称作为初始化参数 。
import lime.lime_tabular
explainer = lime.lime_tabular.LimeTabularExplainer(X_train.values,feature_names=X_train.columns.values.tolist(),class_names=y_train.unique())
接下来 , 我们创建一个lambda函数 , 它表示用模型预测一个样本 。 详见这个优秀的 , 更有深度的LIME教程 。
predict_fn = lambda x: model.predict_proba(x).astype(float)随后 , 我们利用explainer解释指定样本的预测结果 。 其结果如下 。 LIME通过可视化的结果 , 展示特征如果对得到的预测结果产生影响 。
exp = explainer.explain_instance(X_test.values[0], predict_fn, num_features=6)
exp.show_in_notebook(show_all=False)
人工智能用于可解释机器学习的 Python 库
本文插图
MLxtend
这个工具包包含一系列机器学习可用的工具函数 。 包括通过stacking和voting构建的分类器 , 模型的评估 , 特征的提取、特征工程和可视化 。 除了该工具包的文档 , 这篇论文也是理解工具包更多细节的好资源 。
下面让我们利用MLxtend来比较Ensemble后的分类器的分类边界与组成他的子分类器的分类边界有什么不同 。
同样MLxtend也可以通过pip安装 。
pip install mlxtend引入一些工具包 ,
from mlxtend.plotting import plot_decision_regions
from mlxtend.classifier import EnsembleVoteClassifier
import matplotlib.gridspec as gridspec
import itertools
from sklearn import model_selection
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
5/8 上一页 1 2 3 4 5 6 7 下一页
热门推荐


    查看更多精彩

    今日快讯
    导演评张玉环27年冤狱:别哭诉了赔几百万知足吧
    警方突袭按摩会所抓"男技师"最小女客人才25岁欢迎来到新闻头条本站提供最新最全的社会,娱乐,时尚,科技等一手新鲜资讯 。本站资讯及图片内容部分收集于互联网 , 如果有侵犯您的权益 , 请发邮件到3281530663@qq.com , 我们将会即刻删除相关内容!Copyright 2018 新闻头条 toutiao.7junshi.com 版权所有
    ?
    ?
    .textual .textual__body .textual__title{padding-left: 6px !important;}


    推荐阅读