繁体   English   中英

对随机森林使用插入符号包时出错(回归)

[英]Error using Caret Package for Random Forest (Regression)

因此,我正在尝试训练模型并使用随机森林回归对其进行测试。 我的响应变量是一个数字,我还有其他23个变量,它们是数字和字符的组合。 我正在使用以下代码块:

library(e1071)
library(dplyr)
library(class)
library(caret)
library(kernlab)

data=read.csv(choose.files())


set.seed(1)
mydata=data
n=dim(mydata)[1]
p=dim(mydata)[2]-1
x=mydata[,-3]
y=mydata[,3]

n_train=35
n_test=9

random_order=sample(n)
test_index=random_order[1:n_test]
train_index=random_order[-(1:n_test)]
y_train=y[train_index]
y_test=y[test_index]
x_train=x[train_index,]
x_test=x[test_index,]

traindata=data.frame(x=x_train,y=(y_train))
testdata = data.frame(x=x_test,y=(y_test))

fitControl <- trainControl(## 10-fold CV
  method = "repeatedcv",classProbs=TRUE, 
  number = 10,
  ## repeated ten times
  repeats = 10)

set.seed(1)
newrf=train(y ~ ., data = traindata , method = "rf", 
             trControl = fitControl)

newrf 
bestmodel_rf= newrf$finalModel
ypredcaret=predict(bestmodel_rf, newdata = testdata)
table(predict=ypredcaret, truth=y_test)
plot(newrf)
bestmodel_rf

我收到以下错误:

警告消息:在train.default(x,y,权重= w,...)中:无法计算回归的类概率警告消息:在train.default(x,y,权重= w,...)中:无法计算回归的类概率

您已经在trainControl指定了classProbs=T ,它指示应该为分类模型(其中响应变量由离散的类标签组成)计算类概率。 但是,该参数设置与您的数字响应变量(这表示将训练回归模型)相冲突,从而导致出现错误消息,即无法计算出回归的类概率。

由于您的描述和数字响应变量表明这是一个回归问题,因此从classProbs=T删除classProbs=T (默认设置为classProbs=F )应该可以解决您遇到的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM