低代码AI:使用AutoML预测广告媒体渠道的销售额

在这一章中,您将使用AutoML构建一个模型,以预测广告媒体渠道的销售额。首先,您将使用Pandas探索数据。然后,您将学习如何使用AutoML来构建、训练和部署一个机器学习模型,以进行销售额的预测。您将通过性能指标获得对模型性能的整体理解,并回答常见的业务问题。在这个过程中,您将了解到回归分析,这是用于预测场景的常见技术之一。

业务用例:媒体渠道销售预测

企业使用广告媒体渠道来推广其产品、服务或品牌。市场营销人员和媒体策划人员创建可能在数字、电视、广播或报纸上运行的营销活动。在这种情况下,您是一家中型太阳能能源公司市场部门的媒体策划人员。您的公司拥有适中的媒体预算,需要评估哪些渠道能够以最低成本提供最多的利益。这是一个支出优化问题。

您被要求制定一个营销计划,以增加明年的产品销售额。为了实现这个目标,您需要了解媒体渠道产品广告预算对整体销售额的影响。广告数据集捕捉了与数字、电视、广播和报纸媒体渠道的广告成本相关的销售收入。

通常,这种要求会交给数据科学家或数据分析师。但是,尽管您没有任何编程经验,市场团队负责人已经要求您使用AutoML构建一个销售预测模型,这是他们第一次在团队中尝试。目标是构建一个机器学习模型,根据在每个媒体渠道中的广告支出来预测销售量。

业务问题包括:

  1. 模型能否根据在每个媒体渠道中的广告支出来预测销售量?
  2. 广告预算和销售之间是否存在关系?
  3. 哪个媒体渠道对销售贡献最大?
  4. 模型是否可以用于基于媒体渠道的建议预算来预测未来销售?
  5. 模型能够多准确地预测未来销售?

这个用例是一个简单的回归问题,只涉及五个变量,您可以使用这些变量来回答上述五个问题。

项目工作流程

图4-1显示了第3章中典型的AutoML无代码工作流程的高级概述。这个工作流程适用于你的用例。

现在你了解了业务用例和目标,可以继续进行数据提取和分析。请注意,这个工作流程不包括数据预处理步骤。在后面的章节中,你将有很多关于数据预处理的实际操作经验。在数据提取和分析之后,你将上传数据集到AutoML平台。然后,数字、电视、报纸和广播的广告预算数据将输入模型。然后,你将评估AutoML的结果,然后部署模型进行预测。在本章的实际练习之后,你将能够为你的团队创建一个战略性的市场营销计划。

项目数据集

该数据集由历史营销渠道数据组成,可用于获取有关支出分配的见解并预测销售额。 用于本章的数据集,即advertising_2023数据集,基于Daniela Witten、Gareth M. James、Trevor Hastie和Robert Tibshirani的《R应用统计学习简介》(Springer,2021)中的数据。 该广告数据集捕获了特定产品广告预算(以千美元计)在电视、广播和报纸媒体上产生的广告销售收入(以千单位计)。

为了本书,数据集已经更新,包括一个数字变量,并修改以显示数字预算对销售的影响。 市场数量已从200个增加到1,200个。 因此,数据包括四个媒体渠道(数字、电视、广播和报纸)的广告预算和1,200个不同市场的总销售额。 完成本章练习后,您应该鼓励查看如何处理该数据集的其他示例,以增加您的知识。

数据最初以CSV文件的形式提供,因此您需要花些时间将数据加载到Pandas中,然后才能进行探索。 该数据集仅包含数值变量。

数据集中有五列。 表4-1列出了这些列的列名、数据类型以及有关这些列可能值的一些信息。

使用Pandas,Matplotlib和Seaborn探索数据集

在开始使用AutoML之前,您将按照前几章讨论的工作流程来理解和准备ML数据。本节将向您展示如何使用Pandas,一个广泛用于数据科学和数据分析的Python开源包,在Google Colab笔记本中加载数据。一旦数据加载到DataFrame中,您将对数据进行探索。

幸运的是,数据已经经过了清理------数据集中没有缺失值或奇怪的字符。您的探索性数据分析旨在协助您验证数据的干净度,并探索变量之间的关系,以帮助您回答团队提出的问题。正如前几章所提到的,ML工作的大部分内容都涉及了解和准备训练数据------而不是训练模型------因为您依赖AutoML来构建模型。 本节中的所有代码,包括一些附加示例,都包含在GitHub上的low-code-ai存储库中的名为Chapter4_Media_Channel_Sales_Notebook的Jupyter笔记本中。

在Google Colab笔记本中将数据加载到Pandas DataFrame中

首先,前往colab.research.google.com并打开一个新的笔记本,按照第2章讨论的过程操作。你可以通过点击名称,如图4-2所示,然后将当前名称替换为一个新的更有意义的名称,比如"Advertising_Model.ipynb"。

现在将以下代码输入到第一个代码块中,以导入分析和可视化广告数据集所需的包:

javascript 复制代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
import seaborn as sns
%matplotlib inline

您在第2章中首次探索使用Colab笔记本时,就看到了其中一些包。

现在执行包含导入语句的单元格以导入这些包。要执行此操作,请单击单元格左侧的"运行单元格"按钮。您还可以按Shift + Enter来运行该单元格。

现在,您可以导入数据了。使用Pandas,您可以直接从互联网上的位置将CSV文件导入到DataFrame中,无需首先下载文件。要执行此操作,请复制解决方案笔记本中的代码,或者在新单元格中键入以下代码,然后执行该单元格:

ini 复制代码
url="https://github.com/maabel0712/low-code-ai/blob/main/advertising_2023.csv?raw=true"

advertising_df=pd.read_csv(url, index_col=0)

一般来说,查看DataFrame的前几行是一个好主意。使用advertising_df.head() 来探索DataFrame的前几行数据。head 是Pandas的方法,它让我们看到数据的前五行。通过这样做,您可以快速查看特征、它们的一些可能值以及它们是否是数字的。

以下是一些列的示例,如图4-3所示。

探索广告数据集

现在数据已加载到DataFrame advertising_df 中,您可以开始探索和理解数据。当前的目标是了解数据中可能存在的问题,以便在继续之前解决这些问题。

描述性分析:检查数据

首先使用标准的Python方法检查数据。要检查DataFrame的数据类型,将advertising_df.info()键入新的单元格并执行该单元格。该信息包括列数、列标签、列数据类型、内存使用情况、范围索引以及每列中的单元格数(非空值)。

图4-4显示了info()方法输出的示例。

请注意,通过数据类型的信息,您可以确保Pandas所推断的类型与Table 4-1中的预期匹配。

如图4-5所示,describe()方法计算并显示数据集的摘要统计信息。describe函数显示了我们数据集中的数值变量的信息。您可以看到每个变量的均值、最大值、最小值以及它们的标准差。将advertising_df.describe()键入新的单元格并执行该单元格。

在图4-6中显示的是.isnull()方法的输出。将advertising_df.isnull().sum()输入到新的单元格中并执行该单元格。输出显示了DataFrame中的所有列以及相关的零值。如果存在空值,将显示该列的空值数量。

浏览数据

探索性数据分析 (EDA) 是任何机器学习项目的第一步。在构建任何机器学习模型之前,您需要先探索数据。其目标是查看原始数据,探索数据,并从数据中获取相关的见解。这也有助于改进模型,因为您将能够发现可能影响性能的"脏数据"问题,如缺失值,列中的奇怪字符等。

热图 (相关性)

热图是以可视化方式表示数据的一种方法。数据值在图表中以颜色表示。热图的目标是以有色的方式提供信息的可视化摘要。热图显示了变量 (特征) 之间的关系 (相关性)。相关性是一种统计度量,显示两个或多个变量一起移动的程度。在图 4-7 中显示了绘制相关性值的相关性方法的输出。将以下代码键入到新的单元格中,然后执行该单元格:

ini 复制代码
plt.figure(figsize=(10,5))
sns.heatmap(advertising_df.corr(),annot=True,vmin=0,vmax=1,cmap='viridis')

相关性矩阵的结果可以在各种情况下使用,包括:

  1. 识别变量之间的关系

两个变量之间的相关系数可以告诉您它们之间的关联程度。相关系数为0表示没有关系,而相关系数为1表示有完美的正相关关系。相关系数为-1表示有完美的负相关关系。请注意,销售额和电视之间的关系最强 (0.78),其次是销售额和广播 (0.58)。这些信息可用于开展有针对性的营销活动,以更有可能提高销售额。

  1. 选择要包含在模型中的变量

在构建预测模型时,您需要选择最有可能预测结果的变量。例如,您是否应该将报纸广告费用(与销售额的相关性为0.23)作为模型中的一个特征来预测销售额?

  1. 检测多重共线性

多重共线性发生在回归模型中的两个或多个预测变量高度相关的情况下。例如,如果电视广告和广播广告高度相关(意味着两者的值>0.7,而不是如图 4-7 中所示的0.056),这将表明存在多重共线性。由于更难从数值上区分具有强烈共线关系的预测变量,因此对于回归算法来说,更难确定它们中的一个在销售额上应该具有的影响程度或权重。

散点图

散点图用于确定两个数值变量之间的关系。它们可以帮助您了解两个变量之间是否存在直接关系(例如正线性关系或负线性关系)。此外,它们还可以帮助您检测数据是否存在异常值。图 4-8 显示了数字特征和销售目标的散点图。将以下代码输入到一个新的单元格中并执行它:

ini 复制代码
advertising_df.plot(kind='scatter', x=['digital'], y='sales')

您想要探索每个变量与预测变量销售之间的散点图。您可以分别绘制每个特征的散点图(就像之前所做的那样),或者您可以将它们绘制在一个图中以显示所有的关系。将以下所有代码输入到一个新的单元格中并执行它(图 4-9 显示了输出):

ini 复制代码
plt.figure(figsize=(18, 18))

for i, col in enumerate(advertising_df.columns[0:13]): 
    plt.subplot(5, 3, i+1) # each row three figure
    x = advertising_df[col] #x-axis
    y = advertising_df['sales'] #y-axis
    plt.plot(x, y, 'o')

    # Create regression line
    plt.plot(np.unique(x), np.poly1d(np.polyfit(x, y, 1)) (np.unique(x)),   
        color='red')
    plt.xlabel(col) # x-label
    plt.ylabel('sales') # y-label

请注意,电视广告支出与销售额之间存在强烈的线性关系,似乎表明电视广告预算的增加对销售额产生积极影响。而报纸广告支出与销售额之间似乎没有明显的关系。请回忆一下这两者之间的相关性值为0.23。这与电视广告支出与销售额之间的关系(0.78)非常不同。

直方图分布图

可视化分布的常见方法是直方图。直方图是一个柱状图,其中代表目标变量的轴被分为一组离散的箱子,每个箱子中包含的观察值数量用相应柱子的高度来表示。将以下代码输入到一个新的单元格中并运行它:

ini 复制代码
sns.displot(advertising_df, x="sales")

图 4-10 展示了来自销售列的数据值。图形看起来有点像一个略微向左倾斜的钟形曲线。最常见的销售金额是 11,000 美元。

其他特征呢?它们是向左偏斜还是向右偏斜,还是像钟形曲线一样呈"正态分布"?你可以为每个单独的特征输入前面的代码,或者使用以下代码来查看所有特征。将以下代码输入到一个新的单元格中,并执行该单元格(图 4-11 显示了输出):

ini 复制代码
lis = ['digital', 'newspaper', 'radio','TV']
plt.subplots(figsize=(15, 8))
index = 1
for i in lis:
    plt.subplot(2, 2, index)
    sns.distplot(advertising_df[i])
    index += 1

正如你在图 4-10 中看到的,销售额具有某种程度的正态分布。然而,在图 4-11 中,数字似乎向左倾斜,而电视、广播和报纸则没有正态分布。在将这些特征输入到你的 ML 模型之前,对它们进行标准化,使它们呈正态分布,将会产生更好的结果。

导出广告数据集

在检查和探索数据集之后,现在是时候导出文件,以便可以将其上传到AutoML框架中。在新的单元格中输入以下代码并执行该单元格。第一行导入操作系统,允许您创建一个名为data的目录(第二和第三行):

lua 复制代码
import os
if not os.path.isdir("/content/data"): 
    os.makedirs("/content/data")

在目录创建后,将以下代码输入到新的单元格中并执行该单元格。代码的第一行将广告DataFrame创建为CSV文件格式,并将其放置在前面创建的content/data目录中:

ini 复制代码
advertising_df.to_csv('/content/data/advertising.csv', 
    encoding='utf-8', index=False)

图4-12显示了名为data的新创建目录,其中包含文件advertising.csv。

作为最佳实践,验证一下是否可以查看新导出文件的内容,打开一个新的单元格,然后执行以下命令:!head /content/data/advertising.csv。确保输出与图4-13中显示的内容相同。

现在,您已经验证了文件已正确导出,可以将它下载到您的计算机上。

在新创建的 data 目录中右键单击 advertising.csv 文件,如图4-14所示,然后选择"下载"。文件将下载到您的桌面上。现在,您已准备好将文件上传供 AutoML 使用。

在下一节中,您将基于刚刚导出的训练数据文件构建一个无需编码的模型。

使用AutoML来训练一个线性回归模型

本书中的AutoML项目将使用Google的Vertex AI来实施,这是作者最熟悉的基于GUI的AutoML和自定义训练框架。请注意,三大主要云供应商(Google、Microsoft和AWS)都提供了AutoML教程。这三家主要云供应商的指南都可以在它们的文档中找到。许多云供应商提供了一个试用期,可以免费探索他们的产品。

鉴于Google提供了关于AutoML的逐步教程,这里省略了一些初级步骤。图4-15显示了业务用例的AutoML无代码工作流程的高级概述。

无需编码使用Vertex AI

图4-16显示了Vertex AI仪表板。要创建AutoML模型,点击"启用所有推荐的API"按钮来打开Vertex AI API。从左侧导航菜单中,从"仪表板"中向下滚动并选择"数据集"。

在Vertex AI中创建托管数据集

Vertex AI根据数据类型和您想要使用模型实现的目标提供不同的AutoML模型。创建数据集时,您选择了一个初始目标,但在创建数据集后,可以使用它来训练具有不同目标的模型。保持默认区域(us-central1),如图4-17所示。

在页面顶部选择"Create"按钮,然后为数据集输入一个名称。例如,您可以将数据集命名为"advertising_automl"。

选择模型目标

如图4-18所示,选择了"回归/分类"作为"表格"选项卡下的模型目标。考虑到您想要预测目标列的值(销售额),这是适当的选择。

您选择了回归/分类作为您的目标。让我们讨论一些基本概念,以帮助您处理未来的用例。回归是一种监督式机器学习过程。它与分类类似,但与为分类预测标签不同,例如从电子邮件收件箱中分类垃圾邮件,您尝试预测一个连续的值。线性回归定义了目标变量(y)和一组预测特征(x)之间的关系。

如果您需要预测一个数字,那么请使用回归。在您的用例中,线性回归使用数据集中给定的一些独立变量(数字、电视、广播和报纸)来预测实际值(销售额)。 基本上,线性回归假定与每个特征之间存在线性关系。预测值是线上的数据点,真实值位于散点图中。目标是找到最佳拟合线,以便当输入新数据时,模型可以预测新数据点相对于线的位置。关于拟合的好坏有一个评估标准,这在"评估模型性能"中会涵盖。

图4-19显示了一个基于您的数据集的"最佳拟合"线,模型试图将线拟合到您的数据点,这些数据点是深色的散点。

在选择了"回归/分类"后,向下滚动并点击"创建"按钮。您现在可以向数据集添加数据。Vertex AI管理的数据集适用于各种数据类型,包括表格、图像、文本和视频数据。 图4-20显示了数据源上传选项------从您的计算机上传CSV文件,从云存储中选择CSV文件,或从BigQuery(Google的数据仓库)中选择表格或视图。

要上传您的广告数据集,请选择"从计算机上传CSV文件"。找到您本地计算机上的文件并加载它。 向下滚动页面并查看"选择云存储路径"部分,其中要求您将文件存储在云存储存储桶中。为什么需要将文件存储在云存储桶中?有两个原因:

(1)在训练大规模ML模型时,您可能需要存储数千兆字节甚至数百兆字节的数据;

(2)云存储桶具有可扩展性、可靠性和安全性。

图4-21显示,文件Advertising_automl.csv已被上传,并创建了一个云存储桶来存储已上传的文件。要查看创建存储桶的逐步过程以及整个练习,请参阅存储库中名为Chapter 4 AutoML Sales Prediction的PDF。

一些框架会在数据加载后生成统计数据。其他框架则通过自动检测和清理缺失值、异常值和重复的行列来最小化手动数据清理的需求。

请注意,您可以采用一些额外的步骤,例如在数据加载后查看缺失值和查看数据统计信息。 图4-22显示了"生成统计信息"窗口的输出。请注意,没有缺失值,并显示了每列的不同值的数量。

AutoML提供了每个特征的数据概要。要分析某个特征,点击该特征的名称。然后,会显示该特征的分布直方图。 图4-23显示了销售额的数据概要。请注意,均值为14.014,这与您在探索数据集时在本章前面输入的advertising_df.describe()代码中获得的数值非常接近。

创建训练模型

图 4-24 显示模型现在已经准备好进行训练。在"培训工作和模型"部分下,选择"训练新模型"。选择"其他"而不是"管道上的自动ML"。管道上的自动ML是一个功能,允许您指定要构建的ML模型类型和其他参数。这超出了本书的范围。

"训练新模型" 窗口出现。共有四个步骤:

  1. 选择训练方法
  2. 配置模型详细信息
  3. 确定训练选项
  4. 选择计算和定价

在第1步中,在"目标"下拉菜单中选择"回归"。在"模型训练方法"下,选择"AutoML"(如图4-25所示)。然后点击"继续"。

在第2步中,在"模型详细信息"下,为你的模型命名并添加描述。在"目标列"下拉菜单中,选择"sales"(如图4-26所示)。然后点击"继续"。

在第3步中,请查看培训选项。请注意,任何数据转换(或数据处理),如标准化,都会自动处理(如图4-27所示)。然后点击"继续"。

第4步中,您会看到"计算和定价"(如图4-28所示)。培训模型所需的时间取决于培训数据的大小和复杂性。节点小时是云中一个节点(可视为虚拟机)的使用时间,分布在所有节点上。在"预算"字段中输入值3以获取节点小时的最大数量 - 这只是一个估计。您只支付使用的计算小时数;如果培训由于除用户发起的取消之外的任何原因而失败,则不会为此时间付费。如果取消操作,您将收取培训时间的费用。

同样在"计算和定价"下是提前停止选项。启用此选项意味着当AutoML确定不再能够提高模型时,培训将结束。如果禁用提前停止,AutoML将一直培训模型,直到耗尽预算小时。 一旦输入了所有参数,您可以开始培训作业。点击开始培训。 在模型培训后,模型将在模型注册表中注册(如图4-29所示)。

评估模型性能

图4-30显示了模型训练的结果。

在权衡不同线性回归评估指标的重要性时,从业者应考虑以下几个因素:

  1. 模型的目的: 模型的目的将决定哪些评估指标最为重要。例如,如果模型用于进行预测,从业者可能希望关注均方误差(MSE)或均方根误差(RMSE)等指标。然而,如果模型用于理解变量之间的关系,从业者可能更关注R平方或调整后的R平方等指标。
  2. 数据的特性: 数据的特性也会影响不同评估指标的重要性。例如,如果数据嘈杂(例如包含不必要的信息或错误),从业者可能更关注对噪声具有鲁棒性的指标,如平均绝对误差(MAE)。然而,如果数据不受干扰,从业者可能更关注对模型变化更敏感的指标,如MSE。
  3. 从业者的偏好: 最终,从业者的偏好也将影响不同评估指标的重要性。有些从业者可能更喜欢易于理解的指标,而其他人可能更喜欢更准确的指标。没有对与错的答案,从业者应选择对他们最重要的指标。

以下是常见的线性回归评估指标:

  1. R平方(R-squared): R平方是衡量模型拟合数据的程度的指标。它是观测值和预测值之间皮尔逊相关系数的平方。计算方法是将残差(预测值与实际值之间的差异)的平方和除以总平方和。更高的R平方值表示拟合效果更好。R平方的取值范围从0到1,较高的数值表示质量更高的模型。通常,R2应该接近0.997。
  2. 调整后的R平方(Adjusted R-squared): 调整后的R平方是R平方的修改版本,考虑了模型中独立变量的数量。它的计算方式是将残差的平方和除以总平方和减去自由度。较高的调整后的R平方值表示拟合效果更好,但它对独立变量的数量不如R平方敏感。
  3. 均方误差(MSE): MSE是预测值与实际值之间平方误差的平均值的度量。较低的MSE值表示拟合效果更好。图4-31显示了损失在表格和图形中的可视化。
  1. 均方根误差(RMSE): RMSE是均方误差(MSE)的平方根。它是MSE的更易解释版本。较低的RMSE值表示拟合效果更好,是质量更高的模型,其中0表示模型没有产生错误。RMSE的解释取决于数列中数值的范围。通常情况下,RMSE应该接近0.345。

  2. 均方根对数误差(RMSLE): RMSLE的解释也取决于数列中数值的范围。与RMSE相比,RMSLE对异常值的响应较小,倾向于略微惩罚低估,而不是高估。通常情况下,RMSLE应该接近0.026。

  3. 平均绝对误差(MAE): MAE是预测值与实际值之间绝对误差的平均值的度量。较低的MAE值表示拟合效果更好。通常情况下,MAE应该接近0.304。

  4. 平均绝对百分比误差(MAPE): MAPE的取值范围从0%到100%,较低的数值表示更高质量的模型。MAPE是绝对百分比误差的平均值。通常情况下,MAPE应该接近2.28。

模型特征重要性(归因)

模型特征重要性告诉你每个特征对模型训练的影响有多大。图4-32显示了归因值以百分比表示;百分比越高,相关性越强,也就是该特征对模型训练的影响越大。特征归因可以让你看到哪些特征对图4-32中显示的模型训练产生了最大的影响。

如果你将鼠标悬停在图4-32中显示的"newspaper"特征上,你会看到它对模型训练的贡献是0.2%。这支持了你在早些时候完成的探索性数据分析阶段的发现------销售额与报纸广告支出之间的关系最弱。这些结果意味着广播、数字和电视广告对销售额的贡献最大,而报纸广告对销售额的影响很小。

从你的模型中获取预测数据

要部署你的模型,你需要对其进行测试。你可以将模型部署到你的环境中,以进行测试,而无需构建一个需要部署到云端的应用程序。在训练完一个机器学习模型后,你需要部署该模型,以便其他人可以使用它来进行推断。在机器学习中,推断是指使用已经训练好的机器学习模型对新数据进行预测的过程。

这个过程有四个步骤,但在本章中,你只需要前两步。对于这个练习,不需要配置模型监控或模型目标。模型监控会额外收费用于日志记录,而模型目标则需要根据你正在训练的模型类型和使用它的应用程序选择各种模型目标。以下是这四个步骤:

  1. 定义你的端点。
  2. 配置模型设置。
  3. 配置模型监控。
  4. 配置模型目标。

图4-33显示了部署和测试页面。要部署你的模型,请前往"模型注册表",选择"部署和测试",然后选择你的模型。

在第1步中,你需要定义你的端点。你选择一个地区,并确定如何访问你的端点。

在第2步中,你需要添加模型和设置流量分配。在Vertex AI中,流量分配是一种将流量分发给部署在同一端点的多个模型的方法。这可以用于多种目的,例如:

  1. A/B 测试 流量分配可用于对比不同模型,以确定哪一个性能更好。
  2. 金丝雀部署 流量分配可用于将新模型首先部署给一小部分用户,然后再扩大范围部署。这有助于在新模型影响太多用户之前,捕获任何问题。
  3. 渐进部署 流量分配可用于逐渐向用户部署新模型。这有助于减轻新模型带来的任何问题的影响。

在第3步中,你选择如何使用计算资源为你的模型提供预测服务(如图4-34所示)。对于这个练习,使用最少数量的计算节点(虚拟机服务器)。在"机器类型"下,选择"标准"。

注意:"机器类型"在几个方面有所不同:(1)每个节点的虚拟中央处理单元(vCPU)数量,(2)每个节点的内存量,(3)定价。

在选择预测模型的计算资源时,需要考虑一些因素:

  1. 模型的大小和复杂性 模型越大和越复杂,需要的计算资源就越多。 (这更适用于自定义编码的神经网络。)
  2. 预测数量 如果你预计要进行大量预测,你需要选择一个能够处理负载的计算资源。
  3. 延迟要求 如果需要实时或非常低延迟地进行预测,你需要选择一个能够提供所需性能的计算资源。请注意:机器学习中的低延迟指的是模型在接收到新数据点后进行预测所需的时间。
  4. 成本 计算资源的价格各不相同,因此你需要选择一个符合预算的计算资源。

考虑了这些因素后,你可以开始缩小选择范围。以下是一些可用于提供预测模型的计算资源的示例:

  • CPU 中央处理单元(CPU)是最常见的计算资源类型,适用于大小和复杂度不太大的模型。
  • GPU 图形处理单元(GPU)比CPU更强大,可用于加速大型和复杂模型的训练和推理。
  • TPU 张量处理单元(TPU)是专门为机器学习工作负载设计的专用硬件加速器。它们是最强大的选项,可用于训练和提供最苛刻模型的服务。

在"模型设置"下的第2步中,有一个"日志记录"设置。如果启用端点日志记录,将会收取费用。因此,在这个练习中,请不要启用它。

接下来的设置是"可解释性选项",它不会产生费用。勾选"为此模型启用特征归因"。

第3步是"模型监控"。请不要为这个项目启用它(如图4-35所示)。

现在已经完成了所有配置,Deploy按钮应该已经高亮显示。点击Deploy以部署你的模型到端点(如图4-36所示)。

在端点创建并模型部署到端点后,你应该会收到有关端点部署状态的电子邮件。如果部署成功,你可以开始进行预测。有四个步骤:

  1. 转到模型注册。
  2. 选择你的模型。
  3. 选择模型的版本。
  4. 向下滚动直到看到"测试你的模型"页面。

如图4-37所示,这是"测试你的模型"页面。请注意,这个页面可能是一个应用程序或网页,看起来像这样,你和你的团队可以在其中输入媒体渠道值并预测销售量。

点击"Predict"按钮。

点击"Predict"按钮后,你将得到标签(销售额)的预测结果,如图4-38所示。

回归模型返回一个预测值。图4-38显示销售额的预测结果为14.63,这非常接近销售额直方图中的均值(如图4-10和4-23所示)。预测区间提供了一个范围,模型有95%的置信水平包含实际结果。因此,由于销售额的预测结果为14.63,而预测区间是13.58到15.53之间的范围,你可以有95%的把握认为任何预测结果将落在这个范围内。

现在,让我们回答这些业务问题。 目标是建立一个机器学习模型,根据在每个媒体渠道上的广告支出来预测销售额。 这个模型能够基于在每个媒体渠道上的广告支出来预测销售额吗? 可以。由于Vertex AI允许你输入每个媒体渠道的值,现在你可以根据预测结果来做出关于未来预算分配的决策。例如,你的公司的战略媒体计划现在可能会包括根据预测结果增加数字渠道的预算。

广告支出和销售之间是否存在关系? 是的。数字、电视和广播的广告支出与销售之间存在正线性关系。报纸广告支出与销售之间的关系较弱。

哪个媒体渠道对销售额的贡献最大? 电视对销售额的贡献大于其他媒体渠道。如何?你在探索性数据分析部分建立的散点图以及在模型训练后查看的Vertex AI功能的归因柱状图显示了电视对销售额的贡献。

模型能够多精确地预测未来销售额? 当将媒体渠道值输入到"预测"窗口以预测销售额时,回归模型会返回一个预测值。预测结果显示了销售额的预测值和预测区间。预测区间可以用来做出关于未来观察的决策,因此你可以有95%的把握认为任何未来的销售额预测结果将落在该范围内。

总结

在本章中,您构建了一个AutoML模型来预测广告媒体渠道的销售额。您使用Pandas探索了数据,创建了热图、散点图和直方图。在导出数据文件后,您将其上传到Google的Vertex AI框架中。然后,您学会了如何使用Google Cloud的AutoML来构建、训练和部署一个机器学习模型来预测销售额。您通过性能指标获得了对模型性能的整体理解,并回答了常见的业务问题。您使用模型进行在线预测并进行了一些预算预测。现在,您已经准备好向您的团队呈现结果了!

相关推荐
古希腊掌管学习的神1 小时前
[机器学习]XGBoost(3)——确定树的结构
人工智能·机器学习
ZHOU_WUYI1 小时前
4.metagpt中的软件公司智能体 (ProjectManager 角色)
人工智能·metagpt
靴子学长2 小时前
基于字节大模型的论文翻译(含免费源码)
人工智能·深度学习·nlp
AI_NEW_COME3 小时前
知识库管理系统可扩展性深度测评
人工智能
海棠AI实验室3 小时前
AI的进阶之路:从机器学习到深度学习的演变(一)
人工智能·深度学习·机器学习
hunteritself3 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
IT古董4 小时前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee4 小时前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa4 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐4 小时前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类