我想了解 SVM 中的内核选择原理。
我理解的一些基本事情是,如果数据是线性的,那么我们必须使用线性内核,如果它是非线性的,那么我们必须使用其他内核。
但问题是如何理解给定数据是否是线性的,尤其是当它具有许多特征时。
我知道通过交叉验证,我可以尝试提供不同的内核,并查看性能最好的输出,但无论如何我都在寻找一些早期迹象。
我想了解 SVM 中的内核选择原理。
我理解的一些基本事情是,如果数据是线性的,那么我们必须使用线性内核,如果它是非线性的,那么我们必须使用其他内核。
但问题是如何理解给定数据是否是线性的,尤其是当它具有许多特征时。
我知道通过交叉验证,我可以尝试提供不同的内核,并查看性能最好的输出,但无论如何我都在寻找一些早期迹象。
从线性内核开始,看看你的数据是否是线性可分的。执行这比寻找早期迹象更简单。
当特征数量大于数据集中的观察数量时,建议使用线性内核(否则 RBF 将是更好的选择)。
然而,一旦你断定你有非线性数据,你可以尝试将非线性可分数据可视化并映射到更高维度的空间,看看它是否使数据线性可分。无论如何,这就是内核所做的事情,因此您的可视化将为您提供有关要使用的内核类型的见解和指示。
此链接可能会有所帮助。
本文由 Chih-Wei Hsu 等人撰写。是内核选择的一个很好的起点。在第 3 页,他们建议使用 RBF 内核并对其进行微调。
Andrew Ng 在他关于 SVM 的视频中还提供了一个非常高级的经验法则:如果观察的数量大于特征,则使用高斯核。否则使用线性。