模型评估是机器学习的“体检报告”——没有评估,就无法知道模型在真实世界中的表现。就像学生不能只靠课堂小测,还需要期末考试、综合测评一样,机器学习模型也需要多维度的评估来验证其泛化能力。
评估不是简单看一个数字,而是围绕三个核心问题:
| 目标维度 | 说明 | 典型指标 |
|---|---|---|
| 泛化能力 | 模型在未见过的数据上的表现,避免过拟合 | 验证集准确率、交叉验证得分 |
| 鲁棒性 | 对噪声、异常值、分布偏移的容忍度 | 对抗测试、置信区间 |
| 可解释性 | 不仅知道“是什么”,还要知道“为什么” | 特征重要性、SHAP值 |
| 公平性 | 不同群体间表现一致,无偏见 | 均等化几率、人口均等 |
评估体系就像一面多棱镜,从不同角度照亮模型的能力与缺陷。
想象你要画一条线来区分红蓝小球:
利用学习曲线快速判断拟合状态:
# 学习曲线示例 (过拟合 vs 欠拟合) from sklearn.model_selection import learning_curve import matplotlib.pyplot as plt train_sizes, train_scores, test_scores = learning_curve( model, X, y, cv=5, train_sizes=[0.2, 0.4, 0.6, 0.8, 1.0] ) # 计算均值与标准差 train_mean = train_scores.mean(axis=1) test_mean = test_scores.mean(axis=1) # 如果训练得分极高(>0.98)而测试得分低 → 过拟合 # 如果两者都低 → 欠拟合 print(f"训练得分: {train_mean[-1]:.3f}, 测试得分: {test_mean[-1]:.3f}")