k最近傍法(k-NN)は、未知のデータの分類や回帰を、特徴量が似た訓練データ群の中から近い順にk個選んで多数決や平均で予測する、シンプルで直感的な教師あり学習アルゴリズムです。
k最近傍法とは
一言でいうと、k最近傍法とは「周りの似たもの同士の意見を参考にして、未知のデータを予測・分類する機械学習アルゴリズム」です。
詳しく解説
k最近傍法(k-NN)は、モデルの事前学習を行わない「遅延学習」の一種です。予測を行いたいデータが入力されると、あらかじめ保存しておいた訓練データとの間でユークリッド距離などの距離計算を行い、最も近い上位k個のデータを選び出します。分類問題の場合は選ばれたk個の中で最も多いクラスを予測結果とし、回帰問題の場合はその平均値を算出して予測値とします。パラメータである「k」の値をいくつに設定するかによってモデルの予測精度や境界線が大きく変化するため、適切なkの選択が重要となります。
具体例・使われ方
例えば、商品の購入履歴や顧客の属性データをもとに、ある新規顧客が特定のプレミアムプランに加入するかどうかを予測する顧客分類や、過去の不動産データから周辺の似た物件の特徴を複数参照して販売価格を推定する不動産価格の回帰分析などに利用されます。
似た用語との違い
ディープラーニングやサポートベクターマシンなどの複雑なモデルとは異なり、決定境界を数式で明示的に定義するのではなく、データそのものを保持して計算を行います。また、学習フェーズの計算が不要である一方、予測時にすべての訓練データとの距離を計算するため、推論に時間がかかる特徴があります。
注意点
データ量が増加するにつれて計算コストが爆発的に増大するため、大規模なデータセットを扱う際には推論速度が著しく低下するという弱点があります。また、特徴量のスケール(単位の大きさ)の違いによって距離計算の結果が歪められるため、事前に正規化や標準化を行う前処理が不可欠です。