斯坦福CS229机器学习课程笔记:正则化与模型选择
引言
在机器学习实践中,我们经常面临一个重要问题:如何在多个候选模型中选择最优的那个?本文基于斯坦福大学CS229课程第五章节内容,深入探讨了正则化与模型选择这一核心主题,涵盖了交叉验证、特征选择以及贝叶斯统计方法等关键技术。
1. 交叉验证技术
1.1 简单交叉验证(保留交叉验证)
简单交叉验证是最基础的验证方法,其核心步骤是:
- 将训练集随机划分为两部分:70%作为训练子集(Strain),30%作为验证子集(Scv)
- 在训练子集上训练各候选模型
- 在验证子集上评估模型性能
- 选择验证误差最小的模型
优点:实现简单,计算效率高
缺点:浪费了部分训练数据(30%),在小数据集上尤为明显
1.2 k折交叉验证
为解决数据浪费问题,k折交叉验证采用更精细的策略:
- 将训练集随机划分为k个大小相等的子集
- 进行k轮训练和验证,每轮使用k-1个子集训练,剩下1个子集验证
- 计算k轮验证误差的平均值作为模型性能评估
- 选择平均误差最小的模型
典型设置:k=10
优势:充分利用数据,特别适合小规模数据集
1.3 留一法交叉验证
这是k折交叉验证的极端情况,其中k等于样本数m:
- 每次留出一个样本作为验证集
- 用其余m-1个样本训练模型
- 重复m次后取平均误差
适用场景:数据极其稀缺时
缺点:计算成本高,尤其在大数据集上
2. 特征选择方法
2.1 包装器方法
前向搜索算法
- 初始化空特征集F=∅
- 逐步添加最能提升模型性能的特征
- 直到达到预设特征数量或性能不再提升
后向搜索算法
- 初始化包含全部特征的特征集F
- 逐步移除对模型性能影响最小的特征
- 直到达到预设特征数量
特点:性能好但计算成本高,适合特征数适中的情况
2.2 过滤器方法
过滤器方法通过计算特征与目标变量的相关性来筛选特征:
- 计算每个特征xi与目标y的相关性得分S(i)
- 按得分排序选择Top-k特征
常用相关性度量:
- 互信息(Mutual Information):MI(xi,y) = ΣΣp(xi,y)log[p(xi,y)/p(xi)p(y)]
- KL散度:衡量联合分布p(xi,y)与边缘分布乘积p(xi)p(y)的差异
优势:计算效率高,适合高维特征空间
3. 贝叶斯统计与正则化
3.1 频率学派与贝叶斯学派对比
| 角度 | 频率学派 | 贝叶斯学派 | |------|---------|-----------| | 参数性质 | 未知常数 | 随机变量 | | 核心方法 | 最大似然估计 | 后验分布计算 | | 先验信息 | 不使用 | 使用先验分布 |
3.2 最大后验估计(MAP)
MAP估计在最大似然估计基础上引入了先验分布:
θ_MAP = argmaxθ Π p(y(i)|x(i),θ) p(θ)
常用先验:高斯分布θ∼N(0,τ²I)
效果:倾向于产生较小范数的参数,有助于防止过拟合
3.3 完全贝叶斯方法
理想情况下,预测应基于参数后验分布的平均:
p(y|x,S) = ∫p(y|x,θ)p(θ|S)dθ
实践挑战:高维积分难以解析求解,常采用近似方法
实践建议
- 数据量充足时:使用简单交叉验证
- 数据稀缺时:考虑k折或留一法交叉验证
- 高维特征空间:优先尝试过滤器方法
- 防止过拟合:考虑贝叶斯方法或引入正则化项
通过合理运用这些技术,我们可以在模型复杂度和泛化能力之间取得良好平衡,构建出更可靠的机器学习系统。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考