我正在尝试构建一组机器学习算法,第一个使用Boosting算法,第二个使用堆栈算法。尝试创建模型时,出现以下错误:
Error: wrong model type for regression
这是我的代码:
library(mlbench)
library(caret)
library(caretEnsemble)
#Remove Null Values
Data <- Data[complete.cases(Data), ]
control <- trainControl(method="repeatedcv", number=10, repeats=3,
savePredictions=TRUE, classProbs=TRUE)
algorithmList <- c('lda', 'rpart', 'glm', 'knn', 'svmRadial')
set.seed(seed)
models <- caretList(Setup~Age+Balance+Dcny2Rcvd+PCA,
data=data, trControl=control, methodList=algorithmList)
results <- resamples(models)
summary(results)
dotplot(results)
以下是我的数据示例:
Number Setup R D2R A B PCA
123 1 381 6618 25 2500 2
124 0 200 100 30 3500 1
125 0 100 62 18 4000 1
126 1 202 75 21 1000 5
127 0 95 60 22 387 4
问题:为什么会出现此错误?
我在以下方面也遇到了相同的错误:
fit.c50 <- train(Setup~A+B+D2R+PCA+R, data=Data, trControl=control)
答案 0 :(得分:1)
lda
表示线性判别分析。 Discriminant analysis用于分类,而不是回归。
答案 1 :(得分:1)
如果要使用caret
进行分类,则结果Setup
应该是一个因子变量。由于它是一个数字,因此认为您正在尝试使用分类模型进行回归。