gpt4 book ai didi

r - GBM 模型生成 NA 结果

转载 作者:行者123 更新时间:2023-12-01 02:20:02 25 4
gpt4 key购买 nike

我正在尝试运行一个简单的 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 时遇到了问题前。您可以强制 Class变量是字符类型而不是因子,应该这样做。

bc$Class <- as.factor(mapvalues(bc$Class, c("benign", "malignant"), c("0","1")))
bc$Class <- as.character(bc$Class)

您的代码应该可以正常运行,只要确保调用 bc.test (不是 bc.test.ind )在 predict .

这是我进行这些更改后得到的预测值的摘要
> summary(pred.gbm)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.222 0.222 0.231 0.346 0.573 0.579

最后一件事,我建议在调用 set.seed() 之前设置一个种子(例如使用 createDataPartition() ) .否则每次运行代码时都会得到不同的训练和测试集。

关于r - GBM 模型生成 NA 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21198007/

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