模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
文章目录
- 网络搜索
- 介绍
- 步骤
- 参数
- 代码实现
网络搜索
介绍
网格搜索(Grid Search)是一种超参数优化方法,用于选择最佳的模型超参数组合。在机器学习中,超参数是在训练模型之前设置的参数,无法通过模型学习得到。网格搜索通过尝试所有可能的超参数组合,并使用交叉验证来评估每个组合的性能,从而确定最佳的超参数组合。
步骤
网格搜索的步骤如下:
- 定义要调整的超参数范围:确定要调整的每个超参数的可能取值范围。例如,学习率、正则化参数等。
- 创建参数网格:将每个超参数的可能取值组合成一个参数网格。
- 定义评估指标:选择一个评估指标来衡量每个超参数组合的性能。例如,准确率、均方误差等。
- 构建模型和交叉验证:选择一个机器学习模型,并定义交叉验证策略,将数据集分成训练集和验证集。
- 执行网格搜索:对于每个超参数组合,在交叉验证的每个训练集上训练模型,并在验证集上评估模型性能。
- 选择最佳超参数组合:根据评估指标的结果,选择具有最佳性能的超参数组合。
- 用最佳超参数训练模型:使用最佳超参数组合在整个训练数据集上重新训练模型。
网格搜索的优点是能够系统地尝试不同的超参数组合,找到最佳的模型性能。然而,由于需要尝试所有可能的组合,网格搜索的计算成本较高,尤其是超参数的数量较多时。因此,对于大型数据集和复杂模型,网格搜索可能会变得非常耗时。
为了减少计算成本,可以使用随机搜索(Randomized Search)等其他超参数优化方法,或者使用启发式方法来选择最佳超参数组合。
参数
GridSearchCV的参数包括:
- estimator:要使用的模型或者估计器对象。
- param_grid:一个字典或者列表,包含要进行网格搜索的参数和对应的取值范围。
- scoring:评估模型性能的指标,可以是字符串(使用模型的内置评估指标)或者可调用对象(自定义评估指标)。
- cv:交叉验证的折数或者交叉验证迭代器。
- n_jobs:并行运行的作业数量。-1表示使用所有可用的处理器。
- verbose:控制详细程度的整数值。0表示不输出任何信息,大于1表示输出详细的信息。
- refit:如果为True(默认值),则在找到最佳参数后,使用最佳参数重新拟合整个数据集。
- return_train_score:如果为True,则同时返回训练集上的得分。
- error_score:当模型在某些参数组合下发生错误时,用于返回的分数。可以设置为’raise’(抛出错误)或者数字(返回指定的分数)。
- verbose:控制详细程度的整数值。0表示不输出任何信息,大于1表示输出详细的信息。
注意:
在GridSearchCV中,scoring参数可以选择以下评分指标:
回归问题:
- ‘explained_variance’:可解释方差
- ‘neg_mean_absolute_error’:负平均绝对误差
- ‘neg_mean_squared_error’:负均方误差
- ‘neg_mean_squared_log_error’:负对数均方误差
- ‘neg_median_absolute_error’:负中位数绝对误差
- ‘r2’:R^2决定系数
二分类问题:
- ‘accuracy’:准确率
- ‘balanced_accuracy’:平衡准确率
- ‘average_precision’:平均精确率
- ‘f1’:F1得分
- ‘precision’:精确率
- ‘recall’:召回率
- ‘roc_auc’:ROC曲线下的面积
多分类问题: - ‘accuracy’:准确率
- ‘balanced_accuracy’:平衡准确率
- ‘average_precision’:平均精确率
- ‘f1_micro’:微观平均F1得分
- ‘f1_macro’:宏观平均F1得分
- ‘precision_micro’:微观平均精确率
- ‘precision_macro’:宏观平均精确率
- ‘recall_micro’:微观平均召回率
- ‘recall_macro’:宏观平均召回率
- ‘roc_auc_ovr’:基于一对多的ROC曲线下的面积
请注意,不同问题类型和评估指标之间的兼容性可能会有所不同。
5折交叉验证就是把数据集分成5份,然后进行5此测试,如model1就是将第一折fold1的数据作为测试集,其余的四份作为数据集。最后每个model都计算出来一个准确度accuracy,求平均后作为此验证集的精确度。
代码实现
#调用网格搜索和决策树
from sklearn.model_selection import GridSearchCV
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report, roc_curve, auc
parameters = {'max_depth':[3, 5, 7, 9], 'min_samples_leaf': [1, 2, 3, 4]}# 选择两个超参数 树的深度max_depth和叶子的最小值min_samples_leafclf = GridSearchCV(DecisionTreeClassifier(), parameters, cv=3, scoring='accuracy')# 进行网格搜索得到最优参数组合
clf.fit(X_train, y_train) #通过有最优参数组合的最优模型进行训练print('最优参数:', clf.best_params_)
print('验证集最高得分:', clf.best_score_)
# 获取最优模型
best_model = clf.best_estimator_
print('测试集上准确率:', best_model.score(X_test, y_test))# 得到预测概率
y_prob_DT = clf.predict_proba(X_test)[:, 1]# 得到预测标签
y_pred_DT = clf.predict(X_test)# 得到分类报告
print(classification_report(y_pred = y_pred_DT, y_true = y_test))# 绘制ROC图
fpr, tpr, threshold = roc_curve(y_score = y_prob_DT, y_true = y_test)
print("AUC值", auc(fpr, tpr))
plt.plot(fpr, tpr,"r-")
plt.plot([0, 1], [0, 1],"b-")
plt.xlable("FPR")
plt.ylable("TPR")
plt.title("ROC Curve")# 输出结果文件
result = pd.DataFrame()
result["load_ID"] = pd.read_csv("***.csv")["**ID"]
result["predict_labels"] = y_pred_DT
result.to_csv("result.csv", index = False)# 特征重要性评估
best_DT = clf.best_estimator_
best_DT.fit(X_train, y_train)# 重要性绘制
plt.figure(figsize(8, 6))
pd.Series(best_DT.feature_importances_, index=X_train.columns).sort_values().plot(kind="barh")
相关文章:
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
文章目录 网络搜索介绍步骤参数代码实现 网络搜索 介绍 网格搜索(Grid Search)是一种超参数优化方法,用于选择最佳的模型超参数组合。在机器学习中,超参数是在训练模型之前设置的参数,无法通过模型学习得到。网格搜索…...

创建型模式-建造者模式
使用多个简单的对象一步一步构建成一个复杂的对象 主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部…...

Rust常用加密算法
哈希运算(以Sha256为例) main.rs: use crypto::digest::Digest;use crypto::sha2::Sha256;fn main() { let input "dashen"; let mut sha Sha256::new(); sha.input_str(input); println!("{}", sha.result_str());} Cargo.toml: [package]n…...

[管理与领导-55]:IT基层管理者 - 扩展技能 - 1 - 时间管理 -2- 自律与自身作则,管理者管好自己时间的五步法
前言: 管理好自己的时间,不仅仅是理念,也是方法和流程。 步骤1:理清各种待办事项 当提到工作事项时,这通常指的是要完成或处理的工作任务或事务。这些事项可以包括以下内容: 任务分配:根据工作…...
电子商务员考试题库及答案(中级)--判断题
电子商务员题库 一、判断题 1.EDI就是按照商定的协议,将商业文件分类,并通过计算机网络,在贸易伙伴的计算机网络系统之间进行数据交换和自动处理。〔〕 2.相互通信的EDI的用户必须使用相同类型的计算机。〔 〕 3.EDI采用共同…...

(WAF)Web应用程序防火墙介绍
(WAF)Web应用程序防火墙介绍 1. WAF概述 Web应用程序防火墙(WAF)是一种关键的网络安全解决方案,用于保护Web应用程序免受各种网络攻击和威胁。随着互联网的不断发展,Web应用程序变得越来越复杂&#x…...
SpringMVC拦截器常见应用场景
在Spring MVC中,拦截器是通过实现HandlerInterceptor接口来定义的。该接口包含了三个方法: preHandle:在请求到达处理器之前执行,可以进行一些预处理操作。如果返回false,则请求将被拦截,不再继续执行后续的…...

爬虫:绕过5秒盾Cloudflare和DDoS-GUARD
本文章仅供技术研究参考,勿做它用! 5秒盾的特点 <title>Just a moment...</title> 返回的页面中不是目标数据,而是包含上面的代码:Just a moment... 或者第一次打开网页的时候: 这几个特征就是被Cloud…...
数据仓库环境下的超市进销存系统结构
传统的进销存系统建立的以单一数据库为中心的数据组织模式,已经无 法满足决策分析对数据库系统的要求,而数据仓库技术的出现和发展,为上述问题 的解决提供了强有力的工具和手段。数据仓库是一种对多个分布式的、异构的数据 库提供统一查询…...

leetcode:2011. 执行操作后的变量值(python3解法)
难度:简单 存在一种仅支持 4 种操作和 1 个变量 X 的编程语言: X 和 X 使变量 X 的值 加 1--X 和 X-- 使变量 X 的值 减 1 最初,X 的值是 0 给你一个字符串数组 operations ,这是由操作组成的一个列表,返回执行所有操作…...
ubuntu下mysql
安装: sudo apt update sudo apt install my_sql 安装客户端: sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev 启动服务 启动方式之一: sudo service mysql start 检查服务器状态方式之一:sudo …...
大模型从入门到应用——LangChain:链(Chains)-[链与索引:检索式问答]
分类目录:《大模型从入门到应用》总目录 下面这个示例展示了如何在索引上进行问答: from langchain.embeddings.openai import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.text_splitter import CharacterTextSplitte…...

【LeetCode-中等题】142. 环形链表 II
文章目录 题目方法一:哈希表set去重方法二:快慢指针 题目 方法一:哈希表set去重 思路:我们遍历链表中的每个节点,并将它记录下来;一旦遇到了此前遍历过的节点,就可以判定链表中存在环。借助哈希…...

Android TV开发之VerticalGridView
Android TV应用开发和手机应用开发是一样的,只是多了焦点控制,即选中变色。 androidx.leanback.widget.VerticalGridView 继承 BaseGridView , BaseGridView 继承 RecyclerView 。 所以 VerticalGridView 就是 RecyclerView ,使…...
SpringBoot+Vue项目添加腾讯云人脸识别
一、引言 人脸识别是一种基于人脸特征进行身份认证和识别的技术。它使用计算机视觉和模式识别的方法,通过分析图像或视频中的人脸特征,例如脸部轮廓、眼睛、鼻子、嘴巴等,来验证一个人的身份或识别出他们是谁。 人脸识别可以应用在多个领域…...
什么是IPv4?什么又是IPv6?
IPv4网络IPv4地址 IPv6网络IPv6地址 路由总结感谢 💖 hello大家好😊 IPv4网络 IPv4(Internet Protocol Version 4)是当今互联网上使用的主要网络协议。 IPv4地址 IPv4 地址有32位,通常使用点号分隔的四个十进制八位…...

飞腾FT-2000/4、D2000 log报错指导(3)
在爱好者群中遇见了很多的固件问题,这里总结记录了大家的交流内容和调试心得。主要是飞腾桌面CPU FT-2000/4 D2000相关的,包含uboot和UEFI。希望对大家调试有所帮助。 这个专题会持续更新,凑够一些就发。 23 在s3 唤醒时报错如下 check suspend ,Platform exception report…...

基于安卓的考研助手系统app 微信小程序
,设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。HBuilder技术作为当前最流行的操作平台,自然也存在着大量的应用服务需求。 本课题研究的是基于HBuilder技术平台的安卓的考研助手APP,开发这款安卓的考研助手APP主要是为了…...

Leetcode:238. 除自身以外数组的乘积【题解超详细】
纯C语言实现(小白也能看明白) 题目 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数…...

基于单片机的智能数字电子秤proteus仿真设计
一、系统方案 1、当电子称开机时,单片机会进入一系列初始化,进入1602显示模式设定,如开关显示、光标有无设置、光标闪烁设置,定时器初始化,进入定时器模式,如初始值赋值。之后液晶会显示Welcome To Use Ele…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...