2016年9月29日 更新

Pythonで学ぶOpenCV③〜機械学習のk近傍法を使ってデータのクラス分けをしてみた〜

今回はOpenCVを使って機械学習の一つであるk近傍法を実装し、irisデータの分類を行ってみたいと思います。

3,948 view お気に入り 0
今回はOpenCVを使って機械学習の一つであるk近傍法を実装し、irisデータの分類を行ってみたいと思います。

以下のコードや説明はOpenCVのチュートリアルを参考にしました。
https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_ml/py_knn/py_knn_index.html

1. k近傍法とは

2つのデータをプロットしたとき以下のようになったとします。
 (1746)

このとき、新しいデータ「緑」は赤と青、どちらに分類されるのでしょうか。

「ぱっと見、近くにたくさん赤があるから、緑も赤なんじゃないかな?」と思う方もいらっしゃると思います。これは近傍法と呼ばれる手法です。

k近傍法では、新しいデータの近くのk点をチェックし、多数決をするアルゴリズムです。
例えばk=5の場合、以下のような図が描けるので、この緑は赤と推定されます。
 (1748)

2. 今回用いるデータについて

今回のデータはランダムに発生させるデータです。大きさが0~100で大きさ2のベクトルを25個発生させることにします。それを任意にクラス分けをし、そのあと、新しいデータがどちらのクラスに入るのかチェックします。
散布図

散布図

3.プログラムについて

以下にその実行プログラムを示します。
 (1754)

プログラムの実行結果は以下のようになります。
 (1756)

25個発生させたデータ

25個発生させたデータ

18 件

関連する記事 こんな記事も人気です♪

LP-tech2周年記念#人気記事のまとめ#第5位〜第1位

LP-tech2周年記念#人気記事のまとめ#第5位〜第1位

LP-techが始まってから2周年を迎えました。ここまでLP-techを続けることができたのも読者の皆様のおかげだと思っています。そこで、LP-techの感謝祭ということで、人気の記事を第20位から第1位までをご紹介します。今回は第5位〜第1位までです。
Python × TensorFlow ② ~TensorFlow を扱う上で必要な知識「定数・変数」~

Python × TensorFlow ② ~TensorFlow を扱う上で必要な知識「定数・変数」~

TensorFlow を扱う上で必要な以下3つの知識のうち「定数と変数」について解説していきたいと思います.
井上 大輝 | 8,889 view

この記事のキーワード

この記事のキュレーター

エルピクセル編集部 エルピクセル編集部