正则化过拟合与模型选择 - SpiralKernel/bioinfo-wiki-migrated GitHub Wiki

正则化过拟合与模型选择

更新:2026-10-26;状态:可用;验证范围:官方/原始来源核对;标准库教学算例已实跑;专业流程范围见正文。

特征多、供体少时,模型可以把训练噪声拟合得很好,却对新样本不稳定。正则化通过限制系数或函数复杂度降低这种不稳定,但会引入偏差;模型选择还必须与评价分开。本页目标是能从一个一维目标函数算出收缩,区分岭、LASSO与elastic net,并识别lambda尺度和特征缩放造成的不可比。

先分清三个误差

训练误差衡量拟合已见记录;验证误差用于选择超参数;最终测试误差评价冻结流程在目标新数据上的表现。增加变量或降低惩罚通常可改善训练拟合,但不保证后两者改善。高维组学中,搜索过很多特征集和算法本身也是模型复杂度的一部分。

偏差—方差取舍不是“有偏就错”。适当收缩可以牺牲一点训练拟合,换取对抽样扰动较小的预测变化。是否有帮助仍需与同一划分上的基线比较,不能以系数更小或图更平滑当作独立验证。

岭回归的目标函数与手算

先对数据中心化、单独处理不惩罚截距。一种约定为 $\min_a{|y-Xa|^2+\lambda|a|_2^2}$,解满足 $(X^TX+\lambda I)\hat a=X^Ty$。lambda大时惩罚强;软件若将平方损失除以n或2,数值lambda必须相应换算。

取x=(−1,0,1)、y=(−2,0,2),x'x=2、x'y=4。无惩罚系数2;lambda=2时为4/(2+2)=1;lambda=20时为4/22≈0.181818。训练残差随收缩增加,但这三个数本身没有告诉我们哪一个测试误差最低。

多变量岭通常连续收缩相关特征,而不强制精确为0;特征尺度会影响惩罚。一列从米换成毫米而未相应缩放,系数单位改变,惩罚的相对强度也改变。标准化参数只能在适当训练范围拟合,候选保持同一转换。官方线性模型定义

LASSO与elastic net为何不同

采用 $\tfrac12|y-Xa|^2+\lambda|a|_1$ 时,一维解是 $\operatorname{soft}(x^Ty,\lambda)/(x^Tx)$,soft把绝对值缩小lambda、跨零后置0。上例lambda=1得(4−1)/2=1.5。这里平方损失有1/2,不能直接用它与前面岭的lambda=1当作同等惩罚。

LASSO可产生稀疏解,但高度相关标记可能替代彼此,入选列表对抽样不稳定;非零并不自动表示因果。Elastic net混合L1与L2,例如 $(1/2n)|y-Xa|^2+\alpha\rho|a|_1+\alpha(1-\rho)|a|_2^2/2$;αρ与α(1−ρ)分别控制两部分,ρ范围[0,1]。不同接口的alpha/lambda命名需查具体目标函数。

超参数如何选才可评价

先确定外层部署划分,在训练内部完成缩放、缺失处理、特征选择与lambda/混合比例搜索。使用对数尺度网格可覆盖从弱到强收缩,但边界最优要检查是否搜索范围不足。若用一标准误差等保守规则,也要预先说明,不能只在看到外层结果后改规则。

冻结选中流程,再在外层或最终独立集评价。算法比较应共用同一外层样本,报告误差与稳定性而非只报最优训练R²;类别不平衡还需相应指标。全部步骤见数据泄漏与交叉验证。

与GS及推断的边界

GBLUP与rrBLUP原理及实现中的标记岭与个体BLUP在匹配缩放下等价,不意味着任意两个软件的默认lambda一样。REML估方差比与内层验证选惩罚优化目标不同;贝叶斯收缩后验均值也不能直接当LASSO众数。

经过筛选和惩罚的系数不应套用未经选择的普通OLS P值。若目标是因果或无偏效应估计,需要另外的设计与推断方案;预测中的稀疏和泛化改善并不提供这种保证。模型选择时还应保留候选网格、选中原因、转换参数和测试预测,确保下一批样本可复现。

动手:运行后先对照什么

在下载项目的根目录执行;只需Python 3标准库,不安装专业统计包:

python3 examples/methods_genetics_demo.py --case regularization

输出岭系数lambda=0/2/20时分别2、1、0.181818;另一个损失约定下,LASSO lambda=1得1.5。先对照损失前的1/2,避免直接比较同名lambda。

该分支只算一维闭式解,不执行高维LASSO/elastic net优化、交叉验证或正式选择后推断。没有测试集数据,因此不能从系数判断泛化最优惩罚。

命令只向终端打印JSON。若要保存所有22个小例,可用python3 examples/methods_genetics_demo.py --output examples/output/methods-genetics-practice1;目录必须新建或为空,已有结果不会被覆盖。源代码见标准库方法算例。

排错:先定位原因再改参数

症状 可能原因 下一步检查
两软件同lambda却不同解 损失常数、标准化或截距惩罚不同 逐项比较目标函数和输入转换
LASSO入选基因经常换 强相关特征相互替代 查看重采样稳定性与组内相关
训练分数好、测试很差 弱惩罚、搜索过多或泄漏 训练内调参并固定独立评价

自测与答案

  1. 更强惩罚总能提高测试分数吗? 不能,过强会欠拟合;需要适合目标的独立评价。

  2. LASSO选中的非零标记一定是因果点吗? 不一定,它可能是相关代理,且选择依赖数据和惩罚。

原有实践与延伸入口

点估计偏差方差与一致性;scikit-learn线性模型指南。

学习顺序、前置与练习清单见方法与算法系统学习指南。

公式里的矩阵、下标或对数不熟时,可回查读懂方法公式的最小数学基础。