如何测试内核是否是有效的内核

时间:2012-08-02 17:09:00

标签: machine-learning data-mining svm

如果我定义自己的方法来确定我的支持向量机分类器的两个输入实体之间的相似性,从而将其定义为我的内核,我该如何验证它是否确实是一个我可以使用的有效内核?

例如,如果我的输入是字符串,并且我选择的内核是可以说某种字符串距离度量,那么我如何决定是否可以将它用于我的SVM。我知道有一些有效SVM内核的条件。任何人都可以告诉我它们是什么以及如何验证这些条件?

3 个答案:

答案 0 :(得分:7)

最直接的测试基于以下内容:当且仅当任何特定数据点集的核矩阵具有所有非负特征值时,核函数才有效。您可以通过采用一组相当大的数据点并简单地检查它是否为真来轻松地对此进行测试。例如,如果您随机选择了2000个数据样本,创建了相应的2000x2000内核矩阵,并观察到它具有非负特征值,那么很可能您拥有一个合法的内核。或者,如果存在任何负特征值,那么候选核函数肯定不是合法的内核。

答案 1 :(得分:6)

内核函数必须满足Mercer's condition您还可以在stats forum上找到所要求的答案。

答案 2 :(得分:3)

您可以查看的参考文献是http://cs.nyu.edu/~dsontag/courses/ml12/slides/lecture6.pdf作者提供的“内核代数”,它来自上面的陈述 - Mercer定理,相应的核矩阵是对称正半正定,正特征值如下从那以后。作为一个例子,作者还表明高斯函数构成了一个有效的内核。我会在这里提供它,以防你不想查阅参考: Kernel Algebra & Description of Proof of Gaussian as a valid Kernel