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

原因

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

解决办法

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

  • 30
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值