k近傍法(k-Nearest Neighbor)で分類してみる

ロウ
2021-03-29
ロウ
2021-03-29

はじめに

今回はscikit-learnを使って、機械学習アルゴリズムk近傍法(k-Nearest Neighbor)で単純なデータを分類してみました。

k近傍法のメリットとデメリット

メリット

  • 精度が高い
  • 外れ値に鈍感
  • データに関する仮定なし

デメリット

  • 計算量が大きい
  • 大量のメモリが必要

k近傍法の実装

```
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from sklearn.neighbors import KNeighborsClassifier

# サンプルデータとラベルを作成する

data = [
    [1.0, 1.2],
    [1.0, 1.0],
    [0.0, 0.2],
    [0.0, 0.0]
]

labels = ['A1', 'A1', 'A2', 'A2']

# クラスを予測する

knn = KNeighborsClassifier(n_neighbors=2)
knn.fit(data, labels)
print(knn.predict([[1.0, 1.1]]))

```

結果を確認します。

```
>>> ['A1']
```