我正在使用带有插入符号的交叉折叠验证来拟合模型:
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”。
有没有可以设置的参数或某种方法来确保每折都有真实的情况?
答案 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倍交叉验证,而不会出现任何问题。