Pycaret 是 Python 中的一个开源可自动化机器学习工作流程的低代码机学习库。它是一种端到端的机器学习和模型管理工具。要理解无关 Pycaret 的更多信息,能够查看官方网站或 GitHub。
1、与最新版本的 Scikit-Learn 齐全兼容
Pycaret 2.x 须要 Scikit-Learn 0.23.2,如果您想在同一 Python 环境中应用 Scikit-Learn 和 Pycaret 的最新版本是不可能的,然而 Pycaret 3.0 将与 Scikit-Learn 的最新版本齐全兼容。
2、面向对象的 API
PyCaret 很棒,但不足面向对象的思维。通过退出类和对象,PyCaret 扭转了从 1.0 开始的工作形式,
# Functional API (Existing)
# load dataset
from pycaret.datasets import get_data
data = get_data('juice')
# init setup
from pycaret.classification import *
s = setup(data, target = 'Purchase', session_id = 123)
# compare models
best = compare_models()
这很不便,但如果当初你想在同一个 notebook 上运行不同参数的多个试验,你可能就会遇到参数被笼罩的问题,并且因为是变量的模式,这些参数被笼罩了你也很难发现他们。当初有了新的面向对象的 API,参数保留在对象中,不会产生多余的变量,简化了操作。
# load dataset
from pycaret.datasets import get_data
data = get_data('juice')
# init setup 1
from pycaret.classification import ClassificationExperiment
exp1 = ClassificationExperiment()
exp1.setup(data, target = 'Purchase', session_id = 123)
# compare models init 1
best = exp1.compare_models()
# init setup 2
exp2 = ClassificationExperiment()
exp2.setup(data, target = 'Purchase', normalize = True, session_id = 123)
# compare models init 2
best2 = exp2.compare_models()
你还能够应用 get_leaderboard 函数为每个试验生成后果列表,而后进行比拟。
# generate leaderboard
leaderboard_exp1 = exp1.get_leaderboard()
leaderboard_exp2 = exp2.get_leaderboard()
lb = pd.concat([leaderboard_exp1, leaderboard_exp2])
# print pipeline steps
print(exp1.pipeline.steps)
print(exp21.pipeline.steps)
还能够依据须要在函数式 API 和面向对象 API 之间进行切换。
# set current experiment to exp1
from pycaret.classificatiom import set_current_experiment
set_current_experiment(exp1)
3、工夫序列模块
很长一段时间以来,PyCaret 的工夫序列模块始终是一个独自的 PyPI 库 (PyCaret-ts-alpha)。当初 PyCaret 3.0 终于将他们整合在一起。
# load dataset
from pycaret.datasets import get_data
data = get_data('airline')
# init setup
from pycaret.time_series import *
s = setup(data, fh = 12, session_id = 123)
# compare models
best = compare_models()
# forecast plot
plot_model(best, plot = 'forecast')
4、管道流水线的改良
预处理模块为了与 scikit-learn 最新版本齐全兼容并提高效率和性能,曾经齐全进行了重写。在 Pycaret 3.0 中引入了几种新的预处理函数不同类型的分类编码。在 2.x 之前只有 One-Hot-Encoding 编码。
上面比拟了应用雷同 random_state 的各种模型的体现
3.0 中可用的一些新性能是:
- 新的分类编码技术
- 能够解决文本建模
- 退出了检测异样值的新技术
- 退出了特征选择的新技术
- 保障防止指标透露
4、模块化和轻量化
Pycaret 3.0 进行了模块化的重构并缩小了依赖,相比于 2.x 缩小了 33%依赖项,并且在装置的工夫方面有了很大的缩减。此外还能够独自装置不同的模块,例如 Pycaret [NLP] 将装置与 NLP 相干的依赖关系。
5、主动数据类型解决
Pycaret 3.0 不须要对数据类型进行确认,因为它可能主动的解决。然而依然能够应用 numeric_features 和 centorical_features 参数笼罩数据类型。
6、文本特色工程
PyCaret 3.0 将可能解决文本输出。如果数据集中有一个文本列,设置中有两个新参数,能够从文本中提取特色用于模型训练。
https://avoid.overfit.cn/post/5a08306734164b128837e4aca4291554
作者:Moez Ali