我正在使用caret使用交叉折叠验证:
library(caret)
## tuning & parameters
set.seed(123)
train_control <- trainControl(
method = "cv",
number = 5,
savePredictions = TRUE,
verboseIter = TRUE,
classProbs = TRUE,
summaryFunction = my_summary
)
linear_model = train(
x = select(training_data, Avg_Load_Time),
y = target,
trControl = train_control,
method = "glm", # logistic regression
family = "binomial",
metric = "ROC"
)
问题是,在〜5k行中,我只有〜120个真实情况。当使用GLM通过Caret" GlM.Fit:数字上拟合的概率为0或1)时,这是在发出警告消息。
我可以设置一个参数或确保每个折叠具有某些真实情况的方法吗?
当您洗牌数据并有足够的每个类示例时,更容易。
如果您没有足够的示例,则可以使用SMOTE(合成少数民族过采样技术)增加少数群体的规模。r。
中的smotefamily
包然后,您将可以进行5或10倍的交叉验证而无需提出任何问题。