||
支持向量机器(SVM)精度好,数学概念明了。一个缺点是很难用于大数据,因为:1)计算中核矩阵(kernel matrix)是n x n,n是数据点的量。如果10万个数据点,核矩阵就是100000 x 100000 x 4 = 40GB。如果内存不能放下核矩阵,核矩阵的一部分就要交换到硬盘里(swapping),SVM训练起来就很慢了。2)SVM训练的计算复杂性是O(n2)大规模数据训练起来很慢。我曾经在一个64GB内存八核机器上算过15万点的SVM,training都要花上一天以上。
如今EnsembleSVM可以解决一部分问题。EnsembleSVM的关键是训练p个SVMs,每一个只用n/p的数据点。这样对内存要求不那么高,计算复杂性也变成O(n2/p).
文章【1】表明,EnsembleSVM的训练时间只有普通SVM的1/20 或 1/30,而精度没有改变。
EnsembleSVM也提供了改进SVM精度的途径,比如,1)增加p,2)增加每个SVM的数据点,而不是只局限于n/p;3)研究这p个SVMs的合成方法。
EnsembleSVM如今只能用于分类(classification),还不能用于regression。并且目前只有C++的接口。
【1】Claesen, M., Smet, F. De, Suykens, J. a. K., & Moor, B. De. (2014). EnsembleSVM: A Library for Ensemble Learning Using Support Vector Machines. Journal of Machine Learning Research, 15, 141–145. Retrieved from http://jmlr.org/papers/v15/claesen14a.html
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-6-26 07:50
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社