机器学习建模神器PyCaret已开源!提升效率,几行代码轻松搞定模型

低代码机器学习库--Pycaret 目录 PyCaret2.3简介 PyCaret安装 PyCaret功能模块 一、数据初始化 1.设置数据集、标注目标值 2.训练集/测试集划分 3.数据预处理 4.类别型特征值处理 5.编码转换 6.数据标准化 7.数据转换 8.特征衍生 9.特征选择 10.样本平衡处理 二、模型训练 1.比较模型 2.创建模型 3.模型调参 4.模型融合 三、模型可视化分析 1.性能分析(plot_model) 2.解释性分析(interpret_model) 3.模型校准. 阅读详情

编译:张峰,Datawhale成员

寄语:PyCaret,是一款 Python中的开源低代码(low-code)机器学习库,支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型,提升机器学习实验的效率。

本文对PyCaret低代码库进行了简单介绍,并对其操作方法进行了详细的解读。现在,让我们一起来领略下:如何用仅仅几行代码搞定一个机器学习模型吧。

首发 PyCaret 1.0.0

我们很高兴能宣布PyCaret,这是一个使用Python的开源机器学习库,用于在Windows上训练和部署有监督和无监督的机器学习模型低码环境。通过PyCaret,您可以在选择笔记本电脑环境后的几秒钟内,从准备数据到部署模型。

与其他开源机器学习库相比,PyCaret是一个备用的低代码库,可用于仅用很少的单词替换数百行代码。这使得实验快速而有效地成指数增长。PyCaret本质上是Python的包装器,它围绕着多个机器学习库和框架,例如scikit-learn,XGBoost,Microsoft LightGBM,spaCy等。

PyCaret简单易用。在PyCaret中执行的所有操作都按顺序存储在完全协调部署的管道中,无论是估算缺失值、转换分类数据、进行特征工程亦或是进行超参数调整,PyCaret都能自动执行所有操作。要了解有关PyCaret的更多信息,请观看此1分钟的视频。

PyCaret入门

可以安装PyCaret的第一个稳定版本(PyCaret1.0.0)。使用命令行(command line)界面或笔记本(notebook)环境,运行下面的代码单元以安装PyCaret。

pip install pycaret
如果您使用的是Azure笔记本或Google Colab,请运行以下代码单元以安装PyCaret。

!pip install pycaret

当您安装PyCaret时,将自动安装所有依赖项。完整依赖项列表参照下方链接:

https://github.com/pycaret/pycaret/blob/master/requirements.txt


没有比这更容易????,现在来直观感受下PyCaret的强大。

分步教程????

1. 获取数据

在本次循序渐进的教程中,我们将使用“糖尿病”数据集,目标是根据血压,胰岛素水平,年龄等多种因素来预测患者结果。直接从存储库导入数据集的最简单方法是使用pycaret.datasets模块中的get_data函数。

PyCaret的github仓库:https://github.com/pycaret/pycaret

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

????特别提醒: PyCaret可以直接与pandas数据框(dataframe)一起使用。

2. 搭建环境

PyCaret中任何机器学习实验的第一步都是通过导入所需的模块并初始化setup()来设置环境的。本示例中使用的模块是pycaret.classification。导入模块后,将通过定义数据框('diabetes')和目标变量('Class variable')来初始化setup()。

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

所有预处理步骤都在setup()中应用。PyCaret拥有20多种功能,可为机器学习准备数据,它会根据setup函数中定义的参数创建转换管道(transformation pipeline)。

它会自动编排管道(pipeline)中的所有依赖项,因此您不必手动管理对测试数据集或未知的数据集进行转换的顺序执行。PyCaret的管道可以轻松地在各种环境之间转移,以实现大规模运行或轻松部署到生产环境中。以下是PyCaret首次发布时可用的预处理功能。PyCaret的预处理能力如下图:

????特别提醒:当setup()初始化时,将自动执行机器学习必需的数据预处理步骤,例如缺失值插补,分类变量编码,标签编码(将yes或no转换为1或0)和训练、测试集拆分(train-test-split)。

3.比较模型

这是在有监督的机器学习实验(分类或回归)中建议的第一步。此功能训练模型库中的所有模型,并使用k倍交叉验证(默认10倍)比较通用评估指标。使用的评估指标是:

  • 分类:Accuracy(准确度),AUC,Recall(召回率),Precision(精确度),F1,Kappa

  • 回归:MAE,MSE,RMSE,R2,RMSLE,MAPE

compare_models()

????特别提醒:

  • 默认情况下,使用10倍交叉验证来评估指标。可以通过更改fold参数的值来更改它。

  • 默认情况下,表格按“准确度”(从最高到最低)排序。可以通过更改sort参数的值来更改。

4.创建模型

在PyCaret的任何模块中创建模型就像编写create_model一样简单。它仅接受一个参数,即作为字符串输入传递的模型名称。此函数返回具有k倍交叉验证分数和训练有素的模型对象的表格。

adaboost = create_model('ada')

变量“ adaboost”存储一个由create_model函数返回的经过训练的模型对象,该对象是scikit-learn评估器。可以通过在变量后使用点(.)来访问训练对象的原始属性。请参见下面的示例。

????特别提醒:ret具有60多个开源即用型(ready-to-use)算法。查看PyCaret中可用的估算器/模型的完整列表:https://www.pycaret.org/create-model

5.调整模型

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

tuned_adaboost = tune_model('ada')

????特别提醒:tune_model位于无监督模块,如函数pycaret.nlp,pycaret.clustering和pycaret.anomal可与监督模块结合使用。例如,PyCaret的NLP模块可用于通过监督ML模型(例如“准确度”或“ R2”)评估目标/成本函数来调整主题参数(topics parameter)的数量。

6.集成模型

ensemble_model功能用于ensembling训练的模型。它仅采用一个参数,即经过训练的模型对象。此函数返回具有k倍交叉验证得分和训练模型对象的表。

# creating a decision tree model
dt = create_model('dt')
# ensembling a trained dt model
dt_bagged = ensemble_model(dt)

????特别提醒:

  • 默认情况下,“Bagging”方法用于ensembling,可使用ensemble_model函数中的method参数将其更改为“Boosting” 。

  • PyCaret还提供blend_models和stack_models功能来集成多个训练过的模型。


7.显示模型

可以使用plot_model函数对经过训练的机器学习模型进行性能评估和诊断。它使用训练有素的模型对象和作图的类型作为plot_model函数中的字符串输入。

# 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')

了解有关PyCaret中不同可视化的更多信息:https://www.pycaret.org/plot-model

或者,您可以使用评估模型(evaluate_model)函数通过botebook中的用户界面查看作图效果。

evaluate_model(adaboost)

????特别提醒: plot_model函数pycaret.nlp模块可用于显示文本语料库和语义主题模型。

8.解释模型

在现实生活中通常是这样,当数据之间的关系是非线性时,我们总是看到基于树的模型(tree-based )比简单的高斯模型(simple gaussian models)做得更好。但是,这是以失去可解释性为代价的,因为基于树的模型没有像线性模型那样提供简单的系数。PyCaret 使用interpret_model函数实现SHAP(SHapley Additive exPlanations)。

# create a model
xgboost = create_model('xgboost')
# summary plot
interpret_model(xgboost)
# correlation plot
interpret_model(xgboost, plot = 'correlation')

可以使用“plot = 'reason'”评估测试数据集中特定数据点(也称为原因自变量'reason argument')的解释。在下面的示例中,我们正在检查测试数据集中的第一个实例。

interpret_model(xgboost, plot = 'reason', observation = 0)

9.预测模型

到目前为止,我们看到的结果仅基于训练数据集的k倍交叉验证(默认为70%)。为了查看模型在test / hold-out上的预测和性能,使用了predict_model函数。

# create a model
rf = create_model('rf')
# predict test / hold-out dataset
rf_holdout_pred = predict_model(rf)

predict_model函数还用于预测未知的数据集。现在,我们将使用与训练时相同的数据集作为新的未知数据集的代理(proxy )。实际上,每次使用新的未知数据集时,predict_model函数将被迭代使用。
predictions = predict_model(rf, data = diabetes)

????特别提醒:

  • predict_model函数还可以预测使用stack_models和create_stacknet函数创建的模型的顺序链(sequential chain)。

  • predict_model函数还可以使用deploy_model函数直接从AWS S3上托管的模型进行预测。


10.部署模型

利用训练后的模型在未知数据集上生成预测的一种方法是:在训练过模型的同一notebooks / IDE中使用predict_model函数。但是,对未知数据集进行预测是一个迭代过程。根据用例,进行预测的频率可以是从实时预测到批量预测。PyCaret的deploy_model函数允许notebook环境在云端部署整个管道,包括经过训练的模型。

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

11.保存模型/保存实验

训练完成后,包含所有预处理转换和训练后的模型对象的整个管道都可以保存为二进制pickle文件。

# creating model
adaboost = create_model('ada')
# saving model
save_model(adaboost, model_name = 'ada_for_deployment')

您还可以将包含所有中间输出的整个实验保存为一个二进制文件。
save_experiment(experiment_name = 'my_first_experiment')

????特别提醒:您可以使用PyCaret所有模块中可用的load_model和load_experiment函数加载保存的模型和保存的实验。

延伸阅读

【1】回归:https://pycaret.org/reg101/

【2】聚类:https://pycaret.org/clu101/

【3】异常检测:https://www.pycaret.org/anom101

【4】自然语言处理:https://pycaret.org/nlp101/

【5】关联规则挖掘:https://pycaret.org/arul101/

【6】预处理功能:https://www.pycaret.org/preprocessing

【7】模型列表:https://www.pycaret.org/create-model

【8】可视化信息:https://www.pycaret.org/plot-model

完)





利用pycaret:低代码,自动化机器学习框架解决分类问题 之前我介绍了利用pycaret来解决回归问题的博客,有兴趣的朋友可以查看我之前的博客,今天我再来介绍一下关于使用pycaret来解决分类问题,首先我们还是来简单介绍一下pycaret框架的基础知识:PyCaret 是 Python 中的一个开源、低代码机器学习库,它可以自动执行机器学习工作流。它是一种端到端的机器学习和模型管理工具,它可成倍的提高您的工作效率。与其他开源机器学习库相比,PyCaret 是一个低代码的机器学习框架,可用于仅用几行代码替换您之前写的几百行代码。这使得开发过程以指数方式快速和高效。 阅读详情

相关推荐

pycaret的具体使用流程

PyCaret的具体使用流程 PyCaret是Python中的一个开源、低代码机器学习库,旨在减少从数据处理到模型部署的周期时间。PyCaret库只需几行代码就可以完成从准备数据到部署模型,其中包括有数据处理,模型训练,参数搜索,模型可解释性,模型选择,实验日志查询。 一、PyCaret安装 在使用pycaret库进行机器学习处理时,pycaret2.3要求scikit-learn在是0.22版,然而,在python3.7下没有找到相应匹配的版本。为避免安装不兼容,我首先尝试了将pycaret降级为2.0版

wxfu2010的博客 4951

Pycaret使用教程

文档链接:https://pycaret.org/setup/ 模块介绍: 1.数据导入 #Importing data using pandas import pandas as pd data = pd.read_csv('c:/path_to_data/file.csv’) #Loading data from pycaret from pycaret.datasets import get_data data = get_data('juice’) 2.导入模型模块 #

xudonglovedandan的博客 9604

Pycaret-Multiclass-Classification:pycaret对多类目标变量的预测

Pycaret-多类分类 pycaret对多类目标变量的预测。

10款2021年国外顶尖的lowcode开发平台

低代码开发平台是一种为用户提供图形界面进行编程的应用程序,通过这种方式我们可以非常快速地开发代码并减少传统的编程工作。这些工具通过减少手工编码的工作量来帮助快速开发代码。它们不仅有助于编码...

趣谈前端 2198

生物信息学名词解释 | K-mer (长度为k的短序列)

K-mer 何谓K-mer 所谓Kmer,即为一段长度为k的DNA片段,是由测序reads剪切一部分得到的。k为一个奇数,k=几,就为几mer。 比如:我的测序reads长度为100bp,我将这100bp打断成17bp的短片段,打断后的17bp段片段就叫17mer,可以获得(100-17+1)条k-mer序列。 Table1 k-mers for GTAGAGCTGT. k k-mers 1 G,T,A,G,A,G,C,T,G,T 3 GTA,TAG,AGA,GAG,AGC,GCT,CT

qq_50637636的博客 2万+

跟着团子学SAP EPPM:项目管理常见的集成场景(PPM\PS\MS Project)

在SAP的EPPM解决方案中,针对企业战略级别的投资组合管理首先是定义合适的投资组合的层级结构,在投资组合下可以通过不同维度去定义投资篮(Portofolio Bucket)进行层层拆分,在最下层级的投资篮下可以分配明细的投资项(Portofolio Item),投资项可以是独立的一个一个具体执行的项目,也可以是单纯的一次服务等等。 今天主要聚焦在投资项的维度展开讲一下在SAP中投资项常见的几种集成模式: 集成场景1:使用PPM中的Project Management进行项目管理 第一个场景是在创建投资项

Lucas1211的博客 4141

工具系列:PyCaret介绍_二分类模型

setup函数在 PyCaret 中初始化实验,并根据传入函数的所有参数创建转换流水线。在执行任何其他函数之前,必须调用setup函数。data和target。所有其他参数都是可选的,用于配置数据预处理流水线。# 使用setup函数对数据进行预处理和设置# 参数data表示要处理的数据# 参数target表示目标变量的名称,即要预测的变量# 参数session_id表示设置的会话ID,用于重现结果要访问由设置函数创建的所有变量,例如转换后的数据集、随机状态等,您可以使用get_config方法。

数智笔记 1807

6D位姿估计系列(一)

本研究提出FoundationPose,一个统一的基础模型框架,支持基于CAD模型和无模型的6D物体姿态估计与跟踪。通过神经隐式表示实现高效新视图合成,结合大规模合成数据训练和对比学习策略,模型展现出强大的泛化能力。实验表明,该方法在LINEMOD、YCB-Video等多个基准数据集上显著优于现有专门化方法,处理速度达32Hz,且无需目标域微调。该工作为多场景物体姿态估计提供了通用解决方案。

qq625924821的博客 564

太赞了!分享一个数据科学利器 PyCaret,几行代码搞定从数据处理到模型部署

作者:xiaoyu,数据爱好者 Python数据科学出品 学习数据科学很久了,从数据探索、数据预处理、数据模型搭建和部署这些过程一直有些重复性的工作比较浪费时间,尤其当你有个新的想法想要快速尝试下效果的时候,效率很低。 东哥最近发现一个开源的Python机器学习库,名字叫PyCaret,这个轮子正好可以为了解决我刚才所描述的困扰,它的特点是以low-code低代码量来快速解决从数据预处理到模型部署的整个流程。 用了一下感觉确实有点香,因此也和大家分享一下。 PyCaret是什么? PyCaret是一个.

Python数据科学 3215

麒麟V10安装图形化界面

在配置VNC时发现,原本麒麟V10系统最小化安装,导致无图形化界面,先需要对其进行安装。 首先确保无图形化界面,可以在终端输入startX命令查看是否报错。 安装介绍: 1、 安装图形化界面 yum grouplist //查看可用yum安装组 注:这里一般会有缺少包或者出现包不符合的问题 导入软件包分组信息文件xxxx-comps.xml arm: 将此文件传送到源服务器, 然后createrepo -g导入到arm的base目录和updates目录 createrepo -g e33dc

Pro_jhf的博客 8076

AI大模型入门到实战系列(二十一)命名实体识别(NER)

命名实体识别(NER)是自然语言处理中的关键任务,旨在从文本中识别并分类预定义类别的实体(如人名、地点、组织等)。其核心步骤包括文本预处理、实体边界检测和类型分类。主流技术方法经历了从基于规则、统计机器学习到深度学习的演进,当前主要采用预训练语言模型(如BERT)和序列标注技术(如BiLSTM-CRF)。关键技术挑战包括实体边界模糊、嵌套实体和领域适应等问题。NER广泛应用于信息抽取、搜索引擎优化和知识图谱构建等领域,常用精确率、召回率和F1值作为评估指标。实际应用中通常采用BIO标注体系,并通过标签对齐处

echo的博客 1625

交叉验证代码_机器学习建模神器PyCaret已开源!提升效率,几行代码轻松搞定模型...

Datawhale干货编译:张峰,Datawhale成员寄语:PyCaret,是一款 Python中的开源低代码(low-code)机器学习库,支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型,提升机器学习实验的效率。本文对PyCaret低代码库进行了简单介绍,并对其操作方法进行了详细的解读。现在,让我们一起来领略下:如何用仅仅几行代码搞定一个机器学习模型吧。首发 Py...

weixin_39729115的博客 276

【安全设备篇】HVV面试专题

还有就是这个可能是被访问的这个内网系统,本身业务系统存在业务逻辑问题,因为内网所布置的很多业务系统往往不会考虑一些安全性问题,比如在正常的业务逻辑请求中直接带了sql语句,就会触发设备规则产生告警,这一类是属于误报,然后会将此告警上报给研判人员,需要研判组专家和甲方客户确认下是否是该系统存在此业务逻辑问题,并且需要确认告警的源ip在此告警的时间段附近有没有进行操作过。天眼日志分析主要基于系统和应用程序的日志数据来识别安全威胁,而威胁感知则通过收集和分析多种来源的情报信息。理解威胁的性质和威胁背后的原理。

大河之犬的博客 7927

抢人饭碗了!推荐一款全自动的机器学习建模神器PyCaret

Datawhale干货编译:张峰,Datawhale成员寄语:PyCaret,是一款 Python中的开源低代码(low-code)机器学习库,支持在「低代码」环境中训练和部署有监督...

机器学习算法那些事 1162

按照CANoe模板制作seed&&key.dll

在canoe进行诊断测试的时候,在0x27服务中需要制作一个dll文件。可在canoe的诊断中进行加载,也可用于diva的自动化测试。 本文按照canoe提供的KeyGenDll_GenerateKeyEx模板制作。 KEYGENALGO_API VKeyGenResultEx GenerateKeyEx( const unsigned char* iSeedArray, /* Array for the seed [in] */ unsigned int

天赐好车的博客 6526

FANUC机器人_CRX协作机器人的开机和示教器的初始化设置基本步骤(二)

FANUC机器人_CRX协作机器人的开机和示教器的初始化设置基本步骤

Robot_PLC_HMI_Automation 2733

低代码平台开发 python_GitHub - steedos/awesome-low-code: Awesome Low-Code Application Platforms | 全球低代码平台开发...

Awesome Low-Code Application Platforms | 全球低代码平台开发资源大全收集整理全球最好的低代码开发平台,以及相关的开发资源。LeadersSalesforce Platform: The Salesforce Platform empowers developers to quickly build and deploy trusted cloud appli...

weixin_39963174的博客 696

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

工具系列:PyCaret介绍_多分类代码示例

这个函数在PyCaret中初始化实验,并根据传入函数的所有参数创建转换流水线。在执行任何其他函数之前,必须调用设置函数。data和target。所有其他参数都是可选的,并用于配置数据预处理流水线。# 设置数据集和目标变量# data: 数据集# target: 目标变量,即要预测的变量# session_id: 用于重现实验结果的随机种子要访问由设置函数创建的所有变量,例如转换后的数据集、随机状态等,您可以使用get_config方法。# 获取所有可用的配置信息 get_config()

数智笔记 3658

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

8个提高数据科学效率的 Python库!

你为什么要合并在一起?当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。这种不同的方法意味着它不是无意义的地尝试每一个值,而是在尝试之前寻找最佳候选者,这样可以节省时间,否则这些时间会花在尝试没有希望的替代品上(并且可能也会产生更好的结果)。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

weixin_67991858的博客 167

pip升级不可以使用总是报错cannot import name 'FormatControl',解决办法

(emotion) G:\shiyan\sencond_Dimensional\Facial-emotion-Recognition-master>pip3 list Traceback (most recent call last): File "F:\anaconda\envs\emotion\Scripts\pip3-script.py", line 11, in <modu...

weixin_43506858的博客 1万+

GitHub 上适合新手的开源项目(Python 篇)

作者:HelloGitHub-卤蛋 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中。为什么这么多人学 Python ?我要喊出那句话了:“人生苦短,我用 Python!”,正是因为语法简单、容易学习,所以 Python 深受大家喜爱。(Python!Python!Python!) Python 初学者在迈过安装编程环境和基本语法的门槛 ,准备大展身手的时候,可能突然就会进入迷茫期:不知道做些什么、再学些什么。然后对编程的兴趣就会慢慢消退,找不到坚持下去的理由,从而慢慢淡忘之.

HelloGitHub 的博客 1万+

Python 可视化 web 神器:websim 、streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO

Streamlit 是Python可视化 web 神器 ,是一个开箱即用的工具集,可以让开发者免于学习繁杂的前端知识,仅需几行代码就可以轻松、快速的构建一个简洁、优雅、令人惊叹的可视化 web app 应用。用于机器学习、数据可视化。当快速搭建一个 web app 的时候 Streamlit 绝对是开发神器。

freeking101的博客 2万+
上一篇: 【李宏毅NLP笔记】Tacotron 可以从哪些方面改进
下一篇: 算法题从入门到放弃?刷了几千道算法题,关于如何刷题有些话我想对你说
Wang_AI
博客等级 码龄12年 997粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值