第 8 章 提高自定义模型性能 提高自定义模型性能
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在第6章和第 7 章中,您学习了如何使用 SQL、BigQuery ML 以及 Python 的 scikit-learn 和 Keras 准备数据并构建自定义模型。在本章中,您将重温这些工具,并着眼于额外的特征工程和超参数调整。与前几章不同的是,你将从准备好的数据和已经训练好的模型开始,并在此基础上不断改进。如果您在探索之前构建的模型代码或 BigQuery 用户界面时感到困惑,请重温第6章和第 7 章的讨论。
业务用例:二手车拍卖价格
在这个项目中,您的目标是提高经过训练的 ML 模型的性能,以预测二手车的拍卖价格。初始模型是用 scikit-learn 建立的线性回归模型,不能完全满足您的业务目标。最终,您将探索使用 scikit-learn、Keras 和 BigQuery ML 中的工具,通过特征工程和超参数调整来提高模型性能。
用于训练线性回归模型的数据集已以 CSV 文件的形式提供给您。这些数据集已经过清理(缺失值和错误值已得到适当修正),用于构建 scikit-learn 线性回归模型的代码也已提供。训练线性回归模型的队友与您分享了一些关于模型性能的说明,以及他们使用 Keras 训练 ML 模型的初步探索。您的同事还分享了他们用于训练和评估模型的数据拆分。他们创建了一个尚未使用的独立测试数据集,您可以用它来验证模型的最终性能。您的任务是探索如何使用特征工程来改进模型的特征集,并利用超参数调整来确保使用最佳的模型架构。您将了解如何在 scikit-learn、Keras 和 BigQuery ML 中执行这些任务。
在汽车批发销售行业,批发价格的领先指标之一是曼海姆市场报告(MMR)。MMR 的定价计算基于过去 13 个月中超过 1000 万次的销售交易。在您的数据集中,您可以访问最初提取数据时已共享的汽车销售定价计算。但是,您不确定将来是否还能访问这些信息。因此,您被要求在探索过程中避免使用该功能。与您分享的业务目标是,在不使用 MMR 功能的情况下,销售价格的均方根误差不超过 2,000 美元。首先,您将使用同事提供的笔记本加载数据,并复制他们进行的模型训练。
数据集中有 13 列。表 8-1列出了这些列的列名、数据类型和一些可能的值。
| 列名 | 立柱类型 | 关于字段值的说明 |
|---|---|---|
year |
整数 | 车辆制造年份 |
make |
字符串 | 车辆品牌 |
model |
字符串 | 汽车品牌的特定版本或变种 |
trim |
字符串 | 车型的特定版本或变体 |
body |
字符串 | 车身款式(如轿车) |
transmission |
字符串 | 自动或手动变速箱 |
state |
字符串 | 汽车销售所在州 |
condition |
浮动 | 从 0 到 5 的车况评分 |
odometer |
整数 | 销售时的里程表读数 |
color |
字符串 | 车辆颜色 |
interior |
字符串 | 内部颜色 |
mmr |
浮动 | 曼海姆市场报告定价 |
sellingprice |
浮动 | 车辆实际售价(标签) |
Scikit-Learn 中的模型改进
在本节中,您将在 scikit-learn 中改进线性回归模型,该模型是由您的队友分享给您的。首先,您将在 scikit-learn 中快速探索数据、预处理管道和模型本身。然后,您将更仔细地探索特征,看看如何使用新的和熟悉的特征工程技术提高模型性能。最后,您将利用超参数调整来确保您为特定问题创建的新特征达到最佳效果。 ...