本文将介绍如何利用Google AutoML Tables对一个包含6000行和256列的电力质量分析数据集进行处理。每一行代表一个电压波形,采样率为256。输出或标签包含六个分类类别。首先,需要将训练数据集上传至Google Cloud Storage的同一区域的存储桶中。
在开始之前,需要拥有一个可计费的Google Cloud账户。如果没有,请创建一个,将获得300美元的免费使用额度。
在Google Cloud Console中,进入Cloud Storage Browser页面。在存储桶列表中,点击想要上传对象的存储桶名称。在存储桶的Objects标签页中,可以通过以下两种方式之一上传文件:
Google AutoML Tables允许用户快速、准确地训练和部署机器学习模型,无需任何机器学习专业知识或硬件软件安装。用户可以导入和可视化信息,训练模型,使用测试集评估模型,迭代改进模型准确性,然后部署最简单的模型进行在线/离线预测。
首先登录Google Cloud Platform账户(如果没有则创建),然后创建项目。接着打开并启用AutoML Tables,选择“Tables”并启用API。导入数据时,前往导入标签页,选择源类型,例如CSV或BigQuery表。在例子中,将上传'voltage_train.csv'。如果上传目的地GCS存储桶不存在,则可以创建一个单区域存储桶,例如'gs://voltage_train.csv'。AutoML Tables将导入信息并自动分析以验证和检测列的数据类型。
数据导入完成后,可以探索导入的数据信息和模式。AutoML将显示列名、数据类型(例如类别、数值或文本)、缺失值和每个列的不同值。应始终设置预测目标列,在本例中,将预测标签列。为了让了解每个特征的个体价值,它还生成了每个列与目标列的相关性。此外,还将探索每个列中值的分布。
现在,可以从数据集中选择所需的输入列和某些数据训练参数。然后,指定AutoML在训练期间将使用的Train、Validation和Test数据集分割。这将被设置为自动(随机)或可以使用额外的列指定Train/Validation/Test集行。接下来,将设置是否应将任何列视为权重列。这可能会使某些行具有更高的重要性,如果希望模型在某些知识子集上更准确,则非常有用。
// 以下是设置模型训练参数的伪代码示例
model.setTrainTestSplit(0.7); // 70%的数据用于训练
model.setValidationSplit(0.15); // 15%的数据用于验证
model.setTestSplit(0.15); // 15%的数据用于测试
model.setObjectiveFunction('RMSE'); // 设置目标函数为均方根误差
模型训练可能需要30分钟到20小时,具体取决于指定的预算或愿意分配的预算和训练的收敛情况。完成后,可以看到回归模型的结果,可以预测训练数据的测试分割中的不同信号类别。随着更多训练数据的使用,这个错误可以进一步减少。
一旦模型通过数据集训练完成,将导出结果,以便它可以从任何可以运行容器的环境中提供服务。(请注意,也可以将模型部署到Cloud AI Platform进行在线预测)。可以在TEST & USE下找到导出选项。需要在与模型相同区域的区域GCS存储桶中创建一个存储桶。可能还想在GCS存储桶中为模型导出创建一个子文件夹,以便如果有多个导出,可以保持跟踪。点击“Container”卡片,将训练好的模型导出为可以从Docker容器中运行。
可以使用这种训练好的模型(AutoML)以3种模式预测新数据: