gpt4 book ai didi

区间内的 R 预测

转载 作者:行者123 更新时间:2023-11-30 09:12:40 29 4
gpt4 key购买 nike

关于预测的快速问题。

我尝试预测的值是 0 或 1(它设置为数字,而不是因子),因此当我运行随机森林时:

fit <- randomForest(PredictValue ~ <variables>, data=trainData, ntree=50) 

并预测:

pred<-predict(fit, testData)

我所有的预测都在 0 和 1 之间——这是我所期望的,并且——我想象——可以解释为是 1 的概率。

现在,如果我使用 gbm 算法执行相同的过程:

fitgbm <- gbm(PredictValue~ <variables>, data=trainData, distribution = "bernoulli", n.trees = 500,   bag.fraction = 0.75, cv.folds = 5, interaction.depth = 3)
predgbm <- predict(fitgbm, testData)

数值范围为 -0.5 到 0.5

我也尝试过 glm,范围最差,从 -3 到 3 左右。

所以,我的问题是:是否可以将算法设置为在 0 和 1 之间进行预测?

谢谢

最佳答案

您需要指定 type='response' 才能实现此目的:

检查这个例子:

y <- rep(c(0,1),c(100,100))
x <- runif(200)
df <- data.frame(y,x)


fitgbm <- gbm(y ~ x, data=df,
distribution = "bernoulli", n.trees = 100)

predgbm <- predict(fitgbm, df, n.trees=100, type='response')

太简单了,但看看predgbm的总结:

> summary(predgbm)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.4936 0.4943 0.5013 0.5000 0.5052 0.5073

正如文档中提到的,这是 y 为 1 的概率:

If type="response" then gbm converts back to the same scale as the outcome. Currently the only effect this will have is returning probabilities for bernoulli and expected counts for poisson.

关于区间内的 R 预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28764742/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com