2012-08-02 18 views
7

サポートベクターマシンクラシファイアの2つの入力エンティティ間の類似性を判断する独自の方法を定義し、それをカーネルとして定義すると、私が使用できる有効なカーネルですか?カーネルが有効なカーネルかどうかをテストする方法

たとえば、自分の入力が文字列で、私が選択したカーネルが何らかの文字列距離メトリックを言うならば、SVMに使用できるかどうかをどうやって決めることができますか?私は、有効なSVMカーネルのいくつかの条件があることを知っています。誰でも自分のことを教えてもらえますか、そしてその条件を確認する方法は?

答えて

6

カーネル関数は、Mercer's conditionを満たしている必要があります。stats forumで質問している回答を見つけることもできます。

+0

ありがとうございました。他の投稿へのリンクは非常に役に立ちます。 –

6

最も直接的な順方向テストは、以下に基づいて行われます。カーネル関数は、特定のデータセットのカーネル行列がすべて負でない固有値を持つ場合にのみ有効です。これを簡単にテストするには、合理的に大量のデータポイントを取得し、それが真であるかどうかを確認するだけです。たとえば、2000個のデータサンプルをランダムに選択し、対応する2000x2000カーネルマトリックスを作成し、それが非負の固有値を持つことを確認した場合、正当なカーネルを持つ可能性が高くなります。あるいは、負の固有値がある場合、候補カーネル関数は正当なカーネルではありません。

2

また、参考文献はhttp://cs.nyu.edu/~dsontag/courses/ml12/slides/lecture6.pdfです。著者は上記のステートメントから続く「カーネル代数」を提供しています - マーサーの定理は、対応するカーネルマトリックスが対称陽性半定理であり、正の固有値がそれに続くことを示しています。著者は、例として、ガウス関数が有効なカーネルを作っていることも示しています。参照先を検索したくない場合に備えて、ここで提供します: Kernel Algebra & Description of Proof of Gaussian as a valid Kernel

関連する問題