使用重采样时R插入符号LDA错误

使用重采样时R插入符号LDA错误,r,lda,r-caret,resampling,R,Lda,R Caret,Resampling,我在使用LDA到caret和caregorial预测器时遇到了问题。出于某种原因,启用重采样会引发信息量不大的错误。以前有人见过这个吗 以下是一个可复制的玩具示例: library(caret) library(MASS) DF <- data.frame(y = sample(as.factor(1:2), 200, replace = T), x1 = sample(as.factor(1:2), 200, replace = T), x2 = sample(as.factor(1:2

我在使用
LDA
caret
和caregorial预测器时遇到了问题。出于某种原因,启用重采样会引发信息量不大的错误。以前有人见过这个吗

以下是一个可复制的玩具示例:

library(caret)
library(MASS)
DF <- data.frame(y = sample(as.factor(1:2), 200, replace = T), x1 = sample(as.factor(1:2), 200, replace = T), x2 = sample(as.factor(1:2), 200, replace = T))

# These two lines produce the same results
lda(DF[, -1], DF[, 1])
train(DF[, -1], DF[, 1], method = 'lda', trControl = trainControl(method = 'none'))$finalModel

# This gives an error
train(DF[, -1], DF[, 1], method = 'lda', trControl = trainControl(method = 'cv'))$finalModel

Error in train.default(DF[, -1], DF[, 1], method = "lda", trControl = trainControl(method = "cv")) : 
  Stopping
库(插入符号)
图书馆(弥撒)

DF当使用因子变量作为自变量而不使用公式界面时,似乎会发生这种情况。这项工作:

train(y ~ x1 + x2, data = DF, method = 'lda', 
      trControl = trainControl(method = 'cv'))$finalModel
或者,将因子变量转换为二进制虚拟变量后,x/y语法也可以工作:

# Convert independent variables to dummy variables
DF$x1 <- as.numeric(DF$x1 == "2")
DF$x2 <- as.numeric(DF$x2 == "2")
train(DF[, -1], DF[, 1], method = 'lda', 
      trControl = trainControl(method = 'cv'))$finalModel
#将自变量转换为伪变量
DF$x1