AutoML Tables 新手指南

简介

假设您在一家数字零售商的营销部门工作。您和您的团队正在根据客户角色创建个性化的电子邮件程序。您已经创建了角色,营销电子邮件也已准备就绪。现在,您需要创建一个系统,根据客户的零售偏好和消费行为将他们划分为不同角色,对于新客户,也是如此。您还希望预测他们的消费习惯,从而确定发送电子邮件的最佳时机,最大限度地增加客户互动。

示例图片:客户被分类到各类别中

因为您是一家数字零售商,所以您拥有关于客户以及他们的消费历史记录的相关数据。但新客户呢?传统方法能够为具有较长消费历史的现有客户计算这些值,但面对历史数据很少的客户时则表现不佳。如果能创建一个系统来预测这些值,加快对客户开展个性化营销的速度该有多好?

幸运的是,机器学习和 AutoML Tables 可以很好地解决这些问题。本指南将逐步介绍 AutoML Tables 的工作原理以及它旨在解决的问题类型。

AutoML Tables 的工作原理

简单神经网络的图形表示 AutoML Tables 是一种监管式学习服务。这表示您可以使用样本数据来训练机器学习模型。AutoML Tables 使用表式(结构化)数据来训练机器学习模型,以便利用新数据进行预测。数据集中的一列(称为目标)是您的模型将学习预测的内容。其他一些数据列是模型将从中学习模式的输入(称为特征)。只需更改目标,即可使用同一些输入特征构建多种模型。在电子邮件营销的示例中,这意味着您可以利用同一些输入特征构建两个模型:一个模型预测客户的角色(分类目标),另一个预测客户的每月支出(数值目标)。

表式数据

AutoML Tables 工作流

AutoML Tables 使用标准的机器学习工作流:

  1. 收集数据:根据您想要实现的结果,确定训练和测试模型所需的数据
  2. 准备数据:确保数据导入前后数据格式正确
  3. 训练:设置参数并构建模型
  4. 评估:审核模型指标
  5. 测试:使用测试数据测试您的模型
  6. 部署和预测:使您的模型可供使用

但是,在开始收集数据之前,您需要思考您要尝试解决的问题,从而了解您的数据要求。

考虑您的用例

起点和终点图片

从您的问题着手:您想要实现什么结果?目标列是什么类型的数据?您可以访问多少数据?

根据您的答案,AutoML Tables 将创建必要的模型来解析您的用例:

  • 二元分类模型可预测二元结果(二者选一)。 该模型适合用于是非问题,例如预测客户是否会购买订阅。在其他条件相同的情况下,二元分类问题所需的数据比其他模型类型少。

  • 多类别分类模型可从三个或更多个互不关联的类别中预测一个类别,可用于对事物进行分类。对于零售示例,您需要构建一个多类别分类模型,以将客户细分为不同的角色。

  • 回归模型可预测连续值。对于零售示例,您还需要构建一个回归模型来预测客户下个月的支出。

AutoML Tables 将根据目标列的数据类型自动定义问题和要构建的模型。因此,如果目标列包含数值数据,则 AutoML Tables 将构建回归模型。如果目标列是分类数据,则 AutoML Tables 将检测类别的数量并确定需要构建二元分类模型还是多类别分类模型。

有关公平性的说明

公平性是 Google 的负责任的 AI 做法之一。 公平性目标旨在了解和防止算法系统或算法辅助决策中出现以不公正或有偏见的方式对待不同种族、收入、性取向、宗教、性别以及具有历史上受歧视和边缘化的其他特征的人群。阅读本指南时,您将看到“公平意识”说明,该说明详细介绍如何创建更公平的机器学习模型。 了解详情

收集数据

数据点图片 确定用例后,您需要收集数据来训练模型。 数据获取和准备是构建机器学习模型的关键步骤。您拥有的数据将会决定您可以解决哪类问题。 您有多少数据?您的数据是否与您尝试回答的问题相关?收集数据时,请牢记以下重要注意事项。

选择相关特征

特征是用于模型训练的输入属性。特征帮助模型识别模式以进行预测,因此它们需要与您的问题相关。例如,要构建一个预测信用卡交易是否属于欺诈的模型,您需要构建一个包含交易详细信息(如买方、卖方、金额、日期和时间以及购买的商品)的数据集。其他有用的特征包括买方和卖方的相关历史信息,以及购买的商品涉及欺诈的频率。还有哪些可能相关的其他特征?

我们来考虑一下简介中提到的零售商电子邮件营销用例。以下是您可能需要的一些特征列:

  • 购买的商品清单(包括品牌、类别、价格、折扣)
  • 购买的商品数量(前一天、过去一周、过去一个月、过去一年)
  • 消费金额(前一天、过去一周、过去一个月、过去一年)
  • 已知的购物者统计学特征概况

包括足够的数据

模型训练图片 一般而言,您拥有的训练样本越多,得到的结果就越好。所需示例数据的数量也会随着您尝试解决的问题的复杂性而增多。与多类别模型相比,要获得准确的二元分类模型,您并不需要那么多的数据,因为预测一个类别的复杂性要比预测多个类别要简单。

完美的公式是不存在的,但我们建议样本数据至少具有以下数量的行:

  • 分类问题:50 x 特征数量
  • 回归问题:200 x 特征数量

捕获多样性的变体

您的数据集应捕获问题空间的多样性。模型在训练过程中看到的样本越多样,就越容易对新的或较不常见的样本具备普适性。设想一下,如果您仅使用冬季的购买数据来训练模型,那么模型是否能够成功预测夏季服装偏好或购买行为?

准备数据

在确定可用数据后,您需要确保数据适合用于训练。如果您的数据存在偏差或包含缺失或错误的值,您的模型将在训练中反映这些问题。在开始训练模型之前,请注意以下事项。了解详情

防止数据泄漏和训练-应用偏差 (training-serving skew)

数据泄漏是指您在训练期间使用的输入特征“泄漏”了试图预测的目标的相关信息,而这类信息在应用模型时无从获得。要检测是否存在数据泄漏,您可检测是否有与目标列高度相关的特征被包括为输入特征之一。例如,如果您正在构建一个模型来预测客户是否将在下个月注册订阅,而其中一个输入特征是该客户的未来订阅付款情况。这会使模型在测试期间展现出超高的性能,但部署到生产环境中后却黯然失色,因为在应用模型时无法获得未来的订阅付款信息。

训练-应用偏差是指训练时使用的输入特征与在应用模型时提供给模型的输入特征不同,导致模型在生产环境中效果不佳。例如,建立一个模型来预测每小时的温度,但训练时使用的数据只包含每周的温度。另一个例子:对于预测学生辍学的模型,在训练数据中始终提供学生的分数,但在应用模型时却不提供此信息。

了解您的训练数据对于防止数据泄漏和训练-应用偏差非常重要:

  • 在使用任何数据之前,请确保您知道数据的含义以及是否应将其用作特征
  • 在“训练”标签页中检查相关性。应将高相关性数据标记出来,进行检查。
  • 训练-应用偏差:确保仅为模型提供在应用模型时以完全相同的形式提供的输入特征。

清理缺失、不完整和不一致的数据

样本数据中有缺失和不准确的值是很常见的。在将数据用于训练之前,请花些时间进行检查,并尽可能提高数据质量。缺失值越多,您的数据对训练机器学习模型的效用就越小。

  • 请检查您的数据是否存在缺失值。如果可能,请更正这些值;如果列设置为可以为 Null,则将这些值保留为空。AutoML Tables 可以处理缺失值,但如果所有值都可用,您更有可能获得最佳结果。

  • 通过更正或删除数据错误或干扰数据来清理数据。使数据保持一致:检查拼写、缩写和格式设置。

分析导入的数据

AutoML Tables 在导入数据集后提供关于该数据集的概览。 检查导入的数据集以确保每一列都具有正确的变量类型。 AutoML Tables 将根据列值自动检测变量类型,但您最好逐个检查。您还应该检查每列是否可为 Null,这一属性决定了列是否可以包含缺失值或 Null 值。

训练模型

导入数据集后,下一步是训练模型。AutoML Tables 使用默认设置也能生成可靠的机器学习模型,但建议您根据自己的用例调整一些参数。

选择尽可能多的特征列来进行训练,但要检查每列以确保其适合训练。在选择特征时,请牢记以下事项:

  • 不要选择会产生干扰数据的特征列,例如每行具有唯一值的随机分配的标识符列。
  • 确保您理解每个特征列及其值。
  • 如果要利用一个数据集创建多个模型,请移除不属于当前预测问题的目标列。
  • 回想一下公平原则:您训练模型使用的特征是否会导致对边缘群体的偏见或不公平决策?

AutoML Tables 如何使用您的数据集

您的数据集将被拆分为训练集、验证集和测试集。默认情况下,AutoML Tables 使用 80% 的数据进行训练,10% 用于验证,10% 用于测试,但您可以根据需要手动修改这些值。

表示训练、测试和验证拆分的图片

训练集

双筒望远镜图片 您的绝大部分数据都应该划分到训练集中。这是您的模型在训练期间“看到”的数据:它用于学习模型的参数,即神经网络节点之间连接的权重。

验证集

蓝图图片 验证集(有时也称为开发集)也用于训练过程。模型学习框架在训练过程的每次迭代期间吸纳了训练数据之后,会根据模型在验证集上的表现来调整模型的超参数,这些超参数是指定模型结构的变量。如果您尝试使用训练集来调整超参数,则很可能会导致模型过度关注训练数据,因而很难泛化到并非精确匹配的样本。使用在一定程度上的新数据集微调模型结构,意味着您的模型将会有更好的泛化效果。

测试集

烧瓶图片 测试集完全不参与训练过程。当模型完成全部训练后,AutoML Tables 会将测试集用作一项新挑战来测试模型。通过模型在测试集上的表现,您可以充分了解模型在使用真实数据时的表现。

评估模型

放大镜图片 模型训练结束后,您将收到其性能总结。模型评估指标根据模型针对数据集切片(测试数据集)的表现情况得出。在确定模型是否已准备好用于真实数据时,需要考虑一些关键指标和概念。

分类指标

分数阈值

考虑一个用于预测客户明年是否会购买夹克的机器学习模型。模型的确定程度需要有多高,才能做出给定客户将购买夹克的预测?在分类模型中,每个预测都分配有一个置信度分数,这个数值衡量模型在多大程度上确定预测的类别是正确的。分数阈值是确定给定分数何时转换为是或否决策的数字;也就是说,分数为该值时,您的模型表示“是的,这个置信度分数足够高,可以得出这个客户将在明年购买一件外套的结论。”

带有高阈值和低阈值的外套的图片

如果分数阈值较低,那么您的模型的分类可能会出错。 因此,分数阈值应根据给定用例来确定。

预测结果

应用分数阈值后,模型所做的预测可分为四类。要理解这些类别,我们再次假设一个夹克的二元分类模型。 在这个例子中,正类别(模型尝试预测的内容)是客户“会”在明年购买夹克。

  • 真正例:模型对正类别的预测正确。模型正确预测到顾客购买了夹克。
  • 假正例:模型对正类别的预测错误。模型预测客户会购买夹克,但他们没有。
  • 真负例:模型对负类别的预测正确。模型正确预测到客户没有购买夹克。
  • 假负例:模型对负类别的预测错误。模型预测客户不会购买夹克,但他们买了。

带有 4 个置信度类别说明的图片

精确率和召回率

精确率和召回率指标有助于您了解模型捕获信息的精准度以及遗漏的信息量。 详细了解精确率和召回率

  • 精确率是指正确预测的正类别所占的比例。 在所有客户购买的预测中,实际购买的比例占多少?
  • 召回率是模型正确预测的具有此标签的行所占的比例。在本可以识别的所有客户购买中,实际识别出的比例占多少?

根据您的用例,您可能需要针对精确率或召回率进行优化。

其他分类指标
  • AUC PR:精确率-召回率 (PR) 曲线下的面积。此值的范围在 0 到 1 之间,值越大表示模型质量越高。

  • AUC ROC:接收者操作特征 (ROC) 曲线下的面积。此值的范围在 0 到 1 之间,值越大表示模型质量越高。

  • 准确率:模型生成的正确分类预测所占的比例。

  • 对数损失:模型预测与目标值之间的交叉熵。此值的范围在零到无穷大之间,值越小表示模型质量越高。

  • F1 得分:精确率和召回率的调和平均数。如果您希望在精确率和召回率之间取得平衡,而类别分布又不均匀,F1 指标会非常有用。

回归指标

模型构建完成后,AutoML Tables 会提供各种标准回归指标供您查看。关于如何评估模型,并不存在完美的答案;您应该根据您的问题类型以及希望使用模型实现的目标来考虑评估指标。以下是您可以使用的一些指标的概览。

平均绝对误差 (MAE)

MAE 指的是目标值与预测值之间的平均绝对差。 它衡量的是一组预测中误差的平均大小,即目标值与预测值之间的差值。由于 MAE 使用的是绝对值,因此它不考虑关系的方向,也不能说明是性能不佳还是性能过高。评估 MAE 时,值越小表示模型质量越高(0 表示完美的预测模型)。

均方根误差 (RMSE)

RMSE 指的是目标值和预测值之间的平均平方差的平方根。RMSE 对离群值比 MAE 更敏感,因此如果您担心大的误差,那么 RMSE 可能是一个更有用的评估指标。 与 MAE 类似,值越小表示模型质量越高(0 表示完美的预测模型)。

均方根对数误差 (RMSLE)

RMSLE 进行对数转换后的 RMSE。RMSLE 对相对错误比对绝对错误更敏感,并且更关心性能不佳而不是性能过高的情况。

测试模型

评估模型指标是判断模型是否已准备好部署的主要方法,但您也可以使用新数据对其进行测试。您可以尝试上传新数据,看看模型的预测是否符合您的期望。根据评估指标或使用新数据进行测试的结果,您可能需要继续改进模型的性能。详细了解对模型进行问题排查

部署模型并进行预测

灯泡图片 如果对模型的性能感到满意,您就可以使用模型了。可能是生产规模的使用,也可能是一次性的预测请求。您可以根据用例的情况以不同方式使用模型。

批量预测

批量预测适合一次处理大量预测请求的情况。批量预测是异步的,也就是说,模型会先处理所有预测请求,然后再返回具有预测值的 CSV 文件或 BigQuery 表格。

在线预测

部署模型使其可用于通过 REST API 处理预测请求。在线预测是同步的(实时),这意味着它将快速返回预测,但每次 API 调用仅接受一个预测请求。如果您的模型是应用的一部分并且您系统的某些部分依赖于快速的预测周转,则在线预测会非常有用。

为避免不必要的费用,请记得在不使用时取消部署模型