运维开发网

R中的GBM为adaBoost~predina()值位于[0,1]之外

运维开发网 https://www.qedev.com 2020-03-19 16:06 出处:网络 作者:运维开发网整理
我目前正在尝试使用gbm.fit模型在R中拟合adaBoost模型.我已尽力而为,但最后我的模型不断给出[0,1]以外的预测值.我知道type =“response”仅适用于bernoulli但我仍然在0,1之外获得值.有什么想法吗?谢谢! GBMODEL <- gbm.fit( x=training.set, y=training.re
我目前正在尝试使用gbm.fit模型在R中拟合adaBoost模型.我已尽力而为,但最后我的模型不断给出[0,1]以外的预测值.我知道type =“response”仅适用于bernoulli但我仍然在0,1之外获得值.有什么想法吗?谢谢!

GBMODEL <- gbm.fit(
               x=training.set,
               y=training.responses,
               distribution="adaboost",
               n.trees=5000,
               interaction.depth=1,
               shrinkage=0.005,
               train.fraction=1,
               )

predictionvalues = predict(GBMODEL, 
                  newdata=test.predictors,
                  n.trees=5000,
                  type="response")
通过选择“adaboost”作为损失函数的gbm包获得[0,1]之外的y范围是正确的.

训练后,adaboost根据输出的符号预测类别.

例如,对于二进制类问题y {-1,1},类标签将被标记为输出y的符号.因此,如果你得到y = 0.9或y = 1.9会给你相同的结果 – 观察属于y = 1类.然而,y = 1.9只表明比y = 0.9更有信心的结论. (如果你想知道为什么,我建议你阅读基于边缘的adaboost解释,你会发现与SVM非常相似的结果).

希望这可以帮到你.

0

精彩评论

暂无评论...
验证码 换一张
取 消