🚀快速入门

立即上手:PyCaret 初学者指南

🚀 分类

PyCaret 的分类模块是一个监督机器学习模块,用于将元素分类到不同的组中。

目标是预测离散且无序的类别标签。一些常见的用例包括预测客户是否违约(是或否)、预测客户流失(客户会离开或留下)、预测疾病发现结果(阳性或阴性)。

此模块可用于二分类或多分类问题。

设置

此函数初始化训练环境并创建转换流水线。必须在执行任何其他函数之前调用 Setup 函数。它有两个必需参数:datatarget。所有其他参数都是可选的。

# load sample dataset
from pycaret.datasets import get_data
data = get_data('diabetes')

PyCaret 3.0 有两种 API。你可以根据自己的偏好选择其中一种。功能和实验结果是一致的。

函数式 API

from pycaret.classification import *
s = setup(data, target = 'Class variable', session_id = 123)

面向对象 API

from pycaret.classification import ClassificationExperiment
s = ClassificationExperiment()
s.setup(data, target = 'Class variable', session_id = 123)

比较模型

此函数使用交叉验证训练和评估模型库中所有评估器的性能。此函数的输出是一个评分网格,其中包含平均交叉验证分数。可以使用 get_metrics 函数访问交叉验证期间评估的指标。可以使用 add_metricremove_metric 函数添加或删除自定义指标。

# functional API
best = compare_models()

# OOP API
best = s.compare_models()
print(best)

分析模型

此函数分析训练模型在测试集上的性能。在某些情况下可能需要重新训练模型。

# functional API
evaluate_model(best)

# OOP API
s.evaluate_model(best)

evaluate_model 只能在 Notebook 中使用,因为它使用了 ipywidget。你也可以使用 plot_model 函数单独生成图表。

# functional API
plot_model(best, plot = 'auc')

# OOP API
s.plot_model(best, plot = 'auc')
# functional API
plot_model(best, plot = 'confusion_matrix')

# OOP API
s.plot_model(best, plot = 'confusion_matrix')

预测

此函数对数据进行评分并返回 prediction_labelprediction_score(预测类别的概率)。当 data 为 None 时,它在测试集上进行预测(在 setup 函数期间创建)。

# functional API
predict_model(best)

# OOP API
s.predict_model(best)

评估指标在测试集上计算。第二个输出是一个 pd.DataFrame,其中包含在测试集上的预测结果(参见最后两列)。要在未见(新)数据集上生成标签,只需将数据集作为 predict_model 函数下的 data 参数传递即可。

# functional API
predictions = predict_model(best, data=data)
predictions.head()

# OOP API
predictions = s.predict_model(best, data=data)
predictions.head()

Score 表示预测类别的概率(不是正类的概率)。如果 prediction_label 为 0 且 prediction_score 为 0.90,这意味着类别 0 的概率为 90%。如果你想查看两个类别的概率,只需在 predict_model 函数中传递 raw_score=True

# functional API
predictions = predict_model(best, data=data, raw_score=True)
predictions.head()

# OOP API
predictions = s.predict_model(best, data=data, raw_score=True)
predictions.head()

保存模型

# functional API
save_model(best, 'my_best_pipeline')

# OOP API
s.save_model(best, 'my_best_pipeline')

将模型加载回环境中

# functional API
loaded_model = load_model('my_best_pipeline')
print(loaded_model)

# OOP API
loaded_model = s.load_model('my_best_pipeline')
print(loaded_model)

🚀 回归

PyCaret 的回归模块是一个监督机器学习模块,用于估计因变量(通常称为“结果变量”或“目标”)与一个或多个自变量(通常称为“特征”、“预测因子”或“协变量”)之间的关系。

回归的目标是预测连续值,例如预测销售额、预测数量、预测温度等。

设置

此函数初始化训练环境并创建转换流水线。必须在执行任何其他函数之前调用 Setup 函数。它有两个必需参数:datatarget。所有其他参数都是可选的。

# load sample dataset
from pycaret.datasets import get_data
data = get_data('insurance')

PyCaret 3.0 有两种 API。你可以根据自己的偏好选择其中一种。功能和实验结果是一致的。

函数式 API

from pycaret.regression import *
s = setup(data, target = 'charges', session_id = 123)

面向对象 API

from pycaret.regression import RegressionExperiment
s = RegressionExperiment()
s.setup(data, target = 'charges', session_id = 123)

比较模型

此函数使用交叉验证训练和评估模型库中所有评估器的性能。此函数的输出是一个评分网格,其中包含平均交叉验证分数。可以使用 get_metrics 函数访问交叉验证期间评估的指标。可以使用 add_metricremove_metric 函数添加或删除自定义指标。

# functional API
best = compare_models()

# OOP API
best = s.compare_models()
print(best)

分析模型

此函数分析训练模型在测试集上的性能。在某些情况下可能需要重新训练模型。

# functional API
evaluate_model(best)

# OOP API
s.evaluate_model(best)

evaluate_model 只能在 Notebook 中使用,因为它使用了 ipywidget。你也可以使用 plot_model 函数单独生成图表。

# functional API
plot_model(best, plot = 'residuals')

# OOP API
s.plot_model(best, plot = 'residuals')
# functional API
plot_model(best, plot = 'feature')

# OOP API
s.plot_model(best, plot = 'feature')

预测

此函数使用训练好的模型预测 prediction_label。当 data 为 None 时,它在测试集上进行预测(在 setup 函数期间创建)。

# functional API
predict_model(best)

# OOP API
s.predict_model(best)

评估指标在测试集上计算。第二个输出是一个 pd.DataFrame,其中包含在测试集上的预测结果(参见最后两列)。要在未见(新)数据集上生成标签,只需将数据集作为 predict_model 函数下的 data 参数传递即可。

# functional API
predictions = predict_model(best, data=data)
predictions.head()

# OOP API
predictions = s.predict_model(best, data=data)
predictions.head()

保存模型

# functional API
save_model(best, 'my_best_pipeline')

# OOP API
s.save_model(best, 'my_best_pipeline')

将模型加载回环境中

# functional API
loaded_model = load_model('my_best_pipeline')
print(loaded_model)

# OOP API
loaded_model = s.load_model('my_best_pipeline')
print(loaded_model)

🚀 聚类

PyCaret 的聚类模块是一个无监督机器学习模块,用于将一组对象分组,使得同一组(也称为簇)中的对象彼此之间比与其他组中的对象更相似。

设置

此函数初始化训练环境并创建转换流水线。必须在执行任何其他函数之前调用 Setup 函数。它只有一个必需参数:data。所有其他参数都是可选的。

# load sample dataset
from pycaret.datasets import get_data
data = get_data('jewellery')

PyCaret 3.0 有两种 API。你可以根据自己的偏好选择其中一种。功能和实验结果是一致的。

函数式 API

from pycaret.clustering import *
s = setup(data, normalize = True)

面向对象 API

from pycaret.clustering import ClusteringExperiment
s = ClusteringExperiment()
s.setup(data, normalize = True)

创建模型

此函数训练和评估给定模型的性能。可以使用 get_metrics 函数访问评估的指标。可以使用 add_metricremove_metric 函数添加或删除自定义指标。可以使用 models 函数访问所有可用模型。

# functional API
kmeans = create_model('kmeans')

# OOP API
kmeans = s.create_model('kmeans')
print(kmeans)

分析模型

此函数分析训练模型的性能。

# functional API
evaluate_model(kmeans)

# OOP API
s.evaluate_model(kmeans)

evaluate_model 只能在 Notebook 中使用,因为它使用了 ipywidget。你也可以使用 plot_model 函数单独生成图表。

# functional API
plot_model(kmeans, plot = 'elbow')

# OOP API
s.plot_model(kmeans, plot = 'elbow')
# functional API
plot_model(kmeans, plot = 'silhouette')

# OOP API
s.plot_model(kmeans, plot = 'silhouette')

分配模型

此函数为训练数据分配聚类标签,给定一个已训练的模型。

# functional API
result = assign_model(kmeans)
result.head()

# OOP API
result = s.assign_model(kmeans)
result.head()

预测

此函数使用训练好的模型在新/未见数据集上生成聚类标签。

# functional API
predictions = predict_model(kmeans, data = data)
predictions.head()

# OOP API
predictions = s.predict_model(kmeans, data = data)
predictions.head()

保存模型

# functional API
save_model(kmeans, 'kmeans_pipeline')

# OOP API
s.save_model(kmeans, 'kmeans_pipeline')

将模型加载回环境中

# functional API
loaded_model = load_model('kmeans_pipeline')
print(loaded_model)

# OOP API
loaded_model = s.load_model('kmeans_pipeline')
print(loaded_model)

🚀 异常检测

PyCaret 的异常检测模块是一个无监督机器学习模块,用于识别与大多数数据显著不同的、引起怀疑的罕见项、事件或观测值。

通常,异常项会转化为某些类型的问题,例如银行欺诈、结构缺陷、医疗问题或错误。

设置

此函数初始化训练环境并创建转换流水线。必须在执行任何其他函数之前调用 setup 函数。它只有一个必需参数:data。所有其他参数都是可选的。

# load sample dataset
from pycaret.datasets import get_data
data = get_data('anomaly')

PyCaret 3.0 有两种 API。你可以根据自己的偏好选择其中一种。功能和实验结果是一致的。

函数式 API

from pycaret.anomaly import *
s = setup(data, session_id = 123)

面向对象 API

from pycaret.anomaly import AnomalyExperiment
s = AnomalyExperiment()
s.setup(data, session_id = 123)

创建模型

此函数训练一个无监督异常检测模型。可以使用 models 函数访问所有可用模型。

# functional API
iforest = create_model('iforest')
print(iforest)

# OOP API
iforest = s.create_model('iforest')
print(iforest)
# functional API
models()

# OOP API
s.models()

分析模型

# functional API
plot_model(iforest, plot = 'tsne')

# OOP API
s.plot_model(iforest, plot = 'tsne')
# functional API
plot_model(iforest, plot = 'umap')

# OOP API
s.plot_model(iforest, plot = 'umap')

分配模型

此函数为给定模型的数据集分配异常标签。(1 = 异常值,0 = 正常值)。

# functional API
result = assign_model(iforest)
result.head()

# OOP API
result = s.assign_model(iforest)
result.head()

预测

此函数使用训练好的模型在新/未见数据集上生成异常标签。

# functional API
predictions = predict_model(iforest, data = data)
predictions.head()

# OOP API
predictions = s.predict_model(iforest, data = data)
predictions.head()
predict_model(iforest, data = data) 的输出

保存模型

# functional API
save_model(iforest, 'iforest_pipeline')

# OOP API
s.save_model(iforest, 'iforest_pipeline')

将模型加载回环境中

# functional API
loaded_model = load_model('iforest_pipeline')
print(loaded_model)

# OOP API
loaded_model = s.load_model('iforest_pipeline')
print(loaded_model)

🚀 时间序列

PyCaret 时间序列模块是一个强大的工具,用于使用机器学习和经典统计技术分析和预测时间序列数据。此模块通过自动化从数据准备到模型部署的整个过程,使用户能够轻松执行复杂的时间序列预测任务。

PyCaret 时间序列预测模块支持广泛的预测方法,例如 ARIMA、Prophet 和 LSTM。它还提供了各种处理缺失值、时间序列分解和数据可视化的功能。

设置

此函数初始化训练环境并创建转换流水线。必须在执行任何其他函数之前调用 Setup 函数。

# load sample dataset
from pycaret.datasets import get_data
data = get_data('airline')

PyCaret 3.0 有两种 API。你可以根据自己的偏好选择其中一种。功能和实验结果是一致的。

函数式 API

from pycaret.time_series import *
s = setup(data, fh = 3, fold = 5, session_id = 123)
输出已截断

面向对象 API

from pycaret.time_series import TSForecastingExperiment
s = TSForecastingExperiment()
输出已截断

比较模型

此函数使用交叉验证训练和评估模型库中所有评估器的性能。此函数的输出是一个评分网格,其中包含平均交叉验证分数。可以使用 get_metrics 函数访问交叉验证期间评估的指标。可以使用 add_metricremove_metric 函数添加或删除自定义指标。

# functional API
best = compare_models()

# OOP API
best = s.compare_models()

分析模型

# functional API
plot_model(best, plot = 'forecast', data_kwargs = {'fh' : 24})

# OOP API
s.plot_model(best, plot = 'forecast', data_kwargs = {'fh' : 24})
# functional API
plot_model(best, plot = 'diagnostics')

# OOP API
s.plot_model(best, plot = 'diagnostics')
# functional API
plot_model(best, plot = 'insample')

# OOP API
s.plot_model(best, plot = 'insample')

预测

# functional API
final_best = finalize_model(best)
predict_model(best, fh = 24)

# OOP API
final_best = s.finalize_model(best)
s.predict_model(best, fh = 24)

保存模型

# functional API
save_model(final_best, 'my_final_best_model')

# OOP API
s.save_model(final_best, 'my_final_best_model')

将模型加载回环境中

# functional API
loaded_model = load_model('my_final_best_model')
print(loaded_model)

# OOP API
loaded_model = s.load_model('my_final_best_model')
print(loaded_model)

上次更新时间

这有帮助吗?