价值不在于软件,价值在于数据,这对每一家公司而言都是非常重要的,他们了解他们拥有的数据。
约翰·斯特拉
介绍
现在越来越多的公司意识到数据的强大。机器学习模型越来越受欢迎,现在正在使用数据来解决各种商业问题。话虽如此,模型的准确性和可解释性之间总是存在着取舍。
一般来说,如果准确性得到提高,数据科学家必须使用复杂的算法,如Bagging,Boosting,Random Forests等,这些都是“黑盒”的方法。Kaggle或Google Analytics(分析)Vidhya比赛中的许多获奖作品往往会使用像XGBoost这样的算法,不需要向商业用户解释生成预测的过程。另一方面,在商业环境中,更多使用具有说明性的比较简单的模型,如线性回归,逻辑回归,决策树等,即使预测不太准确。
这种情况必须改变 – 准确性和可解释性之间的取舍是不能接受的。我们需要找到使用强大的黑匣算法的方法,即使在商业环境中,仍然能够直观地向用户解释预测背后的逻辑。随着对预测信任的增加,将在企业内更广泛地部署机器学习模型。问题是 – “我们如何建立对机器学习模型的信任 ”?
1、动机
正是在这种情况下,我对论文“为什么我相信您”– 解释分类器的预测非常感兴趣。在本文中[1],作者解释了一个叫LIME的框架,这是一种算法,可以用一种正确的方式对分类器或回归量的预测进行解释,通过一个可说明的模型来做局部预测。在本文中,有许多问题的例子,其中黑盒算法(即使像深度学习一样极端)的预测可以用可解释的方式来表述。我不会在这个博客中解释这篇文章,而是展示它如何在我们自己的分类问题中实现。
2.问题
Sigma Cab的峰时定价类型分类
今年二月,Analytics Vidhya举办了机器学习比赛,其目标是预测Sigma Cab的“峰时定价类型” – 出租车聚合服务。这是一个多类分类的问题。在这个博客中,我们将看到如何对这个数据集做出预测,并使用LIME来做出预测的解释。这里的意图不是建立最好的模式,而是重点在于可解释性方面。
2.1建模模型的步骤
#步骤1 – 导入所有库
#步骤2– 定义函数,变量和辞典
#步骤3 – 加载训练数据集
#步骤4 – 了解数据(描述性统计,可视化)
#步骤5– 数据预处理(处理缺失数据和异常值,特征工程,特征变换等)
#步骤6 – 功能选择
#步骤7 – 创建验证集
#步骤8 – 比较算法,找到候选算法
#步骤9– 算法调整
#步骤10– 完成模型
在这种情况下,我们在训练数据上安装了3个模型,以便比较得到的解释。3个模型是a)逻辑回归,b)Random Forest,c)XGBoost。
2.2用Lime使模型可解释的步骤
LIME步骤1 – 安装LIME(在ANACONDA分布中 – pip安装LIME)之后,导入相关的库,如下所示:
LIME步骤2– 为每个分类器创建一个lambda函数,该函数将返回给定特征集的目标变量(峰时定价类型)的预测概率
LIME步骤3 – 创建所有功能名称的连接列表,这些列表将在后续步骤中由LIME解释器使用
LIME步骤4 – 这是创建解释器的“神奇”步骤
该函数使用的参数有:
X_train =训练集
feature_names =所有功能名称的连接列表
class_names =目标值
categorical_features =数据集中的分类列的列表
categoriesical_names =分类列名称列表
Kernel width =参数控制诱导模型的线性度,模型的宽度越大,线性越大。</