逻辑回归探索性分析:是否需要划分训练集与测试集?
探索阶段逻辑回归的数据集使用建议
探索初期用全量数据集训练是可行的
如果你只是想快速验证var1、var2对outcome的分类潜力,或者初步观察变量与结果的关联趋势,全量训练完全没问题。你当前代码算出的是训练集AUC,能直观反映这两个变量在现有数据里的区分度,用来快速筛选变量、判断研究方向是足够的。但要明确全量结果的局限性
用训练过的数据集做预测,模型已经“见过”所有样本的细节,会把数据里的随机噪声也纳入学习,算出的AUC、最优阈值都是乐观估计,和模型在真实未知数据上的表现存在偏差。你现在划分数据集后结果相近,大概率是当前数据集样本量足够大、噪声少,但这种情况不具有普遍性——换个小数据集或者噪声多的数据,差异会很明显。不同阶段的正确做法
- 探索定性阶段:可以用全量快速扫变量,重点看回归系数的显著性、训练集AUC的高低,判断变量是否值得深挖。
- 评估泛化能力阶段:必须划分训练集和测试集(比如7:3拆分),甚至用交叉验证(如10折CV),用测试集的指标来衡量模型的真实性能。
- 正式建模落地:严格区分训练、验证、测试集,避免数据泄露导致的性能虚高。
针对你的情况的小建议
既然划分后结果相近,说明当前数据集稳定性不错,但还是建议多做几次随机划分验证。如果多次拆分后AUC波动很小,那全量的结果参考性很强;如果波动大,就得警惕全量结果的偏倚,后续评估必须用拆分后的数据集。
你的代码示例:
model_glm = glm(outcome ~ var1 + var2, data = DataSet, family = "binomial") prob = predict(model_glm, newdata = DataSet, type = "response") roc = roc(DataSet$outcome ~ prob, plot = TRUE, print.auc = TRUE) as.numeric(roc$auc) coords(roc, "best")
内容的提问来源于stack exchange,提问作者inprogress123
相关产品推荐
相关产品推荐

