模型评估方法
一. 模型泛化能力
-
模型泛化能力 指模型对于未知数据的预测能力, 是模型最重要的性质,泛化误差越小,模型预测效果越好;
-
利用最小化训练误差来训练模型,但是真正关心的是测试误差。因此通过测试误差来评估模型的泛化能力。
-
训练误差是模型在训练集的平均损失,其大小虽然有意义,但是本质上不重要。
-
测试误差是模型在测试集上的平均损失,反应了模型对未知测试数据集的预测能力。
-
二. 过拟合、欠拟合
- 过拟合:选择的模型包含的参数过多,以至于该模型对于已知数据预测得很好,但是对于未知数据预测的很差,使得训练误差和测试误差之间的差距太大。
- 过拟合原因:将训练样本本身的一些特点当作了所有潜在样本都具有的一般性质,这会造成泛化能力下降。
- 过拟合无法避免,只能缓解。
- 欠拟合:选择的模型包含的参数太少,以至于该模型对已知数据都预测的很差,使得训练误差较大。
- 欠拟合的原因一般是学习能力低下造成的。
三. 过拟合缓解方法
-
缓解过拟合的策略:
- 正则化:过拟合的原因是模型的容量过大,而正则化可以对模型施加某些限制,从而降低模型的有效容量。
- 数据集增强:通过人工规则产生虚假数据来创造更多的训练数据。
- 噪声注入:包括输入噪声注入、输出噪声注入、权重噪声注入。将噪声分别注入到输入/输出/权重参数中。
- 早停:当验证集上的误差没有进一步改善时,算法提前终止。
-
正则化 :基于结构化风险最小化(
SRM
)策略的实现,其中J(f) 为正则化项。在不同的问题中,正则化项可以有不同的形式:
- 回归问题中,损失函数是平方损失,正则化项是参数向量的 范数。
- 贝叶斯估计中,正则化项对应于模型的先验概率 。
四. 欠拟合缓解方法
- 选择模型容量更大的模型。
五. 模型泛化能力的评估方法
1. 留出法:
1)对数据进行随机划分为3部分,分别作为训练集、测试集和验证集,为了保证训练集、测试集与验证集样本的相似性,通常采用分层抽样的方法对数据进行划分。
2)用留出法进行模型评估一般取多次评估结果的均值作为最终的模型评估的结果。
**2. k折交叉验证 **
1)数据随机划分为K
个互不相交且大小相同的子集,利用 K-1
个子集数据训练模型,利用余下的一个子集测试模型。
2)对 K
种组合依次重复进行,获取测试误差的均值,将这个均值作为泛化误差的估计。
3)与留出法相似,将数据集划分为 K
个子集同样存在多种划分方式。为了减少因为样本划分不同而引入的差别, K
折交叉验证通常需要随机使用不同划分重复p
次,这 p
次 K
折交叉验证的测试误差均值作为最终的泛化误差的估计。
3. 留一法
1)留一法:假设数据集中存在 N
个样本,令 k=N-1
则得到了 K
折交叉验证的一个特例。
2)优点:由于训练集与初始数据集相比仅仅少一个样本,因此留一法的训练数据最多。
缺点:在数据集比较大时,训练 N
个模型的计算量太大,所以留一法一般适合小样本模型评估。
六. 训练集、验证集、测试集说明
1. 训练集
1)训练集是用来训练模型的,一般来说,训练集越大,训练出来的模型泛化能力越强。
2. 验证集
1)验证集用来更新模型的超参数。
2)通常要求验证集足够大。如果验证集很小,那么模型的超参数可能就记住了一个小验证集里的样本,模型将对验证集严重过拟合。
3. 测试集
1)验证集通常会低估泛化误差。因此当超参数优化完成后,需要通过测试集来估计泛化误差。
2)测试集用于评估模型的泛化误差。理论上测试集越大,则模型的泛化误差评估的越准确。
3)测试集中的样本一定不能是训练样本。如果将训练样本放入测试集中,则会低估泛化误差。
4)测试集 vs 验证集:
-
测试集通常用于对模型的预测能力进行评估,它提供了模型预测能力的无偏估计。
如果你不需要对模型预测能力的无偏估计,则不需要测试集。
-
验证集用于超参数的选择,它无法提供模型预测能力的有偏估计。
因为模型依赖于超参数,而超参数依赖于验证集。因此验证集参与了模型的构建,这意味着模型已经考虑了验证集的信息。
七. 分类问题性能度量方法
1. 准确率、错误率
1)测试集上的准确率:
PR = 预测正确的样本数量 / 测试集上总样本量
2)测试集上的错误率:
PE = 预测错误的样本数量 / 测试集上的总样本量
2. 查准率、查全率
分类结果的混淆矩阵如下:
预测:正类 | 预测:反类 | |
---|---|---|
真实:正类 | TP | FN |
真实:反类 | FP | TN |
查准率 = TP / (TP + FP)
查全率 = TP / (TP + FN)
3. P-R曲线
P-R曲线 以召回率Recall为横轴, 准确率Precision为纵轴绘制的图形。
4. F1值
F1 = 2PR / (P + R)