本文来源公众号“程序员学长”,仅用于学术分享,侵权删,干货满满。
原文链接:PyCaret,一个超强的 python 库
今天给大家分享一个超强的 python 库,PyCaret。
https://github.com/pycaret/pycaret
简介
PyCaret 是一个开源的、低代码的 Python 机器学习库,可自动化机器学习工作流程。
它是一种端到端的机器学习和模型管理工具,可以成倍地加快实验周期并提高你的工作效率。
与其他开源机器学习库相比,PyCaret 是一个替代的低代码库,可以用几行代码替换数百行代码。这使得实验的速度和效率呈指数级增长。
PyCaret 本质上是多个机器学习库和框架的 Python 包装器,例如 scikit-learn、XGBoost、LightGBM、CatBoost、Optuna、Hyperopt、Ray 等。
PyCaret 的设计和简单性受到了公民数据科学家这一新兴角色的启发,该术语由 Gartner 首次使用。
公民数据科学家是高级用户,他们可以执行简单和中等复杂的分析任务,而这些任务以前需要更多的技术专业知识。
初体验
安装
你可以使用 Python 的 pip 包管理器安装 PyCaret。
pip install pycaret
快速入门
PyCaret 具有 「函数式API和面向对象的API」两种形式。
函数式API
# Classification Functional API Example
# loading sample 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)
# model training and selection
best = compare_models()
# evaluate trained model
evaluate_model(best)
# predict on hold-out/test set
pred_holdout = predict_model(best)
# predict on new data
new_data = data.copy().drop('Purchase', axis = 1)
predictions = predict_model(best, data = new_data)
# save model
save_model(best, 'best_pipeline')
面向对象的API
# Classification OOP API Example
# loading sample dataset
from pycaret.datasets import get_data
data = get_data('juice')
# init setup
from pycaret.classification import ClassificationExperiment
s = ClassificationExperiment()
s.setup(data, target = 'Purchase', session_id = 123)
# model training and selection
best = s.compare_models()
# evaluate trained model
s.evaluate_model(best)
# predict on hold-out/test set
pred_holdout = s.predict_model(best)
# predict on new data
new_data = data.copy().drop('Purchase', axis = 1)
predictions = s.predict_model(best, data = new_data)
# save model
s.save_model(best, 'best_pipeline')
使用面向对象API实现时间序列分析
这里使用的数据集是 pycaret 自带的数据集 airline。
# load dataset
from pycaret.datasets import get_data
data = get_data('airline')
data
接着看:
# init setup
from pycaret.time_series import TSForecastingExperiment
s = TSForecastingExperiment()
s.setup(data,fh = 3,session_id = 123,n_jobs=1)
best=s.compare_models()
如下图所示,可以看到 STLF 模型的效果最好,下面我们来看一下预测的效果。
s.plot_model(best,plot = 'forecast')
# forecast plot 36 days out in future
s.plot_model(best, plot = 'forecast', data_kwargs = {'fh' : 36})
在 GPU 上训练
要想在 GPU 上训练模型,只需在 setup 函数中传递 use_gpu = True 即可。
API 的使用没有发生变化;但是,在某些情况下,必须安装额外的库。
你可以在 GPU 上训练以下模型:
-
Extreme Gradient Boosting
-
CatBoost
-
Logistic 回归、岭分类器、随机森林、K 邻域分类器、K 邻域回归器、支持向量机、线性回归、岭回归、套索回归。
-
Light Gradient Boosting Machine
THE END !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。