准备训练数据

本页面介绍如何准备表格数据以用于训练预测模型。

具体涵盖以下主题:

  1. 数据结构要求
  2. 准备导入源
  3. 向训练数据添加权重

默认情况下,Vertex AI 使用按时间顺序拆分算法将预测数据拆分为三个数据集。或者,您可以使用手动拆分,但这需要准备数据拆分列。详细了解数据拆分。

数据结构要求

对于预测模型,训练数据必须符合以下基本要求:

要求类型 要求
大小 数据集不得超过 100 GB。
列数 数据集必须至少有 3 列,且不得超过 100 列。数据集中的每个观察结果都必须具有目标和时间,两者都充当特征。此外,每个观察结果必须具有一个时序 ID,用于标识观察结果所属的时序。理想情况下,您的训练数据应远超 3 列。特征列和非特征列均会计入列数上限计数。
目标列 您必须指定目标列。目标列允许 Vertex AI 将训练数据与所需结果相关联。不得包含 null 值,必须为数值。
时间列 必须指定一个时间列,并且每行都必须有一个值。时间列表示进行给定观察的时间。
时序标识符列 必须指定一个时序标识符列,并且每行必须包含一个值。预测训练数据通常包含多个时序,标识符可让 Vertex AI 了解训练数据中给定观察结果属于哪个时序。给定时序中的所有行在时序标识符列中具有相同的值。一些常见的时序标识符可能是商品 ID、商店 ID 或区域。您可以在单个时序上训练预测模型,并且时序标识符列中的所有行都具有相同的值。但是,Vertex AI 更适合包含两个或更多时序的训练数据。为获得最佳结果,请对用于训练模型的每一列至少使用 10 个时序。
列名称格式 列名称可以包含任何字母数字字符或下划线 (_),但不能以下划线开头。
行数 数据集必须至少有 1,000 行且不得超过 1 亿行。根据数据集的特征数量,1,000 行可能不足以训练出高性能模型。了解详情
数据格式 使用窄(有时称为长)数据格式。在窄格式中,每行代表一个特定时间点的时间序列标识符指定的项,以及在该时间点该项的所有数据。了解如何选择数据格式
行之间的间隔 训练行之间的间隔必须一致。 这是您的数据粒度,它会影响模型的训练方式和预测结果的频率。了解如何选择数据粒度
时间序列长度 时序的长度不得超过 3000 个时间步骤。

准备导入源

您可以通过以下两种格式为 Vertex AI 提供模型训练数据:

  • BigQuery 表
  • 逗号分隔值 (CSV)

使用哪种来源取决于存储数据的方式以及数据的规模和复杂程度。如果您的数据集很小,而且您不需要更复杂的数据类型,则 CSV 可能更易于使用。对于包含数组和结构体的较大数据集,必须使用 BigQuery。

BigQuery

您的 BigQuery 表或视图必须符合 BigQuery 位置要求

如果您的 BigQuery 表或视图与要在其中创建 Vertex AI 数据集的项目位于不同的项目中,或者您的 BigQuery 表或视图由外部数据源提供支持,则您可能需要向 Vertex AI Service Agent 添加一个或多个角色。请参阅 BigQuery 的角色添加要求

您无需为 BigQuery 表格指定架构。导入数据时,Vertex AI 会自动推断表的架构。

您的 BigQuery URI(指定训练数据的位置)必须符合以下格式:

bq://<project_id>.<dataset_id>.<table_id>

URI 不能包含任何其他特殊字符。

如需了解 BigQuery 数据类型及其如何映射到 Vertex AI,请参阅 BigQuery 表。如需详细了解如何使用 BigQuery 外部数据源,请参阅外部数据源简介

CSV

CSV 文件可以位于 Cloud Storage 中,也可以位于本地机器。它们必须符合以下要求:

  • 第一个文件的第一行必须是包含列名称的标题。如果后续文件的第一行与标题相同,也会被视为标题,否则将视作数据。
  • 列名称可以包含任何字母数字字符或下划线 (_)。但不能以下划线开头。
  • 每个文件不得超过 10 GB。

    可以包含多个文件,但总大小不得超过 100 GB。

  • 分隔符必须是英文逗号(“,”)。

您无需为 CSV 数据指定架构。导入数据时,Vertex AI 会自动推断表的架构,并使用标题行作为列名称。

如需详细了解 CSV 文件格式和数据类型,请参阅 CSV 文件

如果要从 Cloud Storage 导入数据,必须将其存储在满足以下要求的存储分区中:

如果要从本地机器导入数据,则必须具有满足以下要求的 Cloud Storage 存储分区:

向训练数据添加权重

默认情况下,Vertex AI 会为训练数据的每一行分配相同的权重。在训练中每一行的权重都相同。

有时候,您可能希望某些行在训练中发挥更大的影响力。例如,如果您正在使用消费数据,您可能希望与支出更高的消费者关联的数据对模型产生更大的影响。如果您特别希望避免缺失某个特定结果,那么您可以为这一结果分配更大的权重。

您可以通过向数据集添加权重列来为行提供相对权重。权重列必须是数值列,权重值可以是 0-10000。值越大,则表示在训练模型时行越重要。权重为 0 的行会被忽略。如果您添加了权重列,则必须包含每一行的值。

稍后,在训练模型时,将此列指定为 Weight 列。

自定义加权方案仅用于训练模型,对用于模型评估的测试集并无影响。

后续步骤