社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

炼丹神器|端到端的机器学习和模型管理工具PyCaret

极市平台 • 4 年前 • 655 次点击  
↑ 点击蓝字 关注极市平台

作者丨时晴
来源丨炼丹笔记
编辑丨极市平台

极市导读

 

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

执行完上述代码后,不仅自动推断了各个特征的类型,还问你是否推断正确。

直接continue,会弹出setup的分析结果,如下图所示:

从上图红框中,我们惊喜的发现连训练集测试集都帮忙我们拆分好了,并行已经帮我们把训练数据shuffle好了。当然我们可以自定义拆分比例,如下所示:

setup(data = insurance, target = 'charges', train_size = 0.5)

也可以对数据进行scale:

setup(data = pokemon, target = 'Legendary', normalize = True)

会默认帮你把连续值,离散值的缺失值处理掉:

可以对数据进行分桶,只需要加上参数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()

真的是应有尽有,大部分炼丹师其实只看到了最下面3个,xgb,lgb,cbt。

模型训练

那么我们就用xgb跑下吧:

# train decision tree
dt = create_model('xgboost')

然后啥都不用写,测试集上各个mertic就显示出来了:

模型融合是大家最常用的,也只需要一行代码:

# train multiple models
multiple_models = [create_model(i) for i in ['dt''lr''xgboost']]

要比较各个模型,也只需要一行代码:

# compare all models
best_model = compare_models()

模型预估:

predictions = predict_model(best_model, data = data2)

所以,大家数数看,我们一共才写了几行代码,就把模型预处理、训练、验证、融合、预估全完成了?做表格类数据模型真的是太方便了。

如果觉得有用,就请分享到朋友圈吧!

△点击卡片关注极市平台,获取最新CV干货

公众号后台回复“CVPR21检测”获取CVPR2021目标检测论文下载~


极市干货
深度学习环境搭建: 如何配置一台深度学习工作站?
实操教程:OpenVINO2021.4+YOLOX目标检测模型测试部署为什么你的显卡利用率总是0%?
算法技巧(trick):图像分类算法优化技巧21个深度学习调参的实用技巧


CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart4)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~



觉得有用麻烦给个在看啦~  
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/118422