在机器学习中,我们的主要任务是选择一个学习算法并将其在数据上训练,所以有可能效果不佳的两个地方在于:
- 算法不好
- 数据不好
我们先从数据不好开始看起。
训练数据的数量不够
如果是教一个小孩子认什么是苹果,指给他看一下苹果,可能要重复几次,然后这个小孩子就能够识别苹果了。但是对于机器学习而言,实现相同的效果则要难得多。
机器学习算法需要大量的数据来完成任务。
即使是简单的任务,也需要大量的样本,对于复杂的问题,比如图片和语音识别则可能需要百万级别的样本。
对于复杂问题,数据要比算法重要得多,但是通常数据集都是小型的,或者中等大小的数据集,获取额外的数据并不便宜,也不简单。
训练数据的表征性不够
为了使得模型泛化足够好,训练数据要包含泛化到新数据的特征。如果用的训练集表征性不够,那么训练得到的模型就不太可能得到精确的预测值。但这个要求其实很高。
一方面,如果数据样本太小,则很容易受样本噪音的影响;另一方面,即使是样本数量足够大,如果采样方法不够好,也得不到具有表征性的样本数据。这个问题被称作采样偏差。
简言之,在训练时看到的数据要能够代表数据背后的模式。就像考试一样,平时训练的题目不太可能和考试题目一样,但是知识点是一样的。如果训练题没有覆盖到考试的知识点,恐怕考试就得临场发挥了。
训练数据的质量不够
这个比较明显,如果你的训练数据充满