【機械学習】Octaveについて【Coursera】-その7-

Courseraで受講している機械学習について、勉強したことをアウトプットしていこうと思います。
あくまでも自分用となるので、もっと詳しく知りたい人は是非受講してみてください。

Octaveでの学習について

Octaveは主に数値解析を目的とした高レベルプログラミング言語で、
機械学習でよく利用されるPythonやC++などよりも早くアルゴリズムを構築することが可能です。
ですので、今回からはPythonではなくOctaveでの迅速な実装を目指していきます。

Octaveの演算子、比較演算子

以下が演算子です。通常の言語と変わりません。

そして以下が比較演算子です。
!=ではなく~=となるようなので注意ですね。
そして排他的論理和(xor)が実装しないでもコマンドとして存在する。。。
これは素晴らしいですね。

Octave計算用基本コマンド

Octaveは戻り値を返すのが既定の動きですが、末尾にセミコロンを付与することで戻り値を抑制できるようです。

また、dispを利用すると明示的に戻り値を取得します。
sprintfを利用すると細かく実装することもできるようです。

行列やベクトルなどを代入する際は以下のようにします。
どこかで見たことあるような無いような書き方

以下のようにコロンを利用して、「1から0.1刻みで2までの数字を代入」ということもできます。

onesやzerosなども行列を作成する際に便利です。
行列の掛け算なども簡単にできます。

randやrandnを利用すると、以下のようにランダムな数字を代入することもできます。
→randnはガウス分布です。

以下のようにhistを利用して手軽にグラフ化することもできます。
sqrt平方根です。

単位行列はeyeというコマンドで生成します。
eyeというのはIdentityからとったダジャレだとのこと(笑)

次はsizeコマンドについてです。
このコマンドは、行列の形状を返します。
また、第2引数に1を入れることで行数、2で列数を取得できます。
戻り値も行列なので、それすらもsizeコマンドで形状を取得することができます。

次はwhoコマンドについて、
このコマンドは現在メモリにキャッシュされているデータを表します。
whosでより細かな情報を得られます。
以下は先程定義した変数たちが表示されています。

saveコマンドも便利ですので覚えておきましょう。
save ファイル名 保存する値
という構文です。
ちなみに、末尾に文字コードを指定してあげるとテキストベースで保存できます。

行列の操作についても見てみましょう。
:はすべての値という意味で利用していることがわかりますね。

もちろん以下のように代入することもできます。

以下のように入れ子にして新規にデータを代入することもできます。

終わりに

とりあえず長くなりそうなので今回は以上で終了とします。
次回も引き続きOctave関連になることと思います。

ではまた・・・