lin*_*gta 6 machine-learning decision-tree scikit-learn
我知道决策树具有由Gini计算的feature_importance属性,它可用于检查哪些功能更重要。
但是,对于scikit-learn或Spark中的应用程序,它仅接受数字属性,因此我必须将字符串属性转换为数字属性,然后对此进行一键编码。将特征放入决策树模型时,它是原始编码以外的0-1编码,我的问题是,如何解释特征对原始属性的重要性?试图解释功能重要性时,应避免使用单编码器吗?
谢谢。
从概念上讲,您可能想要使用类似于排列重要性的东西。基本思想是,获取原始数据集,并一次随机地打乱每列 1 的值。然后,您使用模型对扰动数据进行评分,并将性能与原始性能进行比较。如果一次完成 1 列,您可以通过销毁每个变量,将其索引到损失最大的变量(将变为 1 或 100%)来评估性能损失。如果您可以在第一次热编码之前对原始数据集执行此操作,那么您将获得将它们整体分组在一起的重要性度量。