Pycaret
基本流程一般包含:读取数据->建模/对比模型->模型预测->绘图分析->模型导出
安装pycaret见此篇博文——>安装pycaret遇到的问题
使用此命令:——pip --default-timeout=100 install pycaret -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
另附官方源码——>https://github.com/pycaret/pycaret
官方阅读——>https://pycaret.org/guide/
从PyCaret的存储库加载数据
#从pycaret中加载数据
from pycaret.datasets import get_data
data = get_data('juice')
pycaret的资料存储库
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122818220728.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
核心代码方法:
anomaly.py 异常值检测(无监督)
arules.py 关联规则(无监督)
classification.py 分类(有监督)
clustering.py 聚类(无监督)
datasets.py 数据加载(辅助工具)
nlp.py 自然语言处理(无监督)
preprocess.py 预处理(辅助工具,被其它模块内部调用)
regression.py 回归(有监督)
导入模块
# Classification
from pycaret.classification import *
# Regression
from pycaret.regression import *
# Clustering
from pycaret.clustering import *
# Anomaly Detection
from pycaret.anomaly import *
# Natural Language Processing
from pycaret.nlp import *
# Association Rule Mining
from pycaret.arules import *
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228182308500.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228182315819.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
各个类实例
分类例
# Importing dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# Importing module and initializing setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228182349283.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
回归实例
# Importing dataset
from pycaret.datasets import get_data
boston = get_data('boston')
# Importing module and initializing setup
from pycaret.regression import *
reg1 = setup(data = boston, target = 'medv')
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228182408852.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
聚类示例
# Importing dataset
from pycaret.datasets import get_data
jewellery = get_data('jewellery')
# Importing module and initializing setup
from pycaret.clustering import *
clu1 = setup(data = jewellery)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228182426138.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
异常检测示例
# Importing dataset
from pycaret.datasets import get_data
anomalies = get_data('anomaly')
# Importing module and initializing setup
from pycaret.anomaly import *
ano1 = setup(data = anomalies)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228182441426.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
自然语言处理示例
# Importing dataset
from pycaret.datasets import get_data
kiva = get_data('kiva')
# Importing module and initializing setup
from pycaret.nlp import *
nlp1 = setup(data = kiva, target = 'en')
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228182458754.png)
关联规则挖掘示例
# Importing dataset
from pycaret.datasets import get_data
france = get_data('france')
# Importing module and initializing setup
from pycaret.arules import *
arules1 = setup(data = france, transaction_id = 'InvoiceNo', item_id = 'Description')
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122818251428.png)
常用的函数方法
get_data() 读数据,例程中多为读取示例数据,用户可以使用自己的数据代替。
setup() 预处理,各种建模方法(如分类/聚类)根据自己的特点实现了不同的setup,其中几乎都包含对预处理模块的调用。
models() 列出当前建模方法支持的所有模型。
compare_models() 训练多个模型,并对比其效果。
create_model() 训练模型。
predict_model() 使用模型预测。
plot_model() 显示模型相关的各种分析图,如AUC曲线,学习曲线,还包含词云图等。
tune_model() 模型调参。
assign_model() 查看无监督模型打标签的情况。
evaluate_model() 评价模型。
deploy_model() 云端部署。
ensemble_model() 集成模型。
finalize_model() 导出最终模型和参数。
案例(分类方法案例胎儿状态分类指南)
from pycaret.datasets import get_data
import pandas as pd
import numpy as np
import warnings
获取数据
from pycaret.datasets import get_data
df= get_data('CTG')
#查看前五行
df.head()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183259887.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
## 删除不需要的列 名称 日期等
df=df.drop(["FileName","Date","SegFile","b","e"],axis=1)
#查看列名称
df.columns
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183331498.png)
数据预处理
df.shape
#查看缺失值
df.isnull().sum()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183414499.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
#删除包含空值的行
df = df.dropna()
#查看列的数据类型
df.dtypes
#查看数据的前五行
df.head()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183452373.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
导入机器学习库pycaret
#此命令基本上将从pychret导入分类任务所需要的所有模块
from pycaret.classification import *
#设置分类器
#将完整的数据作为数据传递 并将要预测的特征作为目标
clf=setup(data=df,target='NSP')
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183546983.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
#此模型将用于比较所有模型以及交叉验证
compare_models()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183559370.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
由此可见xgboost(分类器)模型表现比较好,因此,我们将继续进行极端梯度增强模型。
#创建极端梯度提升xgboot模型
xgboost_classifier = create_model('xgboost')
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122818362278.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
#查看模型参数
xgboost_classifier
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183632106.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
调整参数以获得更好的性能
#当我们比较不同的模型或建立模型时,都会使用deault
tuned_xgboost_classifile = tune_model(xgboost_classifier)#调整参数函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183651180.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
绘制分类图
plot_model(tuned_xgboost_classifile,plot='class_report')
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183709262.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
#绘制混淆矩阵
plot_model(tuned_xgboost_classifile,plot='confusion_matrix')
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228183721105.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
保存模型以供将来预测使用。
save_model(tuned_xgboost_classifile,"XGBOOT CLASSIFIER")
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122818374362.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NqanNhYWFh,size_16,color_FFFFFF,t_70)
加载保存的模型。
save_model = load_model("XGBOOT CLASSIFIER")
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122818380258.png)