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

  • 小红书top榜单在哪(小红书排名第一)

    小红书top榜单在哪(小红书排名第一)

  • 怎么查看qq共同好友(怎么查看QQ共同群聊)

    怎么查看qq共同好友(怎么查看QQ共同群聊)

  • vivo隐藏软件怎么弄(vivo隐藏软件怎么显示出来)

    vivo隐藏软件怎么弄(vivo隐藏软件怎么显示出来)

  • 拼多多拼小圈自动加了好友(拼多多拼小圈自己删除了别人还能看见吗)

    拼多多拼小圈自动加了好友(拼多多拼小圈自己删除了别人还能看见吗)

  • 华为p30和p40区别(华为p30与p40区别)

    华为p30和p40区别(华为p30与p40区别)

  • 联想笔记本保修期是多久(联想笔记本保修范围)

    联想笔记本保修期是多久(联想笔记本保修范围)

  • 微星主板检测不到m2(微星主板检测不到固态硬盘)

    微星主板检测不到m2(微星主板检测不到固态硬盘)

  • 抖音自动退出怎么回事(抖音会自动退出是怎么回事)

    抖音自动退出怎么回事(抖音会自动退出是怎么回事)

  • 华为手机微信夜间模式在哪(华为手机微信夜晚不提醒)

    华为手机微信夜间模式在哪(华为手机微信夜晚不提醒)

  • 定时闹钟怎么设置(定时闹钟怎么调声音)

    定时闹钟怎么设置(定时闹钟怎么调声音)

  • 无线键盘是蓝牙的吗(无线键盘是蓝牙的好还是接收器的好)

    无线键盘是蓝牙的吗(无线键盘是蓝牙的好还是接收器的好)

  • mac有office2010版吗(office2010mac版本)

    mac有office2010版吗(office2010mac版本)

  • 苹果7好久到中国上市的(苹果七多久上市时间)

    苹果7好久到中国上市的(苹果七多久上市时间)

  • 荣耀20青春版怎么拦截骚扰电话(荣耀20青春版怎么关闭hd)

    荣耀20青春版怎么拦截骚扰电话(荣耀20青春版怎么关闭hd)

  • 三星W20 5G手机屏幕多大(三星w2020手机屏多少钱)

    三星W20 5G手机屏幕多大(三星w2020手机屏多少钱)

  • 滴滴如何修改行程目的地(滴滴如何修改行程单)

    滴滴如何修改行程目的地(滴滴如何修改行程单)

  • oppoace支持光学防抖吗(oppoace几倍光学变焦)

    oppoace支持光学防抖吗(oppoace几倍光学变焦)

  • 华为nova5i呼吸灯怎么设置(华为nova5i呼吸灯在哪里设置)

    华为nova5i呼吸灯怎么设置(华为nova5i呼吸灯在哪里设置)

  • cad怎么渲染(cad怎么渲染颜色)

    cad怎么渲染(cad怎么渲染颜色)

  • 安卓勿扰模式怎么取消(安卓勿扰模式怎么开)

    安卓勿扰模式怎么取消(安卓勿扰模式怎么开)

  • ppt图片上的字怎么去掉(PPT图片上的字怎么放大)

    ppt图片上的字怎么去掉(PPT图片上的字怎么放大)

  • 肯德基优惠券怎么用(肯德基优惠券怎么退款)

    肯德基优惠券怎么用(肯德基优惠券怎么退款)

  • 菜鸟驿站如何盈利(菜鸟驿站收益如何)

    菜鸟驿站如何盈利(菜鸟驿站收益如何)

  • 抖音短视频怎么添加音乐(抖音短视频怎么带货)

    抖音短视频怎么添加音乐(抖音短视频怎么带货)

  • win7系统便签删除确认提示框不见的解决方法(windows7便签删除了怎么恢复)

    win7系统便签删除确认提示框不见的解决方法(windows7便签删除了怎么恢复)

  • 个人生产经营所得税怎么计算
  • 小规模纳税人起征点和免征额
  • 一般纳税人劳务费税率是多少
  • 培训机构财务怎么做账
  • 关税计入存货成本分录
  • 加油票抬头开错可以更换吗
  • 发票密码区超出可以用吗
  • 新会计准则开办费分摊
  • 民间非营利性组织收到个税手续费返还
  • 房产税房产原值包括地价吗
  • 发票没有认证怎么报销
  • 存货取得的分录
  • 车辆购置税发票电子版怎么查
  • 公司的钱转到个人账户用途写什么
  • 售后回租是否确认收入
  • 滞留票的进项税能抵扣吗
  • 待认证税额是几级科目
  • 工程款税款税率
  • 资金账簿印花税滞纳金怎么算
  • 购设备发票只开来一部分怎么入账?
  • 采用简易计税方法
  • 保险付款后几天给发票保单
  • 残疾人保障金怎么做账
  • 汇算清缴是什么时间
  • urlerror什么意思
  • 银行退回手续费的账务处理
  • 圣米歇尔山 (© Leroy Francis/Getty Images)
  • 企业扣除内容有哪些
  • php bcsub
  • mac怎么保存
  • 未分配收益余额在哪方
  • 企业确认坏账损失时的会计分录为
  • 视同销售计税价格如何确定
  • PHP:imagecolorstotal()的用法_GD库图像处理函数
  • 如何理解土地使用制度
  • 怎么配置opencv
  • react.strictmode
  • html做超链接
  • vue过滤器可以异步吗
  • js遇到的问题
  • 累计折旧累计摊销属于现金流吗
  • 积分换购活动
  • 闭包怎么求
  • 存货资产减值损失借贷方向
  • 利润表利息费用怎么填
  • 市政道路基础设施
  • 库存股处理方法有哪些
  • 申报前的增值税怎么算
  • 软件产品销售合同范本
  • 调整事宜
  • 归还银行的贷款会计分录
  • 退货回去需要把原包装保留吗
  • 内部使用的收据可以做原始凭证吗
  • 销售费用和管理费用的税前扣除
  • 小规模纳税人发票可以抵扣吗
  • 航天信息开票软件客服
  • 对公支付宝可以转个人银行卡吗
  • Linux下安装MySQL5.7.19问题小结
  • mysql在cmd命令操作
  • win7系统快捷键关机
  • windows iis配置
  • Windows Server 2008下共享资源访问走捷径
  • linux系统的安装与配置
  • centos failed to start login service
  • solaris更改文件权限
  • xp简单实用的网络连接
  • windows8怎么关闭广告弹窗
  • WIN XP下VMware Tools(虚拟机)安装的详细方法(图文教程)
  • centos 删除恢复
  • windows10x预览版
  • 在linux系统中查看文件的内容命令
  • linux查看所有硬件信息命令
  • win8 metro启动界面
  • mac nums
  • cocos2dx 教程
  • Metaio SDK 6.0.2自带Example自己实现(三)
  • js怎么理解
  • scp 将数据从一台linux服务器复制到另一台linux服务器
  • shell脚本 su
  • 如何查询契税是否逾期
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设