使用 PyCaret 进行回归分析
让我们学习如何使用 PyCaret 导入回归所需的必要库和数据集。
线性回归模型
回归是监督式机器学习中的一项基本任务,其目标是预测一个连续值。这通过理解给定数据集中目标变量 与特征变量 之间的关系来实现。最基础的回归模型之一是线性回归。其定义如下方程所示,同时给出了等价的向量化形式,其中计算的是转置向量 与 的内积。
- 表示数据集中第 个样本的目标变量。
- 到 是特征变量。
- 是截距项。
- 到 是各特征变量的系数。
- 是误差项。
PyCaret 中的回归方法
除了线性回归外,我们还有其他回归模型,例如 Lasso 回归、随机森林、支持向量机和梯度提升。在接下来的课程中,我们将学习 PyCaret 如何帮助我们为特定数据集选择并训练最优的回归模型。我们还将了解探索性数据分析(EDA),这是一种用于检查和理解数据集基本统计特性的方法。
导入必要的库
首先,导入项目所需的 Python 库。
1# 导入必要的库 2 3import pandas as pd 4import matplotlib.pyplot as plt 5import matplotlib as mpl 6import seaborn as sns 7from pycaret.datasets import get_data 8from pycaret.regression import * 9mpl.rcParams['figure.dpi'] = 300
这里包含了一些标准的机器学习库,如 pandas、Matplotlib 和 Seaborn。同时导入了所有与回归相关的 PyCaret 函数。最后一行设置 Matplotlib 图像分辨率为 300 DPI,但可根据需要省略该设置。
加载数据集
机器学习项目的成功依赖于是否有合适的数据。PyCaret 提供了多种可用于测试其功能的数据集。本章将使用 insurance.csv 数据集,该数据源自 Brett Lantz 所著《Machine Learning with R》一书。这是一个健康保险数据集,其特征包括年龄、性别、体重指数(BMI)、是否吸烟、子女数量以及所在美国地区。此外,数据集的目标变量是每位个体的医疗费用账单金额。现实世界中的数据通常更为复杂,但使用这类简化数据集有助于我们在处理更复杂情况前掌握相关概念和技术。
我们使用 PyCaret 的 get_data() 函数将数据集加载到 pandas 的 DataFrame 中。
1# 加载/导入数据集 2 3data = get_data('insurance')
如输出所示,结果等同于 pandas 的 head() 函数,即显示数据集的前五行,使我们能够初步了解所处理的数据。
使用 pandas 的 info() 函数查看数据集的一些基本信息。
1# 获取数据集信息 2 3data.info()
从输出可以看出,数据集共有 行,且所有列均无 null 值。此外,每列的数据类型已由 pandas 库自动推断。