机器学习建模神器PyCaret已开源!提升效率,几行代码轻松搞定模型
The following article is from Datawhale Author 张峰
点击上方“Python数据科学”,星标公众号
重磅干货,第一时间送达
编译:张峰,Datawhale成员
寄语:PyCaret,是一款 Python中的开源低代码(low-code)机器学习库,支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型,提升机器学习实验的效率。
首发 PyCaret 1.0.0
我们很高兴能宣布PyCaret,这是一个使用Python的开源机器学习库,用于在Windows上训练和部署有监督和无监督的机器学习模型低码环境。通过PyCaret,您可以在选择笔记本电脑环境后的几秒钟内,从准备数据到部署模型。
PyCaret入门
可以安装PyCaret的第一个稳定版本(PyCaret1.0.0)。使用命令行(command line)界面或笔记本(notebook)环境,运行下面的代码单元以安装PyCaret。
pip install pycaret
!pip install pycaret
没有比这更容易👇,现在来直观感受下PyCaret的强大。
分步教程📘
1. 获取数据
在本次循序渐进的教程中,我们将使用“糖尿病”数据集,目标是根据血压,胰岛素水平,年龄等多种因素来预测患者结果。直接从存储库导入数据集的最简单方法是使用pycaret.datasets模块中的get_data函数。
PyCaret的github仓库:https://github.com/pycaret/pycaret
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
2. 搭建环境
from pycaret.classification import *
exp1 = setup(diabetes, target = 'Class variable')
3.比较模型
分类:Accuracy(准确度),AUC,Recall(召回率),Precision(精确度),F1,Kappa
回归:MAE,MSE,RMSE,R2,RMSLE,MAPE
compare_models()
默认情况下,使用10倍交叉验证来评估指标。可以通过更改fold参数的值来更改它。
默认情况下,表格按“准确度”(从最高到最低)排序。可以通过更改sort参数的值来更改。
4.创建模型
adaboost = create_model('ada')
5.调整模型
tuned_adaboost = tune_model('ada')
6.集成模型
# creating a decision tree model
dt = create_model('dt')
# ensembling a trained dt model
dt_bagged = ensemble_model(dt)
默认情况下,“Bagging”方法用于ensembling,可使用ensemble_model函数中的method参数将其更改为“Boosting” 。
PyCaret还提供blend_models和stack_models功能来集成多个训练过的模型。
7.显示模型
# create a model
adaboost = create_model('ada')
# AUC plot
plot_model(adaboost, plot = 'auc')
# Decision Boundary
plot_model(adaboost, plot = 'boundary')
# Precision Recall Curve
plot_model(adaboost, plot = 'pr')
# Validation Curve
plot_model(adaboost, plot = 'vc')
evaluate_model(adaboost)
8.解释模型
# create a model
xgboost = create_model('xgboost')
# summary plot
interpret_model(xgboost)
# correlation plot
interpret_model(xgboost, plot = 'correlation')
interpret_model(xgboost, plot = 'reason', observation = 0)
9.预测模型
# create a model
rf = create_model('rf')
# predict test / hold-out dataset
rf_holdout_pred = predict_model(rf)
predictions = predict_model(rf, data = diabetes)
predict_model函数还可以预测使用stack_models和create_stacknet函数创建的模型的顺序链(sequential chain)。
predict_model函数还可以使用deploy_model函数直接从AWS S3上托管的模型进行预测。
10.部署模型
deploy_model(model = rf, model_name = 'rf_aws', platform = 'aws',authentication = {'bucket' : 'pycaret-test'})
11.保存模型/保存实验
# creating model
adaboost = create_model('ada')
# saving model
save_model(adaboost, model_name = 'ada_for_deployment')
save_experiment(experiment_name = 'my_first_experiment')
延伸阅读
【1】回归:https://pycaret.org/reg101/
【2】聚类:https://pycaret.org/clu101/
【3】异常检测:https://www.pycaret.org/anom101
【4】自然语言处理:https://pycaret.org/nlp101/
【5】关联规则挖掘:https://pycaret.org/arul101/
推荐阅读
86岁还在录网课:MIT教授Gilbert Strang最新「线性代数」课程上线,被清华选作教材
1、扫描下方二维码,添加 Python数据科学 作者微信