“乱码,下垃圾”
上述说法适用于机器学习。毕竟,模型的质量只有数据。但是,您如何衡量和改进数据集的质量呢?为获得实用的结果,您需要多少数据? 答案取决于您所解决的问题类型。
数据集的大小
一般而言,您的模型应使用比可训练参数至少多一个数量级的样本进行训练。大型数据集上的简单模型通常优于小型数据集上的精美模型。Google 已成功使用大型数据集训练简单的线性回归模型。
哪些内容会算作“大量”数据?具体取决于项目。考虑以下数据集的相对大小:
数据集 | 规模(样本数) |
---|---|
鸢尾花数据集 | 150(总计值) |
MovieLens(2000 万个数据集) | 20000263(总预算) |
Google Gmail 智能回复 | 2.38000000(训练集) |
Google 图书 Ngram | 4.680 亿 |
谷歌翻译 | 万亿 |
如您所见,数据集有多种大小。
数据集的质量
如果数据质量不高,使用很多数据是没用的;质量也很重要。但怎样才算是“质量”呢?是一个模糊的术语。 不妨考虑采用实证分析方法,并选择可产生最佳结果的选项。秉持这种理念,高质量数据集能让您成功解决您关注的业务问题。换言之,如果数据能完成其预期任务,即构成良好结果。
不过,在收集数据时,更具体地定义质量会很有帮助。质量的某些方面往往与性能更好的模型相对应:
- 可靠性
- 特征表示
- 最大限度减少偏差
可靠性
“可靠性”是指可信任数据的程度。 与基于不可靠数据训练的模型相比,基于可靠数据集训练的模型更有可能产生有用的预测。在衡量可靠性时,您必须确定:
- 标签错误有多常见?例如,如果您的数据带有人工标签,那么有时人就会犯错。
- 您的地图项有噪声吗?例如,GPS 测量结果会发生波动。 有一些噪声是没有问题的。您永远不会完全清除数据集中所有噪声。您还可以收集更多示例。
- 数据是否已根据您的问题进行了适当过滤?例如,您的数据集是否应包含来自聊天机器人的搜索查询?如果您正在构建垃圾内容检测系统,那么答案很可能是肯定的,但如果您要改进人工搜索结果,那就不可以。
哪些因素会导致数据不可靠?回想一下机器学习速成课程,由于以下一个或多个原因,数据集中的许多示例都是不可靠的:
- 省略的值。例如,有人忘记输入某个房子的年龄值。
- 示例重复。例如,服务器错误地上传同一日志两次。
- 标签有误。例如,有人错误地将一棵橡树的图片标记为枫树。
- 特征值错误。例如,有人输入了额外的数字,或者温度计被遗落在太阳底下。
Google 翻译注重选择可靠性的“最佳子集”,也就是说,某些数据的标签质量高于其他部分。
特征表示
回想一下机器学习速成课程,该表示法是将数据映射到实用特征。您需要考虑以下问题:
本课程的转换数据部分将重点介绍特征表示。
训练与预测
假设您获得了出色的离线效果。那么,在您的实时实验中,结果不会恢复。可能出现的情况
此问题表明了训练/供应偏差,即,在训练时和传送时,针对指标计算不同的结果。偏差的原因可能很细微,但会对结果造成致命影响。在预测时,请始终考虑模型可用的数据。在训练期间,请仅使用可在投放中使用的功能,并确保训练集能够代表您的服务流量。