PyCaret使机器学习变得轻松
作者头像
  • 真是奇怪le
  • 2020-07-18 08:18:50 2

PyCaret 是由 Moez Ali 创建并于2020年4月发布的 Python 开源低代码机器学习库。它实际上是一个低代码库,使得用户可以通过极少量的代码创建完整的机器学习管道。PyCaret 是基于通用 Python 机器学习库(如 scikit-learn 和 XGBoost)构建的封装器。

PyCaret 提供了一种简洁且实用的语法。例如,我们可以使用一行代码比较18个分类模型。本文将引导您使用 PyCaret 完成分类任务,并解释每个步骤的细节。

首先,我们需要安装 PyCaret:

python !pip install pycaret

如果您使用 Google Colab 作为开发环境,并希望在笔记本中显示交互式可视化效果,需要执行以下代码:

python from pycaret.utils import enable_colab enable_colab()

我们将使用“Telco客户流失”数据集,可以从 Kaggle 获取。导入 numpypandas 后,我们可以将数据集读取到 pandas 数据框中:

```python import numpy as np import pandas as pd

df = pd.read_csv("/content/Customer-churn.csv") print(df.shape) # 输出 (7043, 21) ```

数据集包含7043个观测值(行)和21列。其中,“CustomerID”没有任何信息价值,因为它只是分配给每个客户的随机标识符。“TotalCharges”列是“tenure”和“MonthlyCharges”列的乘积,因此我们不需要这一列。我们需要删除这两列:

python df.drop(['customerID', 'TotalCharges'], axis=1, inplace=True)

我们的任务是使用提供的特征预测客户是否会流失(即离开公司)。为了简化说明,我们省略了探索性数据分析(EDA)过程,本文主要关注 PyCaret 的使用方式。

首先,我们需要设置 PyCaret 环境:

```python from pycaret.classification import *

expclf = setup(data=df, target='Churn', sessionid=111) ```

在本例中,数据类型是正确的,因此我们只需按 Enter 键继续。setup 函数需要以下参数:

  • data: 数据框的名称
  • target: 目标列的名称(因变量)
  • session_id: 一个随机数,用作当前操作的随机种子

执行 setup 函数后,我们将获得一系列关于环境和参数设置的信息。

接下来,我们可以使用 compare_models 函数快速评估 PyCaret 模型库中所有模型的性能。这个函数训练所有模型,并根据六种常见的分类指标对其进行评估。

python best_models = compare_models(n_select=15, sort='Accuracy')

这行代码可以让我们比较18个模型在六种不同度量标准下的表现。默认情况下,模型按准确性排序,但可以通过 sort 参数进行更改。评估采用10折分层交叉验证。

接下来,我们选择一个算法进行进一步优化。为了简化,我们选择了逻辑回归模型:

python logreg = create_model('lr')

create_model 函数用于创建选定的模型。我们只需传递模型的缩写即可。对于逻辑回归模型,我们创建了一个初步版本。

调整超参数是提升模型性能的关键步骤之一。PyCaret 提供了 tune_model 函数,可以在预定义的搜索空间内调整超参数:

python tuned_logreg = tune_model('lr')

plot_model 函数提供了进一步分析模型性能的工具。它可以生成多种图表,如 ROC 曲线、混淆矩阵和特征重要性图。

python plot_model(logreg, plot='auc') plot_model(logreg, plot='confusion_matrix') plot_model(logreg, plot='feature_importance')

predict_model 函数用于对测试集进行预测。默认情况下,它会对测试集进行预测,但也可以提供新的观测值进行预测。

python predictions = predict_model(logreg, data=new_data)

一旦我们对训练集和测试集的性能满意,可以使用 finalize_model 函数在整个数据集上重新训练模型,以便在部署前应用所有数据:

python final_logreg = finalize_model(logreg)

最后,我们可以使用 save_modelload_model 函数保存和加载训练好的模型:

python save_model(final_logreg, 'final_logreg_model') loaded_model = load_model('final_logreg_model')

通过以上步骤,我们可以使用大约10行代码创建和评估一个高质量的模型。PyCaret 提供了一系列方便的功能,如 setupcompare_modelscreate_modeltune_modelplot_modelpredict_modelsave_modelload_model,使得机器学习流程更加高效和便捷。

感谢您的阅读。如果您有任何反馈意见,请随时告知。

    本文来源:图灵汇
责任编辑: : 真是奇怪le
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
变得机器PyCaret轻松学习
    下一篇