位置: IT常识 - 正文

Sklearn GridSearchCV跑SVM很慢或卡死解决办法,SVM线性核函数卡死

编辑:rootadmin
Sklearn GridSearchCV跑SVM很慢或卡死解决办法,SVM线性核函数卡死

推荐整理分享Sklearn GridSearchCV跑SVM很慢或卡死解决办法,SVM线性核函数卡死,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

今天跑人工智能SVM实验,想试一下线性核函数,结果卡死了,很久也不出结果,但之前使用高斯核函数是没问题的。历经千辛万苦终于找到了原因,记录一下,希望对后人有帮助。本人只是个做作业的小菜菜,如有不对欢迎指正!

参考了以下文章:

关于Python Sklearn SVM 为什么运行很慢得到结果的原因 https://blog.csdn.net/zhike5110/article/details/88878812

大致原因

SVM需要不断寻找最能区分数据的超平面,直至收敛。我们以线性(Linear)核函数为例,如果数据间有明显的线性关系时,SVM就能很快找到这个超平面,达到收敛。但如果数据间无明显的线性关系,即使数据量很小,也很难找到这个超平面,导致迟迟不收敛。具体解释请看上面附的原文章。

解决方法原代码

我原来的代码如下。使用的是线性核函数。

import timefrom sklearn.metrics import accuracy_scorefrom sklearn.metrics import f1_scorefrom sklearn.model_selection import train_test_splitfrom sklearn.model_selection import GridSearchCVfrom sklearn.svm import SVC# 读取训练集并切分X, Y = load_data() X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=0)# 参数parameters = [ { 'kernel': ['linear'], # 线性核函数 'C': [1 * 10**i for i in range(-3, 11)], 'class_weight': ['balanced'] #样本均衡度 }]# 参数调优 clf = GridSearchCV(estimator=SVC(), param_grid=parameters, cv=8, n_jobs=5, scoring='f1_macro')start = time.time()clf.fit(X_train, y_train)elapsed = time.time() - startprint("Fitting finished in %d min %d s" % (elapsed / 60, elapsed % 60))print("Best set score:{:.2f}".format(clf.best_score_))print("Best parameters:{}".format(clf.best_params_))print("Test set score:{:.2f}".format(clf.score(X_test, y_test)))

使用上面的参数跑了很久也不出结果,把参数组合数量调少也不行。

方法一:限制最大迭代次数

设置最大迭代次数参数max_iter。max_iter默认为-1,表示直至计算出收敛的超平面才停止。将其设为一个合适的正整数即可。

设置max_iter参数:

parameters = [ { 'kernel': ['linear'], # 线性核函数 'C': [1 * 10**i for i in range(-3, 11)], 'class_weight': ['balanced'], # 样本均衡度 'max_iter': [1000000] # 限制最多迭代1000000次 },]

跑了有5分多钟,得到结果:

方法二:改用其他的核函数Sklearn GridSearchCV跑SVM很慢或卡死解决办法,SVM线性核函数卡死

改用非线性的核函数,比如常用的高斯核函数(也叫径向基核函数)、多项式核函数,可能能够正常收敛。

采用高斯核函数(Radial Basis Function,RBF)

采用高斯核函数,参数如下:

parameters = [ { 'kernel': ['rbf'], # 高斯核函数 'C': [1 * 10**i for i in range(-3, 11)], 'gamma': [1 * 10**i for i in range(-10, 4)], 'class_weight': ['balanced'] # 样本均衡度 }]

参数组合数量翻倍了,需要耐心等待。训练时间56分钟,结果:

采用多项式核函数(Polynomial Kernel)

我又尝试了多项式核函数,但对于我的数据仍然不好收敛,因此,只好也加上max_iter参数:

parameters = [ { 'kernel': ['poly'],# 多项式核函数 'C': [1 * 10**i for i in range(-3, 11)], 'degree': range(2, 10), 'class_weight': ['balanced'], #样本均衡度 'max_iter': [1000000]# 限制最多迭代1000000次 }]

参数组合数量仍然比较多。训练时间85分钟。结果如下:

换核函数还是不行?

原因是不同的参数组合也会影响收敛的速度。比如在我的实验中,采用高斯核函数,如果gamma设置过小也迟迟不出结果。建议解决方法如下:

先使用少的参数组合数量,降低试错成本。先不要刚上来就设置过多的参数组合数量,要不然跑的太慢,你无法知道是正常在跑还是收敛慢了,最后跑了几个小时跑不出来才发现不对劲。如果用少量的参数组合很快跑出来了,就尝试加多参数组合数量,看还能不能跑出来;也可以设置一个较大的max_iter参数。这样的话能防止收敛慢的参数组合无限制地跑下去,正常收敛的参数组合也不会受影响。SVM教程推荐

推荐浙江大学胡浩基老师的SVM课程,讲的非常清楚:

浙大胡浩基老师SVM: https://www.bilibili.com/video/BV1jt4y1E7BQ/?spm_id_from=333.337.search-card.all.click&vd_source=44f1ad5d101e28cd116fe2918182d1b6

B站也有胡老师完整的机器学习课程视频,感兴趣的同学可以去找找。

本文链接地址:https://www.jiuchutong.com/zhishi/299197.html 转载请保留说明!

上一篇:ZED2跑ORB-SLAM3+双目相机、IMU联合标定+显卡驱动与cuda/cudnn安装

下一篇:【node进阶】浅析Koa框架---ejs模板|文件上传|操作mongoDB(node教程)

  • iphone13震动在哪设置(iphone13震动在哪设置强度)

    iphone13震动在哪设置(iphone13震动在哪设置强度)

  • 飞行模式能省电吗(飞行模式省电还是费电)

    飞行模式能省电吗(飞行模式省电还是费电)

  • 华为p30怎么如何微信分身(华为p30手机操作方法)

    华为p30怎么如何微信分身(华为p30手机操作方法)

  • 8p摄像头进灰(8plus摄像头进灰)

    8p摄像头进灰(8plus摄像头进灰)

  • 为什么电子体重秤上显示L(为什么电子体重秤上总是两个数字)

    为什么电子体重秤上显示L(为什么电子体重秤上总是两个数字)

  • 华为只换外屏影响大吗(华为换外屏影响截图吗)

    华为只换外屏影响大吗(华为换外屏影响截图吗)

  • 天猫换货后能再退货吗(天猫换货后能再退货怎么操作)

    天猫换货后能再退货吗(天猫换货后能再退货怎么操作)

  • p40华为屏幕尺寸(p40pro尺寸长宽高多少厘米)

    p40华为屏幕尺寸(p40pro尺寸长宽高多少厘米)

  • 淘宝现金红包提现是什么意思(淘宝现金红包提现怎么做账?)

    淘宝现金红包提现是什么意思(淘宝现金红包提现怎么做账?)

  • 苹果烧屏是什么样子的(苹果烧屏是什么引起的)

    苹果烧屏是什么样子的(苹果烧屏是什么引起的)

  • 打印机打出来有重影(打印机打出来有墨点)

    打印机打出来有重影(打印机打出来有墨点)

  • 快手的视频怎么下载(快手的视频怎么投屏到电视上)

    快手的视频怎么下载(快手的视频怎么投屏到电视上)

  • iphone7为什么卡屏(为什么苹果7手机卡的要死)

    iphone7为什么卡屏(为什么苹果7手机卡的要死)

  • 3dmax默认的四个视图分别是(3dmax默认单位是什么)

    3dmax默认的四个视图分别是(3dmax默认单位是什么)

  • 金山快盘还能找回吗(金山快盘之前的文件在哪里)

    金山快盘还能找回吗(金山快盘之前的文件在哪里)

  • 怎么关闭QQ音乐自动强制更新(怎么关闭qq音乐vip自动续费)

    怎么关闭QQ音乐自动强制更新(怎么关闭qq音乐vip自动续费)

  • 内测千分尺怎么使用(内测千分尺怎么使用视频)

    内测千分尺怎么使用(内测千分尺怎么使用视频)

  • 苹果x怎么清灰(苹果x怎么清灰喇叭麦克风)

    苹果x怎么清灰(苹果x怎么清灰喇叭麦克风)

  • switch连不上热点原因(switch连不上热点怎么办)

    switch连不上热点原因(switch连不上热点怎么办)

  • bkk一al00是什么型号(bkk一al00是什么手机)

    bkk一al00是什么型号(bkk一al00是什么手机)

  • 天猫精灵的蓝牙怎么连接(手机搜不到天猫精灵的蓝牙)

    天猫精灵的蓝牙怎么连接(手机搜不到天猫精灵的蓝牙)

  •  苹果怎么开volte(华为手机的volte功能在哪里开启?)

    苹果怎么开volte(华为手机的volte功能在哪里开启?)

  • Create OpenAI Account的教程来啦,赶紧学习吧!

    Create OpenAI Account的教程来啦,赶紧学习吧!

  • Colossal-AI的安装(ai安装教程2020)

    Colossal-AI的安装(ai安装教程2020)

  • phpcms v9文章点击数是哪个表哪个字段(phpcms文档)

    phpcms v9文章点击数是哪个表哪个字段(phpcms文档)

  • Vuex(vuex数据持久化)

    Vuex(vuex数据持久化)

  • 个体户转到个人要多少税
  • 向个人提供居住证明
  • 车辆消费税征税范围是什么
  • 进项税多久有效
  • 什么软件属于无线网卡
  • 货物和运费一起开票怎么开
  • 票据和结算凭证上的签章
  • 企业收取客户利润违法吗
  • 专项应付款转资本公积
  • 提前退休获得一次性补贴要交个人所得税吗?
  • 个人所得税期末余额在借方表示
  • 什么情况下一般疑问句用do
  • 关于商业健康保险产品的规范和条件
  • 转增股本是股票股利吗
  • 滞留发票的税收处理
  • 专用发票过期了还能冲红发票吗
  • 股票怎么算印花税收入
  • 老板请客吃饭拿餐饮发票公司报销怎么账务处理?
  • 医药批发行业增值税税负率
  • 固定资产评估增值后如何入账
  • 水利基金退税怎么做会计分录
  • 我公司对某公司作如下措施
  • 留存利润和利润的关系
  • 方正电脑如何做系统
  • 什么是货币资产负债表
  • 私营合伙企业个税怎么算
  • 联想随身充评测
  • 多付货款退回的法律依据
  • macOS Big Sur 11.2 开发者预览版 Beta如何更新?
  • mds是什么进程
  • win7系统修改
  • thinkphp use命名空间
  • wordpress简码怎么用
  • vue中数字运算
  • php curl 封装
  • chage -l命令
  • linux查询ifconfig和cd命令的完整文件名
  • 补交上年度的企业所得税税款计入什么科目
  • 社保的残保金的用途
  • 如何让网站优化成功
  • javatoolkit详解
  • 土地无形资产摊销年限多少年
  • 公司旅游费会计分录
  • 开专票一定要写明细吗
  • 事务所企业所得税
  • 新版电子税务局怎么增加办税人员
  • 母公司持有子公司70%股权
  • 资产损失账务处理要求
  • 建筑企业结转收入方法
  • 车间管理人员的福利费计入什么科目
  • 电商的成本构成包括
  • 跨年暂估成本会计分录
  • 公司购买的商品质量问题能用12315投诉吗
  • 工程内部承包合同
  • 会计一般用什么软件
  • mysql存储过程判断输入判断类型
  • win8系统怎样安装
  • 怎么进入bios设置界面win10
  • ubuntu操作系统入门
  • macbookairfacetime
  • mac中通过python关闭浏览器中的finder弹框
  • windows xp输入法不见了怎么办
  • linux系统怎么切换到命令行
  • Linux系统下的Samba客户端配置
  • win7系统怎么设置屏保
  • opengl编程语言
  • 安卓十游戏怎么玩
  • centos 设置定时任务执行指定脚本的方法
  • javascript的
  • unity3d基本操作
  • isscroll.js
  • Android studio DrawerLayout
  • 客户端名称 android-
  • 电子税务局申报密码怎么设置?
  • 浙江省电子税务局手机开票入口
  • 拒绝税务机关检查
  • 四川省地方税务局公告2018年第3号
  • 生育保险证明去哪里办
  • 云南4050人员2020最新政策
  • 国家税务总局河南税务局官网查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设