いつk最近傍を超えて移動すべきですか


9

私たちが行う多くの機械学習プロジェクトでは、k最近傍分類子から始めます。通常、すべての距離を計算するのに十分な時間があるため、これは理想的な開始分類子であり、パラメーターの数は制限されています(k、距離メトリック、および重み付け)。

ただし、プロジェクトの後半で別の分類器に切り替える余地がないため、これにはknn分類器を使用するという効果があります。新しい分類子を試す正当な理由は何でしょうか。明らかなのはメモリと時間の制約ですが、別の分類子が実際に精度を改善できるケースはありますか?


これは純粋に学術的なものですか、それとも業界で使用されるものですか?
ロブラング博士

1
ほとんどのアプリケーションは業界で展開されています(メモリのフットプリントと計算時間が問題になるため)

回答:


3

k-NNは非常に限定的な意味で一般化します。単純に事前平滑度(または連続性の仮定)を使用します。この仮定は、特徴空間で近接しているパターンが同じクラスに属している可能性が高いことを意味します。パターン分布の機能的な規則性は、k-NNでは回復できません。

したがって、特に高次元の特徴空間の場合は非常に大きくなる可能性がある、代表的なトレーニングサンプルが必要です。さらに悪いことに、これらのサンプルは利用できない場合があります。したがって、不変条件を学習することはできません。パターンがラベルを変更せずにいくつかの変換を受ける可能性があり、トレーニングサンプルに許容されるすべての方法で変換されたパターンが含まれていない場合、k-NNはトレーニング中に提示されなかった変換パターンを認識しません。これは、k-NNを実行する前に不変形式で表されていない場合など、シフトまたは回転した画像に当てはまります。k-NNは無関係な機能から抽象化することさえできません。

別のやや人工的な例は次のとおりです。定期的に配布される異なるクラスに属するパターンを想像してみてください(たとえば、正弦に従って-それが0未満の場合、パターンは1つのクラスに属し、それより大きい場合、パターンは別のクラスに属します)。トレーニングセットは有限です。したがって、それは有限の領域に配置されます。この領域外では、認識エラーは50%になります。この場合、パフォーマンスが大幅に向上する周期基底関数を使用したロジスティック回帰を想像できます。他の方法では、パターン分布の他の規則性を学習し、十分に推定できます。

したがって、利用可能なデータセットが代表的ではないと疑い、パターンのいくつかの変換に対する不変性が達成されるべきである場合、これは事実であり、k-NNを超えて移動する必要があります。


答えてくれてありがとう(そして、それを改善しようとしてくれたBartoszKPに感謝します)。knnが変換を必要とするパターンを見つけられないことは事実です(奇妙な(そして不正確な)距離計量を使い始めない限り)。これが別の分類子を試す良い理由です。その場合、svmを選択するのは明らかです。私はsvmについて十分に理解していませんが、カーネルを定義するために探しているパターンに関する特定の知識は必要ありませんか?

はい。カーネルの選択はパターンに依存します。ガウスカーネルには、k-NN法と同様のプロパティがあります。他の標準カーネルも不適切と思われる場合があります。ただし、少なくとも、それらを使用してみることができます。

@ Necro0x0Derによって暗示されるように、これらの線に沿った改善は、パラメーター化にとって自然なパターン(サインの例では周期性)に依存します。つまり、パラメーター化(カーネルの選択)は、表現空間の構造(事実上、メトリック)を定義します。おそらく何らかの方法で適切な構造を決定できる場合は(おそらく知識に基づいた推測によって)、パターンをパラメータ化してみてください。最終的に、これにより、分類子は特定のタイプの関連する特徴を簡単に見つけることができるようになります。

3

もちろん、高次元は固定の制限ではありません。ほとんどの場合、私たちの機能は距離が機能するほど十分に表現力があります。もちろん、これは重要なポイントかもしれません。多分私は例で明らかにすべきだったでしょう。93%の精度を持つ分類子があるとしましょう。これは許容範囲ですが、分類子を改善するか、新しい機能を見つけることができます。それはすべて、可能な新しい機能とデータに依存しますが、私はこの決定に関するガイドラインを探していました。

@Rhandはプロジェクト管理レベルの決定だと私には思えます。現在の解決策が受け入れられる場合、なぜそれをいじるのですか?時間の無駄です。許容できない場合は、改善したい点(速度、精度など)をより正確に定義します。
BartoszKP 2014

それはプロジェクト管理だけでなく、最大の精度を得る方法(これは私の質問です)とどの方向が最善の方向であるかが問題です。次元が高すぎる可能性があるため、svmとランダムフォレストを提案します。これは、精度が向上するかどうかを確認するために実験できる可能性の1つであり、それが私が探していた種類の答えです。

一方、これは非常に広範な質問です。分類子XがYよりも優れているという一般的なルールはありません。たとえば、いくつかの分類子を試してから、モデル選択などの相互検証を実行する必要があります。
BartoszKP 2014

3

kNNは大きなデータサンプルに役立ちます

ただし、欠点は次のとおりです。

  1. kの値によってバイアスされます。
  2. 計算の複雑さ
  3. メモリの制限
  4. 教師あり学習遅延アルゴリズムであること
  5. 無関係な属性に騙されやすい。
  6. 属性の数が増えると、予測精度がすぐに低下する可能性があります。

これは通常、トレーニングデータが大きく、トレーニングが非常に速い場合にのみ効果的です。


私は、クラスタリングを見て、しかし分類ではないよ

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