sklearn GridSearchCV网格搜索和SVM的两个参数 C 和 gamma

news2024/11/18 11:24:58

GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数。GridSearchCV用于系统地遍历多种参数组合,通过交叉验证确定最佳效果参数。

引用自:公众号: 写bug的程旭源
个人博客: 写bug的程旭源

常用参数解读:
estimator:所使用的分类器,如estimator=RandomForestClassifier(min_samples_split=100,min_samples_leaf=20,max_depth=8,max_features=‘sqrt’,random_state=10), 并且传入除需要确定最佳的参数之外的其他参数。每一个分类器都需要一个scoring参数,或者score方法。
param_grid:值为字典或者列表,即需要最优化的参数的取值,param_grid =param_test1,param_test1 = {‘n_estimators’:range(10,71,10)}。
scoring :准确度评价标准,默认None,这时需要使用score函数;或者如scoring=‘roc_auc’,根据所选模型不同,评价准则不同。字符串(函数名),或是可调用对象,需要其函数签名形如:scorer(estimator, X, y);如果是None,则使用estimator的误差估计函数。
cv :交叉验证参数,默认None,使用三折交叉验证。指定fold数量,默认为3,也可以是yield训练/测试数据的生成器。
refit :默认为True,程序将会以交叉验证训练集得到的最佳参数,重新对所有可用的训练集与开发集进行,作为最终用于性能评估的最佳模型参数。即在搜索参数结束后,用最佳参数结果再次fit一遍全部数据集。
iid:默认True,为True时,默认为各个样本fold概率分布一致,误差估计为所有样本之和,而非各个fold的平均。
verbose:日志冗长度,int:冗长度,0:不输出训练过程,1:偶尔输出,>1:对每个子模型都输出。
n_jobs: 并行数,int:个数,-1:跟CPU核数一致, 1:默认值。
pre_dispatch:指定总共分发的并行任务数。当n_jobs大于1时,数据将在每个运行点进行复制,这可能导致OOM,而设置pre_dispatch参数,则可以预先划分总共的job数量,使数据最多被复制pre_dispatch次
常用方法:
grid.fit():运行网格搜索
grid_scores_:给出不同参数情况下的评价结果
best_params_:描述了已取得最佳结果的参数的组合
best_score_:成员提供优化过程期间观察到的最好的评分

SVM模型有两个非常重要的参数C与gamma。其中 C是惩罚系数,即对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。C越小,容易欠拟合。C过大或过小,泛化能力变差
gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。

此外大家注意RBF公式里面的sigma和gamma的关系如下:
在这里插入图片描述
这里面大家需要注意的就是gamma的物理意义,大家提到很多的RBF的幅宽,它会影响每个支持向量对应的高斯的作用范围,从而影响泛化性能。
我的理解:如果gamma设的太大,会很小,很小的高斯分布长得又高又瘦,
会造成只会作用于支持向量样本附近,对于未知样本分类效果很差,存在训练准确率可以很高,
(如果让无穷小,则理论上,高斯核的SVM可以拟合任何非线性数据,但容易过拟合)而测试准确率不高的可能,
就是通常说的过训练;而如果设的过小,则会造成平滑效应太大,无法在训练集上得到特别高的准确率,也会影响测试集的准确率。

此外,可以明确的两个结论是:
结论1:样本数目少于特征维度并不一定会导致过拟合,这可以参考余凯老师的这句评论:
“这不是原因啊,呵呵。用RBF kernel, 系统的dimension实际上不超过样本数,与特征维数没有一个trivial的关系。”

结论2:RBF核应该可以得到与线性核相近的效果(按照理论,RBF核可以模拟线性核),可能好于线性核,也可能差于,但是,不应该相差太多。
当然,很多问题中,比如维度过高,或者样本海量的情况下,大家更倾向于用线性核,因为效果相当,但是在速度和模型大小方面,线性核会有更好的表现。

rbf实际是记忆了若干样例,在sv中各维权重重要性等同。线性核学出的权重是feature weighting作用或特征选择 。

Grid Search
Grid Search是用在Libsvm中的参数搜索方法。很容易理解:就是在C,gamma组成的二维参数矩阵中,依次实验每一对参数的效果。使用grid Search虽然比较简单,而且看起来很naïve。但是他确实有两个优点:
可以得到全局最优
(C,gamma)相互独立,便于并行化进行

在这里插入图片描述

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

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

相关文章

学生信息管理系统【JDBC+JS+MYSQL+HTML+JSP+Servlet】(一)

第一次发综合项目,无论是前端还是后端,都应用到了,项目写的很完整,我将分为四篇文章把项目代码写完,多多支持 一:项目背景 学生成绩管理系统是基于互联网的信息管理平台,主要提供成绩录入和查…

黄金的几种征兆

有别于股票、基金等的投资品种,由于现货黄金采用保证金的交易制度,因而使投资者有爆仓的可能。具体而言,爆仓是指在某些特殊条件下,投资者保证金账户中的客户权益变为负值的情形。在黄金交易的实战中,客户爆仓大多与资…

一文搞懂Spring,堪称Spring源码终结者

Spring的影响力想必无需与大家多说,如果你用spring,那么读读源码有助于对你最重要的工具的理解,好的框架源码也可以帮助我们理解什么是好代码。 刚参加工作那会,没想过去读源码,更没想过去改框架的源码;甚…

反序列化渗透与攻防(一)之PHP反序列化漏洞

前言 序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、…

干货 | 涉疫数据的安全应用方案

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。第一部分:涉疫数据分类及问题剖析一、涉疫数据分类我们以新冠肺炎疫情为例,构建数据图谱,将涉疫数据分为三个大类,八个小类,共分为50项…

数字化营销,为何网站如此重要?

无论你在哪个行业,客户都会期望你有一个网站。没有网站的公司会发出信息,说他们已经停止运营,或者更糟的是,他们与客户失去了直接的联系。 通常企业的自有媒体由您的网站和社交媒体帐户组成。媒体付费广告等赢利媒体的数据不在您的…

你想要的100套HTML模板

好/看/的/网/页/这/都/有/ 目录 01 HTML 02 效果显示 03 文件演示 04 获取文件 源码链接 获取源码?私信?关注?点赞?收藏? 网页设计 Web design 2023/01/12 “Creativity is allowing yourself to make mista…

岁末年初再添佳誉丨Kyligence 荣获多个奖项及榜单认可

过去的一年,Kyligence 持续创新和打磨企业级产品,以全球领先的指标中台及多维数据库产品在金融、零售、制造、医疗等多个行业场景中逐步落地,实现数智化管理与业务的深度融合。岁末年初,Kyligence 再添佳誉,技术产品、…

第二章.线性回归以及非线性回归—多元线性回归

第二章.线性回归以及非线性回归 2.6 多元线性回归 1.特征: 1).单特征: 2).多特征: 有多少个特征就有多少个未知数x 2.多元线性回归模型的使用场景: 当Y值的影响因素不是唯一时,采用多元线性回归。 3.梯度下降法求解…

【自然语言处理】【chatGPT系列】大语言模型可以自我改进

大语言模型可以自我改进《Large Language Models Can Self-Improve》论文地址:https://arxiv.org/pdf/2210.11610.pdf 相关博客 【自然语言处理】【chatGPT系列】大语言模型可以自我改进 【自然语言处理】【ChatGPT系列】WebGPT:基于人类反馈的浏览器辅助…

python 波士顿房价预测

数据集地址:Index of /ml/machine-learning-databases/housing (uci.edu) 数据集中共有506条样本数据,每条样本包含了13个影响房价的特征。 数据集格式 0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30 396.90 4.98 2…

openlayers浅入(了解框架逻辑以及简单使用)

openlayers浅入(了解框架逻辑以及简单使用) 项目需求,使用openlayers替换天地图api开发,记录openlayer的使用 简介 OpenLayers是一个用于开发WebGIS客户端的JavaScript包,最初基于BSD许可发行。OpenLayers是一个开源的…

1575_AURIX_TC275_MTU简介以及部分寄存器

全部学习汇总: GitHub - GreyZhang/g_TC275: happy hacking for TC275! 从今天开始看一个全新的模块介绍MTU,存储测试单元。 TC275中所有的ECC、内置测试以及存储冗余等都有一个统一的接口规范。MTU负责管理所有的存储测试功能。MTU主要有两套寄存器&am…

【iOS】系统框架

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言熟悉系统框架多用块枚举,少用for循环for循环使用Objective-C 1.0的NSEnumerator遍历快速遍历基于块的遍历方式对自定义其内存管理语义的collection使…

Wechaty API 方法 文档整理

背景:刚使用wechaty的时候,对一个不熟悉初学者来说,看官方文档比较费时间,所以把方法和描述集合在一张表上,再使用的时候找对应的方法会比较直观。 中文文档: 介绍 - Wechatyhttps://wechaty.gitbook.io/…

【docker15】docker网络

1.docker网络是什么 docker不启动,默认网络情况 ens33lovirbr0 在CentOS7安装过程中,如果有选择相关虚拟化的服务安装系统后,启动网卡时会发现有一个网桥连接的私网地址的virbr0网卡(virbr0网卡:它还有一个固定的默认…

【蓝桥杯】历届真题 魔方旋转问题(高职组) Java

问题描述 魔方可以对它的6个面自由旋转。   我们来操作一个2阶魔方,如图: 为了描述方便,我们为它建立了坐标系。   各个面的初始状态如下:   x轴正向:绿   x轴反向:蓝   y轴正向:红  …

Hudi系列8:Hudi集成Flink

文章目录一. 相关配置1.1 拷贝编译好的jar包到Flink的lib目录1.2 拷贝guava包,解决依赖冲突1.3 配置环境变量二. YARN Session模式下启动Flink SQL2.1 解决依赖问题2.2 启动yarn-session2.3 在yarn session模式下启动flink sql三. 测试四. 异常问题汇总一. 相关配置…

荣誉+1,龙蜥社区荣登 CSDN 2022 中国开发者影响力年度榜单

近日,CSDN 在北京成功举行 “2022 中国开发者影响力盛典暨 CSDN 企业生态汇”活动,同时正式发布 2022 中国开发者影响力年度榜单。凭借本年度在开源领域的卓越贡献和技术实力,龙蜥社区荣登 CSDN 2022 “年度开发者社区” 榜单。(图…

python基础篇之文件操作

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页:lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https://blog.csdn.net/lbcyllqj?spm1000.2115.3001.5343 哔哩哔哩欢迎关注&…