コース: AI 入門

k近傍法とは

コース: AI 入門

k近傍法とは

データを読み解く方法の1つが、 既知の情報に基づいて分類することです。 私は学生時代、シカゴの動物保護施設で 働いていました。 大変だったのは、新しい犬を 犬種ごとに分類する仕事です。 犬種は何百も存在するだけでなく、 雑種も多いからです。 引き取った犬を、すでに分類されている 犬と比べて見ながら、 顔の形や体毛の色など、 さまざまな特徴が似た個体が ないかを探します。 いわば、一番近い個体を探すことで、 未知の犬を分類しようとしていたわけです。 むろん、微妙に異なる犬種の区別は 簡単ではありません。 特徴が少しでも近い犬種を 見極めて分類します。 別な言い方をするなら、 未知の個体と既知の犬種との距離を 最小にする試みです。 多くの特徴がほぼ一致する場合、 未知の個体と最も近傍の犬種の距離は きわめて短くなります。 多項分類の教師あり学習によく使われる アルゴリズムが、 k 近傍法(ケイきんぼうほう)です。 このアルゴリズムは、新たなデータを 空間内にプロットして、 既存のデータと比較します。 今見ている例は、 多くの犬種に分類するため、 2項分類ではなく多項分類です。 k 近傍法のポイントは、距離の最小化です。 最も近いデータとの距離が短いほど、 分類が正しい確率も上がります。 データ間の距離を見るには、 ユークリッド距離を使うことが一般的です。 ユークリッド距離は、数学的な公式で 求めるそれぞれのデータ座標間の距離です。 何百万匹もの犬を、犬種別に 分類する場合を考えましょう。 まず、同じ犬種の区別を つけやすくするために、 主要な特徴を2つ設定しましょう。 このような特徴を、 一般に予測変数といいます。 ここでは体重と体毛の長さにします。 次に、2つの値を測定して、 2次元のグラフにプロットしてみましょう。 誰もが数学の時間に習う、あのグラフです。 グラフの Y(ワイ)軸は体毛の長さ、 X(エックス)軸は 体重を表すことにします。 ここに、犬種がわかっている 1,000 匹分の訓練データを プロットしてみます。 例えば、以前から施設にいて犬種が わかっている犬のデータです。 体重と体毛の長さに基づいて プロットします。 この図に、未分類の犬を 追加してみましょう。 訓練データの中に一致する点はないものの、 距離が近い点がいくつもあります。 k 近傍法の k(ケイ)は、 近い順に比較したい点の数です。 k を5と設定すると、 近い順に5個の点が決まります。 未知の1匹とほかの犬との距離が近いほど、 正確な分類ができることになります。 5匹の近い犬を見ていきましょう。 5匹のうち、3匹はシェパード、 2匹はハスキーでした。 つまり、この犬はシェパードに 分類できそうだといえますが、 一定程度はハスキーである 可能性もあります。 k 近傍法は、よく使われる強力な アルゴリズムの1つです。 例に挙げたような分類以外にも、 投資機関が有望株を見つけたり、 今後の相場を予測したりする目的などにも 活用されています。

目次