评估方法
- 在我们训练好模型后需要测试模型的能力,这时候就需要测试集(测试数据)。然而我们只能拥有一定的数据,那我们如何获得测试集呢?
- 首先:测试集应与训练集互斥。
- 常见的获取测试集的方法:
- 留出法
- 交叉验证法
- 自主法
留出法
- 用100个数据训练出来的模型,记为M100,测试产生的误差记为err100。100个数据中,选80个用于训练模型,训练处的模型记为M100,用20个数据测试产生的误差近似err80。
- 在训练时,我们采用M80逼近M100,当训练数据越大时模型越准确;采用err80逼近err100,当测试数据越大时模型越准确。故而,机器学习中不可调和的矛盾。
- 在训练时我们只是在选择模型,在选择好模型L1后,再将100个数据全部用L1训练后,提交给用户。
k-折交叉验证法
- 留出法存在的问题:
- 我们随机划分训练、测试集,那么存在某些数据始终没有出现在训练、测试集中。但在实际问题中,可能这没有用上的数据就是很重要的问题。
- 为解决留出法的这个问题,故而提出了k-折交叉验证法。
- 分析上图所示的10-折交叉验证:①数据集为100,将数据划分为10份。②每次将其中9份数据作为训练集,将余下1份数据作为测试集。③依次测试10次,得到10次测试结果。
- 一般地数据的划分可能会导致结果的偏差,因此将数据的划分也随机做10次。这就是10*10的交叉验证。
自助法
- 分析上图,①用10个数据作为数据集,每次有放回地取1个数据。②训练数据始终是10。③将没有取到的数据作为测试集。
- 自助法
- 优点:训练集与原样本集通规模。
- 缺点:数据分布有改变。(例如:每次随机取一个球得到的训练集,会存在有的球出现多次,有的球不出现。其实得到的训练集,与原来的数据集的数据分布不同。)
- 自助法的适合应用场景
- 数据量少
- 数据分布不太重要
以上就是本文的全部内容,感谢各位的阅读与支持!