内核方法的局限性是什么?何时使用内核方法?


10

内核方法在许多监督分类任务中非常有效。那么内核方法的局限性是什么?何时使用内核方法?特别是在大规模数据时代,内核方法有哪些进步?内核方法和多实例学习之间有什么区别?如果数据为500x10000500则为样本数,并且10000为每个特征的维数,那么在这种情况下,我们可以使用核方法吗?

Answers:


16

内核方法可用于有监督和无监督的问题。众所周知的例子分别是支持向量机核谱聚类

内核方法提供了一种在变换后的特征空间中使用线性算法的结构化方法,对于该特征空间,变换通常是非线性的(并且是到较高维空间的)。这种所谓的内核技巧带来的主要优势是可以以合理的计算成本找到非线性模式。

请注意,我说的计算成本是合理的,但不可忽略。内核方法通常使用个训练实例数构造一个内核矩阵。因此,内核方法的复杂度是训练实例数量的函数,而不是输入维数的函数。例如,支持向量机的训练复杂度在和。对于很大的问题,目前这种复杂性令人望而却步。ķ[Rñ×ññØñ2Øñ3ñ

当维数较大且样本数相对较少(例如,小于一百万)时,从计算角度来看,这使核方法非常有趣。

相关:支持向量机的线性核和非线性核?

支持大规模问题的SVM

对于非常高的维数问题,例如10000您在问题中提到的维数,通常无需映射到更高维的特征空间。输入空间已经足够好了。对于此类问题,线性方法的预测性能几乎相同,速度快了几个数量级。这些方法的示例可以在LIBLINEARVowpal Wabbit中找到。

当您在高维输入空间中有许多样本时,线性方法特别有趣。当您只有样本时,使用非线性核方法也很便宜(因为很小)。如果您有维度中的样本,则内核方法将不可行。500ñ5.000.00010.000

对于具有许多训练实例的低维问题(所谓的大小问题),线性方法可能会产生较差的预测准确性。对于此类问题,与标准SVM相比,诸如EnsembleSVM之类的集成方法以大大降低的计算成本提供了非线性决策边界。ñp


先生,非常感谢您提供如此详细的答案。我发现在高维环境中,如果RBF在中使用内核libsvm,因为它总是过拟合,则分类器会在测试集中实现较高的准确性,但准确性较低。而且,如果我在分类器之前进行降维,并且降维接近训练样本的数量,则分类器可能会在训练和测试集之间获得良好的收益。结果是否符合大多数经验结果?谢谢。
开采

内核方法对于高输入维数具有相当强的鲁棒性。通常,在使用它们之前不需要执行降维。调整所有参数非常重要,尤其是gamma对于RBF内核。的最佳值gamma与输入尺寸的数量有关。最常见的调整方法是交叉验证。如果对gamma降维和不降维使用相同的值,则可能是错误的。
马克·克莱森

是的先生。我通常使用grid.pyin libsvm包进行交叉验证。在大多数情况下,对于高维数据,此级别gamma始终很小,例如0.00001
开采

嗨,先生,我已经检查了您的开源项目EnsembleSVM,是否需要使交叉验证程序成为多线程?而且我认为在预测阶段,以批处理和多线程或多机预测巨大数据会很好吗?
开采

在EnsembleSVM中,使用多线程是可选的,但默认情况下在esvm-train和中启用了多线程esvm-predict。要禁用多线程,请在这些工具中使用以下标志:-threads 1
马克·克莱森
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.