机器学习pycare框架入门简介
学习pycare之前,先搭建好jupyter notebook。代码实现是基于jupyter的。
安装pycaret
参考 pycaret github 最新版pycaret使用说明
#create a conda environment
conda create --name pycaret3 python=3.9
# activate conda environment
conda activate pycaret3
# install pycaret
pip install pycaret [full]
#创建一个notebook kernel
python -m ipykernel install --user --name pycaret3 --display-name "Pycaret3"
pycaret是可以实现多个机器学习的包装器
包含的有scikit-learn,XGBoost,LightGBM,CatBoost,SpaCy,Optuna,Hyperopt,Ray等。
有监督机器学习
分类Classification
- 二元分类
- 多元分类
pycaret.classification
官方的分类的所有函数的API
image.png
回归Regression
pycaret.regression
官方的回归的所有函数的API
无监督机器学习
异常检测Anomaly Detection
pycaret.anomaly
异常检测的官方API
聚类Clustering
pycaret.clustering
聚类官方API
时间序列分析 Time Series Forecasting
pycaret.time_series
时间序列官方API
pycaret分析的基本步骤
- 读取数据get_data
- 初始化安装,导入分析模型类型
- 模型训练和选择
- 可视化最优的模型
- 预测测试集的数据
- 预测新的数据的结果
- 保存模型
数据预处理
数据预处理原文
缺失值,一般为空白或NaN
使用setup函数后会自动初始化,并填充缺失值
# load dataset
from pycaret.datasets import get_data
hepatitis = get_data('hepatitis')
原始数据
# init setup
from pycaret.classification import *
clf1 = setup(data = hepatitis, target = 'Class')
初始化之后自动填充了缺失数据
不同类型的填充数据的方法的MAPE值
MAPE值越低,说明填充的结果约接近真实值
软件默认的缺失数据填充
数字值
numeric_imputation
: int, float, or string, defaul:mean 默认是用均值可以使用的参数值:
drop 删除包含缺失的行
mean 均值
median 使用中间值填充
mode 使用频率最多的值填充
knn 使用knn近邻法填充
int or float 使用提供的数值
分类值 categorical_imputation: string, defaul:mode
可以使用的参数值:
drop
mode
str 使用提供的字符串
imputation_type
设置填补类型
默认是simple
可选值是: simple, iterative, None
如果是None则不填充
数据填充使用的模型
numeric_iterative_imputer:str or sklearn estimator ,默认值是:lightgbm
categorical_iterative_imputer:str or sklearn estimator ,默认值是:lightgbm
数据类型,包括数字,分类或日期时间 ,pycaret会自动检测数据类型
如果pycaret自动检测的数据类型和预期的不一致,则可以手动指定为对应的数据类
一次性编码,数据集的分类特征包含标签值
序数编码,数据集中的分类特征包含具有内在自然顺序的变量,例如:(低,中,高)
基数编码
目标不平衡,当训练数据集的目标类分布不均匀时,可以使用fix_imbalance
设置中的参数进行修复。
删除异常值 remove_outliers