Skip to content

打乱特征重要性(Shuffle Feature Importance)

Shuffle Feature Importance

我常常觉得“打乱特征重要性”是一种既方便又直观的衡量特征重要性(feature importance)的技术。顾名思义,它观察打乱某个特征会对模型性能产生怎样的影响。下面的图示用四个简单的步骤说明了这项技术:

ds p208 1

它的工作原理如下:

  • 训练模型并测量其性能 → p1。
  • 随机打乱一个特征并再次测量性能 → p2(模型不会重新训练)。
  • 用性能下降幅度 = (p1 - p2) 来衡量特征重要性。
  • 对所有特征重复上述过程。

这在直觉上也说得通,不是吗?简单来说,如果我们只随机打乱一个特征而其他一切都保持不变,那么性能下降的幅度就能反映出该特征有多重要。

ds p209 1

  • 如果性能下降幅度很小 → 这说明该特征对模型预测的影响非常小。
  • 如果性能下降幅度很大 → 这说明该特征对模型预测的影响非常大。请注意,为了消除特征打乱过程中任何潜在的随机性影响,建议:
  • 对同一特征进行多次打乱
  • 测量平均性能下降幅度。

这项技术让我喜欢的几点是:

  • 它不需要重复训练模型。只需训练一次模型,就能衡量特征重要性。
  • 它使用起来相当简单,解释起来也很直观。
  • 这项技术可以用于所有可被评估的机器学习模型。

当然,也有一个需要注意的地方。假设两个特征高度相关,其中一个被置换/打乱了。在这种情况下,模型仍然可以通过与之相关的那个特征获取该特征的信息。

ds p210 1

这会导致两个特征的重要性值都偏低。一种应对办法是把高度相关的特征聚成簇,并从每个簇中只保留一个特征。

本站内容仅供学习交流,版权归原作者所有。