目录
PyCaret简介
PyCaret是Python中的一个开源、低代码机器学习库,旨在减少从数据处理到模型部署的周期时间。PyCaret库只需几行代码就可以完成从准备数据到部署模型,老少皆宜(PyCaret官网地址),支持的功能有数据处理,模型训练,参数搜索,模型可解释性,模型选择,实验日志查询。

PyCaret安装
为了避免与其他软件包的潜在冲突,强烈建议使用虚拟环境。使用隔离环境可以独立于任何先前安装的 Python 包安装特定版本的 pycaret 及其依赖项。
#1.创建新的虚拟环境 #为了直接省事我这里直接复制默认的base环境到新的环境"newpy37"中,这样原来该有库都有了。
conda create --name newpy37--clone base
#或者也可以使用以下命令
conda create --name newpy37 python=3.7 #新环境会创建后,路径在 D:\Anaconda3\envs\newpy37下,D:\Anaconda3为我的Anaconda3安装路径
#2.激活新的虚拟环境
conda activate newpy37
#3.安装pycaret包 #PyCaret 的默认安装是 pycaret 的精简版,我这里直接安装完整版:
pip install pycaret[full]
#4.创建连接 conda 新环境new_env 的 notebook 内核
python -m ipykernel install --user --name newpy37 --display-name "new-kernel"
打开jupyter lab 后,可以在右上角上选择刚创建的“new-kernel”环境,如:

PyCaret功能模块
-
加载数据:可使用pandas读取
-
数据处理:setup 函数可以进行特征预处理,特征衍生,特征选择,自动创建pipeline等
-
创建模型:近70个机器学习算法,使用create_model 函数创建,支持模型融合
-
模型分析:提供多种模型可视化分析,通过plot_model函数实现
-
模型验证/预测:通过predict_model 函数不仅可以对hold-out数据集进行预测,还可以对未知数据集预测
-
最终模型:finalizemodel 函数训练和测试数据合并重新训练模型,savemodel和load_model函数分别是保存和加载模型及pipeline
-
模型部署:deploy_model,此函数在云上部署转换管道和经过训练的模型。
一、数据初始化
PyCaret通过setup()函数可将原始数据进行一站式数据采样与划分、数据预处理、转换、特征工程等操作,它会根据setup函数中定义的参数创建转换管道(transformation pipeline)。它会自动编排管道(pipeline)中的所有依赖项,因此您不必手动管理对测试数据集或未知的数据集进行转换的顺序执行。PyCaret的管道可以轻松地在各种环境之间转移,以实现大规模运行或轻松部署到生产环境中。
-
get_config函数查看的全局变量
-
set_config函数更改的全局变量

不同模块中的setup()函数的参数有一定差异,除了分类和回归setup()函数参数相差无异外,聚类、异常检测、NLP和关联规则挖掘模块的参数相对更少一些;而这里以分类中的setup()展开讨论,主要参数如下。
1.设置数据集、标注目标值
data: pandas.DataFrame
target: str
2.训练集/测试集划分
train_size: float, default = 0.7 #用于训练和验证的数据集的比例。应介于0.0和1.0之间。
test_data:pandas.DataFrame, default = None # 如果手动传入测试数据集,则train_size的参数失效
3.数据预处理
-
是否进行数据处理,默认true
preprocess: bool, default = True
-
指定特征数据类型
categorical_features: list of str, default = None
numeric_features: list of str, default = None
date_features: list of str, default = None
ignore_features: list of str, default = None #删除指定特征
-
缺失值处理
当imputation_type: str, default = 'simple'时
categorical_imputation: str, default = 'constant'#默认填充“not_available”值,或设为'mode',填充众数
numeric_imputation: str, default = 'mean' # 默认填充平均值,其他参数有'median' or 'zero'.
当imputation_type: str, default = 'iterative'时:
iterative_imputation_iters: int, default = 5
categorical_iterative_imputer: str, default = 'lightgbm'
numeric_iterative_imputer: str, default = 'lightgbm'
4.类别型特征值处理
-
处理特征中未知分类
handle_unknown_categorical: bool, default = True
unknown_categorical_method: str, default = 'least_frequent' # 其他参数有 'most_frequent'
-
分类特征某个类别分布低于某个阈值,合并该稀有类别
combine_rare_levels: bool, default = False
rare_level_threshold: float, default = 0.1
5.编码转换
-
类别型变量默认都会进行one-hot独热编码
-
序列编码
ordinal_features: dict, default = None #将分类特征编码为序号,传入字典
-
基数编码
high_cardinality_features: string, default = None
-
使用频率分布作为原始值,可选参数'clustering',使用聚类标签替换原始值
high_cardinality_method: string, default = 'frequency'
6.数据标准化
normalize: bool, default = False #默认不启动标准化
normalize_method: str, default = 'zscore' # 其他参数有[minmax,maxabs,robust]
7.数据转换
transformation: bool, default = False #默认不启动转换<

本文介绍了PyCaret,一个简化机器学习流程的Python库,涵盖了数据预处理、模型训练、比较、调参、可视化和部署。从数据初始化到模型部署,Pycaret只需几行代码即可完成,特别适合新手快速上手。

1697

被折叠的 条评论
为什么被折叠?



