SSブログ

Week7を終了した [Octave]

(2018.09.26)

Machine Learning(↓)のWeek7まで課題をクリアしました。
https://www.coursera.org/learn/machine-learning/home/welcome
第7週はサポートベクターマシン(SVM)を使った識別でした。
<結果>
==
== Part Name | Score | Feedback
== --------- | ----- | --------
== Gaussian Kernel | 25 / 25 | Nice work!
== Parameters (C, sigma) for Dataset 3 | 25 / 25 | Nice work!
== Email Preprocessing | 25 / 25 | Nice work!
== Email Feature Extraction | 25 / 25 | Nice work!
== --------------------------------
== | 100 / 100 |
パチパチパチ~

今回初めて参考資料のTutorialを利用して課題に取り組みました。
2018_0926_1.pngEx6 Tutorialsが第7週の分
かみ砕いて説明してくれる訳ではありませんが、関数等の利用の仕方が示されるので、課題に取り組む方針が何となく見えてきます。

SVMのモデル作成と評価の手順は関数化されています(svmTrain関数とsvmPredict関数を利用する)。ですので、課題もSVMをどう使うか?という比較的優しい内容でした。

SVMのモデル構築と評価はこんな感じ(↓)です。
model= svmTrain(X, y, T_C, @(x1, x2) gaussianKernel(x1, x2, sig));
pred = svmPredict( model, Xval);
error = sum((pred - yval).^2);

今回の一番大きな収穫は『デバッグ・モード』が使えるようになったことです。
Tutorialで「ブレーク・ポイントを設定して・・・」という説明を見て初めて、Octaveでプログラムにブレーク・ポイントを設定出来ることを知りました。(<==もっと早く知りたかった)

使い方はこんな感じです。

>> dbstop('ex6_spam',36); <==36行目にブレーク・ポイントを設定する
>> dbstatus
breakpoint in ex6_spam at line 36
>>ex6_spam
(プログラムが走って・・・)
=========================
stopped in C:\Users\akira\Desktop\Machine-Learning\machine-learning-ex6\ex6\ex6_spam.m at line 36
36: fprintf('Word Indices: \n'); <==36行目の実行前にブレークが掛かる
debug> <==デバッグモードのプロンプト

debug> who
Variables in the current scope:

file_contents word_indices <==関数内のローカル変数が見える

debug> dbstep <==ステップ実行する
Word Indices:   <== 36行目の実行結果
stopped in C:\Users\akira\Desktop\Machine-Learning\machine-learning-ex6\ex6\ex6_spam.m at line 37
37: fprintf(' %d', word_indices);  <==37行目の実行前に再びブレークが掛かる

debug> dbstep <==ステップ実行する
86 916 794 1077 883 370 1699 790 1822 1831 883 431 1171 794 1002 1893 1364 592 1676 238 162 89 688 945 1663 1120 106
2 1699 375 1162 479 1893 1510 799 1182 1237 810 1895 1440 1547 181 1699 1758 1896 688 1676 992 961 1477 71 530 1699 5 <== 37行目の実行結果
31stopped in C:\Users\akira\Desktop\Machine-Learning\machine-learning-ex6\ex6\ex6_spam.m at line 38
38: fprintf('\n\n');
debug>dbquit <==デバッグ・モードを抜ける

>>

ブレーク・ポイントを設定したプログラムをエディタでみるとこんな感じ(↓)でした。
2018_0926_2.pngブレークを設定すると行番号の左に赤丸が付く

行番号の左(赤丸の位置)をマウスでクリックするだけでブレーク・ポイントを設定/解除出来ることが判りました。(<==これは使える)

この技を知って、デバッグがかなり楽になったのではないか?と思います。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
管理人もお世話になっています。





nice!(2)  コメント(0) 
共通テーマ:日記・雑感

nice! 2

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。