机器学习基础14-算法调参(基于印第安糖尿病Pima数据集)
机器学习的模型都是参数化的,可以通过调参来提高模型的准确度。
模型有很多参数,如何找到最佳的参数组合,可以把它当作一个查询问题来处理,但是调整参数到何时为止呢?应该遵循偏差和方差协调的原则。
接下来将介绍在 scikit-learn 中设置机器学习模型最佳参数的方法。
1. 调整参数对机器学习算法的重要性。
2. 如何使用网格搜索优化参数?
3. 如何使用随机搜索优化参数?
机器学习算法调参
调整算法参数是采用机器学习解决问题的最后一个步骤,有时也被称为超参数优化。学会调参是进行机器学习项目的前提,但第一次遇到这些算法和模型时,肯定会被其大量的参数吓到。其实,参数可分为两种:一种是影响模型在训练集上的准确度或防止过拟合能力的参数;另一种是不影响这两者的参数。模型在样本总体上的准确度由其在训练集上的准确度及其防止过拟合的能力共同决定,所以在调参时主要针对第一种参数进行调整,最终达到的效果是:模型在训练集上的准确度和防止过拟合能力的大和谐。
下面将介绍两种自动寻找最优化参数的算法:
· 网格搜索优化参数。
· 随机搜索优化参数。
网格搜索优化参数
网格搜索优化参数是一种算法参数优化的方法。它是通过遍历已定义参数的列表,来评估算法的参数,从而找到最优参数。在scikit-learn中使用GridSearchCV来实现对参数的跟踪、调整与评估,从而找到最优参数。网格搜索优化参数适用于三四个(或更少)的超参数(当超参数的数量增加时,网格搜索的计算复杂度会呈现指数型增长,这时要换用随机搜索),由用户列出一个较小的超参数值域,这些超参数值域的笛卡尔集(排列组合)为一组组超参数。网格搜索算法使用每组超参数训练模型,并挑选验证集误差最小的超参数组合。下面的例子是展示如何使用 GridSearchCV 来调整脊回归(Ridge)的参数。GridSearchCV使用字典对象来指定需要调参的参数,可以同时对一个或多个参数进行调参。
代码如下:
import pandas as pd
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV#数据预处理
path = 'D:\down\\archive\\diabetes.csv'
data = pd.read_csv(path)#打印标签名称
print(data.columns)#将数据转成数组
array = data.values
#分割数据,去掉最后一个标签
X = array[:, 0:8]Y = array[:, 8]model = Ridge()
#设置参数,进行网格搜索,寻找最优参数,这里只设置了一个参数,实际中可以设置多个参数,如下
param_grid = {'alpha': [1, 0.1, 0.01, 0.001, 0.0001]}
#网格搜索,找到最优参数,这里使用了10折交叉验证,可以自己设置,如5折交叉验证,这里使用了全部的数据,也可以自己设置
grid = GridSearchCV(estimator=model, param_grid=param_grid)grid.fit(X, Y)print("最优分数:%.3f" % grid.best_score_)
print("最优参数:", grid.best_estimator_.alpha)
param_grid是一个字典对象,以算法的参数名为key,需要遍历的参数值列表为value。在验证算法最优参数的网格搜索算法中,可以设定多个key:value对,同时查询多个参数的最优参数值。
执行结果如下:
最优分数:0.276
最优参数: 1
随机搜索优化参数
随机搜索优化参数是另一种对算法参数优化的方法。随机搜索优化参数通过固定次数的迭代,采用随机采样分布的方式搜索合适的参数。与网格搜索优化参数相比,随机搜索优化参数提供了一种更高效的解决方法(特别是在参数数量多的情况下),随机搜索优化参数为每个参数定义了一个分布函数,并在该空间中采样。在 scikit-learn 中通过RandomizedSearchCV类实现。
下面的例子是通过RandomizedSearchCV对脊回归算法的参数进行100次迭代,并从中选择最优的参数。
SciPy中的uniform是一个均匀随机采样函数,默认生成0与1之间的随机采样数值。在这里利用uniform对参数进行随机采样。
代码如下:
import pandas as pd
from scipy.stats import uniform
from sklearn.linear_model import Ridgefrom sklearn.model_selection import GridSearchCV, RandomizedSearchCV#数据预处理
path = 'D:\down\\archive\\diabetes.csv'
data = pd.read_csv(path)#打印标签名称
print(data.columns)#将数据转成数组
array = data.values
#分割数据,去掉最后一个标签
X = array[:, 0:8]Y = array[:, 8]model = Ridge()param_grid = {'alpha': uniform()}grid = RandomizedSearchCV(estimator=model, param_distributions=param_grid, n_iter=100, random_state=7)grid.fit(X, Y)print("最高得分:%.3f" % grid.best_score_)
print("最优参数:", grid.best_estimator_.alpha)
执行结果如下:
最高得分:0.276
最优参数: 0.9779895119966027
调参是算法模型生成之前很重要的一步,上面介绍了两种选择最优参数的方法:网格搜索优化参数和随机搜索优化参数。
如果算法的参数少于三个,推荐使用网格搜索优化参数;如果需要优化的参数超过三个,推荐使用随机搜索优化参数。
下一节将介绍如何生成模型,以及如何保存和载入已生成的模型。
相关文章:
机器学习基础14-算法调参(基于印第安糖尿病Pima数据集)
机器学习的模型都是参数化的,可以通过调参来提高模型的准确度。 模型有很多参数,如何找到最佳的参数组合,可以把它当作一个查询问题来处理,但是调整参数到何时为止呢?应该遵循偏差和方差协调的原则。 接下来将介绍在 s…...

ASUS华硕天选4笔记本电脑FA507XV原厂Windows11系统22H2
天选四FA507X原装系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件 华硕电脑管家、奥创控制中心等预装程序,恢复出厂状态W11 链接:https://pan.baidu.com/s/1SPoFW7wR5KawGu-yMckNzg?pwdayxd 提取码:ayxd...

IET独立出版 | EI检索 | 2023年第三届机械、航空航天与汽车工程国际会议
会议简介 Brief Introduction 2023年第三届机械、航空航天与汽车工程国际会议(CMAAE 2023) 会议时间:2023年12月8 -10日 召开地点:中国南京 大会官网:www.cmaae.org 航天是当今世界最具挑战性和广泛带动性的高技术领域…...
【Pytorch】CUDA error: no kernel image is available for execution on the device
记录一下pytorch安装的cuda版本和GPU cuda不一致的解决。 RuntimeError: CUDA error: no kernel image is available for execution on the device 一般就是pytorch和cuda安装的不匹配。 如果我安装的torch配的cuda信息如下, torch.__version__: 1.8.1cu102 tor…...

dolphinschedule配置企微告警服务(WeChat群组)
一、前置说明 ds配置好工作流后,比较重要的一个就是上线后的监控报警服务,如果你是基于企微作为协同办公的,WeChat群组预警必须是要安排上的,文章基于自建应用配合群组方式构建预警群,接入后,任务成功或者…...

Git中smart Checkout与force checkout
Git中smart Checkout与force checkout 使用git进行代码版本管理,当我们切换分支有时会遇到这样的问题: 这是因为在当前分支修改了代码,但是没有commit,所以在切换到其他分支的时候会弹出这个窗口, 提示你选force checkout或者smart checko…...

Java“牵手”1688商品跨境属性数据,1688API接口申请指南
1688平台商品详情跨境属性数据接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取1688商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片,重量,详情描述等详细信息 。 获取商品详情接口API是一种用于…...

Win解答 | 解决键盘中 字母+空格 导致的输入法弹窗导致的一系列问题
近三个月来,一直都有一个键盘组合键的问题影响我的电脑使用,不管是打字还是打游戏,都会出现按键盘的 字母空格 弹出一个特殊符号的候选框,如下图所示 图片中为 S空格 所出现的弹窗 一个看似方便,实则难受的功能 其实打…...

WPF读取dicom序列:实现上一帧、下一帧、自动播放、暂停
一、整体设计概况 创建WPF程序使用.Net Framework4.8定义Image控件展示图像增加标签展示dcm文件信息规划按钮触发对应的事件:上一帧、下一帧、自动播放、暂停、缩放、播放速率二、页面展示 三、代码逻辑分析 Windows窗体加载Loaded事件:生成初始图像信息Windows窗体加载Mous…...

homeassistant ubuntu自启动 网络设置
命令行安装virtualbox 或者安装包 hass官网下载 haos_ova-10.4.vdi virtualbox 装hass 最少2G内存 其他省略 自启动: gnome-session-properties 添加 VBoxManage startvm hass --type headless hass为自己的虚拟机名字 网络配置如下: 要全部打开...

生成式AI背景下编程工作者的技术和高级软考理论的演进融合之路
思考背景 近两次软考,我都参与了,2022年11月参加的是系统架构师的考试,2023年5月参加的是系统分析师的考试,去年参加系统架构是考试是完全的裸考和第一次考,成绩是选择题39,综合题46和论文48分,…...

RabbitMQ的镜像队列
镜像队列 如果 RabbitMQ 集群中只有一个 Broker 节点,那么该节点的失效将导致整体服务的临时性不可用,并且也可能会导致消息的丢失。可以将所有消息都设置为持久化,并且对应队列的durable 属性也设置为 true ,但是这样仍然无法…...
【Spring Boot】数据库持久层框架MyBatis — Spring Boot构建MyBatis应用程序
Spring Boot构建MyBatis应用程序 Spring Boot是用于快速构建Spring应用程序的框架。MyBatis是一种Java持久化框架,可以帮助开发人员轻松地管理数据库。将Spring Boot与MyBatis结合使用可以使开发人员更容易地创建和管理数据库应用程序。 以下是使用Spring Boot构建…...

【校招VIP】专业课考点之session cookie
考点介绍: 测试工作中我们经常会听到这两个词,作为测试一定要理解这两个概念,对于测试应用的接口、业务理解很有帮助。需要了解Cookie和Session的作用、原理和两者的区别。 『专业课考点之session cookie』相关题目及解析内容可点击文章末尾…...

IDEA集成Git相关操作知识(pull、push、clone)
一:集成git 1:初始化git(新版本默认初始化) 老版本若没有,点击VCS,选中import into Version Controller中的Create git Repository(创建git仓库),同理即可出现git符号。 也可查看源文件夹有没有…...
Springboot 整合 Redis配置
RedisService接口 import java.util.List; import java.util.Map; import java.util.Set;/*** Redis操作Service* Created by macro on 2020/3/3.*/ public interface RedisService {/*** 保存属性*/void set(String key, Object value, long time);/*** 保存属性*/void set(St…...

Spark 启动时,报JAVA_HOME is not set
文章目录 1、报错内容2、解决方式3、再次启动Spark集群 1、报错内容 Spark启动时报错: hadoop104: JAVA_HOME is not set2、解决方式 解决方式: 打开启动配置文件 cd /opt/module/spark-standalone/sbin/ vim spark-config.sh配置Java的环境变量 …...

运用Python解析HTML页面获取资料
在网络爬虫的应用中,我们经常需要从HTML页面中提取图片、音频和文字资源。本文将介绍如何使用Python的requests库和BeautifulSoup解析HTML页面,获取这些资源。 一、环境准备 首先,确保您已经安装了Python环境。接下来,我们需要安…...
硬件名词--单片机,开发板和芯片
这里写自定义目录标题 初学硬件,一脸懵逼。整理了半天还是没太懂。只能说我不学习,我是知识点的搬运工。 1.半导体(semiconductor)指常温下导电性能介于导体与绝缘体之间的材料,常见材料有硅,锗、砷化镓等。…...

Ubuntu20.04下安装搜狗输入法Linux版
Ubuntu20.04下安装搜狗输入法Linux版 参考搜狗输入法的官网安装指南; 第一步:打开搜狗输入法官网; https://shurufa.sogou.com/ 点击X86_64后将会自动跳转到搜狗输入法的安装指南中; 安装指南 Ubuntu搜狗输入法安装指南 搜狗…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...