K 折交叉验证对于小数据集有多好?我有一个包含 154 个分子的小数据集(附后)。 我正在尝试使用 6 个因素来预测 KV40。 通过查看文献中的类似研究,许多人使用留一验证方法为此类较小的数据集构建模型,因此为了在 JMP 中复制这一点,我执行了以下操作:
拟合模型:逐步回归
- 使用因子的响应面
- 使用的 k(k 倍交叉验证)= 样本数 = 154
- 将其他一切保留为默认值
结果:
r2=0.84; r2(k 倍)= 0.72
box-cox 变换后:r2 = 0.87 (r2_adj = 0.86)
我尝试使用验证列 (70:30) 执行此操作,但没有得到如此好的结果。 我有 JMP 专业版。 我担心的是,当我进行这种类型的交叉验证时,我是否创建了一个虚假或过度拟合的模型? 有一个更好的方法吗? 有什么我应该观察或测试的吗? 谢谢。
回复:K 折交叉验证对于小数据集有多好?你好@tnad我刚刚看到这篇文章,希望您不介意 3.5 年后再次回复!
我认为在这种情况下,不建议为逐步设置 K = 154,因为算法会搜索最佳折叠,在这种情况下,该折叠仅包含单个观察结果。一般来说,在每个折叠内执行逐步嵌套以避免过度拟合非常重要,这在模型筛选中的“嵌套 K 折叠”选项中可用。另外,我认为 154 个观察值对于 k 折叠来说已经足够了,并且重复嵌套的 k 折叠是比较模型的好方法。
模型筛选表明,对于这些数据,神经增强法比逐步法效果更好,测试 R2 = 0.87 与使用 Log10(KV40) 作为 Y、K = 5 和 L= 4 的 0.77 相比。我还尝试了新的 Torch 深度学习插件(可通过请求获得JMP 早期采用者)并且经过一点调整,我通过 5 倍交叉验证获得了相似的结果(如果不是更好的话)。
一般来说,JMP 中的 Neural、Torch、XGBoost 和其他平台对于 QSAR 预测建模非常有价值。
回复:K 折交叉验证对于小数据集有多好?是的,K = N 产生“留一”交叉验证。
回复:K 折交叉验证对于小数据集有多好?我刚刚想通了这一点...
烹饪:将鸡蛋拌入混合物中
地质学:地幔的强烈褶皱
生意:俱乐部一年后倒闭
运动:跑步者在一英里后折叠
牌:知道何时弃牌
地理:该镇位于山丘之中
网页设计:首屏文本不需要滚动
变化:事故增加10倍
纸:折纸折成鸭子
成语: 双手合十
农业:把羊放在羊圈里
一定是农耕版! 就是笔的意思! 数据被分为 K 笔/子集/折叠。
回复:K 折交叉验证对于小数据集有多好?哇! 这对我来说非常令人惊讶,因为 K 折交叉验证的想法取决于将数据集划分为 K 折,其中 K-1 用于训练,1 - 用于验证。 不过,我可能会感到困惑。 从你的帖子来看,这种策略更多地归因于“离开”,不是吗?回复:K 折交叉验证对于小数据集有多好?通过交叉验证进行诚实评估通常通过以下三种方式之一来实现:保留集合(训练、验证、测试)、k 折或留出一组。 使用 k = N(样本大小)是使用 k 倍 CV 来实现最后一种方法的一种方法。
回复:K 折交叉验证对于小数据集有多好?你好! 我可以问你为什么 k = 154 用于交叉验证吗?
通常,我根据数据集为 k 设置 5(20% 用于验证),尽管它们对于正常的训练-验证-测试来说都足够小。
谢谢!
将来,JMP Pro 希望在以这种方式处理数据时实现一个可视化折叠分布的选项。
回复:K 折交叉验证对于小数据集有多好?过度拟合是令人担忧的问题,但我的陈述的原因是基于“诚实评估”的整个方案。 人们使用一些数据来训练模型,并分离全新的数据来验证或选择模型(两个保留集)。 这种方法是有效的,但仍然仅限于通过学习和选择已经看到的数据。 它不能说明新数据的概括。 需要新的数据来测试模型的选择。 该数据可以是第三保留集或未来数据。 等待未来数据的风险取决于具体情况,因此如果有大量数据可用,则首选第三个保留集。
回复:K 折交叉验证对于小数据集有多好?@马克贝利当您提到“您已使用交叉验证来选择模型。 您将需要新数据来测试所选模型,看看训练是否可以推广到更大的人群。”
这是因为交叉验证往往会过度拟合吗?
回复:K 折交叉验证对于小数据集有多好?通过交叉验证对模型选择进行正确、诚实的评估总是有效的,但是只有当您拥有大量数据集时,使用保留集进行验证和测试才实用且有益。(即使有大量数据,也存在稀有目标的问题集。)这就是发明 K 折交叉验证的原因。 留一法只是将 K 次折叠发挥到极致。 我不认为 70:30 的方法在如此小的样本量下能很好地发挥作用。
您已使用交叉验证来选择模型。 您将需要新数据来测试所选模型,以查看训练是否适用于更大的人群。