准备训练数据

本页面介绍了如何准备表格数据,以便在 Vertex AI 中训练分类和回归模型。训练数据的质量会影响所创建的模型的效果。

具体涵盖以下主题:

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

默认情况下,Vertex AI 使用随机拆分算法将数据拆分为三个数据分块。Vertex AI 随机选择 80% 的数据行分配给训练集、10% 分配给验证集、10% 分配给测试集。或者,您可以使用手动拆分按时间排序拆分,但这需要您准备数据拆分列或时间列。详细了解数据拆分。

数据结构要求

您的训练数据必须符合以下基本要求:

要求类型 要求
大小 数据集不得超过 100 GB。
列数 数据集必须至少有 2 列,且不得超过 1,000 列。该数据集必须具有目标和至少一个特征,才能训练模型。理想情况下,您的训练数据应远超两列。 特征列和非特征列均会计入列数上限计数。
目标列 您必须指定目标列。目标列允许 Vertex AI 将训练数据与所需结果相关联。它不能包含 null 值,并且必须是“分类”或“数值”。如果是“分类”,则必须包含至少 2 个且不超过 500 个非重复值。
列名称格式 列名称可以包含任何字母数字字符或下划线 (_),但不能以下划线开头。
行数 数据集必须至少有 1,000 行且不得超过 1 亿行。根据数据集的特征数量,1,000 行可能不足以训练出高性能模型。了解详情
数据格式 您必须针对目标使用适当的数据格式(宽或窄)。宽格式通常是最好的,其中每行代表一个训练数据项(产品、人员等)。了解如何选择数据格式

准备导入源

您可以通过以下两种格式为 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 列。

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

后续步骤