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

  • 截屏电脑按键(截屏电脑按键win11)

    截屏电脑按键(截屏电脑按键win11)

  • iphone13摄像头像素(iphone13摄像头像素为什么不提高)

    iphone13摄像头像素(iphone13摄像头像素为什么不提高)

  • 苹果手机用流量下载软件该怎么设置(苹果手机用流量打王者为什么会很卡)

    苹果手机用流量下载软件该怎么设置(苹果手机用流量打王者为什么会很卡)

  • 小米手机手机键盘缩小了,怎么调回原来的(小米手机键失灵怎么办)

    小米手机手机键盘缩小了,怎么调回原来的(小米手机键失灵怎么办)

  • 苹果11有闪屏现象(苹果手机11闪屏)

    苹果11有闪屏现象(苹果手机11闪屏)

  • 华为手机屏幕下面返回怎么显示出来(华为手机屏幕下面有个X号)

    华为手机屏幕下面返回怎么显示出来(华为手机屏幕下面有个X号)

  • 拼多多举报评价是什么意思(拼多多举报评价会怎么样?)

    拼多多举报评价是什么意思(拼多多举报评价会怎么样?)

  • 淘宝商家一直不发货会什么结果(淘宝商家一直不发货,客服一直敷衍,但我不想退款)

    淘宝商家一直不发货会什么结果(淘宝商家一直不发货,客服一直敷衍,但我不想退款)

  • 主板好坏的区别在哪(主机主板好坏有什么区别)

    主板好坏的区别在哪(主机主板好坏有什么区别)

  • wps段前设置了没变化(wps设置了段前间距可是没有改变)

    wps段前设置了没变化(wps设置了段前间距可是没有改变)

  • qq密保手机号怎么解除(qq密保手机号怎么查看)

    qq密保手机号怎么解除(qq密保手机号怎么查看)

  • qq群相册谁都能删除吗(qq群相册是群内所有人都能看到吗)

    qq群相册谁都能删除吗(qq群相册是群内所有人都能看到吗)

  • 英文摘要标红了怎么改(为什么英文摘要会标红)

    英文摘要标红了怎么改(为什么英文摘要会标红)

  • 为什么二眼插座插不进去(为什么二眼插座不亮)

    为什么二眼插座插不进去(为什么二眼插座不亮)

  • ipad可以当家教机吗(平板电脑能做家教机吗)

    ipad可以当家教机吗(平板电脑能做家教机吗)

  • 为什么西瓜视频打不开了(为什么西瓜视频不能看了)

    为什么西瓜视频打不开了(为什么西瓜视频不能看了)

  • 电脑屏幕不亮,显示屏指示灯在闪(电脑屏幕不亮键盘不亮是怎么回事)

    电脑屏幕不亮,显示屏指示灯在闪(电脑屏幕不亮键盘不亮是怎么回事)

  • vivo手机开手电筒的方法(vivo手机开手电筒费电吗)

    vivo手机开手电筒的方法(vivo手机开手电筒费电吗)

  • 微信运动35000步有多远(微信步数36000)

    微信运动35000步有多远(微信步数36000)

  • 苹果怎么用微信充抖币(苹果怎么用微信支付游戏)

    苹果怎么用微信充抖币(苹果怎么用微信支付游戏)

  • 怎么关闭对方视频彩铃(怎么关闭对方视频背景音乐)

    怎么关闭对方视频彩铃(怎么关闭对方视频背景音乐)

  • 拼多多未发货怎么退款(拼多多未发货怎么确认收货)

    拼多多未发货怎么退款(拼多多未发货怎么确认收货)

  • 怎么修改QQ空间发过的说说(怎么修改QQ空间可见范围)

    怎么修改QQ空间发过的说说(怎么修改QQ空间可见范围)

  • 快应用服务框架可以删除吗(如何禁用快应用服务框架)

    快应用服务框架可以删除吗(如何禁用快应用服务框架)

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

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

  • 最薄的电视机是什么(最薄的电视机是多厚)

    最薄的电视机是什么(最薄的电视机是多厚)

  • vue3 Element Plus按钮点击之后颜色不会还原的解决方案(element ui vue 3)

    vue3 Element Plus按钮点击之后颜色不会还原的解决方案(element ui vue 3)

  • 个人所得税速算扣除数表
  • 企业如何进行纳税申报
  • 一般纳税人资格证明在哪里查询
  • 契税是什么税,怎么算的
  • 金税四期怎么监控银行流水
  • 原材料加工成产品的会计分录
  • 需要安装的固定资产入账价值包括增值税吗
  • 农业生产成本二级科目有福利费支出吗
  • 建筑行业预缴增值税可以用进项抵缴吗
  • 记账软件收费吗
  • 支付的保证金
  • 财政补贴金额
  • 购进商品交印花税
  • 高新企业季度企业所得税预征税率
  • 房地产公司苗木账务处理
  • 简易分包抵减的增值税应纳税额怎么做会计分录?
  • 加工承揽合同印花税谁交
  • 企业所得税退税的会计分录怎么做
  • 小规模纳税人公司注销流程及费用
  • 个税由企业承担怎么入账
  • 销售新的固定资产怎么算
  • 最新契税优惠政策公告财政部
  • 房产税的改革方向
  • 一般纳税人企业所得税计算公式
  • 个税申报系统操作流程app
  • 什么凭证需要审计报告
  • 失业保险费退还计入什么科目
  • 无票收入报税后,后期又开票出去怎么处理?
  • 商品入库没有收到发票
  • linux怎么添加命令
  • linux命令df -h结果详解
  • 禁用的网络在哪里开启
  • mac如何修改
  • 工程结算的编制方法
  • 分批次付款
  • 小型微利企业减免所得税计算公式
  • elementui表格自定义排序
  • 事业结余是事业单位当年全部收支相抵后的余额
  • 利息支出是利息费用嘛
  • 关于酒店采购
  • 印花税申报未扣款在哪里查询
  • 企业的对公账户怎么办理
  • 注解注入
  • 给国外公司提供服务需要交哪些税
  • 基于法律行为的物权变动模式包括
  • 折旧费和折旧额的区别
  • 只有劳务报酬 能否扣5000
  • 处置废品收入税率
  • 预收和预付科目一样吗
  • 外币报表折算差额可以转损益吗
  • 发票隔月可以重开吗
  • 增值税税率调整后,合同价应该调整吗
  • 股权转让的会计资料归谁所有
  • 固定资产清理不及时
  • 社保退回的钱怎么做会计分录
  • 损益明细表计提企业所得税
  • 缴纳个人社保在哪里查询
  • sql server 修改
  • mysql命令行导出表结构
  • mysql 复制表结构并把满足条件的数据添加到新表
  • win7操作系统在哪儿卖
  • windows正版光盘
  • wmpdmc.exe是什么意思
  • linux下使用lftp的小结(远程服务器备份)
  • macbookpro如何开启查找我的mac
  • centos elk
  • nclaunch.exe - nclaunch进程有什么用 是什么意思
  • win7 media center
  • win8应用商店下载
  • win7怎么调图片大小
  • ssh encountered 1 errors during the transfer错误3种解决方法
  • eclipse的android配置
  • jquery mobile ui
  • andriod 控件
  • ssh自动输入密码登录
  • 在指定目录查找的文件
  • jquery轮播图自动播放
  • 简单的移动端项目
  • 交通费用包括
  • 股权转让所得怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设