机器学习模型可解释性实战-预测世界杯当场最佳

笔者在之前的一篇博客《谈谈机器学习模型的可解释性》介绍了机器学习可解释性的基本概念,那么今天我们就来看看如何具体的利用这些可解释的工具来对一个真实的模型进行可解释性的分析。

本文所有代码参见https://github.com/gangtao/ml-Interpretability

构建模型

首先我们获得了FIFA 2018年俄罗斯世界杯比赛的所有数据,我们利用这些数据来构建机器学习的模型。

import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')

data = pd.read_csv('./FIFA 2018 Statistics.csv')
data.head()

20401fd5ccfc5829bc4f3f70d679e883a10.jpg

该数据集记录了俄罗斯世界杯每一场比赛的数据,包含日期,本队,对手,得分,控球,射门,射中,射偏等等统计数据,其中有一个字段‘Man of the Match’是本队是否获得了当场比赛的最佳球员。我们利用这些数据来构建一个预测模型,利用所有的数据来预测本队是否获得了赛后评比的当场最佳球员。

from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier

y = (data['Man of the Match'])  
feature_names = [i for i in data.columns if data[i].dtype in [np.int64]]
X = data[feature_names]
train_X, val_X, train_y, val_y = train_test_split(X, y, random_state=1)
my_model_1 = RandomForestClassifier(random_state=0).fit(train_X, train_y)
my_model_2 = DecisionTreeClassifier(random_state=0).fit(train_X, train_y)

我们利用随机森林和决策树算法训练了两个分类模型,用于预测是否本队获得了最佳球员。

对于决策树模型,我们可以利用graphviz可视化该模型。

from sklearn import tree
import graphviz

tree_graph = tree.export_graphviz(my_model_2, out_file=None, feature_names=feature_names)
graphviz.Source(tree_graph)

2475a3e8a1ad9d3bf62efb574866227c789.jpg

Permutation Importance

对于一个模型的解释,我们可以从特征开始,首先分析那些特征是最重要的,对越策的结果影响最大。在之前我们看到的决策树模型中,我们看到SKlearn计算了一个我们称之为基尼指数(gini)或者信息熵的值,用于反应特征的重要性。另外我们也可以从特征在树中的的层级来推断出特征的重要性,一般来说,出现在里根结点越近的层级,表示该特征越重要。在我们之前的决策树模型中,得分位于根结点,显然这个特征是影响是否获得当场最佳球员的重要特征。

对于利用基尼指数来计算特征重要性的方法不具有通用性,我们需要一个与模型无关的方法来计算。

Permutation Importance提供了一个和模型无关的计算特征重要性的方法。Permutation的中文含义是排列的意思,该算法基本思路如下:

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要提高机器学习模型的可解释性和可信度,可以考虑以下几个方面: 1. 特征选择与工程:选择合适的特征对模型解释性很重要。通过领域知识和特征工程技巧,构建具有解释性的特征,使模型更容易理解和解释。 2. 使用可解释的模型:选择一些可解释性较强的模型,如决策树、逻辑回归等。这些模型能够提供清晰的规则或权重,更易于理解和解释。 3. 可视化技术:通过可视化技术将模型的结果呈现出来,如特征重要性图、决策路径等。这样可以直观地展示模型的决策过程,增强可解释性。 4. 模型评估与验证:进行严格的模型评估和验证,使用交叉验证、验证集等方法来评估模型的性能和稳定性,确保模型的可信度。 5. 解释性算法与方法:使用专门设计的解释性算法和方法来解释模型预测结果。例如,局部敏感性分析、特征重要性分析等方法可以帮助理解模型的决策过程。 6. 文档记录与注释:详细记录模型的开发过程、参数设置、数据处理等步骤,并对模型进行适当的注释,使他人能够理解和复现模型。 7. 透明度与可追溯性:保持模型的透明度,确保模型的构建过程可追溯。记录数据集、模型配置、训练过程等信息,方便复现和审查。 总之,通过选择合适的特征、模型和算法,应用可视化技术,进行严格的模型评估与验证,并加强文档记录与注释,可以提高机器学习模型的可解释性和可信度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值