機械学習記9日目 ~ 散布図をプロットしてみる

 ここで、k近傍法のデータセットを散布図でプロットして、可視化してみます。irisデータセットの4つの特徴量(がく片の長さと幅、花弁の長さと幅)から、品種の分類ができそうか目視で確認します。

 ここで、irisデータセットの散布図をプロットするコードを調べていると「mglearn」というライブラリを使ってカラーマップを指定している例が見つかりました。

  mglearnは、matplotlibのヘルパーライブラリーのようですが、Anacondaには含まれていません。そこで、Anaconda Promptから「pip」を使ってインストールしておきます。

 Anaconda Promptを起動して、「pip install mglearn」とコマンドを入力します。

f:id:hackU0001:20190228110359p:plain

図1.Anaconda Prompt

 

 インストールできたら、Jupyter Notebookに戻り、mglearnをインポートします。散布図のプロットには、matplotlib.pyplotを使うので一緒にインポートします。

f:id:hackU0001:20190228110805p:plain

 

 X_train(訓練用データ)からDataFrameを作成します。

f:id:hackU0001:20190228111507p:plain

f:id:hackU0001:20190228111833p:plain

 

 それでは、データセットを散布図でプロットします。プロットデータの生成には、pandas.plottingのscatter_matrixを使います(図2)。

f:id:hackU0001:20190228113015p:plain

図2.scatter_matrix関数の書式

 

f:id:hackU0001:20190228120218p:plain

図3.scatter_matrix関数の引数

 

 scatter_matrix関数を使うと、一連の変数のペアプロットを作成して散布図にすることができます。なお、カラーマップの指定では、ラベルごとにmglearnの3色で着色しています。

 それでは、scatter_matrix関数をインポートして散布図を表示してみます。

f:id:hackU0001:20190228114915p:plain

f:id:hackU0001:20190228115332p:plain

 

 図2のように表示されます。3種類の品種(Setosa, Versicolour, Verginica)がラベルにしたがって色が付けられ、がく片と花弁の測定結果で分離しています。これなら、3つのクラスにグループ分けすることができそうです。

f:id:hackU0001:20190228115549p:plain

図4.散布図をプロットして可視化

 

f:id:hackU0001:20190228121531p:plain

図5.データセット(可視化)