位置: 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教程)

  • 微信图标上有个是什么意思(微信图标上有个黄色的锁是什么意思)

    微信图标上有个是什么意思(微信图标上有个黄色的锁是什么意思)

  • qq标识如何取消(qq标识咋取消)

    qq标识如何取消(qq标识咋取消)

  • 淘宝支付设置在哪设置(淘宝支付设置在哪儿找)

    淘宝支付设置在哪设置(淘宝支付设置在哪儿找)

  • 微信怎么设置黑色主题(微信怎么设置黑色背景)

    微信怎么设置黑色主题(微信怎么设置黑色背景)

  • 账单下载可以下载删除的吗(账单下载可以下什么软件)

    账单下载可以下载删除的吗(账单下载可以下什么软件)

  • 为什么拼多多的东西比淘宝便宜(为什么拼多多的书那么便宜)

    为什么拼多多的东西比淘宝便宜(为什么拼多多的书那么便宜)

  • 支付宝看不到电子回单(支付宝看不到电费余额怎么回事)

    支付宝看不到电子回单(支付宝看不到电费余额怎么回事)

  • 闲鱼什么时候可以拿到钱(闲鱼什么时候可以延长收货时间)

    闲鱼什么时候可以拿到钱(闲鱼什么时候可以延长收货时间)

  • 微信中狗头表情啥意思(微信中狗头表情在哪)

    微信中狗头表情啥意思(微信中狗头表情在哪)

  • 显卡1650s和1660差距(显卡1650s和1660s)

    显卡1650s和1660差距(显卡1650s和1660s)

  • 华为nova7有防抖吗(华为nova10像素多少)

    华为nova7有防抖吗(华为nova10像素多少)

  • 手机电池撬弯了有事吗(手机电池撬弯了会怎么样)

    手机电池撬弯了有事吗(手机电池撬弯了会怎么样)

  • word插表入excel表格(word插excel表格)

    word插表入excel表格(word插excel表格)

  • 电脑没声音了 如何恢复(电脑没声音了怎么解决视频)

    电脑没声音了 如何恢复(电脑没声音了怎么解决视频)

  • 华为p20pro超级夜景怎么用(华为p20夜景模式怎么设置)

    华为p20pro超级夜景怎么用(华为p20夜景模式怎么设置)

  • word2019怎么生成目录(word生成ceb)

    word2019怎么生成目录(word生成ceb)

  • 系统框图怎么画(信号与系统系统框图怎么画)

    系统框图怎么画(信号与系统系统框图怎么画)

  • 拼多多自己的宝刀在哪(拼多多宝贝二维码在哪)

    拼多多自己的宝刀在哪(拼多多宝贝二维码在哪)

  • iqoo有耳机吗(iqoo7有耳机么)

    iqoo有耳机吗(iqoo7有耳机么)

  • hd上面有个电话是什么意思怎么关(hd上面有个电话怎么打开)

    hd上面有个电话是什么意思怎么关(hd上面有个电话怎么打开)

  • vivo如何录屏

    vivo如何录屏

  • iPhone怎么充电更快 iPhone手机快速充电方法(苹果怎么充电更好)

    iPhone怎么充电更快 iPhone手机快速充电方法(苹果怎么充电更好)

  • GWX.exe是什么进程?GWX.exe可以删除吗?(zmweb.exe是什么进程)

    GWX.exe是什么进程?GWX.exe可以删除吗?(zmweb.exe是什么进程)

  • 华为OD机试 - 无向图染色(Java & JS & Python)(华为od机试无法测用例)

    华为OD机试 - 无向图染色(Java & JS & Python)(华为od机试无法测用例)

  • 增值税税负率举例说明
  • 如何申报个人所得税减免项目
  • 应税劳务销售额税率
  • 装修公司财务报销制度和流程
  • 利润表收入含其他收入吗怎么填
  • 出口退免税备案
  • 房产税存在往期滞纳金吗
  • 税收专用缴款书
  • 开业税务登记的基本流程
  • 预收款项增值税
  • 公司内帐和外账的区别
  • 有哪些发票可以开成餐饮服务
  • 保险公司返点啥意思
  • 股权内部转让交增值税吗
  • 工程项目垃圾清运项目编码
  • 银行本票结算分录
  • 纳税的税种有哪些
  • 咨询服务税收
  • 金税盘提示离线开票时间超限深圳
  • 购入二手设备,无发票怎么记账
  • 进口商品合同
  • 公司注销固定资产如何处理
  • 小规模纳税人可以开增值税专用发票吗
  • 工资及社保外包服务
  • 一篇不错的php基础论文
  • 会计科目暂存款是什么意思
  • 注册表被恶意锁定怎么恢复正常
  • pps是啥文件
  • 弥补亏损需要注意的事项
  • css边框怎么做
  • 房产增值税计算公式2022最新
  • php识别中文
  • thinkphp invoke
  • yolov3 改进
  • 雪山上的老鼠
  • chattr
  • 确保政府采购
  • 定期定额个体户超定额怎样申报
  • redirect_uri参数错误的解决方法(必看)
  • javascript导入包
  • 第一章 使用layui的表格和表单
  • 大二一学期学分多少合适
  • thinkphp route
  • python累加求和代码,直到最后一项小于10^-6
  • python统计字符串长度
  • 物流公司的会计好干吗
  • 建筑施工企业增值税老项目过度期成本票
  • 公司全额承担个税会计分录
  • 5 分钟速通 SVG
  • python中如何创建字典
  • 税务机关代开的增值税发票要加盖发票专用章吗?
  • 公司账户钱取出来税务局会查账吗
  • 收到去年的普通发票
  • 预缴的增值税放哪个科目
  • 本期盈余为负数怎么调整
  • 企业所得税需要计提分录
  • 进项都抵扣完了怎么做账
  • 保险发票入账
  • 实际成本大于预计总成本
  • 选择业务组合的原则是什么
  • sql server自动生成语句
  • MYSQL数据库原理及应用
  • linux系统ln命令
  • win7系统桌面图标变大了怎样恢复
  • windows8.1默认壁纸
  • 不用第三方软件获取鼠标坐标
  • unix网络命令
  • cocos2dx + android 如何添加百度插屏广告
  • cocos2d教程
  • cocos2dx 2.2.2
  • centos上安装邮件服务器
  • JavaScript bold方法入门实例(把指定文字显示为粗体)
  • js实现网页收藏的方法
  • js函数详解
  • kmp算法理解
  • 电子发票和普通发票哪个好
  • 建筑行业增值税税收优惠政策
  • 国家税务总局公务员招录公告
  • 河北国家税务局官网站
  • 无锡税务局稽查一分局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设