模型评估和选择
可用模型很多:不同的算法产生不同的模型,相同的算法用不同的参数也产生不同的模型。
怎么选?使用训练误差最小的那个模型?显然不行,过拟合问题。
模型选择涉及两个问题:一是评估方案的实验设计问题,这方面主要是如何从已有数据中分离出测试数据集,二是评估度量问题,即各种指标,诸如RMSE,精度等。
理想方案:选择一个泛化误差最小的模型。
问题:无法获得未知的新样本,无法直接得到泛化误差
解决方案:设计实验,使用测试集
使用测试集,用测试集上的误差来作为泛化误差的近似
假设测试集是所有样本的独立同分布
准备测试集的注意事项:
要与训练集互斥,测试数据不要再训练数据中出现过
为什么?老师出了10道题目给学生练习,为了考察学生的掌握程度,考试的时候还要这个10到题目吗?
实际应用中,模型的选择不仅要考虑误差,还要考虑计算时间、空间开销和可解释性等多方面的问题。
测试集的产生方法
留出法:需要注意的三个问题:
1. 保持训练集和测试集分布一致性:采用分层抽样
2. 训练/测试集划分有不同的方式,可用多次划分,取测试集误差平均值作为泛化误差
3. 测试集划分的不能太多,太多导致训练数据太少,训练模型不可靠(偏差大);测试数据划分的太少也不行,太少导致评估结果不可靠(方差大),常用1/3或1/5作为测试数据
交叉验证
自助法:对m个样本数据,有放回的进行抽样,抽取m个样本当作训练数据,没有被抽到的样本当作测试数据。适用于数据量比较小的时候。