使用交叉验证时,是否有办法确保每个折叠至少包含真实类的多个实例?

时间:2019-03-06 22:34:10

标签: r logistic-regression

我正在使用带有插入符号的交叉折叠验证来拟合模型:

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时,这会发出警告消息“ glm.fit:拟合的数值出现0或1”。

有没有可以设置的参数或某种方法来确保每折都有真实的情况?

1 个答案:

答案 0 :(得分:2)

当您重新整理数据并为每个类提供足够的示例时,会更容易。

如果没有足够的示例,则可以使用SMOTE(综合少数派过采样技术)来增加少数派类别的大小。将textEditor.ActiveTextAreaControl.TextArea.KeyDown += new KeyEventHandler(this.TextEditor_KeyDown); textEditor.ActiveTextAreaControl.TextArea.Caret.PositionChanged += new EventHandler(this.TextEditor_PositionChanged); private void TextEditor_PositionChanged() { StatusLine.Text = textEditor.ActiveTextAreaControl.Caret.Position.ToString(); } 打包到R中。

那么您将能够进行5或10倍交叉验证,而不会出现任何问题。