KNNアルゴリズムの機械学習(3)

@

アルゴリズム論

  • K最近傍(K-nearst隣人、KNN)は、k最近傍は、隣人最も近いkはそれの意味が各サンプルはKを表現するために、その最も近い隣人を使用することができることですと呼ばれる基本的な機械学習アルゴリズムであり、 。
  • 意思決定の際に、最後の予測の間の回帰と分類異なっをやってKNNを作りました。ときKNN分類予測、一般的な多数決方式 ;回帰予測を行うことで、一般的な平均法

アルゴリズムステップ

  1. 訓練セットから予測されるべきサンプルからK最新のサンプルデータを取得します。
  2. データ収集によって得られたターゲット属性値のK個のサンプルに応じて予測されるべき現在のサンプルを予測します。

KNN三つの要素

  1. K値を選択する:サンプル分布に従って選択するためのK値は、一般的に、最終的なクロスバリデーションにより、より適切な値を選択するために、小さい値を選択し、そして、比較的小さな値を選択するときKは、指示フィールドが小さいです、エラーを訓練することは予測サンプルを減少するが、モデルが複雑、簡単にオーバーフィッティングになる場合があります。大きな値を選択するときKは、より大きなサンプル表示フィールド予測、訓練誤差が大きくなりますモデルはシンプル、簡単にリードunderfittingなりながら、大規模な;
  2. 測定距離:通常のユークリッド距離(ユークリッド距離)。
  3. 決定規則:分類モデルでは、多数決方式または加重多数決方式の主な用途、回帰モデルにおいて、平均値又は加重平均法を用いてメイン方法。

KNNアルゴリズムの実装

  1. ブルートフォース実装(ブルート):次いで、訓練セットの全ての予測サンプルに対して算出された距離、及び得られたネイバー最寄りKに最小のk個の距離を選択します。その複数の特徴数の欠点、サンプルのより多くの時間数は、アルゴリズムの効率が比較的低いです。
  2. KD-ツリー(kd_tree):KD-ツリーアルゴリズム、データの訓練が最初にモデル化され、KDツリーを構築し、その後、近くで取得したサンプルデータモデルを内蔵。

KDツリーの構築

kdツリーn個のm次元の特徴サンプルを用いて、n個の特性値を分散、最大分散計算される
ルートノードとk次元の特徴量のN〜K〜を。サンプルとして、この機能のために、中央値が選択されたn〜KV〜分割点は、サンプルがより大きいため、より少ない左分割サブツリーの値以上であるか右の部分木、左と右のサブツリーに分割したサンプルの値に等しいですルートノードの機能として、最大分散を見つけるのと同じ方法では、KD再帰的なツリーを生成することができます。

最近傍を見つけるKDツリー

私たちは、KDツリーを生成するとき、それは標的サンプルテストセットの内部を予測することがポイントすることができます。プロジェクトのために
句読点、我々は最初のリーフノードは、KDツリーの内部に目標点が含まれて見つけます。ターゲットへ中心として点、
半径からリーフノードのインスタンスに対する標的サンプル点、超球を得るため、最近傍にある点
超球の内部。その後、葉ノードの親を返し、別の子ノードが含まれているチェックhyperrectangle
子ノードへの交差点の方が新しい隣人、いかなるがあるかどうかを調べるためにあれば体をし、超球の交差点か
隣人最寄りの更新。あなたは、単純な交差しない場合は、私たちは親の親の直接のリターン、他は
最近傍サブツリーを検索し続けています。その後、ルートノードに戻って、アルゴリズムが終了すると、最も近い隣人が保存されたとき
、究極の最近傍です。

おすすめ

転載: www.cnblogs.com/tankeyin/p/12129363.html