宣布PyCaret 1.0.0
Python中的开源低代码机器学习库。
我们很高兴宣布PyCaret,这是一个使用Python的开源机器学习库,用于在低代码环境中训练和部署有监督和无监督的机器学习模型。 通过PyCaret,您可以在选择笔记本电脑环境后的几秒钟内,从准备数据到部署模型。
与其他开源机器学习库相比,PyCaret是一个备用的低代码库,可用于仅用很少的单词替换数百行代码。 这使得实验快速而有效地成指数增长。 PyCaret本质上是Python的包装器,它围绕着多个机器学习库和框架,例如scikit-learn,XGBoost,Microsoft LightGBM,spaCy等。
PyCaret简单易用。 在PyCaret中执行的所有操作都按顺序存储在完全协调部署的管道中。 无论是估算缺失值,转换分类数据,进行特征工程设计还是什至进行超参数调整,PyCaret都能自动执行所有操作。 要了解有关PyCaret的更多信息,请观看此1分钟的视频。
PyCaret入门
可以使用pip安装PyCaret版本1.0.0的第一个稳定版本。 使用命令行界面或笔记本环境,运行下面的代码单元以安装PyCaret。
pip install pycaret
如果您使用的是Azure笔记本或Google Colab,请运行以下代码单元以安装PyCaret。
!pip install pycaret
当您安装PyCaret时,将自动安装所有依赖项。 单击此处查看完整依赖项列表。
没有比这更容易
分步教程
1.获取数据
在本循序渐进的教程中,我们将使用"糖尿病"数据集,目标是根据血压,胰岛素水平,年龄等多种因素预测患者预后(二进制1或0)。 PyCaret的github存储库。 直接从存储库导入数据集的最简单方法是使用pycaret.datasets模块中的get_data函数。
from pycaret.datasets import get_datadiabetes = get_data('diabetes')
> output from get_data
y PyCaret可以直接与pandas数据框一起使用。
2.搭建环境
PyCaret中任何机器学习实验的第一步都是通过导入所需的模块并初始化setup()来设置环境。 本示例中使用的模块是pycaret.classification。
导入模块后,将通过定义数据框("糖尿病")和目标变量("类变量")来初始化setup()。
from pycaret.classification import *exp1 = setup(diabetes, target = 'Class variable')
所有预处理步骤都在setup()中应用。 PyCaret拥有20多种功能,可为机器学习准备数据,它会根据设置函数中定义的参数创建转换管道。 它会自动协调管道中的所有依赖关系,因此您不必手动管理对测试或看不见的数据集进行转换的顺序执行。 PyCaret的管道可以轻松地在各种环境之间转移,以大规模运行或轻松部署到生产环境中。 以下是PyCaret首次发布时可用的预处理功能。
setup初始化setup()时,将自动执行机器学习必需的数据预处理步骤,例如缺失值插补,分类变量编码,标签编码(将yes或no转换为1或0)和train-test-split。 单击此处以了解有关PyCaret预处理功能的更多信息。
3.比较模型
这是在有监督的机器学习实验(分类或回归)中建议的第一步。 此功能训练模型库中的所有模型,并使用k倍交叉验证(默认10倍)比较通用评估指标。 使用的评估指标是:
· 分类:准确度,AUC,召回率,精确度,F1,Kappa
· 对于回归:MAE,MSE,RMSE,R2,RMSLE,MAPE
compare_models()
by默认情况下,使用10倍交叉验证来评估指标。 可以通过更改fold参数的值来更改它。
default默认情况下,表格按"准确性"(从最高到最低)值排序。 可以通过更改sort参数的值来更改。
4.创建模型
在PyCaret的任何模块中创建模型就像编写create_model一样简单。 它仅采用一个参数,即作为字符串输入传递的模型名称。 此函数返回具有k倍交叉验证分数和训练有素的模型对象的表格。
<code>adaboost = create_model('ada')/<code>
变量" adaboost"存储一个由create_model函数返回的经过训练的模型对象,该对象是scikit-learn估计器。 可以通过在变量后使用句点(。)来访问训练对象的原始属性。 请参见下面的示例。
y PyCaret具有60多个开源即用型算法。 单击此处查看PyCaret中可用的估算器/模型的完整列表。
5.调优模型
tune_model函数用于自动调整机器学习模型的超参数。 PyCaret在预定义的搜索空间上使用随机网格搜索。 此函数返回具有k倍交叉验证分数和训练有素的模型对象的表格。
<code>tuned_adaboost = tune_model('ada')/<code>
un可以将非监督模块(例如pycaret.nlp,pycaret.clustering和pycaret.anomaly)中的tune_model函数与受监督模块结合使用。 例如,PyCaret的NLP模块可用于通过监督的ML模型(例如"准确性"或" R2")评估目标/成本函数来调整主题数参数。
6.ensemble模型
ensemble_model函数用于汇总训练后的模型。 它仅采用一个参数,即经过训练的模型对象。 此函数返回具有k倍交叉验证得分和训练模型对象的表。
<code># creating a decision tree model dt = create_model('dt') # ensembling a trained dt model dt_bagged = ensemble_model(dt)/<code>
by默认情况下,"袋装"方法用于合奏,可通过使用ensemble_model函数中的method参数将其更改为"升压"。
y PyCaret还提供blend_models和stack_models功能来集成多个训练过的模型。
7.可视化模型
可以使用plot_model函数对经过训练的机器学习模型进行性能评估和诊断。 它使用训练有素的模型对象和图的类型作为plot_model函数中的字符串输入。
<code># create a model adaboost = create_model('ada') # AUC plot plot_model(adaboost, plot = 'auc') # Decision Boundary plot_model(adaboost, plot = 'boundary') # Precision Recall Curve plot_model(adaboost, plot = 'pr') # Validation Curve plot_model(adaboost, plot = 'vc') /<code>
单击此处以了解有关PyCaret中不同可视化的更多信息。
或者,您可以使用评估模型函数通过笔记本中的用户界面查看图。
<code>evaluate_model(adaboost)/<code>
pycaret.nlp模块中的plot_model函数可用于可视化文本语料库和语义主题模型。 单击此处了解更多信息。
8.解释模型
当数据之间的关系是非线性的时,在现实生活中通常是这样,我们总是看到基于树的模型比简单的高斯模型做得更好。 但是,这是以失去可解释性为代价的,因为基于树的模型没有像线性模型那样提供简单的系数。 PyCaret使用interpret_model函数实现SHAP(SHapley Additive exPlanations)。
<code># create a model xgboost = create_model('xgboost') # summary plot interpret_model(xgboost) # correlation plot interpret_model(xgboost, plot = 'correlation')/<code>
可以使用"原因"图评估测试数据集中特定数据点(也称为"原因"自变量)的解释。 在下面的示例中,我们正在检查测试数据集中的第一个实例。
<code>interpret_model(xgboost, plot = 'reason', observation = 0)/<code>
9.预测模型
到目前为止,我们看到的结果仅基于训练数据集的k倍交叉验证(默认为70%)。 为了查看模型在测试/保持数据集上的预测和性能,使用了predict_model函数。
<code># create a model rf = create_model('rf') # predict test / hold-out dataset rf_holdout_pred = predict_model(rf)/<code>
Forecast_model函数还用于预测看不见的数据集。 现在,我们将使用与训练时使用的相同的数据集作为新的看不见的数据集的代理。 实际上,每次使用新的看不见的数据集时,predict_model函数将被迭代使用。
<code>predictions = predict_model(rf, data = diabetes)/<code>
Forecast_model函数还可以预测使用stack_models和create_stacknet函数创建的模型的顺序链。
Forecast_model函数还可以使用deploy_model函数直接从AWS S3上托管的模型进行预测。
10.部署模型
利用训练后的模型在看不见的数据集上生成预测的一种方法是在训练了模型的同一笔记本/ IDE中使用predict_model函数。 但是,对看不见的数据集进行预测是一个迭代过程。 根据用例,进行预测的频率可以是从实时预测到批量预测。 PyCaret的deploy_model函数允许从笔记本环境在云上部署整个管道,包括经过训练的模型。
<code>deploy_model(model = rf, model_name = 'rf_aws', platform = 'aws', authentication = {'bucket' : 'pycaret-test'})/<code>
11.保存模型/保存实验
训练完成后,包含所有预处理转换和训练后的模型对象的整个管道都可以保存为二进制pickle文件。
<code># creating model adaboost = create_model('ada') # saving model save_model(adaboost, model_name = 'ada_for_deployment')/<code>
您还可以将包含所有中间输出的整个实验保存为一个二进制文件。
<code>save_experiment(experiment_name = 'my_first_experiment')/<code>
您可以使用PyCaret所有模块中可用的load_model和load_experiment函数加载保存的模型和保存的实验。
12.下一教程
在下一个教程中,我们将展示如何在Power BI中使用经过训练的机器学习模型,以在实际生产环境中生成批量预测。
另请参阅这些模块的初学者笔记本:
回归聚类异常检测自然语言处理关联规则挖掘
开发过程中有什么?
我们正在积极改善PyCaret。 我们未来的开发流程包括新的时间序列预测模块,与TensorFlow的集成以及PyCaret可扩展性的重大改进。 如果您想分享您的反馈意见并帮助我们进一步改进,则可以在网站上填写此表格,或在我们的GitHub或LinkedIn页面上发表评论。
想了解一个特定的模块吗?
从第一个版本1.0.0开始,PyCaret可以使用以下模块。 单击下面的链接以查看文档和工作示例。
分类回归聚类异常检测自然语言处理关联规则挖掘
重要连结
用户指南/文档Github存储库安装PyCaretNotebook教程在PyCaret中贡献
如果您喜欢PyCaret,请在我们的github存储库上给我们提供️。
要了解有关PyCaret的更多信息,请在LinkedIn和Youtube上关注我们。
(本文翻译自Moez Ali的文章《Announcing PyCaret 1.0.0》,参考:https://towardsdatascience.com/announcing-pycaret-an-open-source-low-code-machine-learning-library-in-python-4a1f1aad8d46)