支持向量机(Support Vector Machine,SVM)算法复杂度详解

关于支持向量机的算法复杂度,因为SVM在训练阶段的算法较为复杂,详细的算法复杂度较为难以推算且众说纷纭,与很多因素相关。但是可以根据相应的数据类型大致推算出SVM的算法复杂度。

参考资料:

Burges C J C . A Tutorial on Support Vector Machines for Pattern Recognition[J]. Data Mining and Knowledge Discovery, 1998, 2(2):121-167.

文献地址:

https://www.researchgate.net/publication/226658534_A_Tutorial_on_Support_Vector_Machines_for_Pattern_Recognition

目录

一、训练阶段的算法复杂度

1.1 算法复杂度

1.2 参考文献

二、测试阶段的算法复杂度

2.1 算法复杂度

2.2 参考文献与推导

三、测试阶段存储量分析

3.1 测试阶段线性SVM存储复杂度


一、训练阶段的算法复杂度

1.1 算法复杂度

训练算法为Bunch-Kaufman算法,算法复杂度为:

其中, 为支持向量的个数, 为输入向量的维度, 为训练样本点的个数。上边界为Upper Bound。当条件介于以上条件之间时,运算复杂度介于以上运算复杂度之间。

1.2 参考文献

详细参见A Tutorial on Support Vector Machines for Pattern Recognition[J] P28

二、测试阶段的算法复杂度

2.1 算法复杂度

SVM在测试阶段的算法复杂度为: ,M为SVM的kernel需要的运算次数,如果RBF核的话并且是点乘的话,M就是

因此对于线性SVM分类器,算法复杂度为

就是支持向量的个数乘以输入向量的维度。

2.2 参考文献与推导

详细参见A Tutorial on Support Vector Machines for Pattern Recognition[J]  P29

原文:

相应的测试阶段的运算公式为:

三、测试阶段存储量分析

注:第三部分未经过详细考证,可能有误,如果有误欢迎及时留言交流。

3.1 测试阶段线性SVM存储复杂度

假定分类数量为,也是支持向量的个数,输入向量维度为

相当于在维度为的高维空间上,存储个高维超平面,用于对每个维度的样本点进行分类。

线性SVM需要存储的参数就是这个高维超平面的参数,共个数字需要存储。

相关内容:

博客文章总目录-邢翔瑞的技术博客

机器学习算法基础问题(一)PCA|SVM|贝叶斯|过拟合

机器学习算法基础问题(二)类别不均|尺寸及感受野|Batch Norm|损失函数

概率相关实际问题汇总及解析

比赛竞猜投注类问题概率模型

王者荣耀中的数学原理及游戏策略(一)防御篇(护甲|魔抗|伤害运算机制)

发布了210 篇原创文章 · 获赞 584 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/weixin_36474809/article/details/103986845