PyCaret:Python中的低代码机器学习库

在这篇文章中,将探索PyCaret,这是一个开源的、低代码的机器学习库,专为Python设计,由Moez Ali创建。PyCaret以其易用性和高效性,帮助数据科学家和开发者快速准备数据、训练和部署模型,尤其适合那些希望减少编码工作、专注于解决业务问题的用户。PyCaret与PowerBI、Tableau等工具集成,支持Jupyter、Google Colab、Azure Notebooks等多种笔记本环境。

PyCaret的应用

PyCaret在商务智能领域有着广泛的应用。它允许团队创建端到端的机器学习实验,减少编码时间,专注于解决实际业务问题。无论是分类还是回归模型,PyCaret都能轻松应对。本文将以回归问题为例,展示使用PyCaret进行编码的简便性。将使用Kaggle上的房价数据集,该数据集适合初学者实践新学的机器学习概念。

目标

本文旨在帮助初学者快速上手PyCaret的回归模块。将涵盖以下内容:

  • 获取数据:从Kaggle导入数据
  • 设置环境:在PyCaret中设置环境以无障碍运行回归模型
  • 创建模型:创建模型,执行交叉验证,并评估回归指标
  • 调整模型:自动调整回归模型的超参数
  • 绘制模型:绘制不同模型的性能图
  • 确定模型:在实验结束时选择并确定最佳模型
  • 预测模型:对新数据进行预测
  • 保存模型:保存模型以备将来使用

安装

在Google Colab、Azure Notebooks或Kaggle上安装PyCaret,可以使用以下命令:

!pip install pycaret

在本地Jupyter笔记本中安装PyCaret,可以使用:

pip install pycaret

先决条件

要使用PyCaret,需要满足以下条件:

  • Python3.6或更高版本
  • PyCaret 2.0或更高版本
  • 稳定的互联网连接以加载数据
  • 回归分析有基本了解

什么是回归分析

回归分析起源于统计学,是一种估计一个或多个自变量(特征、预测器或协变量)与一个因变量(结果变量或目标)之间关系的过程。在机器学习中,回归分析的目标是预测连续值的结果,例如销售额、数量、温度等。

PyCaret中的回归模块

PyCaret的回归模块是一个监督式机器学习模块,用于使用各种算法和技术预测值或结果。它拥有超过25种算法和10种图表来分析模型性能。无论是集成学习、超参数调整还是高级调整如堆叠,PyCaret都是所有机器学习解决方案的一站式平台。

数据集

本文将使用流行的“房价”数据集,这是一个非常适合初学者应用新学的机器学习概念的数据集。该数据集包含超过81列和1400条记录,几乎涵盖了房产的所有方面。

导入库

import pandas as pd test = pd.read_csv("test.csv") train = pd.read_csv("train.csv") print(train.shape) print(test.shape) print(train.head())

(注:由于列数众多,以上快照只包含部分列,后续的快照也是如此。)

train.describe() train.info()

在PyCaret中设置环境

在PyCaret中,必须先调用setup()函数来创建转换管道,准备数据以进行建模和部署。setup()是PyCaret中执行任何其他函数之前必须调用的。这里有一个关于setup()的重要摘录:

# 分离分类列 cat_f = ['MSZoning','Exterior1st','Exterior2nd', ...] exp_reg101 = setup(data = train, target = 'SalePrice', categorical_features = cat_f, ignore_features= ['Alley','PoolQC','MiscFeature', ...], normalize = True, session_id = 123)

现在环境已经完全可用。

比较所有回归模型

这里就是魔法发生的地方。只需一行代码,就可以在PyCaret中的所有可用模型上运行训练集。可以通过输入models()来查看可用的模型。

# 所有可用的模型 models()

现在训练所有模型,并根据R2分数选择最佳模型:

best = compare_models(exclude = ['ransac'])

创建模型

由于梯度提升回归器具有最高的R2分数,将使用该模型:

gbr = create_model('gbr')

现在调整模型:

tuned_gbr = tune_model(gbr) print(tuned_gbr)

绘制模型

在确定模型之前,可以使用plot_model()函数评估模型在不同方面的表现,例如残差图、预测误差、特征重要性等。

plot_model()下有超过10种图表可供选择,可以通过输入plot_model?来查看。

残差图:

plot_model(tuned_gbr)

预测误差图:

plot_model(tuned_gbr, plot = 'error')

特征重要性图:

plot_model(tuned_gbr, plot = 'feature')

另一种分析模型的好方法是使用evaluate_model()函数,它创建了一个交互式仪表板,用户可以从中选择所有可用的图表。用户可以轻松选择一个选项并查看他们想要的图表。例如,这里选择了“Cooks Distance”图表:

evaluate_model(tuned_gbr)

在测试数据上的预测

predict_model(tuned_gbr)

确定模型以部署

final_gbr = finalize_model(tuned_gbr) print(final_gbr)

在测试集上的预测

以下代码在DataFrame的末尾添加了一个名为“Label”的新列,用于存储预测值。

unseen_predictions = predict_model(final_gbr, data=test) unseen_predictions.head()

已经完成了实验,并使用存储的模型final_gbr来预测未见过的数据。但是,当有新数据需要预测时,否需要从头开始重新创建模型呢?答案显然是不。PyCaret的内置save_model()允许将这个已经训练好的模型保存起来,以备将来使用。

save_model(final_gbr,'Final GBR Model 7Jul2021')

本文涵盖了从加载数据、预处理数据、训练模型、超参数调整,到最后的预测和保存训练模型的整个机器学习流程。所有这些操作都可以通过不到10条直观且易于记忆的命令完成。如果不使用PyCaret,重新创建整个过程将需要数百行代码,但这只是pycaret.regression模块的基础。

下一篇文章将介绍使用PyCaret进行中级自动机器学习回归。一旦发布,可以阅读那篇文章,以及在以下链接的其他文章:

Sion | Author at analytics Vidhya

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485