machine-learning - 用于决策树的one-hot encode后如何解释特征重要性

标签 machine-learning scikit-learn decision-tree

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

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

谢谢。

最佳答案

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

关于machine-learning - 用于决策树的one-hot encode后如何解释特征重要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40047343/

相关文章:

machine-learning - 预处理数据: Normalizing data labels in regression?

machine-learning - 决策树如何可能不稳定?

python - Tfidvectorizer - L2 归一化向量

python - 提高文本分类的准确性(目前朴素贝叶斯和 SVM 的准确性为 62%)

python - AttributeError - 即使似乎没有属性错误

python - 为什么 AdaBoost 不能与 DecisionTree 一起工作?

decision-tree - R错误:fit is not a tree,中的决策树只是一个根

boost - 基于分布的弱学习器 : Decision stump

python - 如何hstack几个稀疏矩阵(特征矩阵)?

machine-learning - 时间差分学习和反向传播