边写代码边学习之Pycaret

news2024/11/28 18:58:27

PyCaret 简介

PyCaret 是一个用于简化 Python 机器学习工作流程的开源库。它提供了一个高级、低代码的接口,用于自动化机器学习流程的各个方面,使数据科学家和分析师更容易构建和部署机器学习模型。PyCaret 的一些关键特点和用途包括:

1. 自动化机器学习 (AutoML):PyCaret 可以自动化机器学习中许多繁琐和耗时的任务,如数据预处理、特征选择、超参数调整、模型选择和评估。

2. 简化的工作流程:它提供了一致性和有组织的工作流程,允许用户仅需几行代码执行常见的机器学习任务。

3. 模型选择:PyCaret 支持多种机器学习算法,帮助用户快速比较和选择最适合特定任务的模型。

4. 超参数调整:它自动化了超参数调整的过程,帮助用户找到模型的最佳超参数。

5. 模型评估:PyCaret 提供全面的模型评估和比较指标,帮助用户了解模型的性能,并做出明智的决策。

6. 数据预处理:它自动化了数据预处理步骤,如缺失值填补、分类编码和特征缩放。

7. 可视化:PyCaret 提供各种可视化工具,帮助用户探索数据、理解模型性能,并做出数据驱动的决策。

8. 模型部署:它允许用户轻松将机器学习模型部署到生产环境,因此适用于创建端到端的机器学习流水线。

9. 异常检测:PyCaret 还包括异常检测功能,有助于在数据集中检测异常值。

10. 自然语言处理 (NLP):它支持自然语言处理任务,使其适用于各种机器学习应用。

PyCaret 特别适用于希望快速尝试不同机器学习模型和技术,而不必为每个步骤编写大量代码的数据科学家和分析师。它旨在减少构建和部署机器学习模型所需的时间和工作量,因此在数据科学和机器学习社区中是一项有价值的工具。

示例代码(Classification)

1. setup

该函数初始化训练环境并创建转换管道。 设置函数必须在执行任何其他函数之前调用。 它需要两个必需参数:数据和目标。 所有其他参数都是可选的。

import pandas as pd
from pycaret.datasets import get_data

pd.set_option('display.max_columns', None)
data = get_data('diabetes')

PyCaret 3.0 有两个 API。 您可以根据自己的喜好选择其中之一。 功能与实验结果一致。

Functional API

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

OOP API

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

2. Compare Models

该函数使用交叉验证来训练和评估模型库中所有可用估计器的性能。 该函数的输出是具有平均交叉验证分数的评分网格。 可以使用 get_metrics 函数访问 CV 期间评估的指标。 可以使用 add_metric 和 remove_metric 函数添加或删除自定义指标。

# functional API
best = compare_models()

# OOP API
best = s.compare_models()

3. Analyze Model

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

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

4. Predictions

该函数对数据进行评分并返回预测类别的prediction_label和prediction_score概率)。 当数据为 None 时,它预测测试集上的标签和分数(在设置函数期间创建)。

# 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()

分数表示预测类别(不是正类)的概率。 如果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()

5. Save the model

# functional API
save_model(best, 'my_best_pipeline')

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

6. To load the model back in environment:

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

遇到的错误

1. 在mac电脑上,安装pycaret的时候遇到问题 “Could not build wheels for lightgbm, which is required to install pyproject.toml-based projects”

  note: This error originates from a subprocess, and is likely not a problem with pip.

  ERROR: Failed building wheel for lightgbm

Failed to build lightgbm

ERROR: Could not build wheels for lightgbm, which is required to install pyproject.toml-based projects

解决方法

先运行brew install libomp,  再安装pip install pycaret

2. lib_lightgbm.so' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))

解决方法:

conda install \
   --yes \
   -c conda-forge \
   'lightgbm>=3.3.3'

python - Is LightGBM available for Mac M1? - Stack Overflow

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1096364.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第六章 查找

第六章 查找 基本概念静态查找表顺序表上的查找有序表上的查找索引顺序表上的查找 二叉排序树散列表常见散列法散列表的实现 小试牛刀 基本概念 查找表是由同一类型的数据元素构成的集合,它是一种以查找为“核心”,同时包括其他运算的非常灵活的数据结构…

Android Studio SDK manager加载packages不全

打开Android Studio里的SDK manager,发现除了已安装的,其他的都不显示。 解决方法: 设置代理: 方便复制> http://mirrors.neusoft.edu.cn/ 重启Android Studio

小主机折腾记17

8月9月10月基本在出差,流水账如下 1.由于出差,租了个公寓,所以买了个r2s,卖家已经安装部署好openwrt,风扇以及无线网卡 着重研究了风扇的脚本以及无线网卡的设置 风扇可以完美设置,但是无线网卡效果差强人意…

k8s-11 网络策略

添加网络策略 限制pod流量 控制的对象是具有appmyapp-v1标签的pod 此时访问svc是不通的 给测试pod添加指定标签后,可以访问 重启一下 限制namespace流量 给namespace添加指定标签 同时限制namespace和pod 给test命令空间中的pod添加指定标签后才能访问 限制集群…

k8s-13 存储之secret

Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 ssh key。 敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活 。 Pod 可以用两种方式使用 secret:作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里 当 kubelet 为 pod 拉…

山西电力市场日前价格预测【2023-10-16】

日前价格预测 预测说明: 如上图所示,预测明日(2023-10-16)山西电力市场全天平均日前电价为356.38元/MWh。其中,最高日前电价为502.82元/MWh,预计出现在18: 30。最低日前电价为224.63元/MWh,预计…

PTQ与QAT

对称量化与非对称量化 量化分为对称量化与非对称量化。 非对称量化含有S和Z,对称量化Z为0,计算公式中只需S,为非饱和量化。 动态范围的确认 动态范围的确认Max(默认的是对称量化,即不用Z),…

linux 内核中的pid和前缀树

前言: 写这个文章的初衷是因为今天手写了一个字典树,然后写字典树以后忽然想到了之前看的技术文章,linux kernel 之前的pid 申请方式已经从 bitmap 变成了 基数树,所以打算写文章再回顾一下这种数据结构算法 一、内核中pid的申请…

排序算法-基数排序法(RadixSort)

排序算法-基数排序法(RadixSort) 1、说明 基数排序法与我们之前讨论的排序法不太一样,并不需要进行元素之间的比较操作,而是属于一种分配模式排序方式。 基数排序法比较的方向可分为最高位优先(Most Significant Di…

初识容器Docker

目前使用 Docker 基本上有两个选择:Docker Desktop和Docker Engine。Docker Desktop 是专门针对个人使用而设计的,支持 Mac 和 Windows 快速安装,具有直观的图形界面,还集成了许多周边工具,方便易用。 不是太推荐使用D…

【linux kernel】linux内核设备驱动的注册机制

文章目录 1、简介2、driver_register分析👉(2-1)driver_find分析👉(2-2)bus_add_driver分析 3、总结 🔺【linux内核系列文章】 👉对一些文章内容进行了勘误,本系列文章长…

SpringBoot热部署和整合Mybatis

目录 一、SpringBoot热部署 1.1 添加DevTools依赖 1.2 在idea中设置自动编译 1.3 在Idea设置自动运行 二、SpringBoot整合Mybatis 2.1 准备数据 2.2 添加相关依赖 2.3 在配置文件进行数据源配置 2.4 编写Mapper接口和Mapper文件 2.5 测试 一、SpringBoot热部署 热部…

Spring 事务的简单了解

目录 设计实现 工作原理 简单示例 隔离级别 事务传播机制 Spring框架提供了强大的事务管理支持,它允许开发者以声明性或编程性的方式来管理事务,从而保证数据的一致性和完整性。Spring事务管理的主要特点包括: 声明式事务管理&#xff1…

C语言基础算法复习

003 斐波那契数列问题 #include<stdio.h> int main() {int i,f11,f21,f3,num;printf("%5d %5d",f1,f2);num2;for(i1; i<18; i){f3f1f2;f1f2;f2f3;num;printf("%5d",f3);if(num%40) printf("\n");}return 0; }//#输数斐波那契数列的前20…

k8s-12 存储之configmap

开启之后 先看集群是否正常 Configmap用于保存配置数据&#xff0c;以键值对形式存储configMap 资源提供了向 Pod 注入配置数据的方法旨在让镜像和配置文件解耦&#xff0c;以便实现镜像的可移植性和可复用性 典型的使用场景 填充环境变量的值 设置容器内的命令行参数 填充卷的…

百度OCR识别图片文本字符串——物联网上位机软件

一、开发背景 根据项目需求&#xff0c;我们需要完成LED显示屏实时显示歌词的效果。最优的方法是调用歌曲播放器的API获取歌词&#xff0c;但是由于这个开发资格不是很好申请&#xff0c;因此我们采用其他方案&#xff0c;即通过OCR识别获取歌词&#xff0c;并投射到LED显示屏上…

Potato靶机

信息搜集 设备发现 扫描端口 综合扫描 开放了80端口的HTTP服务和7120端口的SSH服务 目录扫描 扫描目录 看看这个info.php&#xff0c;发现只有php的版本信息&#xff0c;没有可以利用的注入点 SSH突破 hydra 爆破 考虑到 7120 端口是 ssh 服务&#xff0c;尝试利用 hydra …

【LeetCode热题100】--169.多数元素

169.多数元素 使用哈希表&#xff1a; class Solution {public int majorityElement(int[] nums) {int n nums.length;int m n/2;Map<Integer,Integer> map new HashMap<>(); //定义一个hashfor(int num:nums){Integer count map.get(num); //Map.get() 方法…

ARM架构的基本知识

ARM两种授权 体系结构授权, 一种硬件规范, 用来约定指令集, 芯片内部体系结构(内存管理, 高速缓存管理), 只约定每一条指令的格式, 行为规范, 参数, 客户根据这个规范自行设计与之兼容的处理器处理IP授权, ARM公司根据某个版本的体系结构设计处理器, 再把处理器设计方案授权给…