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

  • 怎样做好分类信息网站推广(如何做好分类)

    怎样做好分类信息网站推广(如何做好分类)

  • opporeno7pro屏幕多大(opporeno7pro屏幕多少厘米)

    opporeno7pro屏幕多大(opporeno7pro屏幕多少厘米)

  • 借呗如何清除借款及还款记录(借呗如何清除借款及还款记录 永远)

    借呗如何清除借款及还款记录(借呗如何清除借款及还款记录 永远)

  • 拼多多怎么删除评论(拼多多怎么删除订单记录)

    拼多多怎么删除评论(拼多多怎么删除订单记录)

  • 苹果11pro和11promax区别(iphone11 和 11pro)

    苹果11pro和11promax区别(iphone11 和 11pro)

  • dvd rw 能刻录吗(dvdrw能刻录cd吗)

    dvd rw 能刻录吗(dvdrw能刻录cd吗)

  • 手机没贴膜有划痕去除(手机没贴膜有划痕了怎么办oppo)

    手机没贴膜有划痕去除(手机没贴膜有划痕了怎么办oppo)

  • 钉钉极速打卡和手动打卡的区别(钉钉极速打卡和手动打卡得性质一样?)

    钉钉极速打卡和手动打卡的区别(钉钉极速打卡和手动打卡得性质一样?)

  • ipad pencil充电多久(apple pencil用ipad充电多久能充满)

    ipad pencil充电多久(apple pencil用ipad充电多久能充满)

  • 微信群退出仍收到消息(微信群退出了为什么还是收到信息)

    微信群退出仍收到消息(微信群退出了为什么还是收到信息)

  • iphone11pro max充电时间(iphone11pro max充电发热)

    iphone11pro max充电时间(iphone11pro max充电发热)

  • 全民k歌歌房美颜在哪(全民k歌歌房美颜怎么不能用了)

    全民k歌歌房美颜在哪(全民k歌歌房美颜怎么不能用了)

  • 华为原装屏幕和非原装区别(华为原装屏幕和特惠屏)

    华为原装屏幕和非原装区别(华为原装屏幕和特惠屏)

  • 抖音怎么开启同城定位(抖音怎么开启同城直播)

    抖音怎么开启同城定位(抖音怎么开启同城直播)

  • 微云超会有什么用(微云超级会员是干什么用的)

    微云超会有什么用(微云超级会员是干什么用的)

  • hd显卡是独立显卡吗(hd的显卡)

    hd显卡是独立显卡吗(hd的显卡)

  • 怎么样恢复电池健康度(vivo怎么恢复电池)

    怎么样恢复电池健康度(vivo怎么恢复电池)

  • 矢量图怎么做(logo矢量图怎么做)

    矢量图怎么做(logo矢量图怎么做)

  • 怎么开启设备信息权限(设备信息权限在哪里设置)

    怎么开启设备信息权限(设备信息权限在哪里设置)

  • x27摄像头怎么升(vivox27摄像头怎么升降)

    x27摄像头怎么升(vivox27摄像头怎么升降)

  • 微信转账跟红包一样吗(微信转账跟红包都是24小时的吗)

    微信转账跟红包一样吗(微信转账跟红包都是24小时的吗)

  • 快手发的作品为什么别人看不到(快手发的作品为什么会放大)

    快手发的作品为什么别人看不到(快手发的作品为什么会放大)

  • a9上市时间(海信a9上市时间)

    a9上市时间(海信a9上市时间)

  • 苹果蓝牙耳机一代和二代有什么区别(苹果蓝牙耳机一个能连上一个连不上)

    苹果蓝牙耳机一代和二代有什么区别(苹果蓝牙耳机一个能连上一个连不上)

  • 唯品会如何评价商品(唯品会如何评价商家)

    唯品会如何评价商品(唯品会如何评价商家)

  • 电脑经常重新启动原因(电脑经常重新启动是什么原因)

    电脑经常重新启动原因(电脑经常重新启动是什么原因)

  • 如何导入并使用插件市场里的插件(如何导入并使用数据库)

    如何导入并使用插件市场里的插件(如何导入并使用数据库)

  • 田里的拖拉机和装载着卷心菜的拖车,奥地利圣珀尔滕 (© Stephan Zirwes/Getty Images)(拖拉机拖拉机耕地)

    田里的拖拉机和装载着卷心菜的拖车,奥地利圣珀尔滕 (© Stephan Zirwes/Getty Images)(拖拉机拖拉机耕地)

  • 房地产企业的样板房费用计入哪个科目
  • 进项税额转出的情况
  • 按份共同保证和连带共同保证
  • 含税金额和开票金额
  • 没有上市的公司怎么看财务报表
  • 5附加税政策优惠退税需要哪些资料
  • 增值税附加税由买方承担如何计算
  • 保险公司代扣代缴车船税完税证明
  • 出口退税会计处理全部流程
  • 承兑到期没兑现怎么处理
  • 出售股份的印花税怎么做分录?
  • 企业缴纳社保费一个月多少钱
  • 单位自有车辆
  • 消费税组成计税价
  • 零申报的企业
  • 减税降费政策六税
  • 2021年个体工商户的税率是多少
  • 餐饮发票可以抵扣成本吗
  • 企业购入土地如何处理
  • 海外代付属于外债吗
  • 钱打到对公账户
  • 固定资产报废的净损失计入哪里
  • 五险一金的会计分录怎么写
  • 手动设定ip地址后连不上网
  • 华为手机定位另外一个华为手机怎么办
  • js监听地址栏
  • 利息如何做会计分录
  • window10设置wifi热点
  • macOSCatalina10.15.5正式版值得升级吗 macOSCatalina10.15.5更新了什么
  • 文件pages
  • 房地产企业销售无产权车位
  • window10电源选项
  • 付的押金冲抵部分怎么算
  • 计划成本法和实际成本法区别
  • linux抓包 udp
  • xwizard.exe是什么
  • 回迁房?
  • 贷记卡怎么还利息
  • vue如何配置环境变量
  • php魔术函数
  • 火车票可以直接去火车站买吗
  • chrome浏览器清除数据
  • 小规模拍卖公司怎么开票
  • 达摩院 2021
  • 傅里叶级数狄利克雷判别法
  • 投资公司如何注册勘察设计工程师证书
  • 房地产公司土地计入什么科目
  • mongodb应用实例
  • 金税盘登录密码和口令从哪查
  • 一般纳税人必须有办公地点吗
  • sql2005怎么执行语句
  • 增值税税率为零的有哪些项目
  • 小规模第一次申报流程
  • 上年度亏损,本年要交所得税吗
  • 营业外收支计算公式
  • 营改增后建筑企业税负
  • 社保补差什么流程
  • 房地产开发企业建造的商品房,在出售前
  • 仓库员工工资
  • 装修公司购买材料,工程施工账务处理会计分录
  • 发票超过密码区一点点
  • 系统多交税款放在哪里
  • mysql安装出问题
  • 面向小微企业
  • 看linux系统
  • win8.1流畅吗
  • windows查询
  • 苹果mac系统休眠怎么解除
  • win7电脑dpi怎么设置800
  • win8.1语言设置
  • win10正式版发布时间
  • 自定义标签的开发的3个步骤?
  • 使用粗盐热敷十大危害
  • 详解HTTPS 的原理和 NodeJS 的实现
  • android 进程通信
  • 推荐javascript教程
  • js合并两个数组并排序
  • jquery点击方法
  • 辽宁省国家税务局电话
  • 湖南省国家税务局历任局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设