当前位置: 首页 > news >正文

机器学习基础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分&#xff0c…...

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搜狗输入法安装指南 搜狗…...

OWL ADVENTURE Java面试题实战:手写一个简单的图像加载器

OWL ADVENTURE Java面试题实战:手写一个简单的图像加载器 最近在准备Java面试的朋友,是不是经常被问到IO、多线程这些基础?光背八股文总觉得心里没底。今天咱们换个玩法,不搞虚的,直接动手写一个能用在真实项目里的东…...

ABAP开发避坑指南:绕过SAP GUI安全弹窗的5种编程方案实测

ABAP开发实战:5种绕过SAP GUI安全弹窗的编程方案深度解析 引言:SAP GUI安全机制的困境与突破 在SAP系统的日常开发与运维中,频繁出现的"系统试图创建文件"安全弹窗堪称ABAP开发者的噩梦。这种设计初衷为保护本地文件安全的机制&…...

Kook Zimage真实幻想Turbo快速调试:找到属于你的幻想风格黄金参数组合

Kook Zimage真实幻想Turbo快速调试:找到属于你的幻想风格黄金参数组合 1. 认识Kook Zimage真实幻想Turbo Kook Zimage真实幻想Turbo是一款专为个人GPU设计的轻量化幻想风格图像生成系统。它基于Z-Image-Turbo极速文生图底座,通过独特的权重融合技术&am…...

2023年VSCode插件开发全指南:从零发布你的第一个扩展(TypeScript版)

2023年TypeScript生态下的VSCode插件开发实战 在当今开发者工具生态中,Visual Studio Code以其轻量化和高度可扩展性占据了绝对领先地位。根据2023年Stack Overflow开发者调查报告,VSCode以74.48%的使用率成为最受欢迎的代码编辑器。而插件系统正是其生态…...

三维点云到二维图像投影的实战指南:从原理到代码实现

1. 三维点云投影二维图像的核心原理 第一次接触三维点云投影时,我也被各种坐标系转换绕得头晕。后来发现只要抓住一个核心:三维到二维的投影本质上是坐标系转换的接力赛。想象你拿着手机拍照,物体从现实世界到手机屏幕的旅程,就是…...

开源像素艺术生成工具上手指南:像素幻梦2.0-Stable镜像免配置部署

开源像素艺术生成工具上手指南:像素幻梦2.0-Stable镜像免配置部署 1. 像素幻梦简介 像素幻梦(Pixel Dream Workshop)是一款基于FLUX.1-dev扩散模型构建的下一代像素艺术生成工具。它采用16-bit像素工坊风格的视觉设计,为创作者提供沉浸式的AI绘图体验。…...

Ubuntu服务器中文乱码终极解决方案:从locale配置到阿里云重启避坑指南

Ubuntu服务器中文乱码终极解决方案:从locale配置到阿里云重启避坑指南 当你第一次在Ubuntu服务器上看到中文字符变成一堆问号或方框时,那种困惑和挫败感我深有体会。特别是在云服务器环境下,问题往往比本地环境更复杂——即使按照常规教程操作…...

Pyodide vs Rust-Python vs WASI-NN:Python WASM性能终极对决(含13项微基准测试原始数据)

第一章:Pyodide vs Rust-Python vs WASI-NN:Python WASM性能终极对决(含13项微基准测试原始数据) WebAssembly 正在重塑 Python 在浏览器与边缘环境中的执行范式。本章基于统一测试平台(WASI SDK 20.0、Chrome 124、In…...

三三复制系统模式介绍

三三复制系统模式介绍:从底层逻辑到合规落地在社交电商与团队裂变领域,三三复制系统凭借其低门槛、高稳定性的特点,成为企业实现用户快速增长与业绩倍增的重要工具。不同于传统多级分销的复杂层级,三三复制系统以“三”为核心基数…...

岗亭厂家直销:揭秘源头工厂如何帮你省下30%采购成本

在2026年1月的今天,户外岗亭作为城市管理、社区安防及商业服务的关键节点,其市场需求持续增长。然而,行业在快速发展的同时,也暴露出一些亟待解决的技术与成本挑战。从技术层面看,传统岗亭产品普遍面临结构稳定性不足、…...