我目前正在尝试使用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非常相似的结果).
希望这可以帮到你.
精彩评论