【发布时间】:2023-03-30 14:45:02
【问题描述】:
我希望确认我对 glmnet 包中的 CV 程序的理解,以便向我的论文的审稿人解释它。如果有人可以添加信息以进一步澄清答案,我将不胜感激。
具体来说,我遇到了一个包含 29 个输入变量和 106 行的二元分类问题。我没有拆分成训练/测试数据(并进一步减少训练数据),而是使用 lasso 通过交叉验证选择 lambda 作为最小化过度拟合的一种手段。在使用cv.glmnet 训练模型后,我在同一数据集上测试了它的分类准确度(自举 x 10000 错误间隔)。我承认在这种情况下无法消除过度拟合,但通过交叉验证选择的惩罚项 lasso 会减轻其影响。
我对审稿人(和我一样是医生)的解释是:cv.glmnet 是如何做到的:
在10折交叉验证的每一步中,数据被随机划分 分成两组,其中 9/10 的数据用于训练,1/10 的数据用于 内部验证(即测量模型的二项式偏差/误差 用那个 lambda 开发)。绘制了 Lambda 与偏差。当。。。的时候 该过程再重复 9 次,λ 的 95% 置信区间 与偏差得出。进入模型的最终 lambda 值 是在高 lambda 和低 lambda 之间做出最佳折衷的一种 偏差。高 lambda 是最小化过度拟合的因素,因为 不允许通过分配大来改进回归模型 变量的系数。然后在整个模型上训练模型 使用最小二乘近似的数据集,可最大限度地减少模型误差 受到 lambda 项的惩罚。因为 lambda 项是通过 交叉验证(而不是来自整个数据集),选择 lambda 在某种程度上独立于数据。
我怀疑我的解释可以大大改进,或者阅读本文的专家指出的方法中的缺陷。 提前致谢。
【问题讨论】:
标签: r logistic-regression cross-validation glmnet lasso-regression