模型评估与调优
评估指标告诉你模型"好不好",调优方法帮你让模型"更好"。
交叉验证
目的
- 更稳定地评估模型性能,降低单次训练-测试拆分带来的随机性
常用方法
- K-Fold 交叉验证:数据均分 K 份,轮流用 K-1 份训练、1 份验证
- Stratified K-Fold:分层抽样,保持每折类别比例一致(适合分类问题)
- Leave-One-Out(LOO):每次用 1 个样本做验证,适合小数据集
- Repeated K-Fold:多次重复 K-Fold,进一步降低随机性
分类模型评估
混淆矩阵(Confusion Matrix)
| 预测正类 | 预测负类 | |
|---|---|---|
| 实际正类 | TP(真正例) | FN(假负例) |
| 实际负类 | FP(假正例) | TN(真负例) |
核心指标
- 准确率(Accuracy)= (TP+TN)/(TP+TN+FP+FN)
- 精确率(Precision)= TP/(TP+FP)
- 召回率(Recall)= TP/(TP+FN)
- F1 Score = 2×(P×R)/(P+R)
- 特异度(Specificity)= TN/(TN+FP)
ROC 曲线与 AUC
- ROC:FPR(1-Specificity)为横轴,TPR(Recall)为纵轴的曲线
- AUC:ROC 曲线下面积,衡量模型排序能力
- AUC=0.5 随机猜测,AUC=1 完美模型
PR 曲线
- 精确率为纵轴、召回率为横轴的曲线
- 适用于不平衡数据集
回归模型评估
- MSE(均方误差)、RMSE、MAE、R²(决定系数)、Adjusted R²
过拟合与欠拟合
过拟合(Overfitting)
- 表现:训练集表现好,测试集表现差
- 原因:模型过于复杂、训练数据太少、噪声被学习
- 检测:训练/验证损失曲线差距大
欠拟合(Underfitting)
- 表现:训练集和测试集表现都差
- 原因:模型过于简单、特征不足
正则化(Regularization)
L1 正则化(Lasso)
- 损失函数 + λ∑|wᵢ|
- 效果:产生稀疏权重,自动特征选择
- 适用于特征维度高的场景
L2 正则化(Ridge)
- 损失函数 + λ∑wᵢ²
- 效果:权重均匀缩小,防止过拟合
- 适用于特征相关性强的场景
Elastic Net
- L1+L2 混合正则化,兼顾两者优势
超参数搜索
网格搜索(Grid Search)
- 枚举所有参数组合
- 穷举但计算量大
随机搜索(Random Search)
- 在参数空间中随机采样
- 比网格搜索更高效(Bergstra & Bengio, 2012)
贝叶斯优化
- 基于高斯过程建模参数-性能关系
- 有导向地探索参数空间
学习曲线
- 诊断过拟合/欠拟合的可视化工具