SVM算法复杂度高的原因

复杂度高的原因:

  1. SVM参数优化方法是先转为对偶问题再使用SMO算法,最坏情况下要计算n*n次,并不适合在大规模数据集上做分类。
  2. svm使用核技巧时,如RBF,特征会升高至无限维,计算量也很大。

补充:

LR较为简单,可以适用于大规模线性分类。SVM可以有效解决高维特征的分类和回归问题

训练SVM的最小时间复杂度为 O ( n 2 ) O(n^2) O(n2),SVM对小样本的寻优能力是非常好的,无可置疑。SVM的优化目标是结构化风险最小,有优秀的泛化能力,所以在小样本高维特征上表现很好。对大样本可能不太适合,一是上面提到的复杂,二是样本足够多时,支持向量基本固定了,许多不重要样本的增加不能提高性能了。

对SVM来说,求得解析解的时间复杂度最坏可以达到 O ( N s v 3 ) O(Nsv3) O(Nsv3),其中 N s v Nsv Nsv是支持向量的个数,而虽然没有固定的比例,但支持向量的个数多少也和训练集的大小有关

如何解决复杂度高的问题呢?

  1. 分布式,对不同样本对做核距离计算,可以分开放在不同机器。有人提到PEGASOS就是一种分布式的SVM的训练方法,待学习。
  2. svm-lightlibsvm
    但实际中这些效果并不太好
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值