机器学习解决问题时的必要关注点
机器学习固然是当今解决众多任务的有效方法,但实际使用这个方法时依然需要注意几个问题:
1 数据方面
1.1 训练数据量
需要大量数据,才能让多数机器学习算法正常工作。即便对于非常简单的问题,一般也需要数千的样本,对于复杂的问题,比如图像或语音识别,可能需要数百万的样本。特别是在深度学习中,数据在很大程度上决定了算法的表现。
1.2 数据分布情况
用于训练的数据需要在很大程度上能够反映真实情况,即要有代表性。达到这个要求需要注意:如果样本太小,就会有样本噪声(即有一定概率包含没有代表性的数据),但是即使是非常多的样本也可能没有代表性。如果取样手段错误的话,称为样本偏差。
1.3 数据质量
即使数据量足够,并且具有代表性,但如果数据质量不高,那么这些数据依然称不上好的数据。一旦训练数据中的错误、异常值和噪声(错误测量导致)太多,系统检测出潜在规律的难度就会变大,性能就会降低。
1.4 特征工程
系统只有在训练数据包含足够相关特征、少量非相关特征的情况下,才能进行有效的学习。机器学习成功的关键之一就是是用好的特征进行训练。为了得到好的特征所做的工作称为特征工程,具体涉及以下几项工作:
1 特征选择:在所有存在的特征中选取最有用的特征进行训练。
2 特征提取:组合存在的特征,生成一个更有用的特征(如前面看到的,可以使用降维算法)。
3 收集新数据创建新特征。
2 算法方面
2.1 过拟合
模型在训练数据上表现很好,但是推广效果不好。通俗的解释就是模型将数据中的一些噪声以及错误也学习了,有时也因为选择的模型过于复杂,拟合能力太强。
可以考虑以下解决方案:
1 简化模型,可以通过选择一个参数更少的模型(比如使用线性模型,而不是高阶多项式模型)、减少训练数据的属性数、或限制一下模型
2 收集更多的训练数据
3 减小训练数据的噪声(比如,修改数据错误和去除异常值)
限定一个模型以让它更简单被称作正则化(regularization),正则化的度可以用一个超参数(hyperparameter)控制。超参数是一个学习算法的参数(而不是模型的)。它是不会被学习算法本身影响,在训练中保持不变。调节超参数是构建优良的机器学习模型中非常重要的一部分。
2.2 欠拟合
与过拟合相对,欠拟合就是对训练数据缺乏足够的拟合能力,以至于只学习了数据中很少的规律与知识,甚至根本没有学到。
可以考虑以下解决方案:
1 选择一个更强大的模型,带有更多参数
2 用更好的特征训练学习算法(特征工程)
3 减小对模型的限制(比如,减小正则化超参数)
3 检验模型
关于模型检验可以参考“机器学习与数据挖掘”专题下的“k折交叉验证”一文。
声明:本文部分内容源于《Sklearn与TensorFlow机器学习实用指南》一书。
作者: pythonfl
出处: http://www.cnblogs.com/pythonfl/
本文版权归作者和博客园共有,转载时请标明出处;如有疑问,欢迎联系fangleiecust@163.com;如发现文中内容侵犯到您的权利,请联系作者予以处理。