复杂度高的原因:SVM参数的优化方法是转为对偶问题后再使用SMO算法,最坏的情况下必须计算n*n次,不适合用大规模数据集进行分类。 在svm中使用核技术时,像RBF那样特征上升到无限维,计算量也很大。补充:LR比较简单,适用于大规模的线性分类。 SVM为高维特征的分类和回归问题
训练SVM的最小时间复杂度为o(n2 ) o ) n^2) o ) n2 ),SVM对小样本的优秀能力是毋庸置疑的。 SVM的优化目标是结构化风险最小,具有较好的泛化能力,因此具有较好的小样本高维特征。 可能不太适合大样本,一是如上所述很复杂,二是样本足够多时,支撑向量基本固定,许多不重要样本的增加将无法提高性能。
在SVM中,求解析解的时间复杂度在最差的情况下达到o(nsv3 ) o ) nsv3 ) o ) nsv3 )。 其中,nsvnsvnsvnsv是支持向量的个数,虽然没有一定的比例,但是支持向量的个数的多少也与训练集的大小有关
如何解决复杂度高的问题呢?方差,对不同的样本对进行核距离计算,可分为不同的机器。 据说PEGASOS是分布式SVM的训练方法,需要学习。svm-light和libsvm
但实际上这些效果都不太好