【发布时间】:2014-02-07 11:57:24
【问题描述】:
我正在尝试运行一个简单的 GBM 分类模型来对随机森林和 SVM 的性能进行基准测试,但我无法让模型正确评分。它没有抛出错误,但预测都是 NaN。我正在使用来自mlbench 的乳腺癌数据。代码如下:
library(gbm)
library(mlbench)
library(caret)
library(plyr)
library(ada)
library(randomForest)
data(BreastCancer)
bc <- BreastCancer
rm(BreastCancer)
bc$Id <- NULL
bc$Class <- as.factor(mapvalues(bc$Class, c("benign", "malignant"), c("0","1")))
index <- createDataPartition(bc$Class, p = 0.7, list = FALSE)
bc.train <- bc[index, ]
bc.test <- bc[-index, ]
model.gbm <- gbm(Class ~ ., data = bc.train, n.trees = 500)
pred.gbm <- predict(model.gbm, bc.test.ind, n.trees = 500, type = "response")
谁能帮我解决我做错了什么?另外,我是否必须转换预测函数的输出?我读过这似乎是 GBM 预测的问题。谢谢。
【问题讨论】:
-
这是
gbm包的“功能”。有关说明,请参阅 here。 (基本上,gbm假设因子响应服从多项分布。如果只有 2 个唯一响应值(无论是字符还是数字),那么它假设是伯努利。