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

  • vivo手机怎么关闭防沉迷功能(vivo手机怎么关闭快应用)

    vivo手机怎么关闭防沉迷功能(vivo手机怎么关闭快应用)

  • elz-an00是荣耀什么型号(els-an00是华为什么型号)

    elz-an00是荣耀什么型号(els-an00是华为什么型号)

  • 闲鱼可以更改收款账户吗(闲鱼可以改收款方式吗)

    闲鱼可以更改收款账户吗(闲鱼可以改收款方式吗)

  • 抖音关注的好友不见了(怎样才能看到对方的抖音关注的好友)

    抖音关注的好友不见了(怎样才能看到对方的抖音关注的好友)

  • 在华为手机上怎么隐藏应用(在华为手机上怎么注销小米账号)

    在华为手机上怎么隐藏应用(在华为手机上怎么注销小米账号)

  • 华为nova7如何分屏(华为nova7如何分屏操作视频)

    华为nova7如何分屏(华为nova7如何分屏操作视频)

  • 苹果11能更新13.4.1吗(苹果11能更新13ios16. 3.1)

    苹果11能更新13.4.1吗(苹果11能更新13ios16. 3.1)

  • 2个手机可以同时登录一个微信号吗(两个手机可以)

    2个手机可以同时登录一个微信号吗(两个手机可以)

  • 360sd是什么文件夹(360wd是什么文件夹)

    360sd是什么文件夹(360wd是什么文件夹)

  • 苹果手机顶部时间显示消失怎么办(苹果手机顶部时间不见了)

    苹果手机顶部时间显示消失怎么办(苹果手机顶部时间不见了)

  • oppo手机开不机怎么办(OPPO手机开不机怎么回事)

    oppo手机开不机怎么办(OPPO手机开不机怎么回事)

  • 怎么判断抖音被降权(怎么判断抖音被拉黑还是对你不可见)

    怎么判断抖音被降权(怎么判断抖音被拉黑还是对你不可见)

  • 在word中页面设置不能设置(在word中页面设置)

    在word中页面设置不能设置(在word中页面设置)

  • 三年前的微信聊天记录能恢复吗(三年前的微信聊天记录能做证据吗)

    三年前的微信聊天记录能恢复吗(三年前的微信聊天记录能做证据吗)

  • 美团评论第二天才能看到吗(美团评论第二天才能看到怎么开启歇业保护)

    美团评论第二天才能看到吗(美团评论第二天才能看到怎么开启歇业保护)

  • 什么是场景描写(什么是场景描写的定义)

    什么是场景描写(什么是场景描写的定义)

  • 华为智能遥控不见了(华为智能遥控不小心删了怎么找回)

    华为智能遥控不见了(华为智能遥控不小心删了怎么找回)

  • qq3d厘米秀什么时候上线(qq3d厘米秀怎么玩)

    qq3d厘米秀什么时候上线(qq3d厘米秀怎么玩)

  • vivoz3支持红外嘛(vivoz3支持红外遥控吗)

    vivoz3支持红外嘛(vivoz3支持红外遥控吗)

  • fealme是什么手机(fealme是什么手机怎么格式化)

    fealme是什么手机(fealme是什么手机怎么格式化)

  • qq音乐最近常听怎么删除(qq音乐最近常听一直不变)

    qq音乐最近常听怎么删除(qq音乐最近常听一直不变)

  • p30pro上市时间(华为p30pro参数与价格)

    p30pro上市时间(华为p30pro参数与价格)

  • ppt删除快捷键(ppt返回键在哪)

    ppt删除快捷键(ppt返回键在哪)

  • vivo手机相册最近删除怎么关闭(vivo手机相册最近删除在哪里找)

    vivo手机相册最近删除怎么关闭(vivo手机相册最近删除在哪里找)

  • pruttct.exe - pruttct是什么进程 有什么用

    pruttct.exe - pruttct是什么进程 有什么用

  • cocos入门3:脚本编程(cocos creator脚本开发指南)

    cocos入门3:脚本编程(cocos creator脚本开发指南)

  • xargs命令  给其他命令传参数的过滤器(xi:xtreg命令)

    xargs命令 给其他命令传参数的过滤器(xi:xtreg命令)

  • 小规模纳税人开专票税率是1%还是3%
  • 什么是抄税清卡业务
  • 税务免抵调库是什么意思
  • 集团内部资产无偿划转是否纳税增值税
  • 开发票系统税号0和o怎么区别
  • 运输发票抵扣税怎么算
  • 汽车开公司发票可以抵税吗?
  • 股权稀释需要交税吗
  • 原材料的实际成本是什么
  • 关联企业无偿使用土地
  • 个人销售货物缴纳增值税吗
  • 税务是如何处理违章的
  • 涉税软件技术维护费可以全额抵扣吗?
  • 企业向职工发放的奖金属于
  • 医保断缴多久后余额不能用
  • 未弥补完亏损可以计提盈余公积
  • 收到收入怎么做分录
  • 多交的增值税附加税怎么做账
  • win8系统怎么连接无线
  • tplink无线网卡驱动802.11n
  • win10无法登录微信
  • 金融资产有哪三类代码
  • 费用报销操作流程
  • 数字证书认证系统
  • 车船使用税凭证还要过户吗怎么办
  • 采购原材料合理化建议
  • php+mysql+apache
  • cpu版本的pytorch可以运行LSgan嘛
  • 销售折让双方会计分录
  • 营业税改增值税的过程
  • 购买房地产和买房一样吗
  • 一年一度的施瓦本哈尔圣诞市集,德国巴登-符腾堡州 (© sack/Getty Images Plus)
  • 小规模企业需要交几个点
  • php常用字符串
  • php日期计算器
  • php关闭错误报告
  • 减免增值税附加税也一起减免吗
  • 一文详解卡尔曼人物形象
  • continue命令必须与locate
  • windows where命令
  • 普通发票收款人填管理员可以吗
  • 汽车以旧换新怎么操作
  • 企业转让应收账款分录
  • 一般人转小规模政策到什么时候
  • 未开票收入增值税申报
  • mongodb4.0安装教程
  • sqlserver sid
  • 织梦官网
  • 小微企业所得税优惠政策最新2023
  • 新公司成立后税务方面有哪些流程2023
  • sql server字符连接
  • 一般计税预缴增值税2%怎么算
  • 饭店开业多久可以正常
  • 印花税如何计算缴纳
  • 税收滞纳金什么意思
  • 年底本年利润结转错了怎么调
  • 银行承兑汇票进行贴现的会计分录
  • 出口退税哪些商品不能退
  • 发票是中国独有的吗
  • 建筑业营改增后,人工费不存在可抵扣
  • 外埠存款账务处理方法
  • 中小企业筹资渠道和筹资方式
  • win8支持固态硬盘吗
  • centos7配置免密登录
  • win10如何关闭windows
  • win10系统语言包安装方法
  • drawand paint
  • linux shell执行命令
  • 解决胃胀气最快方法
  • jquery选择器的使用
  • string剪切
  • android list
  • 深入理解计算机系统 电子书
  • 编写shell脚本,实现备份文件:每天18:00归档
  • android 科大讯飞语音引擎 调用无响应
  • 怎么在手机开数据那里看用了多少流量
  • 事务所是干什么的会计
  • 重庆市国家税务局电子税务局官网
  • 申请电子发票需要盖章吗
  • 结售汇选择汇还是钞好
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设