多次元データのkNNの理解に役立つ


10

空間データのkNNアルゴリズムの前提を理解しています。そして、このアルゴリズムを拡張して、任意の連続データ変数(またはハミング距離をもつ公称データ)で使用できることを知っています。しかし、より高次元のデータを扱う場合、どの戦略が使用されますか?

たとえば、データのテーブル(x [1]、x [2]、x [3]、...、x [n])があり、分類子のセットを作成してこれらの列の1つを予測するとします。 (x [n]と言います)。kNNアルゴリズムを使用して、トレーニングする残りの列(x [1] -x [n-1])から任意の2つの列を選択します。したがって、x [1]とx [2]を選択して、それらから分類子を構築できるとしましょう。または、x [1]とx [4]を選択したり、x [5]とx [8]を選択したりすることもできます。1つの列だけを選択して分類子を作成するか、3つの列を作成してその分類子。より高い次元(2D、3Dなど)を使用することには利点がありますか、それともx-1単一次元分類子を作成して、何らかの方法でそれらの予測を集計する必要がありますか?

変数のすべての潜在的な組み合わせからこれらの分類子をすべて構築すると、計算コストが高くなります。このセットを最適化して、そのセットから最高のkNN分類器を見つけるにはどうすればよいですか?そして、一連の分類子を見つけたら、それらの出力を単一の予測に組み合わせる最善の方法は何ですか?この質問に対する最も簡単な答えは投票です。または、各分類子のトレーニングデータからのエラー率で各投票に重みを付けます。

ほとんどの実装では、kNNをより一般化された学習にどのように適用しますか?


Beyerらを参照してください。下-で最近傍-有意義-今日:k最近傍は時々意味がありません。N、dim、kは何ですか?
denis

回答:


4

より高い次元(2D、3Dなど)を使用することには利点がありますか、それともx-1単一次元分類子を作成して、何らかの方法でそれらの予測を集計する必要がありますか?

これは、機能が有益かどうかによって異なります。一部の機能が分類タスクで役に立たないと思われますか?データをよりよく理解するために、応答変数と各特徴間のペアワイズ相関または相互情報を計算することもできます。

機能のすべて(またはサブセット)を組み合わせるには、クエリポイントと各「トレーニング」ポイントとの間のL1(マンハッタン)またはL2(ユークリッド)距離を開始点として計算します。

変数のすべての潜在的な組み合わせからこれらの分類子をすべて構築すると、計算コストが高くなります。このセットを最適化して、そのセットから最高のkNN分類器を見つけるにはどうすればよいですか?

これは、機能サブセットの選択の問題です。この領域には多くの学術的研究があります(Guyon、I.および&Elisseeff、A.(2003)を参照してください)変数と特徴の選択の概要。Journal of Machine Learning Research、3、1157-1182。 )。

そして、一連の分類子を見つけたら、それらの出力を単一の予測に組み合わせる最善の方法は何ですか?

これは、選択した機能が独立しているかどうかによって異なります。機能が独立している場合は、相互の情報(またはその他の情報量の指標)と応答変数(分類対象は何でも)を使用して各機能に重みを付けることができます。一部の機能が依存している場合は、単一の分類モデルがおそらく最もよく機能します。

ほとんどの実装では、kNNをより一般化された学習にどのように適用しますか?

ユーザーがポイントのセット間の独自の距離行列を指定できるようにする。kNNは、適切な距離メトリックが使用されている場合に適切に機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.