我在 R 中使用 randomForest 包。据我所知,这个包只给我分配给每棵树最后节点的每个实例的类,但我需要知道每个节点的类分布。
假设在一棵树的最后一个节点上,我们有 10 个类别 0 的实例,当整个森林都被训练时,我们有 20 个类别 1 的实例。现在不是说这个节点的分配类是 1(因为大多数实例来自类 1),我想知道类计数(10 和 20)。有什么办法吗?提前感谢您的帮助。
最佳答案
您可以使用功能 predict.randomForest(.., type = "prob")
得到预测的概率。然而,它们是通过聚合单个决策树的预测(但不是预测概率!)来计算的。如果你有 10 棵树预测 class=1
和 30 棵树预测 class=0
,那么这个函数调用将产生第一类的预测概率为 0.25。
如果您需要“真实”的树级概率,那么您必须切换到不同的 RF 算法。例如,Scikit-Learn 的类 RandomForestClassifier这样工作。
关于r - 在 R 中的随机森林中提取树的每个最终节点的类分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35163879/