【问题标题】:How to explain feature importance after one-hot encode used for decision tree用于决策树的 one-hot 编码后如何解释特征重要性
【发布时间】:2017-02-24 03:10:57
【问题描述】:

我知道决策树有由 Gini 计算的 feature_importance 属性,它可以用来检查哪些特征更重要。

但是,对于 scikit-learn 或 Spark 中的应用程序,它只接受数字属性,因此我必须将字符串属性转换为数字属性,然后对其进行 one-hot 编码器。将特征放入决策树模型时,它是 0-1 编码而不是原始格式,我的问题是,如何解释原始属性的特征重要性?在尝试解释特征重要性时,我应该避免使用 one-hot encoder 吗?

谢谢。

【问题讨论】:

  • 您可以尝试将原始特征的特征重要性估计为 OHE 后相应特征的特征重要性之和。为此,您必须了解 OHE 是由某些特定功能创建的。
  • @IbraimGaniev 感谢您的帮助:) 但是,对于 OHE,很难知道每个功能中有多少个 0-1 变量...我不确定这是否是标准方法。 .
  • 嗯,OHE 存储了 feature_indices_ 参数,从中你可以知道哪些分类特征被分解为哪些二元特征。

标签: machine-learning scikit-learn decision-tree


【解决方案1】:

从概念上讲,您可能希望使用符合排列重要性的方法。基本思想是,您获取原始数据集,并一次随机打乱每列 1 的值。然后,您使用模型对扰动数据进行评分,并将性能与原始性能进行比较。如果一次完成 1 列,您可以通过销毁每个变量、将其索引到损失最大的变量(将变为 1 或 100%)来评估您所遭受的性能损失。如果您可以在 1 次热编码之前对原始数据集执行此操作,那么您将获得一个将它们整体组合在一起的重要性度量。

【讨论】:

    猜你喜欢
    • 2020-06-24
    • 2018-06-27
    • 2019-04-29
    • 2017-04-23
    • 2019-01-11
    • 2016-03-18
    • 2018-08-16
    • 2019-05-29
    • 1970-01-01
    相关资源
    最近更新 更多