支持向量机可以用于大数据吗?


13

以我对SVM的了解有限,它对于简短而又胖的数据矩阵(很多特征,并且没有太多实例)很有用,但不适用于大数据。X

我知道一个原因是内核矩阵是矩阵,其中是数据中实例的数量。如果说100K数据,则内核矩阵将具有元素,并可能占用约80G内存。ķñ×ññķ1010

是否可以对大数据使用SVM进行任何修改?(以100K到1M数据点的规模为例吗?)


如果您要讨论SVM的目标,而不仅仅是“大数据”,那将对潜在的受访者有所帮助。话虽如此,但您对查询一无所知,是否有任何理由不能将SVM用于分治算法?
Mike Hunter

您将SVM用于什么?您可以使用其他方法吗?
汤姆

Answers:


12

如您所提到的,存储内核矩阵需要内存随数据点数量成倍增长。传统SVM算法的训练时间也与数据点的数量成线性关系。因此,这些算法不适用于大数据集。

一种可能的技巧是将内核化的SVM重新格式化为线性SVM。内核矩阵的每个元素表示数据点和(可能是非线性地)映射到特征空间后的点积:。特征空间映射 X X Ĵ ķ Ĵ = Φ X ·&Φ X ĴΦķ一世ĴX一世XĴķ一世Ĵ=ΦX一世ΦXĴΦ是由内核函数隐式定义的,内核化SVM不会显式计算要素空间表示形式。这对于中小型数据集在计算上是有效的,因为特征空间可以是非常高的维,甚至是无限的维。但是,如上所述,这对于大型数据集变得不可行。相反,我们可以将数据显式非线性地映射到特征空间,然后在特征空间表示上有效地训练线性SVM。可以将特征空间映射构造为近似给定的内核函数,但是使用的维数少于“完整”特征空间映射。对于大型数据集,这仍然可以为我们提供丰富的特征空间表示,但是维数少于数据点。

核近似的一种方法是使用Nyström近似(Williams和Seeger,2001年)。这是使用较小的子矩阵近似大矩阵的特征值/特征向量的方法。另一种方法使用随机特征,有时被称为“随机厨房水槽”(Rahimi和Recht 2007)。

在大型数据集上训练SVM的另一个技巧是用一组较小的子问题来近似优化问题。例如,对原始问题使用随机梯度下降是一种方法(在许多其他方法中)。在优化方面已经做了很多工作。Menon(2009)进行了很好的调查。

参考文献

威廉姆斯和西格(2001)。使用Nystroem方法来加速内核计算机。

Rahimi and Recht(2007)。大型内核计算机的随机功能。

梅农(2009)。大规模支持向量机:算法和理论。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.