特征重要性(feature importance)
/ FEE-cher im-POR-tunss /
特征重要性,是给「模型最倚重哪些输入」排出的一份名次。如果一个模型根据面积、地段、房龄和油漆颜色来预测房价,特征重要性会告诉你:面积和地段在驱动预测,而油漆颜色几乎排不上号。这是可解释性最基本的问题:在模型本可以关注的一切之中,究竟是什么真正撬动了它的答案?
有两种诚实的问法,它们回答的其实是不同的问题。一种衡量模型内部对每个特征的依赖程度——比如一棵决策树有多频繁地依它来分叉。另一种,「置换重要性」,更不挑模型:把某个特征的取值在整个数据集里打乱重排,看看准确率掉了多少。掉得多,说明模型是真的需要这个特征。想法简单又直观——可魔鬼藏在「相关」二字里。
特征重要性之所以要紧,是因为它是团队最先抓到模型「作弊」的地方。如果「病人编号」竟成了预测疾病的头号因子,那一定出了岔子:模型攀附上的是一处数据泄漏,而非医学。但这里的告诫很锋利。当特征彼此相关时,重要性会被令人困惑地抹匀在它们之间,而不同方法对同一批特征排出的名次,可能南辕北辙。重要性告诉你的是「模型用了什么」——千万别想当然地以为它告诉你的是「什么真正导致了结果」。
一个预测病人再入院的模型,把「既往就诊次数」和「年龄」列为头部特征——合情合理。可「病人来自3号楼」也排得很靠前。一查才知道,3号楼住的是肿瘤科病房;模型悄悄发现了「癌症病人更容易再入院」这件事——一条真实、却非本意的捷径,值得我们知道。
一个出乎意料的高重要性特征,往往是一条线索,而非一纸定论——信它之前,先去查。
重要性说的是模型,而不是这个世界。一个特征排得高,可能仅仅是因为模型用了它,哪怕它对结果毫无因果作用——而一个真正具有因果性的特征,也可能因为某个与之相关的特征「抢了功劳」而排得很低。千万别把一张特征重要性图,当成一幅因果地图来读。