機械学習(Machine Learning)の勉強を始めました。第4回

今回は、機械学習のsupervised Learning のClassificationのモデルでよく、参照される「アイリス花データ」のご紹介と、Pythonのパッケージ・ライブラリーである pandaとmatplotlibの簡単な活用法をご紹介いたします。「アイリス花データ」とは、1936年の論文に、英国の統計学者・植物学者であったロナルド・フィッシャー氏が発表した多変量データです。 データセットは、アイリスの花の3種類(「Iris setosa」と「 Iris virginica」 と 「Iris versicolor」) を各々50サンプルずつ集めた計150のデータからなり、変数は、がく片の長さと幅、花びら長さと幅をcmで計測した4つの変量からなります。 この4つの変量の組合せを基にアイリスの花の種類(Iris setosa/Iris virginica/Iris versicolor)を分類するLDA(Linear Discriminant Analysis)モデルを開発したのでした。LDAモデルについては、後日、改めてご紹介いたします。

フィッシャーの「アイリス花データ」は、現在、オープン・ソースとして、以下のURLからダウンロードすることができます。
https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data

Pythonのpandasライブラリーを使用して、ローカル・ファイルにダウンロードすることができます。保存するファイル名は、「irsi.data.csv」とします。
>>>import pandas as pd
>>>df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data',header=None)
>>>print(df)
>>>df.to_csv("iris.data.csv",index=False,header=None)
>>>quit()
ローカルファイルとして、「irsi.data.csv」が保存されていることを確認します。内容は、Excel等で確認してください。

今度は、保存した「irsi.data.csv」ファイルをpandasライブラリーで読み取り、matplotlibライブラリーを使用して、プロットしてみましょう。
「アイリス花データ」は、最初の50行が「Iris-setosa」で、51行から100行までが、「Iris-vesicolor」で、101行目から150行までが、「Iris virginica」の順で並んでいます。変量が4つあるため、2次元にプロットするために、ここでは、第一番目の「 がく片の長さ[cm] 」と三番目の「 花びらの長さ[cm] 」の2つを変量に選び、プロットしてみます。
>>>import pandas as pd
>>>import matplotlib.pyplot as plt
>>>df = pd.read_csv('iris.data.csv',header=None)
>>>X = df.iloc[:,[0,2]].values
>>>plt.scatter(X[:50,0],X[:50,1],color='red',marker='o',label='setosa')
>>>plt.scatter(X[50:100,0],X[50:100,1],color='blue',marker='x',label='versicolor')
>>>plt.scatter(X[101:150,0],X[101:150,1],color='green',marker='s',label='virginica')
>>>plt.xlabel('Sepal length')
>>>plt.ylabel('Petal length')
>>>plt.legend(loc='upper left')
>>>plt.show()
>>>quit()

そうすると、以下のような図が表示されます。

若干、versicolorの種類とvirginicaの種類とが交差していますが、概ね、線形モデルで分類することが可能なのようです。次回は、この「アイリス花データ」を用いて、Supervised LearningによるClassificationのご紹介してみたいと思います。
参考までに、以下に、「アイリス花データ」の参考データを添付しました。
 

 

Iris setosa


Iris versicolor

Iris virginica

Spectramap biplot of Fisher's iris data set

Fisher's Iris Data
がく片の長さ
[cm]
がく片の幅
[cm]
花びらの長さ
[cm]
花びらの幅
[cm]
種類
5.1 3.5 1.4 0.2 I. setosa
4.9 3.0 1.4 0.2 I. setosa
4.7 3.2 1.3 0.2 I. setosa
4.6 3.1 1.5 0.2 I. setosa
5.0 3.6 1.4 0.2 I. setosa
5.4 3.9 1.7 0.4 I. setosa
4.6 3.4 1.4 0.3 I. setosa
5.0 3.4 1.5 0.2 I. setosa
4.4 2.9 1.4 0.2 I. setosa
4.9 3.1 1.5 0.1 I. setosa
5.4 3.7 1.5 0.2 I. setosa
4.8 3.4 1.6 0.2 I. setosa
4.8 3.0 1.4 0.1 I. setosa
4.3 3.0 1.1 0.1 I. setosa
5.8 4.0 1.2 0.2 I. setosa
5.7 4.4 1.5 0.4 I. setosa
5.4 3.9 1.3 0.4 I. setosa
5.1 3.5 1.4 0.3 I. setosa
5.7 3.8 1.7 0.3 I. setosa
5.1 3.8 1.5 0.3 I. setosa
5.4 3.4 1.7 0.2 I. setosa
5.1 3.7 1.5 0.4 I. setosa
4.6 3.6 1.0 0.2 I. setosa
5.1 3.3 1.7 0.5 I. setosa
4.8 3.4 1.9 0.2 I. setosa
5.0 3.0 1.6 0.2 I. setosa
5.0 3.4 1.6 0.4 I. setosa
5.2 3.5 1.5 0.2 I. setosa
5.2 3.4 1.4 0.2 I. setosa
4.7 3.2 1.6 0.2 I. setosa
4.8 3.1 1.6 0.2 I. setosa
5.4 3.4 1.5 0.4 I. setosa
5.2 4.1 1.5 0.1 I. setosa
5.5 4.2 1.4 0.2 I. setosa
4.9 3.1 1.5 0.2 I. setosa
5.0 3.2 1.2 0.2 I. setosa
5.5 3.5 1.3 0.2 I. setosa
4.9 3.6 1.4 0.1 I. setosa
4.4 3.0 1.3 0.2 I. setosa
5.1 3.4 1.5 0.2 I. setosa
5.0 3.5 1.3 0.3 I. setosa
4.5 2.3 1.3 0.3 I. setosa
4.4 3.2 1.3 0.2 I. setosa
5.0 3.5 1.6 0.6 I. setosa
5.1 3.8 1.9 0.4 I. setosa
4.8 3.0 1.4 0.3 I. setosa
5.1 3.8 1.6 0.2 I. setosa
4.6 3.2 1.4 0.2 I. setosa
5.3 3.7 1.5 0.2 I. setosa
5.0 3.3 1.4 0.2 I. setosa
7.0 3.2 4.7 1.4 I. versicolor
6.4 3.2 4.5 1.5 I. versicolor
6.9 3.1 4.9 1.5 I. versicolor
5.5 2.3 4.0 1.3 I. versicolor
6.5 2.8 4.6 1.5 I. versicolor
5.7 2.8 4.5 1.3 I. versicolor
6.3 3.3 4.7 1.6 I. versicolor
4.9 2.4 3.3 1.0 I. versicolor
6.6 2.9 4.6 1.3 I. versicolor
5.2 2.7 3.9 1.4 I. versicolor
5.0 2.0 3.5 1.0 I. versicolor
5.9 3.0 4.2 1.5 I. versicolor
6.0 2.2 4.0 1.0 I. versicolor
6.1 2.9 4.7 1.4 I. versicolor
5.6 2.9 3.6 1.3 I. versicolor
6.7 3.1 4.4 1.4 I. versicolor
5.6 3.0 4.5 1.5 I. versicolor
5.8 2.7 4.1 1.0 I. versicolor
6.2 2.2 4.5 1.5 I. versicolor
5.6 2.5 3.9 1.1 I. versicolor
5.9 3.2 4.8 1.8 I. versicolor
6.1 2.8 4.0 1.3 I. versicolor
6.3 2.5 4.9 1.5 I. versicolor
6.1 2.8 4.7 1.2 I. versicolor
6.4 2.9 4.3 1.3 I. versicolor
6.6 3.0 4.4 1.4 I. versicolor
6.8 2.8 4.8 1.4 I. versicolor
6.7 3.0 5.0 1.7 I. versicolor
6.0 2.9 4.5 1.5 I. versicolor
5.7 2.6 3.5 1.0 I. versicolor
5.5 2.4 3.8 1.1 I. versicolor
5.5 2.4 3.7 1.0 I. versicolor
5.8 2.7 3.9 1.2 I. versicolor
6.0 2.7 5.1 1.6 I. versicolor
5.4 3.0 4.5 1.5 I. versicolor
6.0 3.4 4.5 1.6 I. versicolor
6.7 3.1 4.7 1.5 I. versicolor
6.3 2.3 4.4 1.3 I. versicolor
5.6 3.0 4.1 1.3 I. versicolor
5.5 2.5 4.0 1.3 I. versicolor
5.5 2.6 4.4 1.2 I. versicolor
6.1 3.0 4.6 1.4 I. versicolor
5.8 2.6 4.0 1.2 I. versicolor
5.0 2.3 3.3 1.0 I. versicolor
5.6 2.7 4.2 1.3 I. versicolor
5.7 3.0 4.2 1.2 I. versicolor
5.7 2.9 4.2 1.3 I. versicolor
6.2 2.9 4.3 1.3 I. versicolor
5.1 2.5 3.0 1.1 I. versicolor
5.7 2.8 4.1 1.3 I. versicolor
6.3 3.3 6.0 2.5 I. virginica
5.8 2.7 5.1 1.9 I. virginica
7.1 3.0 5.9 2.1 I. virginica
6.3 2.9 5.6 1.8 I. virginica
6.5 3.0 5.8 2.2 I. virginica
7.6 3.0 6.6 2.1 I. virginica
4.9 2.5 4.5 1.7 I. virginica
7.3 2.9 6.3 1.8 I. virginica
6.7 2.5 5.8 1.8 I. virginica
7.2 3.6 6.1 2.5 I. virginica
6.5 3.2 5.1 2.0 I. virginica
6.4 2.7 5.3 1.9 I. virginica
6.8 3.0 5.5 2.1 I. virginica
5.7 2.5 5.0 2.0 I. virginica
5.8 2.8 5.1 2.4 I. virginica
6.4 3.2 5.3 2.3 I. virginica
6.5 3.0 5.5 1.8 I. virginica
7.7 3.8 6.7 2.2 I. virginica
7.7 2.6 6.9 2.3 I. virginica
6.0 2.2 5.0 1.5 I. virginica
6.9 3.2 5.7 2.3 I. virginica
5.6 2.8 4.9 2.0 I. virginica
7.7 2.8 6.7 2.0 I. virginica
6.3 2.7 4.9 1.8 I. virginica
6.7 3.3 5.7 2.1 I. virginica
7.2 3.2 6.0 1.8 I. virginica
6.2 2.8 4.8 1.8 I. virginica
6.1 3.0 4.9 1.8 I. virginica
6.4 2.8 5.6 2.1 I. virginica
7.2 3.0 5.8 1.6 I. virginica
7.4 2.8 6.1 1.9 I. virginica
7.9 3.8 6.4 2.0 I. virginica
6.4 2.8 5.6 2.2 I. virginica
6.3 2.8 5.1 1.5 I. virginica
6.1 2.6 5.6 1.4 I. virginica
7.7 3.0 6.1 2.3 I. virginica
6.3 3.4 5.6 2.4 I. virginica
6.4 3.1 5.5 1.8 I. virginica
6.0 3.0 4.8 1.8 I. virginica
6.9 3.1 5.4 2.1 I. virginica
6.7 3.1 5.6 2.4 I. virginica
6.9 3.1 5.1 2.3 I. virginica
5.8 2.7 5.1 1.9 I. virginica
6.8 3.2 5.9 2.3 I. virginica
6.7 3.3 5.7 2.5 I. virginica
6.7 3.0 5.2 2.3 I. virginica
6.3 2.5 5.0 1.9 I. virginica
6.5 3.0 5.2 2.0 I. virginica
6.2 3.4 5.4 2.3 I. virginica
5.9 3.0 5.1 1.8 I. virginica