とらりもんHOME  Index  Search  Changes  Login

機械学習入門: 機械学習初体験

機械学習入門に戻る!)

ここでやる課題は, RaspberryPiではじめる機械学習 第4章, 第5章に相当する。また, 以後は, Linuxシェルから直接でなく, pythonシェルに入った状態で, サンプルプログラムを走らせる。その方が, サンプルプログラムが何をやっているかがわかりやすいからである。

まず, カレントディレクトリが, ウォームアップで用意したwork_Raspiであることを確認し, pythonシェルに入ること:

$ pwd
$ ipython3

以下, pythonシェルのプロンプトを"In []: "で表す(従って, それらを打つ必要はない)。

1. サンプルデータの読み込み

課題1-1: 以下のコマンドを打ってみよ:

In []: run ml-04-01-irisbasic.py

これは, scikitlearnの中に入っている, 機械学習の習得用のサンプルデータを読むプログラムである。そのサンプルデータは, 様々なアヤメ科の植物について, 花のサイズなどの特徴と, その種(アヤメ科にはいろんな種がある!)を調べたものである。詳しくは「RaspberryPiではじめる機械学習」を参照。

課題1-2: 以下のコマンドを打ってみよ:

In []: X
(何か表示が出る)
In []: y
(何か表示が出る)
In []: help(X)
(何か表示が出る。終わらせるにはqを押す)
In []: help(y)
(何か表示が出る。終わらせるにはqを押す)
In []: X.shape
(何か表示が出る)
In []: y.shape
(何か表示が出る)

課題1-3: このXとyという2つのオブジェクトの型は何か? ていうかそもそもオブジェクトって何だったか?

課題1-4: 課題1-1を再度やってみて, その結果が何を意味しているか考えよ。

課題1-5: 以下のコマンドを打って, このプログラムの中身を覗き, 何をやっているか解読せよ(このcatコマンドはLinuxシェルのコマンドだが, pythonシェル(ipython)でも動く):

In []: cat ml-04-01-irisbasic.py

課題1-6: ml-04-01-irisbasic.pyの, import numpy as npという文のすぐあとにimport sysという文を追加し, print(y)という文のすぐあとにsys.exit()という文を追加し, 保存して実行してみよ。

課題1-7: ml-04-01-irisbasic.pyの, print(X)をprint(X[1,:])に変更し, 保存して実行してみよ。

課題1-8: ml-04-01-irisbasic.pyの, #で始まる行をぜんぶ削除して保存し, 実行してみよ。

2. サポートベクトルマシンによるアヤメの分類

課題2-1: 以下のコマンドを打ってみよ:

In []: run ml-04-02-2feat2class01.py

課題2-2: このプログラム"ml-04-02-2feat2class01.py"の中身を覗き, 何をやっているか解読せよ

課題2-3: X = X[:,:2]という行を, X = X[:,2:4]に変更して保存し, 実行してみよ。

課題2-4: Xの第1特徴量と第3特徴量だけを使って分類するにはどうすればよいか?

課題2-5: ml-04-04-2feat3class.pyを走らせよ。

課題2-6: このプログラムの中身を覗き, 何をやっているか解読せよ

課題2-7: テキストのP121で書かれている改変をやってみよ。

課題2-8: ml-04-05-4feat3class.pyを走らせよ。

課題2-9: このプログラムの中身を覗き, 何をやっているか解読せよ

3. 多層ニューラルネットワークによるアヤメの分類

課題3-1: ml-05-01-2feat3class-nn.pyを走らせよ。表示される結果は何を意味するか, 考えよ。

課題3-2: このプログラムの中身を覗き, 何をやっているか解読せよ

課題3-3: ml-05-02-4feat3class-nn.pyを走らせよ。表示される結果は何を意味するか, 考えよ。

課題3-4: このプログラムの中身を覗き, 何をやっているか解読せよ

4. 手書き数字の分類

課題4-1: ml-06-01-digitsbasic.pyを走らせよ。表示される結果は何を意味するか, 考えよ。

課題4-2: ml-06-02-images.pyを走らせよ。表示される結果は何を意味するか, 考えよ。

課題4-3: ml-06-03-plot3d.pyを走らせよ。表示される結果は何を意味するか, 考えよ。

課題4-4: ml-06-09-nn-gui.pyを走らせよ。君の手書き数字(0から9までの10個)をマウスで入力し, 認識させてみよ。正答率はどのくらいだったか?

課題4-5: ml-06-11-nn-gui-mod.pyを走らせよ。君の手書き数字(0から9までの10個)をマウスで入力し, 認識させてみよ。正答率はどのくらいだったか?

機械学習入門に戻る!)