炼丹神器|端到端的机器学习和模型管理工具PyCaret
共 2764字,需浏览 6分钟
·
2021-08-15 17:23
![](https://filescdn.proginn.com/d727f517384efedc7525230796938d33/7e561e75e01531861355645ccfabb047.webp)
极市导读
PyCaret 是一个替代的低代码库,可用于仅用很少的单词替换数百行代码。PyCaret 本质上是围绕多个机器学习库和框架(例如 scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt、Ray 等)的 Python 包装器。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
PyCaret这个开源工具,用起来可谓简单至极,少量代码就可以搭建各种端到端的模型,废话不多说,直接看实战。
PyCaret安装:
# install slim version (default)
pip install pycaret
# install the full version
pip install pycaret[full]
先用PyCaret自带的'insurance'数据集作为例子,我们看下数据:
# read data from pycaret repo
from pycaret.datasets import get_data
data = get_data('insurance')
数据预处理
该步骤是使用PyCaret构建任何模型强制要做的一步:
# initialize setup
from pycaret.regression import *
s = setup(data, target = 'charges')
执行完上述代码后,不仅自动推断了各个特征的类型,还问你是否推断正确。
![](https://filescdn.proginn.com/e91798bddbfbb756b48a095e4ba9ab3a/15a7f0e33a83b17d3a9ad97564eaf24d.webp)
直接continue,会弹出setup的分析结果,如下图所示:
![](https://filescdn.proginn.com/72cadfad6e6d9da6cc9f0d01961739e7/8d3c1161b850f3831ea024ef1e5daddb.webp)
从上图红框中,我们惊喜的发现连训练集测试集都帮忙我们拆分好了,并行已经帮我们把训练数据shuffle好了。当然我们可以自定义拆分比例,如下所示:
setup(data = insurance, target = 'charges', train_size = 0.5)
也可以对数据进行scale:
setup(data = pokemon, target = 'Legendary', normalize = True)
会默认帮你把连续值,离散值的缺失值处理掉:
![](https://filescdn.proginn.com/6d49fb5c62de3eb9e165a194bc756e36/0b189c5317b2fa0bd366cb801748e1c7.webp)
可以对数据进行分桶,只需要加上参数bin_numeric_features :
setup(data = income, target = 'income >50K', bin_numeric_features = ['age'])
需要进行特征筛选的话,也只需要加一个参数feature_selection = True:
setup(data = diabetes, target = 'Class variable', feature_selection = True)
同样,一个参数连异常值都帮你移除了remove_outliers = True:
setup(data = insurance, target = 'charges', remove_outliers = True)
还有各种各样的预处理操作,大家可以参考官方文档。
https://pycaret.org/preprocessing/
模型训练
直接看下我们可以用哪些模型:
# check all the available models
models()
![](https://filescdn.proginn.com/2532ed5682c956f17841987be35bdcde/be7df5235659ff753ee080f353cf8862.webp)
真的是应有尽有,大部分炼丹师其实只看到了最下面3个,xgb,lgb,cbt。
模型训练
那么我们就用xgb跑下吧:
# train decision tree
dt = create_model('xgboost')
然后啥都不用写,测试集上各个mertic就显示出来了:
![](https://filescdn.proginn.com/8683b49ec6653bf8de28dd03b9ea8508/84cfca82027e1a4a94413ce95529dc8d.webp)
模型融合是大家最常用的,也只需要一行代码:
# train multiple models
multiple_models = [create_model(i) for i in ['dt', 'lr', 'xgboost']]
要比较各个模型,也只需要一行代码:
# compare all models
best_model = compare_models()
![](https://filescdn.proginn.com/fbd0839cbdf2d221805869b132c7d5dd/05746e95bb01bb8c2a34accd225958ee.webp)
模型预估:
predictions = predict_model(best_model, data = data2)
所以,大家数数看,我们一共才写了几行代码,就把模型预处理、训练、验证、融合、预估全完成了?做表格类数据模型真的是太方便了。
如果觉得有用,就请分享到朋友圈吧!
公众号后台回复“CVPR21检测”获取CVPR2021目标检测论文下载~
![](https://filescdn.proginn.com/c261510d2bf1d338b1e80a096a0bd0de/29f390d1d368abbb8fb3625a61609b84.webp)
# CV技术社群邀请函 #
![](https://filescdn.proginn.com/0d40c2ac169a755819cc26e3ec1cc061/d292cad5c779e9a5697e8f38a48359c5.webp)
备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)
即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群
每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~
![](https://filescdn.proginn.com/c42df28a535c1bbd360263f22863b230/62533b98d707def4a9e33e886553029f.webp)