如何用XGBoost入门可解释机器学习?
本文插图
作者:Scott Lundberg翻译:和中华
校对:张一然
本文长度为4300字 , 建议阅读8分钟本文为大家介绍用XGBoost解释机器学习 。
这是一个故事 , 关于错误地解释机器学习模型的危险以及正确解释所带来的价值 。 如果你发现梯度提升或随机森林之类的集成树模型具有很稳定的准确率 , 但还是需要对其进行解释 , 那我希望你能从这篇文章有所收获 。
假定我们的任务是预测某人的银行财务状况 。 模型越准确 , 银行就越赚钱 , 但由于该预测要用于贷款申请 , 所以我们必须要提供预测背后的原因解释 。 在尝试了几种类型的模型之后 , 我们发现XGBoost实现的梯度提升树能提供最佳的准确率 。 不幸的是 , 很难解释为何XGBoost做出某个决策 , 所以我们只有两种选择:要么退回到线性模型 , 要么搞清楚如何解释XGBoost模型 。 没有数据科学家愿意在准确率上让步 , 于是我们决定挑战自己 , 去解释复杂的XGBoost模型(本例中 , 是6棵深达1247层的树) 。
经典的全局特征重要性度量
首先一个显而易见的选择是使用XGBoost中Python接口提供的plot_importance()方法 。 它给出一个简单明了的柱状图 , 表示数据集中每个特征的重要性(复现结果的代码在Jupyter notebook中) 。
本文插图
图:该模型在经典的成人普查数据集上被训练用于预测人们是否会报告超过5万美元的收入(使用logistic loss) , 上图是执行xgboost.plot_importance(model)的结果
仔细看一下XGBoost返回的特征重要性 , 我们发现年龄在所有特征中占统治地位 , 成为收入最重要的预测指标 。 我们可以止步于此 , 向领导报告年龄这个直观且让人满意的指标是最重要的特征 , 紧随其后的是每周工作时长和受教育程度这些特征 。 但是 , 作为一名好的数据科学家 , 我们查询了一下文档 , 发现在XGBoost中衡量特征重要性有3个选项:
1.Weight 。 某个特征被用于在所有树中拆分数据的次数
2.Cover 。 同上 , 首先得到某个特征被用于在所有树中拆分数据的次数 , 然后要利用经过这些拆分点的训练数据数量赋予权重
3.Gain 。 使用某个特征进行拆分时 , 获得的平均训练损失减少量
这些是在任何基于树的建模包中都能找到的重要性度量 。 Weight是默认选项 , 因此我们也试试另外两种方法 , 看看有何不同:
本文插图
图:运行xgboost.plot_importance,并使用参数 importance_type=’cover’和’gain’的结果
结果令人诧异 , 对于XGBoost提供的3个选项 , 特征重要性的排序都大不相同 。 对于cover方法 , 资本收益似乎是收入最重要的预测指标 , 而对于gain方法 , 关系状态特征独占鳌头 。 不知道哪种方法最好的情况下 , 依靠这些度量来报告特征重要性 , 这很让人不爽 。
什么因素决定了特征重要性度量的好坏?
如何比较两种特征归因(feature attribution)方法并不明显 。 我们可以在诸如数据清洗 , 偏差检测等任务上测量每种方法的最终用户性能 。 但这些任务仅仅是特征归因方法质量的间接度量 。 这里 , 定义两个我们认为任何好的特征归因方法都应遵循的属性:
1. 一致性(Consistency) 。 当我们更改模型以使其更多依赖于某个特征时 , 该特征的重要性不应该降低 。
2.准确性(Accuracy) 。 所有特征重要性的和应该等于模型的总体重要性 。 例如 , 如果重要性由R^2值来衡量 , 则每个特征的归因值加起来应该等于整个模型的R^2 。
- 游戏葡萄|七年磨一剑的任天堂,如何用美术诠释游戏?
- 彩虹门窗|门窗配色指南2020版,都是入门级配色灵感!不可错过的配色
- 折叠屏手机三星又一折叠屏设备专利曝光,或为入门级折叠屏手机
- 东方网|如何用教育去守护孩子的纯真?知名教育博主这样说
- 新机发布三星入门级旗舰国行版发布,起售价4999元
- 太平洋电脑网|拒绝奸商!从零开始的CPU入门之旅!
- 轰-20|国之重器轰-20航程成谜团?到不了美国本土,隐身性能有何用?
- 高中化学|高中化学「挑战压轴题」精讲解读篇,轻松入门,高考突袭 共243页
- 铁血观世界|每次远赴海外必须携带800女兵,究竟有何用意?,美国核动力航母
- 王者荣耀|亚瑟打野1场就会,赵云十场精通,李白百场入门,他千场仍在练习
