总第220篇/张俊红
如果有学过或者用过一些算法的同学,应该对特征重要性这个概念并不陌生。算法一般都是用来做预测的,而预测也不是凭空发生的,是基于一些已有的变量(x)进行预测的,那在众多的x中每个x对最终的预测贡献的信息具体是多少呢?比如要预测明天是否会下雨,第一个x是明天的空气湿度,第二个x是明天天晴或天阴,第三个x是明天的温度,第四个x是明天是星期几,在预测明天是否会下雨这件事上这四个不同的x对预测的影响肯定是不一样的,我们把这个影响大小称为特征重要性。
那特征重要性和基于业务解释的特征重要性有什么区别呢?是经常听到很多做数据分析的人说学算法是为了更好的做数据分析,为了更好的推进业务。为了推进业务就需要你的结果是可解释的,你不能拿着一个黑盒模型告诉业务说,模型结果是明天会下雨,至于为什么,不知道。这肯定是不可以的,所以我们需要对我们的结果进行解释。
关于特征重要性,不同模型的计算方法略有不同,但是一个总体大原则就是谁对模型预测结果准确度贡献越大,谁的重要性就高。很多模型都会自带feature_importance
属性,可以得出每个特征的重要性得分。
特征重要性得分让我们知道了不同特征之间的重要性情况,除此之外,我们还想知道在其他特征不变的情况,某一个特征内部重要性分布是什么样的。这个也是有现成方法,叫做部分依赖图,英文全称是Partial Dependence Plots