凶猛了!几行代码搞定机器学习模型
作者头像
  • 2020-04-28 15:22:50 2

优质的机器学习文章,第一时间呈现!

机器学习编辑团队

使用低代码环境训练和部署有监督及无监督机器学习模型,PyCaret 库能够显著提高机器学习实验的效率。如果你希望将精力集中在解决业务问题而非编写代码上,低代码平台可能是一个不错的选择。

最近,我们发现了一个开源低代码机器学习 Python 库——PyCaret。它能够在「低代码」环境中训练和部署有监督及无监督的机器学习模型。

  • GitHub 地址:https://github.com/pycaret/pycaret
  • 用户文档:https://www.pycaret.org/guide
  • Notebook 教程:https://www.pycaret.org/tutorial

PyCaret 让数据科学家能够快速高效地执行端到端的实验。与其他开源机器学习库相比,PyCaret 只需几行代码就能完成复杂的机器学习任务。无论是经验丰富的数据科学家,还是新手,甚至是编程基础较弱的人,都能从中受益。

PyCaret 支持多种 Notebook 环境,包括 Jupyter Notebook、Azure notebook 和 Google Colab。从本质上讲,PyCaret 是一个 Python 封装器,封装了多个机器学习库和框架,如 sci-kit-learn、XGBoost、Microsoft LightGBM 和 spaCy 等。

在 PyCaret 中,所有机器学习实验步骤都可以通过自动开发的 pipeline 复现。PyCaret 中的所有操作都按顺序存储在 Pipeline 中,并针对模型部署进行了全面配置。无论是填充缺失值、转换类别数据、执行特征工程,还是调参,PyCaret 都能自动完成。Pipeline 还可以保存为二进制文件格式,以便在不同环境中迁移。

PyCaret 包含一系列函数,用户可以通过它们完成机器学习实验。这些函数主要分为五个大类:初始化、模型训练、集成、分析与部署。此外,PyCaret 提供了六个模块,支持有监督和无监督模型的训练和部署,分别是分类、回归、聚类、异常检测、自然语言处理和关联规则挖掘。用户可以根据实验类型选择合适的模块。

接下来,我们将介绍如何安装和使用 PyCaret。

安装 PyCaret

使用 pip 安装 PyCaret。

在命令行界面或 Notebook 环境中运行以下命令:

shell pip install pycaret

Azure notebook 和 Google Colab 用户可以运行以下命令:

shell !pip install pycaret

安装过程中,PyCaret 会自动安装所有依赖项。

分步教程

数据获取

本教程使用「糖尿病」数据集,目标是根据血压、胰岛素水平以及年龄等多种因素预测患者的预后情况(1 或 0)。数据集可以在 PyCaret 的 GitHub 地址找到。

使用 pycaret.datasets 模块中的 get_data 函数可以直接从 PyCaret 库中导入数据集:

python from pycaret.datasets import get_data diabetes = get_data('diabetes')

环境配置

在 PyCaret 中执行任何机器学习实验的第一步是通过导入所需模块并初始化 setup 来设置环境。例如,使用 pycaret.classification 模块:

python from pycaret.classification import * exp1 = setup(diabetes, target='Class variable')

所有预处理步骤都会在 setup 中应用,PyCaret 拥有 20 多种功能用于机器学习相关的数据准备,如根据 setup 函数中定义的参数创建 Transformation pipeline,并自动协调 Pipeline 中的所有相关性和依赖关系。

模型比较

监督机器学习实验的第一步是模型比较。compare_models 函数会训练模型库中的所有模型,并使用 k 折交叉验证(默认 k=10)来比较常见的评估指标。评估指标包括:

  • 分类模块:准确率、AUC、召回率、精度、F1 和 Kappa;
  • 回归模块:MAE、MSE、RMSE、R2、RMSLE 和 MAPE。

python compare_models()

默认使用 10 折交叉验证来评估指标,可以改变 fold 参数值来改变评估结果。默认使用精度值(由高到低)来分类 table,也可以改变 sort 参数值来改变分类结果。

模型创建

在 PyCaret 的任何模块中,创建模型只需一行代码。例如,使用 create_model 函数创建 AdaBoost 模型:

python adaboost = create_model('adaboost')

模型调优

tune_model 函数用于自动调整机器学习模型的超参数。PyCaret 在预定义的搜索空间上使用随机网格搜索。此函数返回具有 k 折交叉验证分数和训练好的模型对象的表格。

python tuned_adaboost = tune_model('ada')

模型集成

ensemble_model 函数用于集成训练好的模型。它只需要一个参数,即训练好的模型对象。此函数返回具有 k 折交叉验证分数和训练好的模型对象的表格。

python dt = create_model('dt') dt_bagged = ensemble_model(dt)

默认使用 Bagging 方法进行模型集成,也可以通过 ensemble_model 函数中的 method 参数将其转换为 Boosting。

模型绘制

plot_model 函数用于可视化训练好的机器学习模型的功能和诊断。例如,绘制 AUC 曲线:

python plot_model(adaboost, plot='auc')

模型解释

PyCaret 使用 SHAP(SHapley Additive exPlanations)来解释模型。例如:

python xgboost = create_model('xgboost') interpret_model(xgboost)

模型预测

为了获得模型在测试或 hold-out 数据集上的预测结果,可以使用 predict_model 函数:

python rf = create_model('rf') rf_holdout_pred = predict_model(rf)

模型部署

deploy_model 函数允许部署整个 pipeline,包括云端训练的模型:

python deploy_model(model=rf, model_name='rf_aws', platform='aws', authentication={'bucket': 'pycaret-test'})

模型/实验保存

训练完成后,可以保存整个 pipeline,包括所有预处理转换和训练模型对象:

python adaboost = create_model('ada') save_model(adaboost, model_name='ada_for_deployment')

用户还可以保存整个实验,包括所有中间输入:

python save_experiment(experiment_name='my_first_experiment')

通过 loadmodel 和 loadexperiment 函数,用户可以下载保存的模型和实验。

关键词

回复关键词「pybook03」,获取《Think Python 2e》电子版。

回复关键词「入门材料」,获取 10 本 Python 入门书籍的电子版。

回复关键词「m」,获取 Python 精选优质文章合集。

回复关键词「0」及以上数字,获取更多资源。

    本文来源:图灵汇
责任编辑: :
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
凶猛搞定模型机器代码学习
    下一篇