首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区间内的r预测

区间内的r预测
EN

Stack Overflow用户
提问于 2015-02-27 12:05:10
回答 1查看 97关注 0票数 1

关于预测的快速问题。

我试图预测的值要么是0,要么是1(它被设置为数字,而不是一个因素),所以当我运行随机森林时:

代码语言:javascript
复制
fit <- randomForest(PredictValue ~ <variables>, data=trainData, ntree=50) 

并预测:

代码语言:javascript
复制
pred<-predict(fit, testData)

我所有的预测都在0到1之间--这就是我所期望的--我想--可以解释为1的概率。

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

代码语言:javascript
复制
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之间的预测?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-27 12:25:04

要做到这一点,您需要指定type='response'

请检查此示例:

代码语言:javascript
复制
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的总结

代码语言:javascript
复制
> summary(predgbm)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.4936  0.4943  0.5013  0.5000  0.5052  0.5073 

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

如果type=“响应”,那么gbm将转换回与结果相同的比例。目前唯一的效果,这将是返回伯努利的概率和预期数的泊松。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28764742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档