更简易的机器学习-pycaret的安装和环境初始化

1、安装

pip install pycaret

在谷歌colab中还要运行:

from pycaret.utils import enable_colab 
enable_colab()

2、获取数据

(1)利用pandas库加载

import pandas as pd
data = pd.read_csv('c:/path_to_data/file.csv')

(2)使用自带的数据

from pycaret.datasets import get_data
data = get_data('juice') 

数据集列表:

Dataset Data Types Default Task Target Variable # Instances # Attributes
anomaly Multivariate Anomaly Detection None 1000 10
france Multivariate Association Rule Mining InvoiceNo, Description 8557 8
germany Multivariate Association Rule Mining InvoiceNo, Description 9495 8
bank Multivariate Classification (Binary) deposit 45211 17
blood Multivariate Classification (Binary) Class 748 5
cancer Multivariate Classification (Binary) Class 683 10
credit Multivariate Classification (Binary) default 24000 24
diabetes Multivariate Classification (Binary) Class variable 768 9
electrical_grid Multivariate Classification (Binary) stabf 10000 14
employee Multivariate Classification (Binary) left 14999 10
heart Multivariate Classification (Binary) DEATH 200 16
heart_disease Multivariate Classification (Binary) Disease 270 14
hepatitis Multivariate Classification (Binary) Class 154 32
income Multivariate Classification (Binary) income >50K 32561 14
juice Multivariate Classification (Binary) Purchase 1070 15
nba Multivariate Classification (Binary) TARGET_5Yrs 1340 21
wine Multivariate Classification (Binary) type 6498 13
telescope Multivariate Classification (Binary) Class 19020 11
glass Multivariate Classification (Multiclass) Type 214 10
iris Multivariate Classification (Multiclass) species 150 5
poker Multivariate Classification (Multiclass) CLASS 100000 11
questions Multivariate Classification (Multiclass) Next_Question 499 4
satellite Multivariate Classification (Multiclass) Class 6435 37
asia_gdp Multivariate Clustering None 40 11
elections Multivariate Clustering None 3195 54
facebook Multivariate Clustering None 7050 12
ipl Multivariate Clustering None 153 25
jewellery Multivariate Clustering None 505 4
mice Multivariate Clustering None 1080 82
migration Multivariate Clustering None 233 12
perfume Multivariate Clustering None 20 29
pokemon Multivariate Clustering None 800 13
population Multivariate Clustering None 255 56
public_health Multivariate Clustering None 224 21
seeds Multivariate Clustering None 210 7
wholesale Multivariate Clustering None 440 8
tweets Text NLP tweet 8594 2
amazon Text NLP / Classification reviewText 20000 2
kiva Text NLP / Classification en 6818 7
spx Text NLP / Regression text 874 4
wikipedia Text NLP / Classification Text 500 3
automobile Multivariate Regression price 202 26
bike Multivariate Regression cnt 17379 15
boston Multivariate Regression medv 506 14
concrete Multivariate Regression strength 1030 9
diamond Multivariate Regression Price 6000 8
energy Multivariate Regression Heating Load / Cooling Load 768 10
forest Multivariate Regression area 517 13
gold Multivariate Regression Gold_T+22 2558 121
house Multivariate Regression SalePrice 1461 81
insurance Multivariate Regression charges 1338 7
parkinsons Multivariate Regression PPE 5875 22
traffic Multivariate Regression traffic_volume 48204 8

3、设置环境

(1)第一步:导入模块

pycaret提供以下6种模块,当你导入相应的模块之后,就将环境切换到了该环境下。

S.No Module How to Import
1 Classification from pycaret.classification import *
2 Regression from pycaret.regression import *
3 Clustering from pycaret.clustering import *
4 Anomaly Detection from pycaret.anomaly import *
5 Natural Language Processing from pycaret.nlp import *
6 Association Rule Mining from pycaret.arules import *

(2)第二步:初始化设置

对于PyCaret中的所有模块都是通用的,设置是开始任何机器学习实验的第一步,也是唯一的必需步骤。 除默认情况下执行一些基本处理任务外,PyCaret还提供了广泛的预处理功能,这些功能在结构上将普通的机器学习实验提升为高级解决方案。 在本节中,我们仅介绍了设置功能的必要部分。 可以在此处找到所有预处理功能的详细信息。 下面列出的是初始化设置时PyCaret执行的基本默认任务:

数据类型推断:在PyCaret中执行的任何实验都始于确定所有特征的正确数据类型。 设置函数执行有关数据的基本推断,并执行一些下游任务,例如忽略ID和Date列,分类编码,基于PyCaret内部算法推断的数据类型的缺失值插补。 执行设置后,将出现一个对话框(请参见以下示例),其中包含所有特征及其推断的数据类型的列表。 数据类型推断通常是正确的,但是一旦出现对话框,用户应查看列表的准确性。 如果正确推断了所有数据类型,则可以按Enter键继续,否则,请键入“ quit”以停止实验。

如果您由于无法正确推断一种或多种数据类型而选择输入“退出”,则可以在setup命令中覆盖它们,方法是传递categorical_feature参数以强制分类类型,而numeric_feature参数则强制数字类型。 同样,为了忽略某些功能以成为实验的一部分,您可以在设置程序中传递ignore_features参数。

注意:如果您不希望PyCaret显示确认数据类型的对话框,则可以在设置过程中以“ True”(静默)方式传递为True,以执行无人看管的实验。 我们不建议您这样做,除非您完全确定推断是正确的,或者您之前已经进行过实验,或者正在使用numeric_feature和categorical_feature参数覆盖数据类型。

数据清理和准备:设置功能会自动执行缺失值插补和分类编码,因为它们对于任何机器学习实验都是必不可少的。 默认情况下,平均值用于数字特征的插补,而最频繁使用的值或模式用于分类特征。 您可以使用numeric_imputation和categorical_imputation参数来更改方法。 对于分类问题,如果目标不是数字类型,则安装程序还将执行目标编码。

数据采样:如果样本量大于25,000,PyCaret会根据不同的样本量自动构建初步的线性模型,并提供可视化效果,以根据样本量显示模型的性能。 然后可以使用该图来评估模型的性能是否随样本数量的增加而增加。 如果不是,您可以选择较小的样本量,以提高实验的效率和性能。 请参见下面的示例,在该示例中,我们使用了pycaret存储库中的“银行”数据集,其中包含45,211个样本。

训练测试拆分:设置功能还执行训练测试拆分(针对分类问题进行了分层)。 默认的分割比例为70:30,但是您可以在设置程序中使用train_size参数进行更改。 仅在Train set上使用k倍交叉验证,才能对PyCaret中已训练好的机器学习模型和超参数优化进行评估。

将会话ID分配为种子:如果未传递session_id参数,则会话ID是默认生成的伪随机数。 PyCaret将此id作为种子分发给所有函数,以隔离随机效应。 这样可以在以后在相同或不同的环境中实现可重现性。

以下是一些例子:

分类:

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

回归:

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

聚类:

from pycaret.datasets import get_data
jewellery = get_data('jewellery')
# Importing module and initializing setup
from pycaret.clustering import * 
clu1 = setup(data = jewellery)

异常检测:

from pycaret.datasets import get_data
anomalies = get_data('anomaly')
# Importing module and initializing setup
from pycaret.anomaly import *
ano1 = setup(data = anomalies)

自然语言处理:

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

关联规则挖掘:

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