カバーの定理:大まかに述べると、有限ポイントの任意のセット(任意のラベルを使用)が与えられた場合、高い確率でこれらのポイントをより高い次元にマッピングすることにより、これらのポイントを線形分離可能にすることができます[1]。
含意:すばらしい、この定理からわかることは、データセットを取得してこれらのポイントをより高い次元にマッピングすると、線形分類器を簡単に見つけることができるということです。ただし、ほとんどの分類子は、ドット積のようなある種の類似性を計算する必要があります。これは、分類アルゴリズムの時間の複雑さがデータポイントの次元に比例することを意味します。したがって、より高い次元は、より大きな時間の複雑さを意味します(これらの大きな次元の点を格納するための空間の複雑さは言うまでもありません)。
カーネルトリック:うのデータポイントの元の寸法であり次元の空間にこれらの点をマップするマップである。ここで、元の空間から入力とを取得してを計算する関数がある場合、ドット積を計算できますより高次元の空間ではあるが複雑さではではなく。fはN (> > N )、Kは、xはY K (X 、Y )= ⟨ F (X )、F (Y )⟩ O (N )O (N )をんfN(> > N )KバツyK(x 、y)= ⟨ F(x )、f(y)⟩O(n)O(N)
含意:したがって、分類アルゴリズムがドット積にのみ依存し、実際のマップ依存しない場合、カーネルトリックを使用して、ほとんど追加コストなしでアルゴリズムを高次元空間で実行できます。f
線形分離可能性は、同じクラスのポイントが異なるクラスのポイントよりも近くなることを意味しますか?
いいえ、そのような保証はありません。線形分離可能性は、同じクラスのポイントが接近したこと、または2つの異なるクラスのポイントがそれ以上になったことを実際に意味するものではありません。
では、なぜkNNが機能するのでしょうか?
必要はありません!ただし、そうである場合、それは純粋にカーネルが原因です。
どういう意味ですか?
ブール特徴ベクトル考えます。次数2の多項式カーネルを使用すると、特徴ベクトルはベクトルマッピングされますx (x 2 1、√x=(x1,x2)x(x21,2–√x1x2,x22)。ブール特徴のベクトルから、2次多項式を使用するだけで、「結合」の特徴ベクトルを取得しました。したがって、カーネル自体がいくつかの素晴らしい機能マップを生成します。データに優れた元の機能があり、データがこれらのカーネルによって作成された機能マップの恩恵を受ける可能性がある場合。メリットとは、これらの機能マップによって生成される機能は、同じクラスのポイントを互いに近づけ、異なるクラスのポイントを遠ざけることができることを意味します。kNNは、カーネルを使用することでメリットを得られます。それ以外の場合、結果は元のデータでkNNを実行した場合と何も変わりません。
では、なぜカーネルkNNを使用するのでしょうか。
カーネルを使用する場合の計算の複雑さは通常のkNNよりもほんの少しだけ高く、カーネルを使用することでデータにメリットがある場合は、とにかくそれらを使用しないことを示しました。
kNNのカーネルから恩恵を受けることができるデータのクラスを研究した論文はありますか?
私の知る限り、いいえ。
[1] http://en.wikipedia.org/wiki/Linear_separability
[2] http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4038449&tag=1