python機械学習プログラミング(2章28ページ下段のプログラム)
2章の下段のプログラムはいったい何を意味しているの?
プログラムも、数学もよくわからない僕は何もついていけずにただ、字を目で追うだけになっていました。
自分なりの理解
import matplotlib.pyplot as plt import numpy as np y=df.iloc[0:100, 4].values y = np.where(y == 'Iris-setosa', -1, 1) X = df.iloc[0:100, [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.xlabel('sepal length [cm]') plt.ylabel('petal length [cm]') plt.legend(loc='upper left') plt.show()
このプログラムはグラフ(散布図)を書くプログラムです。
機械学習の事について話をする前の準備みたいなものです。
もう少し具体的に話をすると「28ページの上のプログラムでとってきたデータを実際どんなデータなのかを絵にしてみてみよう。」というのがこのプログラムです。
このプログラムの流れはこんな感じ。
- matplotlib.pyplotというところにアクセスします。今度アクセスするときpltと書くのでよろしく!
- numpyというところにもアクセスしますよ!!これはnpと書くのでよろしく!!
- dfの中にあるデータから4列目の100行目までを取り出します。それをyとします。(dfは28ページの上のプログラムで処理しています。)
- y(dfの4列目の100行目までのデータ)の中からIris-setosaを探し出して-1に置き換える。それ以外は1に置き換える。(npが出てきました。npはnumpyの事です。)
- dfから100行目までの1列目と3列目を取り出します。それをXとします。
- pltを使って散布図を書いていきます。Xの50行目までの1列目をグラフの縦軸に、Xの50行目までの2列目をグラフの横軸にしてプロットします。色は赤で、点の形は〇で、ラベルはsetosaとします。
- 同様にpltを使って散布図を書いていきます。Xの51から100行目の1列目をグラフの縦軸に、Xの51から100行目までの2列目を横軸にしてプロットします。色は青で、点の形は×で、ラベルはversicolorとします。
- pltを使ってx軸のラベルを書きます。名前はsepal length [cm]とします。
- pltを使ってy軸のラベルを書きます。名前はpetal length [cm]とします。
- pltを使って凡例を入れます。場所はupper left(上部左側)にします。
- 散布図を表示します。
という感じのプログラミングです。
作図のためのプログラムです。このデータの集まりを機械学習で分類していきます。