python機械学習プログラミング(2章29ページ)

読み始めた当初機械学習って何が出来るのかな?と思いながらひたすら読んでいました。。。読んでいたというよりも字を目で追っていた。というほうが正解ですね。

プログラムが書いてあっても何を意味するのか分からず。。。


自分なりの理解

ppn = Perceptron(eta=0.1, n_iter=10)
ppn.fit(X,y)
plt.plot(range(1, len(ppn.errors_) + 1), ppn.errors_, marker='o')
plt.xlabel('Epochs')
plt.ylabel('Number of misclassifications')
plt.show()

このプログラムでいよいよ機械学習の最初のデモです。24ページから25ページで書いたプログラムをここで実行します。

ここで理解を深めるために。。。機械学習は沢山あるデータを分類することを人間に変わってやってもらおうという事です。

これをうまくやれば画像から猫を見つけたり。

花の大きさから種類を分けてみたり。

動画から人間を見つけたり。

人間の形が分かれば自動運転で人をよけることが出来たり。

という事をやっていくという事だと僕は理解しました。

この第2章では花を種類ごとに分けるという作業をしていきます。

ざっくり24ページからの流れを書いてみます。

  1. 24ページから25ページのプログラムで機械学習の本体を作成しました。
  2. 28ページの上のプログラムでpandasというところから花のデータをとってきました。その花のデータを機械に分類してもらいます。
  3. 28ページの下のプログラムでは花のデータの内容がどんなものであるかを散布図にして表示して確認するプログラムを作りました。
  4. そしていよいよ24ページで作った機械学習パーセプトロン)のプログラムを実行します。

さて、もう一度プログラムに戻って何をしているかを見ていきます。

ppn = Perceptron(eta=0.1, n_iter=10)
ppn.fit(X,y)
plt.plot(range(1, len(ppn.errors_) + 1), ppn.errors_, marker='o')
plt.xlabel('Epochs')
plt.ylabel('Number of misclassifications')
plt.show()

このプログラムは24ページ~25ページで作成した機械学習パーセプトロン)を使用していきます。
何をしているかというと10回繰り返し学習させてどのぐらい賢くなったかをチェックしています。
チェックした後は1回目から10回目の間にどのぐらいうまく分類できているのかをグラフに表示するという事をしています。

では、プログラムを見ていきます。
24ページで作ったPerceptronを呼び出すところから始まります。

  1. Perceptronを呼び出して、次に呼び出すときはppnという書き方で呼び出しますよ!!というpythonとのお約束。ちなみにetaを0.1として、n_iterを10として。(etaは21ページの\etaで、n_iterの10は学習を10回繰り返すという事です。
  2. ppn(Perceptron)を呼び出して、その中に作った、fitという関数を読みだしています。まさに今学習をさせた瞬間です。ここまでで機械学習の実行は完了です。
  3. ここからは10回繰り返してどのぐらいうまく分類できたかをグラフに表示するプログラムです。
  4. plt(matplotlib.pyplot)を呼び出して、1から学習回数をx軸に、y軸に上手く分類できなかった個数をプロットします。点の形は〇でとります。
  5. x軸のラベルはEpochsとします。
  6. y軸のラベルはNumber of misclassificationsとします。
  7. 図を表示します。

という感じです。自分なりにこのように理解しました。

こんな分かり切った分類にこんなにやらないといけないのか?とか思ったりしますが、画像を見て猫だと判断することは人にとって比較的容易なことですが、それを機械にしてもらうにはどうしたらいいでしょう?

子供に「これは猫だよ」と教えてもすぐには覚えられないですよね。

ただ、見せるだけで子供は覚えてくれます。機械も最近出来るようになってきたみたいですが、この本の24ページから28ページに書かれていることを理解することでその一端に触れることが出来るという事なのでしょう。

と理解しました。