在探索机器学习模型的开发过程中,可能会遇到一系列挑战,这些挑战可能会阻碍获得准确的预测结果。本文将讨论在开发阶段可能遇到的问题,包括选择学习算法和训练数据时可能遇到的问题,如不合适的算法或不良数据,或者两者兼有。
- 数据量不足
- 数据质量问题
- 不相关特征
- 非代表性训练数据
- 过拟合和欠拟合
就像教孩子识别苹果一样,只需要反复指向苹果并说出“苹果”这个词,孩子就能识别出各种苹果。然而,机器学习算法尚未达到这种水平;大多数算法需要大量的数据才能正常工作。对于简单的任务,需要数千个样本才能有所作为,而对于高级任务,如图像或语音识别,可能需要数百万的样本。
显然,如果训练数据中存在大量错误、异常值和噪声,机器学习模型将无法检测到正确的底层模式,因此表现不佳。因此,要投入每一分努力
来清理训练数据。无论在选择和超参数调整模型方面有多出色,这部分在帮助制作准确的机器学习模型中起着主要作用。“大多数数据科学家花费大量时间在数据清理上”。
“垃圾进,垃圾出(GIGO)”。在上图中,可以看到,即使模型是“极好的”,并且用垃圾数据喂养它,结果也将是垃圾(输出)。训练数据必须始终包含更多相关和几乎没有不相关的特征。成功的机器学习项目归功于提出一组好的训练特征(通常称为特征工程),包括特征选择、提取和创建新特征,这些是未来博客文章中将要涵盖的其他有趣主题。
为了确保模型泛化良好,必须确保训练数据应该代表想要泛化的新案例。如果使用非代表性的训练集来训练模型,它在预测中将不准确,将对某个类别或群体产生偏见。例如,假设正在尝试构建一个识别音乐流派的模型。构建训练集的一种方法是在YouTube上搜索并使用结果数据。在这里,假设YouTube的搜索引擎提供了代表性的数据,但实际上,搜索将偏向于流行艺术家,甚至可能是在所在地区流行的艺术家(如果住在印度,将获得Arijit Singh、Sonu Nigam等的音乐)。
什么是过拟合?让从一个例子开始,假设有一天在街上走着买东西,一只狗突然出现,给它一些东西吃,但它没有吃,而是开始叫并追,但不知何故是安全的。在这次特殊事件之后,可能会认为所有的狗都不值得善待。这种过度泛化
是人类经常做的事情,不幸的是,如果不注意,机器学习模型也会做同样的事情。在机器学习中,称这为过拟合,即模型在训练数据上表现良好,但泛化不佳。过拟合发生在模型过于复杂时。
可以做些什么来克服这个问题:通过选择参数较少的模型来简化模型。通过减少训练数据中的属性数量。限制模型。收集更多的训练数据。减少噪声。
什么是欠拟合?猜对了,欠拟合就是过拟合的反面。当模型太简单,无法从数据中学习时,就会发生这种情况。例如,在具有多重共线性的数据集上使用线性模型,它肯定会欠拟合,而且训练集上的预测也注定不准确。
可以做些什么来克服这个问题:选择一个更先进的模型,一个参数更多的模型。在更好和更相关的特征上训练。减少限制。
机器学习是关于使用数据使机器变得更好,这样就不需要明确地编码它们。如果训练数据量小、嘈杂且包含错误和异常值,或者数据不具代表性(导致偏见)、包含不相关特征(垃圾进,垃圾出),以及最后既不简单(导致欠拟合)也不复杂(导致过拟合),模型就不会表现良好。在考虑到上述参数后训练模型,不要指望模型会简单地泛化到新案例,可能需要评估和微调它
,如何做到这一点?请继续关注,这将是即将在博客中讨论的主题。