機械学習(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 versicolor |
Iris virginica |
Spectramap biplot of Fisher's iris data set
[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 |