广漠之野

《图解机器学习》第二章

机器学习用于预测,不同的机器学习方法的预测准确性我们需要评估,为了评估我们把数据分成训练集和测试集。训练集用于训练并拟合规律(生成一条公式),然后用测试集来测试一下这个规律是否可靠。

我们手里一堆身体体重数据,如何划分训练集和测试集。笨方法当然是穷举了(学名交叉验证)。随机把数据分成3组,每一组都轮流当一次测试集合,这叫做3折法。还有分成10组的叫做10折法。

还有一种更极端的穷举规则——留一法。抽离出来一个数据当作测试集,其他全部用作训练,然后把所有的数据一个个都当一遍测试集。如果有5000个人的身高体重数据,那么每一个人都当一次测试集,一共5000次。计算机计算不费力,大力出奇迹。

数据很多的时候可以使用10折法,数据很少可以使用留一法。

通过以上方法逐个测试,基本上排除了因为数据划分不合理这个变量对效果的影响。那么展现出来的就是这个机器学习这个库本身的能力如何。

有一个坑需要避免,训练和测试的数据必须完全隔离,一旦两者数据有重合,那么就失去预测意义。我都知道明天的天气了,还预测明天的天气干什么。这样训练出来的规律是“偷窥未来”导致的,这样的规律没有实际的预测意义,因为现实中我不能“偷窥未来”。