如果我定义自己的方法来确定我的支持向量机分类器的两个输入实体之间的相似性,从而将其定义为我的内核,我如何验证它是否确实是我可以使用的有效内核?
例如,如果我的输入是字符串,而我选择的内核可以说是某种字符串距离度量,我如何决定是否可以将它用于我的 SVM。我知道有效的 SVM 内核有一些条件。谁能告诉我它们是什么以及如何验证这些条件?
如果我定义自己的方法来确定我的支持向量机分类器的两个输入实体之间的相似性,从而将其定义为我的内核,我如何验证它是否确实是我可以使用的有效内核?
例如,如果我的输入是字符串,而我选择的内核可以说是某种字符串距离度量,我如何决定是否可以将它用于我的 SVM。我知道有效的 SVM 内核有一些条件。谁能告诉我它们是什么以及如何验证这些条件?
最直接的测试基于以下内容:当且仅当任何特定数据点集的核矩阵具有所有非负特征值时,核函数才有效。您可以通过获取一组相当大的数据点并简单地检查它是否正确来轻松地对此进行测试。例如,如果您随机选择了 2000 个数据样本,创建了它们对应的 2000x2000 内核矩阵,并观察到它具有非负特征值,那么您很可能拥有一个合法内核。或者,如果存在任何负特征值,则候选核函数绝对不是合法核。
内核函数必须满足Mercer 的条件您也可以在stats forum 上找到您所问问题的答案 。
您还可以查看http://cs.nyu.edu/~dsontag/courses/ml12/slides/lecture6.pdf的参考资料,其中作者提供了根据上述陈述的“内核代数”——Mercer 定理对应的核矩阵是对称的半正定矩阵,正特征值由此而来。作者还举例说明了高斯函数是一个有效的内核。如果您不想查找参考,我将在此处提供: