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

  • 华为p50pro怎么设置指纹解锁(华为p50pro怎么设置24小时)

    华为p50pro怎么设置指纹解锁(华为p50pro怎么设置24小时)

  • 全民k歌私密作品在哪(全民k歌私密作品怎么看)

    全民k歌私密作品在哪(全民k歌私密作品怎么看)

  • 使用微信分身是要用两个手机号码吗(微信分身是登陆两个号还是一个号)

    使用微信分身是要用两个手机号码吗(微信分身是登陆两个号还是一个号)

  • oppo手机上的视频怎么在电视上播放(oppo手机上的视频如何投屏到电视)

    oppo手机上的视频怎么在电视上播放(oppo手机上的视频如何投屏到电视)

  • 电脑锁屏卡住了按什么都没反应(电脑锁屏卡住了进不去桌面)

    电脑锁屏卡住了按什么都没反应(电脑锁屏卡住了进不去桌面)

  • 25帧和30帧的画质区别(25帧和30帧看得出来吗)

    25帧和30帧的画质区别(25帧和30帧看得出来吗)

  • 荣耀手环5不能控制音乐播放(荣耀手环5不能微信支付)

    荣耀手环5不能控制音乐播放(荣耀手环5不能微信支付)

  • 9700f用什么主板(9700f用什么主板合适)

    9700f用什么主板(9700f用什么主板合适)

  • qq被对方屏蔽后是什么状态(qq被对方屏蔽后还能加他好友吗)

    qq被对方屏蔽后是什么状态(qq被对方屏蔽后还能加他好友吗)

  • 荣耀20电源键在哪(荣耀20i电源键失灵)

    荣耀20电源键在哪(荣耀20i电源键失灵)

  • 宽带光猫和路由器的区别(宽带光猫和路由器多少钱)

    宽带光猫和路由器的区别(宽带光猫和路由器多少钱)

  • oppoa8手机什么时候出来的(oppoa8什么时候降价)

    oppoa8手机什么时候出来的(oppoa8什么时候降价)

  • 通过快手号可以找到对方的QQ号或者微信号吗(通过快手号可以查到这个人吗)

    通过快手号可以找到对方的QQ号或者微信号吗(通过快手号可以查到这个人吗)

  • 人工分页符是硬分页符吗(人工分页符会随文章)

    人工分页符是硬分页符吗(人工分页符会随文章)

  • 抖音举报别人知道吗(抖音举报别人别人知道是我举报的吗)

    抖音举报别人知道吗(抖音举报别人别人知道是我举报的吗)

  • 华为p30的手机长宽是(华为p30长屏截图怎么使用)

    华为p30的手机长宽是(华为p30长屏截图怎么使用)

  • 电脑的宽带连接用户名是什么(电脑的宽带连接怎么设置)

    电脑的宽带连接用户名是什么(电脑的宽带连接怎么设置)

  • 快手双击上限是多少(快手双击少怎么办)

    快手双击上限是多少(快手双击少怎么办)

  • ps怎么让文字变成扇形(ps怎么让文字变圆滑)

    ps怎么让文字变成扇形(ps怎么让文字变圆滑)

  • 单反相机与数码相机的区别(单反相机与数码摄像机的区别)

    单反相机与数码相机的区别(单反相机与数码摄像机的区别)

  • wps怎么替换文字(wps怎么替换文字字体不变)

    wps怎么替换文字(wps怎么替换文字字体不变)

  • 微博怎么解除禁言20016(微博怎么解除禁言限制)

    微博怎么解除禁言20016(微博怎么解除禁言限制)

  • 双m2固态能同时用吗(双m2固态硬盘)

    双m2固态能同时用吗(双m2固态硬盘)

  • 火山直播没声音怎么弄(火山直播没声音怎么设置)

    火山直播没声音怎么弄(火山直播没声音怎么设置)

  • 阿卡迪亚国家公园的高丛蓝莓植物,缅因州 (© Danita Delimont/Gallo Images/Getty Images Plus)(阿卡迪亚国家公园景点)

    阿卡迪亚国家公园的高丛蓝莓植物,缅因州 (© Danita Delimont/Gallo Images/Getty Images Plus)(阿卡迪亚国家公园景点)

  • 【Python】Streamlit库学习:一款好用的Web框架(python stream模块)

    【Python】Streamlit库学习:一款好用的Web框架(python stream模块)

  • 协同过滤算法(基于用户的协同过滤算法)

    协同过滤算法(基于用户的协同过滤算法)

  • 差额增税可以抵扣吗
  • 报销单与发票金额不符
  • 利润表里的所得税怎么算
  • 土地闲置费是否可以税前扣除
  • 暂时性差异乘以税率
  • 月末结存材料的实际成本怎么计算
  • 公司年会聚餐的简短讲话
  • 工程结算与工程施工如何结转
  • 小规模纳税人进材料怎么做账
  • 企业进货不收发票怎么做帐?
  • 营业收入包括其收入吗
  • 房地产企业建造的商品楼属于存货对吗
  • 营改增后建筑公司自建行为所得税
  • 非独立核算不用做核算吗
  • 认缴制下股权转让如何不交税
  • 案例分析互联网巨头的战略计划
  • 不能抵扣的进项税额转出会计分录
  • 在建工程完工,并当日签订出租协议的会计分录
  • 开票3个点13个点是什么意思
  • 什么是中型企业?
  • 付工程款现金怎么做凭证?
  • 用友软件报表公式
  • 支付给经销商的装修款怎么入账
  • 进口货物的企业有哪些
  • 费用发票可以不上账吗
  • php 链式调用
  • 劳务报酬怎么做帐
  • 我想看阿尔伯塔
  • 最新大麦抢票脚本
  • 同步和异步的关系
  • 工地临时设施搭设原则是什么?
  • 社保调整基数后 两个月没变化
  • php怎么添加背景图片
  • 语言翻译算法
  • 长期待摊费用的会计分录
  • 专用发票密码区模糊了影响报销吗
  • labelme目标检测
  • python的复制命令
  • 增值税专用发票怎么开
  • mongodb怎么导入文件
  • 长期股权投资大白话解释
  • 其他权益工具投资是什么意思
  • 员工的交通费发票可以报销嘛
  • 研发费用加计扣除的条件
  • 政府会计工资代扣工会会费
  • 厂房装修费用账务处理
  • 企业给予第三方补贴
  • 建筑行业跨期收益怎么算
  • 多余备用金记账会计分录
  • 残疾基金缴纳标准
  • 企业应收账款的事前管理包括
  • 出租房屋的广告怎么写好
  • 利得与损失的四种类型
  • 企业改制后如何管理
  • 固定资产的建造成本怎么计算
  • centos6.2安装
  • sql多级汇总
  • mysql5.0使用教程
  • 管理需要
  • linux urb
  • mac terminal在哪里
  • linux 测试工具
  • 产品密钥需要购买吗
  • win7开机每次都要输入用户名
  • js判断手机号
  • apk防止反编译
  • 批处理/l
  • html初学
  • cocos2dx-js
  • 游戏开发指南笔趣阁
  • 第一次接触怎么形容
  • node.js web
  • nodejs esmodule
  • shell脚本 -ne 0
  • 电子税务局申报密码怎么设置?
  • 粮食的增值税税率怎么算
  • 电信追缴欠费的工作方案有哪些
  • 汽车销售顾问有前途吗
  • 小区配电房移交供电局的依据
  • 福建农村社保一个月可以拿多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设