2012-08-02 107 views
7

如果我定義了我自己的方法來確定我的支持向量機分類器的兩個輸入實體之間的相似性,並將其定義爲我的內核,那麼我該如何驗證它是否確實我可以使用一個有效的內核?如何測試一個內核是否是一個有效的內核

例如,如果我的輸入是字符串,並且我選擇的內核可以說某種字符串距離度量標準,那麼如何才能決定是否可以將它用於我的SVM。我知道有一個有效的SVM內核有一些條件。任何人都可以告訴我他們是什麼以及如何驗證這些情況?

回答

6

內核函數必須滿足Mercer's condition您也可以在stats forum上找到答案。

+0

謝謝。指向其他帖子的鏈接非常有幫助。 – 2012-08-02 17:50:04

6

最直接的測試基於以下內容:當且僅當任何特定數據點集的核矩陣具有所有非負特徵值時,核函數纔有效。您可以通過採取相當大的一組數據點並簡單地檢查它是否正確來輕鬆地進行測試。例如,如果您隨機選擇了2000個數據樣本,創建了相應的2000x2000內核矩陣,並且觀察到它具有非負的特徵值,那麼您很可能擁有合法的內核。或者,如果有任何負特徵值,那麼候選內核函數肯定不是合法內核。

2

此外,您可以查看的參考文獻是http://cs.nyu.edu/~dsontag/courses/ml12/slides/lecture6.pdf,其中作者根據以上陳述提供了「核代數」 - Mercer定理:相應的核矩陣是對稱正半定的,並且正定特徵值是由此得出的。作爲一個例子,作者還展示了高斯函數構成了一個有效的內核。如果您不想查閱參考文獻,我會在這裏提供: Kernel Algebra & Description of Proof of Gaussian as a valid Kernel