支持向量机(SVM)是否适合大规模数据？
这已经是九年前的问题了，到现在只有20个回答，最近的也是几年前了。九年前恰好是AlexNet诞生的前夜。注意到这些回答似乎没有人提到Random feature map的进展，补充一下。通过使用RF，核方法可以扩展到大规模数据集上。 原理上，SVM使用非线性特征映射将低维特征映射到高维，，并通过kernel trick直接计算高维特征之间的内积，避免显式计算非线性特征映射，然后在高维特征空间中做线性分类。用 \phi 表示非线性映射，它对应的核函数是k，使得 \left<\phi(x),\phi(y)\right>=k(x,y)。 由于使用数据集的核矩阵（Kernel Matrix）描述样本之间的相似性，矩阵元素的个数随着数据规模增大成平方增长。这样要随着数据规模增大，SVM的计算变得无法处理。  2007年，Ali 等人在 NIPS发表Random Features for Large-Scale Kernel Machines，提出使用随机特征映射的方法处理大规模核函数的方法。其基本思想是，构造一个“随机”映射  z:R^d\to R^D  直接将数据映射到高维空间，使得在这空间上的内积可以近似等于核函数： k(x,y)=\left<\phi(x),\phi(y)\right>\approx\left< z(x),z(y)\right> 具体内容是依赖于Bochner 定理，可参考原文。经过变形，可得 k(x-y)=\int_{R^d}p(\omega)\cos(\omega^T(x-y))d\omega 通过MC采样近似上述特征，就得到随即特征映射的方法： 这样，在R^D空间做线性SVM就能够有效扩展到大规模数据集上，计算和存储对于数据是线性的。 一点扩展： PS，这篇文章获得NIPS 2017 Test of time award。