我试图使用 sklearn 的随机森林分类器包来拟合随机森林模型。但是,我的数据集由带有字符串值(“国家/地区”)的列组成。这里的随机森林分类器不采用字符串值。它需要所有特征的数值。我想用一些虚拟变量来代替这些列。但是,我对特征重要性图现在的样子感到困惑。会有像 Country_India、country_usa 等变量。如果我使用 R 进行分析,如何获得国家变量的综合重要性。
最佳答案
您必须手动完成。 sklearn 不支持通过特征映射的逆变换来映射分类器特定方法。 R 正在根据多值分割计算重要性(正如 @Soren 所解释的) - 使用 scikit-learn 时,您仅限于二进制分割,并且必须近似实际重要性。最简单的解决方案之一(尽管有偏差)是存储哪些特征实际上是分类变量的二进制编码,并对特征重要性向量中的这些结果元素求和。从数学角度来看,这并不完全合理,但这是获得粗略估计的最简单的方法。为了正确地做到这一点,您应该从头开始重新实现特征重要性,并且简单地在计算“对于分类期间特征处于事件状态的样本数量”期间,您必须使用映射来正确评估每个样本一次到实际特征(如添加虚拟重要性将计算分类路径上的每个虚拟变量,并且您需要执行 min(1, #dummy on path)。
关于machine-learning - sklearn 中的随机森林,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36392358/