如何解决结合插入符号时xgboost R中的预测误差
我使用xgboost软件包在R上创建了xgboost模型,该软件包能够成功进行训练和测试。但是,当我尝试使用模型和变量重要性中列出的变量进行预测时,却不断收到此错误
“ predict.xgb.Booster(xgb_model $ finalModel,x_pred)中的错误: 存储在
object
和newdata
中的功能名称是不同的!“
我检查了模型构建中使用的变量的名称,它们与预测中使用的名称完全相同。我需要使用模型构建中使用的确切变量进行预测吗?
请在下面找到代码
lur6 <- lur6[,-1]
comp <- na.exclude(lur6)
set.seed(100)
inTrain <- createDataPartition(y = comp$pm,p = 0.8,list = FALSE)
training <- comp[inTrain,]
testing <- comp[-inTrain,]
x_train <- training[,-1]
y_train <- training[,1]
x_test <- testing[,-1]
y_test <- testing[,1]
dtrain <- xgb.DMatrix(as.matrix(sapply(x_train,as.numeric)),label=y_train)
dtest <- xgb.DMatrix(as.matrix(sapply(x_test,label=y_test)
dtest1 <- xgb.DMatrix(as.matrix(sapply(x_test,as.numeric)))
xgb_trcontrol = trainControl(
method = "cv",number = 5,allowParallel = TRUE,verboseIter = T,returnData = FALSE
)
xgbGrid <- expand.grid(nrounds = c(100,200,300,500),max_depth = c(5,10,20,30),colsample_bytree = seq(0.75,0.9,length.out = 5),eta = c(0.01,0.1,0.3),gamma=0,min_child_weight = c(1,3,5),subsample = c(0.8,1)
)
set.seed(0)
xgb_model = train(
x_train,y_train,trControl = xgb_trcontrol,tuneGrid = xgbGrid,method = "xgbTree"
)
xgb_model$bestTune
predicted = predict(xgb_model,x_test)
importance_matrix <- xgb.importance(names(x_train),model = xgb_model$finalModel)
xgb.plot.importance(importance_matrix)
pre <- fread("pred_tree_2.csv")
pred1 <- pre[,-c("ID")]
pred <- na.exclude(pred1)
x_pred <- xgb.DMatrix(as.matrix(sapply(pred,as.numeric)))
predict_var = predict(xgb_model$finalModel,x_pred)```
Any suggestions on how to fix this is welcome!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。