关于Python Sklearn SVM 为什么运行很慢得到结果的原因

机器学习 专栏收录该内容
0 篇文章 0 订阅

原因

由于SVM是需要不断的寻找可以最优区分开数据之间的超平面直到计算出的结果收敛为止,但由于数据的变化,例如区分高矮的准则是,超过180cm就是高,否则就不是的这种,当你给出身高的数据时,数据间具有明显的线性关系时,在你正确的选择核函数,线性函数时,svm就能很快的找到区分数据收敛的超平面,只需要重复计算几次就收敛。但当碰到需要区分一个人的高矮,而给出的数据是他喜欢玩英雄联盟or吃鸡的数据时,你就很难找出他们的联系,这个时候SVM选择的核函数是线性函数去区分这堆数据时,SVM也会无语,尽管计算了很多次,还是找不出区别,也就是找不到那个收敛的超平面。所以就会发现,有时候尽管很小的数据,SVM也久久算不出结果。

解决办法

第一:因为是反复计算都计算不出那个最优超平面,所以将模型中的参数max_iter设置一下,默认为-1,也就是计算出直到收敛的平面时,改成较小的次数就可以解决。
第二:将核函数改一下,例如线性的改成非线性的,说不定在另外一个层面上可以很好的区分这堆数据。

  • 15
    点赞
  • 0
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值