[Python] scikit-learnで k-近傍法をやってみる

以下の本、「Pythonで始める機械学習」の備忘録です。

k-近傍法とは

教師あり学習の中で、クラス分類を行う手法。

教師あり学習・なし学習などの違いは以下の記事で解説しています。

[機械学習] 教師あり・教師なし学習の違いを説明

2018.07.23

 

データ作成

今回は、アイリスのデータを使ってk-近傍法を行います。

アイリスのデータは、sklearnのdatasetsの中にあります。

 

データが格納されてるのがわかる

 

iris_datasetには、以下のようなkeyが存在しています。

 

dataには、特徴量(説明変数)が、targetには、目的変数(被説明変数)が格納されている。

 

 

 

 

次に、これらのデータを「訓練データ」「テストデータに」分割する。

 

 

どのように分割されたのか確認する

y_train、y_testも同様に確認できる。

きちんと分割されているのが確認できる。

 

このままではデータが確認しにくいので、pandasのデータフレームを作る。

データは完成しました。

可視化

まずすべきことは、データをよく観察することです。

データをよく観察することで、異常な値を発見したり、必要な値を見つけることができるかもしれないからです。

データをよく観察すること最良の方法は、データの可視化です。

その方法の1つである、散布図を表示していきたいと思います。

これらの変数がお互いにどのような関係を持っているのか確認する。

 

上の散布図をみると、それぞれのクラス(花の種類)はうまく別れているので、分類しやすそうだとわかる。

 

kー近傍法

 

モデルの学習

 

予測

どの品種かわかっていない新しいデータに対して予測を行う

 

モデルの評価

作ったモデルの精度を測定する

評価を行う際は、テストデータを使います。

訓練データで評価を行なっても評価は最大になるのは、当たり前です。

テストセットに含まれるアイリスの97%に対して正確な予測ができたということ。
これで完成です。

最適な近傍点を見つける

今回設定したのは、n_neighbors=1

近傍点を幾つに設定すれば精度が一番良くなるのか試す。

 

 

これをみると、近傍点20までは一律で0.97
20を越え出すと精度が悪くなる

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA