machine-learning - sklearn 中的随机森林

标签 machine-learning scikit-learn random-forest

我试图使用 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/

相关文章:

python - 了解sklearn GridSearchCV的best_score_和best_estimator_

c# - 如何在 Accord.NET 中使用随机森林处理回归

python - Sklearn 中的 T-SNE 给出 NaN 或 Inf 数据错误

python - “DecisionTreeClassifier”对象没有属性 'export_graphviz'

python-2.7 - 如何随机拼接稀疏矩阵进行机器学习分类

python - predict_proba 的 Scikit-learn RandomForestClassifier 输出

c++ - 使用 OpenCV 随机森林进行回归

python - TensorFlow 2.0 GradientTape 返回 None 作为手动模型的梯度

machine-learning - 交叉验证结果不一致

python - 使用 Sklearn featurehasher