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

  • 苹果手机图片彻底删除了怎么恢复(苹果手机图片彻底删除了免费恢复软件)

    苹果手机图片彻底删除了怎么恢复(苹果手机图片彻底删除了免费恢复软件)

  • 投影仪怎么使用(投影仪怎么连接手机)

    投影仪怎么使用(投影仪怎么连接手机)

  • 抖音黑白视频怎么弄的(抖音黑白视频怎么变成彩色)

    抖音黑白视频怎么弄的(抖音黑白视频怎么变成彩色)

  • airpods3代使用方法(airpods3代使用方法和技巧)

    airpods3代使用方法(airpods3代使用方法和技巧)

  • ai放大缩小的快捷键(ai放大缩小的快捷键 不能用)

    ai放大缩小的快捷键(ai放大缩小的快捷键 不能用)

  • 苹果手机突然不震动了怎么回事(苹果手机突然不亮了怎么回事)

    苹果手机突然不震动了怎么回事(苹果手机突然不亮了怎么回事)

  • 平板和ipad一样吗(平板和ipad是一样的吗)

    平板和ipad一样吗(平板和ipad是一样的吗)

  • 户外直播流量解决办法(2019户外直播流量解决办法)

    户外直播流量解决办法(2019户外直播流量解决办法)

  • 怎么看手机支持什么运营商(怎么看手机支持不支持5g网络)

    怎么看手机支持什么运营商(怎么看手机支持不支持5g网络)

  • 微信夜间模式在哪里关闭(微信夜间模式在哪里设置vivo)

    微信夜间模式在哪里关闭(微信夜间模式在哪里设置vivo)

  • 红米k20尺寸(红米k20尺寸图)

    红米k20尺寸(红米k20尺寸图)

  • vooc闪充别的数据线可以用吗(vooc闪充为什么变成普通的)

    vooc闪充别的数据线可以用吗(vooc闪充为什么变成普通的)

  • 咸鱼怎么开通买家保障(咸鱼卖东西怎么开通花呗)

    咸鱼怎么开通买家保障(咸鱼卖东西怎么开通花呗)

  • vue怎样加动态字幕(vue动态添加dom)

    vue怎样加动态字幕(vue动态添加dom)

  • 小米手环4有什么功能(小米手环4有什么功能能连接手机来电提醒吗)

    小米手环4有什么功能(小米手环4有什么功能能连接手机来电提醒吗)

  • vivoy93怎么恢复出厂设置(vivoy93怎么恢复出厂设置忘记账号密码)

    vivoy93怎么恢复出厂设置(vivoy93怎么恢复出厂设置忘记账号密码)

  • 小米9支持无线反向充电吗(小米9支持无线充电功能吗)

    小米9支持无线反向充电吗(小米9支持无线充电功能吗)

  • 运行日志可以删除吗(运行日志是什么能删吗)

    运行日志可以删除吗(运行日志是什么能删吗)

  • 为什么在appstore下载不了探探(为什么在appstore找不到软件)

    为什么在appstore下载不了探探(为什么在appstore找不到软件)

  • 苹果手机电池容量多少正常(苹果手机电池容量在哪里看)

    苹果手机电池容量多少正常(苹果手机电池容量在哪里看)

  • 华为nova5pro耳机插哪(华为nova5pro耳机模式怎么开启)

    华为nova5pro耳机插哪(华为nova5pro耳机模式怎么开启)

  • 酷安下载的安装包在哪(酷安下载的安装包怎么安装)

    酷安下载的安装包在哪(酷安下载的安装包怎么安装)

  • 小米8se怎么设置铃声(小米8se怎么设置门禁卡功能)

    小米8se怎么设置铃声(小米8se怎么设置门禁卡功能)

  • 递延所得税资产借贷方向
  • 不能抵扣的进项抵扣了
  • 应付税费重分类如何做会计分录?
  • 公司法人和经理承担责任一样吗
  • 计提个人所得税计入什么科目
  • 直接支付和授权支付方式的区别与联系
  • 进口增值税可以抵税吗
  • 固定资产残值怎么处理什么时候处理
  • 定期定额纳税申报表应税项应填哪个数
  • 服务行业成本费用问题与对策
  • 除了缴纳的税金还有什么
  • 固定资产年数总额法
  • 一般纳税人应交增值税明细科目设置
  • 收到国外提供免费样品怎么入账?
  • 银行变更印鉴多久生效
  • 金蝶固定资产管理
  • 房地产经纪公司经营范围
  • 农产品加计扣除政策2023最新
  • 怎么查公司账户是哪个银行的
  • 居间费税收是多少
  • 公司员工餐费会计分录
  • 农贸市场收取管理费
  • 申报个税按计提工资还是实际发放
  • 专家费1000元个人所得税到底是税前还是税后
  • 公司固定资产一般谁负责
  • 企业处置固定资产怎么纳税
  • mac 磁盘未能分区
  • 利润分配属于什么活动
  • 银行存款收款凭证属于什么凭证
  • 公司流水账是会计做吗
  • PHP:mb_strtoupper()的用法_mbstring函数
  • node.js和npm
  • win11安卓子系统在哪打开
  • 一个完整的php文件有哪些元素组成
  • yolov5 c
  • 公司分立土地涉税问题
  • 补缴免抵退
  • 享受所得税优惠情况说明
  • 增值税纳税人的相关规定
  • 前端cli搭建
  • nodejs如何使用
  • css设置3d
  • css选择器详解
  • 代扣代缴应付职工薪酬账务处理
  • 自产产品对外赠送的会计处理方法
  • 固定资产停止使用
  • 关联企业之间业务往来如何定价
  • 织梦网站怎么改logo
  • 马踏棋盘游戏规则
  • 编制科目余额表的方法
  • sql将一个表中的值赋给另一个表
  • 库存现金的账务处理流程
  • 会计手工做账的目的
  • 去年计提的费用今年取得发票 汇算清缴
  • 房地产企业暂估成本所得税汇算
  • 购买生产原料的支出
  • 生产成本和主营业务收入的关系
  • 改制后的企业
  • 商业企业内部物流的主要作用是保证商品的正常销售
  • 新企业如何建帐
  • WINDOWS系统无法正常启动
  • ubuntu20.04 u盘
  • win7 win8.1双系统安装教程
  • win8开始在哪里
  • linux版的oracle
  • 如何在xp系统中调整移动硬盘
  • win7关闭xhci
  • linux检查是否存在vxlan模块
  • win7系统网速太慢怎么办
  • 如何更改win10管理员账户
  • win8开始页面
  • cocos2dx 教程
  • unity shader lod
  • eclipse开发安卓app实例
  • jQuery解析XML 详解及方法总结
  • unity中time.deltatime
  • 电话费的税费计入什么科目
  • 建筑企业所交的税项有多少
  • 北京市房产查询官网
  • 公司处理固定资产汽车怎么交税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设