数据集:数据特征

数据集是一系列 样本

许多数据集将数据存储在表(网格)中,例如, 逗号分隔值 (CSV),或者直接从电子表格或 数据库表。表是机器的直观输入格式 学习模型。 您可以将表格中的每一行想象成一个 将每列视为一个潜在的特征或标签。 也就是说,数据集也可以从其他格式衍生而来,包括 日志文件和协议缓冲区。

无论采用哪种格式,机器学习模型的性能都只取决于 训练数据。本部分将介绍关键数据特征。

数据类型

数据集可能包含多种数据类型, 不限于:

  • 数值数据,详见单独的 单位
  • 我们将使用单独的 单位
  • 包括单个字词和句子,一直到 整个文本文档
  • 多媒体(例如图片、视频和音频文件)
  • 来自其他机器学习系统的输出
  • 嵌入矢量: 我们会在后续单元中介绍

上述数据类型可以进一步细分。 本课程的后续单元 - 例如,“分类” 数据模块 - 详情 并对这些数据类型进一步分类。

数据数量

一般来说,您的模型应至少使用一个订单来训练, 数量级(或 2 个)的样本。不过, 通常,模型训练的样本数量通常远远超过这一数量。

利用大型数据集训练的模型, 功能 通常优于基于小型数据集训练的模型, 很多功能。 以前,Google 曾在 Google Cloud 上 大型数据集。

不同机器学习程序的不同数据集可能需要很大 不同数量的示例来构建有用模型。对于一些相对来说 几个简单的问题,添加几个示例可能就足够了。对于其他问题 10 万亿个样本可能不够。

如果您调整语言, 一个已经基于大量数据进行训练的现有模型, 架构相同

数据质量和可靠性

每个人都喜欢高质量而不是低质量,但质量非常模糊 这个概念可以用多种不同的方式进行定义。本课程定义了 质量

高质量的数据集有助于您的模型实现其目标。 数据集质量不佳会妨碍模型实现目标。

高质量的数据集通常也很可靠。 可靠性是指您的数据值得信赖的程度。 基于可靠数据集训练的模型更有可能产生实用信息 与使用不可靠数据训练的模型相比,更易预测。

衡量可靠性时,您必须确定:

  • 标签错误有多常见?例如,如果您的数据 您的人工审核者出错的频率如何?
  • 您的特征是否嘈杂?也就是说,将特征中的值 包含错误?实事求是 - 您不能完全清除数据集 所有噪声。有些噪声属于正常现象;例如,任何物体的 GPS 测量数据, 每周都会有小幅波动。
  • 数据是否针对您的问题进行了适当的过滤?例如: 您的数据集应包含来自聊天机器人的搜索查询吗?如果您 构建垃圾邮件检测系统,那么可能答案是肯定的。 不过,如果您想要为用户改进搜索结果,就不能这样。

以下是导致数据集中的数据不可靠的常见原因:

  • 省略的值。例如,用户忘记为 房龄。
  • 重复样本。例如,服务器错误地上传了 两次。
  • 错误的特征值。例如,有人输入了额外的数字,或 温度计被落在阳光下
  • 标签有误。例如,某人错误地为某张 就像枫树一样的橡树。
  • 数据错误部分。例如,某个特征非常可靠, 只不过有一天网络总是崩溃

我们建议使用自动化功能来标记不可靠的数据。例如: 定义或依赖于外部正式数据架构的单元测试 指定范围内的标记值。

完整示例与不完整示例

在理想情况下,每个样本都是完整的;也就是说,每个样本 每个特征的值。

图 1. 包含全部五个参数的
       功能。
图 1. 完整示例。

 

遗憾的是,现实世界中的示例往往是不完整的, 缺少一个特征值。

图 2. 包含五个值中的四个值的示例
            功能。有 1 个地图项标记为缺失。
图 2. 示例不完整。

 

请勿根据不完整的示例训练模型。修正或消除 执行以下任一操作,从而创建不完整的样本:

  • 删除不完整的示例。
  • Impute缺失值; 也就是说,将不完整的样本转换为完整的样本,提供 对缺失值的合理猜测。
图 3. 一个包含三个样本的数据集,其中两个是
            不完整的示例。有人打败了这两个未完成的
            样本。
图 3.正在从数据集中删除不完整的样本。

 

图 4. 一个包含三个样本的数据集,其中两个是
            包含缺失数据的不完整样本。某个实体(人类
            或填充软件)的估算值
            缺失的数据。
图 4. 为不完整的样本输入缺失值。

 

如果数据集包含足够完整示例来训练有用模型, 然后考虑删除不完整的样本。 同样,如果只有一个特征缺少大量数据, 一个特征可能对模型没有太大帮助,则考虑删除 从模型输入中选择该特征,并观察当前模型在训练中 移除。如果模型在不使用它时也可以正常运行,或几乎没有它,那就太棒了。 反之,如果您没有足够完整样本来训练有用的模型, 那么您可以考虑输入缺失值。

可以删除无用或多余的样本,但不要删除 重要示例。但遗憾的是,我们很难 无用和有用示例之间的界限。如果您无法确定 则可以考虑构建两个数据集:一个通过删除 另一个则以输入的方式进行。 然后,确定哪个数据集可以训练更好的模型。


<ph type="x-smartling-placeholder">

一种常见的算法是用平均值或中位数作为估算值。 因此,当您用 Z-scores,则 估算值通常为 0(因为 0 通常是平均 Z 分数)。

练习:检查您的理解情况

以下是按 Timestamp 排序的数据集的两列。

时间戳 温度
2023 年 6 月 8 日 09:00 12
2023 年 6 月 8 日 10:00 18
2023 年 6 月 8 日 11:00 缺失
2023 年 6 月 8 日 12:00 24
2023 年 6 月 8 日 13:00 38

下面哪一项是应估计的合理值 Temperature(温度)的缺失值?

23
很有可能。23 是相邻值(12、18、24 和 38)的平均值。 不过,我们没有看到数据集的其余部分, 在其他日子 11:00,23 是离群值
31
不太可能。数据集中我们能看到的部分有限,这表明 对于 11:00 温度而言,31 太高了。不过, 我们不能确定大量的 示例。
51
完全不可能。51 远高于显示的任何值 (因此,远高于平均值)。