【发布时间】:2020-09-16 21:36:37
【问题描述】:
df:
library(caret)
a = c("aa", "bb", "cc", "aa", "aa", "aa", "bb", "cc", "bb", "bb")
b = c("aa", "bb", "cc", "aa", "aa", "aa", "bb", "cc", "bb", "bb")
c = c("aa", "bb", "cc", "aa", "aa", "aa", "bb", "cc", "bb", "bb")
d = c("aa", "bb", "cc", "aa", "aa", "aa", "bb", "cc", "bb", "bb")
e = c(1, 0, 1, 0, 0, 0, 1, 1, 1, 1)
#df1
df1 = data.frame(a,b,c,d,e)
#df2
df2 = data.frame(a,b,c,d,e)
Caret Log-red 模型:
df1$e <- as.factor(df1$e)
df2$e <- as.factor(df2$e)
# define training control
train_control <- trainControl(method = "cv", number = 5)
# train the model on training set
model <- train(e ~ .,
data = df1,
trControl = train_control,
method = "glm",
family=binomial())
# logistic <- glm(WonLost ~ . -PANum, data=train, family="binomial")
df2$predict <- caret::predict.train(model, newdata=df2,type = "prob")
nrow(df2$predict)
nrow(df2$e)
为什么 nrow(df2$e) 为零?我根据之前遇到的错误将目标变量更改为一个因子,但这似乎导致了我当前的问题。
警告消息:1:在 train.default(x, y, weights = w, ...) 中:你 正在尝试进行回归,而您的结果只有两种可能 values 您是否尝试进行分类?如果是这样,请使用 2 级 因素作为您的结果列。
【问题讨论】: