我使用random-forest进行回归问题,以预测给定Test-X集(特征的新值)的Test-Y的标签值。该模型已经在给定的Train-X(特征)和Train-Y(标签)上进行了训练。 R的“randomForest”很好地预测了Test-Y的数值。但这不是我想要的全部。
我想使用random-forest来产生概率密度函数,而不仅仅是一个数字。我搜索了几天的解决方案,到目前为止我找到了这个:
“randomForest”不会产生回归概率,只会产生分类。 (通过“预测”和设置类型=概率)。
使用“quantregForest”提供了一种制作和可视化预测间隔的好方法。但仍然不是概率密度函数!
还有其他想法吗?
答案 0 :(得分:2)
请参阅predict.all
功能的predict.randomForest
参数。
library("ggplot2")
library("randomForest")
data(mpg)
rf = randomForest(cty ~ displ + cyl + trans, data = mpg)
# Predict the first car in the dataset
pred = predict(rf, newdata = mpg[1, ], predict.all = TRUE)
hist(pred$individual)
答案 1 :(得分:0)
您还可以使用带有非常精细分位数网格的quantregForest,将它们转换为具有R函数ecdf的“累积分布函数(cdf)”,并将此cdf转换为具有核密度估计器的密度估计。