当前位置: 首页 > 后端技术 > Python

Pycaret3.0RC版已经发布,有哪些重大改进?

时间:2023-03-25 19:51:44 Python

Pycaret是Python中的开源低代码机器学习库,可自动执行机器学习工作流程。它是一个端到端的机器学习和模型管理工具。想了解更多关于Pycaret的信息,可以查看官网或GitHub。1.完全兼容最新版本的Scikit-LearnPycaret2.x需要Scikit-Learn0.23.2,如果你想在同一个Python环境下使用最新版本的Scikit-Learn和Pycaret是不可能的,但是Pycaret3.0将与最新版本的Scikit-Learn完全兼容。2、面向对象的APIPyCaret很棒,但是缺乏面向对象的思想。通过添加类和对象,PyCaret从1.0开始改变了它的工作方式,#FunctionalAPI(Existing)#loaddatasetfrompycaret.datasetsimportget_datadata=get_data('juice')#initsetupfrompycaret.classificationimport*s=setup(data,target='Purchase',session_id=123)#comparemodelsbest=compare_models()这很方便,但是如果你现在想在同一个笔记本上运行多个不同参数的实验,你可能会遇到参数被覆盖的问题,因为它是变量的形式,这些参数都被覆盖了,你很难找到。现在有了新的面向对象的API,参数存储在对象中,不会产生多余的变量,简化了操作。#loaddatasetfrompycaret.datasetsimportget_datadata=get_data('juice')#initsetup1frompycaret.classificationimportClassificationExperimentexp1=ClassificationExperiment()exp1.setup(data,target='Purchase',session_id=123)#比较模型init1best=exp1.compare_models()#initsetup2exp2=ClassificationExperiment()exp2.setup(data,target='Purchase',normalize=True,session_id=123)#comparemodelsinit2best2=exp2.compare_models()你也可以使用get_leaderboard功能为每个实验生成一个结果列表,然后将它们进行比较。#生成排行榜leaderboard_exp1=exp1.get_leaderboard()leaderboard_exp2=exp2.get_leaderboard()lb=pd.concat([leaderboard_exp1,leaderboard_exp2])#打印流水线步骤print(exp1.pipeline.steps)print(exp21.pipeline.steps)也可以基于需要在函数式API和面向对象API之间切换。#setcurrentexperimenttoexp1frompycaret.classificatiomimportset_current_experimentset_current_experiment(exp1)3.时间序列模块长期以来,PyCaret的时间序列模块一直是一个单独的PyPI库(PyCaret-ts-alpha)。现在PyCaret3.0终于将它们结合在一起。#loaddatasetfrompycaret.datasetsimportget_datadata=get_data('airline')#initsetupfrompycaret.time_seriesimport*s=setup(data,fh=12,session_id=123)#比较模型best=compare_models()#forecastplotplot_model(best,plot='forecast')4.改进pipelinepipeline预处理模块完全重写,完全兼容最新版本的scikit-learn,提高效率和性能。Pycaret3.0中引入了几个针对不同类型分类编码的新预处理函数。在2.x之前,只有One-Hot-Encoding编码。下面是使用相同random_state的各种模型的性能比较3.0中可用的一些新特性是:新的分类编码技术来处理文本建模4.模块化和轻量级Pycaret3.0进行了模块化重构和减少依赖。与2.x相比,减少了33%的依赖,大大缩短了安装时间。也可以单独安装不同的模块,例如Pycaret[NLP]将安装NLP相关的依赖项。5.自动数据类型处理Pycaret3.0不需要确认数据类型,因为它可以自动处理。但是仍然可以使用numeric_features和central_features参数覆盖数据类型。6.文本特征工程PyCaret3.0将能够处理文本输入。如果数据集中有文本列,设置中有两个新参数,可以从文本中提取特征进行模型训练。https://avoid.overfit.cn/post/5a08306734164b128837e4aca4291554作者:MoezAli