自动机器学习pycaret 处理分类简单用法
引入分类模型库import warnings warnings.filterwarnings(ignore) import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.style.use(fivethirtyeight) from pycaret.classification import *数据集拆分dataset pd.read_csv(rD:\Work\PycharmProjects\jupyter\pycaret\diabetes.csv) data dataset.sample(frac0.75, random_state42) data_unseen dataset.drop(data.index) data.reset_index(inplaceTrue, dropTrue) data_unseen.reset_index(inplaceTrue, dropTrue)代码的核心目的是将数据集拆分为训练集和测试集留出集并对索引进行重置整理第1行data dataset.sample(frac0.75, random_state42)这行代码从dataset中随机抽取 75% 的样本作为训练数据通常命名为data。frac0.75抽取 75% 的行random_state42设置随机种子保证每次运行代码时抽取的结果都一样可复现第2行data_unseen dataset.drop(data.index)这行代码从原始dataset中删除data中已有的行剩下的就是没有被抽中的那 25%赋值给data_unseen。data.index是data的索引号即被抽中样本在原数据集中的位置drop(data.index)删除这些索引对应的行剩下的 25% 数据就作为测试集/留出集用于模型最终评估第3行data.reset_index(inplaceTrue, dropTrue)重置data的索引让索引变成0, 1, 2, 3, ...的连续整数。inplaceTrue直接在原 DataFrame 上修改不返回新对象dropTrue丢弃旧的索引列不将其保存为新的数据列为什么要这样做因为data是从dataset中抽取的样本它的索引是原数据集中的位置编号比如5, 12, 33, ...不是从 0 开始的连续编号。重置索引可以让后续操作如遍历、拼接更方便。第4行data_unseen.reset_index(inplaceTrue, dropTrue)对data_unseen做同样的索引重置操作原因同上。env_setup setup(datadata, targetClass variable, session_id42)setup()是 PyCaret 的启动器——它接收你的数据配置预处理管道划分训练/测试集建立交叉验证策略为后续的所有建模工作做好准备。后台操作flowchart TD A[开始: setup()] -- B[接收 data 和 target] B -- C[自动检测特征类型br数值/类别/日期/文本] C -- D[分离特征 X 和目标 y] D -- E[划分训练集和测试集br默认 70%/30%] E -- F[配置 10 折交叉验证brStratifiedKFold] F -- G[建立预处理管道br缺失值填充/编码/标准化等] G -- H[存储所有配置到环境中] H -- I[返回配置信息汇总表] I -- J[准备好接收模型训练命令]返回值分析Description Value 0 Session id 42 1 Target Class variable 2 Target type Binary 3 Original data shape (576, 9) 4 Transformed data shape (576, 9) 5 Transformed train set shape (403, 9) 6 Transformed test set shape (173, 9) 7 Numeric features 8 8 Preprocess True 9 Imputation type simple 10 Numeric imputation mean 11 Categorical imputation mode 12 Fold Generator StratifiedKFold 13 Fold Number 10 14 CPU Jobs -1 15 Use GPU False 16 Log Experiment False 17 Experiment Name clf-default-name 18 USI a95b 整体概览序号描述值含义0Session id42会话ID你设置的session_id42作为随机种子确保结果可复现1TargetClass variable目标变量标签列你要预测的字段名2Target typeBinary目标变量是二分类问题比如 0/1是/否3Original data shape(576, 9)原始数据576行 × 9列8个特征 1个目标变量4Transformed data shape(576, 9)经过预处理后的数据形状不变因为目前没有做变换5Transformed train set shape(403, 9)训练集403行占 576 的 70%6Transformed test set shape(173, 9)测试集173行占 576 的 30%7Numeric features8数值型特征有 8 个目标变量不算在内⚙️ 预处理配置序号描述值含义8PreprocessTrue启用了自动预处理PyCaret 默认帮你做缺失值填充、编码等9Imputation typesimple缺失值填充方式为简单填充10Numeric imputationmean数值型特征的缺失值用均值填充11Categorical imputationmode类别型特征的缺失值用众数填充 交叉验证配置序号描述值含义12Fold GeneratorStratifiedKFold使用分层K折交叉验证保持类别比例13Fold Number1010折交叉验证14CPU Jobs-1使用所有可用的 CPU 核心-1 表示全部15Use GPUFalse未使用 GPU 加速 实验记录序号描述值含义16Log ExperimentFalse不自动记录实验日志17Experiment Nameclf-default-name实验默认名称clf classification18USIa95b唯一的会话标识符Unique Session ID用于追踪此次实验 关键发现数据拆分比例你之前用sample(frac0.75)抽取了 75%576行作为训练集但 PyCaret 的setup()又自动按70%/30%拆分了训练集内部的数据训练集403 行576 × 70%验证集/测试集173 行576 × 30%也就是说data本身就是你从原始数据中取的 75%现在 PyCaret 又把它拆成了 70%/30%用于训练过程中的验证。你的数据应该是二分类问题目标变量Class variable只有两个取值。预处理已自动启用PreprocessTrue意味着 PyCaret 会自动处理缺失值、编码类别变量等。best_model compare_models()这行代码best_model compare_models()是 PyCaret 中最核心、最强大的功能之一。它的作用是自动训练和评估多个机器学习模型并返回性能最好的那一个best_models compare_models( include[rf, dt, xgboost, lightgbm], turboFalse, sortAUC, n_select3 )tuned_model tune_model(best_model, search_libraryscikit-learn, search_algorithmrandom)tune_model()通过随机搜索算法在指定的参数空间中寻找使模型表现最好的超参数组合并返回调优后的模型。 参数详解1️⃣best_model含义要调优的模型对象说明这是你之前通过compare_models()获得的最佳模型在你的例子中是 Ridge Classifier注意这里传入的是模型对象不是模型名称字符串2️⃣search_libraryscikit-learn含义指定使用哪个库的搜索算法参数值scikit-learn(默认)使用 sklearn 的RandomizedSearchCV或GridSearchCVoptuna使用 Optuna 库更高效的贝叶斯优化需先pip install optunascikit-optimize使用 skopt 库需先pip install scikit-optimize你的情况使用 scikit-learn 的随机搜索3️⃣search_algorithmrandom含义指定搜索策略/算法参数值当search_libraryscikit-learn时random随机搜索RandomizedSearchCV在参数空间中随机采样组合grid网格搜索GridSearchCV穷举所有参数组合更精确但更慢后台操作flowchart TD A[开始: tune_model] -- B[读取 best_model 的参数空间] B -- C[定义要搜索的超参数范围] C -- D[使用 scikit-learn 的 RandomizedSearchCV] D -- E[在训练集上执行 10 折交叉验证] E -- F[随机采样 N 组参数组合br默认 10 组] F -- G[对每组参数计算交叉验证平均得分] G -- H[找到得分最高的参数组合] H -- I[用最佳参数重新训练模型] I -- J[返回调优后的模型对象] J -- K[打印调优结果汇总]具体步骤确定搜索空间PyCaret 为每个模型预定义了要调优的超参数范围例如 Ridge Classifier 会调优alpha、solver、tol等随机采样在参数空间中随机抽取 10 组默认n_iter10参数组合交叉验证评估对每组参数在训练集上执行 10 折交叉验证选择最佳找到使验证得分最高的参数组合重新训练用找到的最佳参数在整个训练集上重新训练模型返回调优模型返回调优后的模型对象更多参数示例# 增加随机搜索的迭代次数更充分但更慢 tuned_model tune_model( best_model, search_libraryscikit-learn, search_algorithmrandom, n_iter30, # 随机采样 30 组默认 10 optimizeAUC, # 按 AUC 优化默认 Accuracy fold5, # 使用 5 折交叉验证默认 10 choose_betterTrue # 自动比较调优前后保留更好的 )best_auc_model automl(optimizeAUC)automl()函数自动运行模型选择、超参数调优、特征工程等过程返回在指定优化指标这里是 AUC上表现最优的最终模型。unseen_predictions predict_model(tuned_model, datadata_unseen)使用调优后的模型tuned_model对留出集data_unseen进行预测返回包含原始数据和预测结果的 DataFrame。save_model(tuned_model, Final_Model) load_saved_model load_model(Final_Model)保存模型和加载模型

相关新闻

无人机集成仿真工作流:从数字孪生到HIL测试的工程实践

无人机集成仿真工作流:从数字孪生到HIL测试的工程实践

1. 项目概述:从展会洞察到工程实践去年在AUVSI Xponential 2023的现场,我和几位做无人机系统集成的同行聊了很久。大家普遍反映的一个痛点,不是飞控算法不够先进,也不是硬件性能不够强悍,而是在从实验室仿真到真实飞行…

2026/6/20 5:31:27阅读更多 →
开源语音识别引擎深度解析:DeepSpeech端到端架构与实战指南

开源语音识别引擎深度解析:DeepSpeech端到端架构与实战指南

开源语音识别引擎深度解析:DeepSpeech端到端架构与实战指南 【免费下载链接】DeepSpeech DeepSpeech is an open source embedded (offline, on-device) speech-to-text engine which can run in real time on devices ranging from a Raspberry Pi 4 to high power…

2026/6/20 4:46:21阅读更多 →
macOS自动点击器终极指南:轻松实现重复任务自动化

macOS自动点击器终极指南:轻松实现重复任务自动化

macOS自动点击器终极指南:轻松实现重复任务自动化 【免费下载链接】macos-auto-clicker A simple auto clicker for macOS Big Sur, Monterey, Ventura, Sonoma and Sequoia. 项目地址: https://gitcode.com/gh_mirrors/ma/macos-auto-clicker 你是否厌倦了每…

2026/6/20 5:25:57阅读更多 →
多款二维码制作工具真实测评,个人日常、商家营销都能找到合适的

多款二维码制作工具真实测评,个人日常、商家营销都能找到合适的

不管是日常分享链接、留存文字资料,还是门店活动宣传、企业巡检登记,二维码都是必不可少的工具。市面上制作二维码的平台五花八门,功能侧重差别很大。下面整理五款不同定位的工具,有本地轻量软件,也有国内外热门线上站…

2026/6/20 15:59:22阅读更多 →
2026年API聚合平台横评实测:哪一家是企业级首选

2026年API聚合平台横评实测:哪一家是企业级首选

引言:API聚合平台为何成为巨头新战场? 近年来,一个显著的趋势是,以中国移动、中国电信为代表的通信巨头,纷纷将战略目光投向了“API聚合平台”或“AI模型中转站”这一新兴赛道。移动推出了“移动MOMA”,电信…

2026/6/20 15:59:22阅读更多 →
从异常类到 Fault Message,SAP Proxy Runtime 里的业务错误传递机制

从异常类到 Fault Message,SAP Proxy Runtime 里的业务错误传递机制

在 SAP PI / PO 或早期 XI 风格的 Proxy 集成里,接口报错经常被分成两类。一类是技术链路问题,网络不通、Integration Server 地址没认到、接口路由没配好、服务器不可达,这类错误通常由 Runtime 自己抛出来。另一类更贴近业务,消息已经成功到达接收系统,代理类也被调用了…

2026/6/20 15:59:22阅读更多 →
Windows风扇智能控制终极指南:5分钟让电脑静音又高效

Windows风扇智能控制终极指南:5分钟让电脑静音又高效

Windows风扇智能控制终极指南:5分钟让电脑静音又高效 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/…

2026/6/20 15:59:22阅读更多 →
越华环保集团危废暂存间:环保设备合规体系深度拆解

越华环保集团危废暂存间:环保设备合规体系深度拆解

越华环保集团的危废暂存间,是环保设备中适配多场景合规存储需求的成熟成品方案。不少企业采购成品存储设备时,只关注柜体本身的参数,忽略了从选型到验收的全流程合规细节,最后卡在验收环节返工。对中小产废企业来说,合…

2026/6/20 15:59:22阅读更多 →
MusicPlayer2 V2.78:轻量开源本地音乐播放器,支持20+格式

MusicPlayer2 V2.78:轻量开源本地音乐播放器,支持20+格式

一句话推荐仅18MB的开源本地音乐播放器,支持20种音频格式,自带歌词卡拉OK效果和频谱可视化,堪称新版"千千静听"。这玩意儿到底好在哪?说实话,现在谁还听本地音乐啊?不都是网易云、QQ音乐开个会员…

2026/6/20 15:54:21阅读更多 →
【课程设计/毕业设计】基于 Web 的高校县志馆藏信息综合管理系统设计与实现 基于Django的青岛滨海学院特色文献捐赠流转管理系统的设计与实现【附源码、数据库、万字文档】

【课程设计/毕业设计】基于 Web 的高校县志馆藏信息综合管理系统设计与实现 基于Django的青岛滨海学院特色文献捐赠流转管理系统的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/20 0:02:40阅读更多 →
MC68HC908RF2A定时器PWM生成原理与实战:无缓冲与缓冲模式详解

MC68HC908RF2A定时器PWM生成原理与实战:无缓冲与缓冲模式详解

1. 项目概述与核心价值在嵌入式开发,尤其是电机驱动、LED调光、开关电源这些需要精确控制“能量”的领域,脉冲宽度调制(PWM)技术是工程师手中的一把瑞士军刀。它的本质很简单:用一个固定频率的方波,通过改变…

2026/6/20 0:02:40阅读更多 →
在银河麒麟V10桌面(2205版本)上实战部署软RAID 1:从模块黑名单到自动挂载

在银河麒麟V10桌面(2205版本)上实战部署软RAID 1:从模块黑名单到自动挂载

1. 银河麒麟V10桌面系统与软RAID 1基础认知 第一次在银河麒麟V10桌面上折腾软RAID 1时,我踩了不少坑。这个国产操作系统基于Linux内核,但2205版本对软RAID模块做了特殊处理,需要额外操作才能正常使用。软RAID 1其实就是磁盘镜像技术&#xff…

2026/6/20 0:02:40阅读更多 →