Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

k近傍法(k-Nearest Neighbor) 入門

k近傍法(kNN)アルゴリズムについて書いていきます。

k近傍法は教師あり学習のための分類アルゴリズムで、パターン認識でよく使われます。また最も単純な機械学習アルゴリズムである。

f:id:firesparrow:20170106111457p:plain

新しいデータが青い四角か赤い三角のどちらのグループに属するのか分類します。

まず、最も近い距離にあるデータと同じグループに入れることを最近傍法と呼びます。この場合最も近いのは赤い三角です。なので赤い三角のグループに追加されます。

k近傍法では,新しいデータからk番目に近いデータの多数決で決められます。

この場合k=3だと1番近いのが赤い三角、2番目に近いのも赤い三角、3番目に近いのは青い四角、なので赤い三角2個、青い四角1個の多数決で新しいデータは赤い三角のグループに属することとなります。

多数決なので、kは偶数にすると同数どうしでどちらに属するか決まらないので、kは奇数です。

この画像だとkが5の場合は新しいデータは青の四角に属することになります。

kの値はデータに依存します。

変形k近傍法(modeified kNN)

k=4 の場合を考えたとき同数に成りますが、赤い三角の方が新しいデータに近いのは明らかですので赤い三角のグループに属するのが妥当です。ここで新しいデータとの距離に応じた重みを与えます。近いものには大きな重みを与え、遠いものには低い重みを与えます。このようにして決めるのを変形k近傍法と呼びます。