[ML] 在 Windows 環境下使用 Octave (一)
在學習 Machine Learning 時, 通常大家都會使用 Matlab 與 Octave 來進行程式的運算.
Octave 也是直譯式的語言, 最初它的目標就是提供一套相容於 Matlab語法的 free software,
所以如果你已經學過了 Matlab, 那麼使用 Octave 對你來說應該不是太大的問題.
詳細的安裝步驟可以從Octave的Wiki網頁上依照你的 OS 系統來選擇.
豆喵平常工作的環境是Ubuntu, 所以比較習慣 Unix的操作介面,
本來想嘗試在Windows的cygwin上面安裝Octave, 不過安裝之後在GUI部分還少了一些插件,
為了簡單一點所以還是選擇到他們的FTP下載Windows版本的安裝.
Ubuntu的話就直接 $apt-get install octave 即可~
在Windows的工作介面非常接近於 Matlab, 有使用過Matlab的同學應該可以很快上手 :)
Octave 常用到的操作都是對於矩陣進行操作的, 在使用加減乘除的時候要特別留心.
矩陣的描述為 [Row size x Colume size],
每一筆資料會是一個 Row, 因此有三筆的話, Row 會是 3
每一筆資料的元素會是一個 Colume, 因此一筆資料有10個元素的話, Colume 會是 10.
所以有3筆資料, 各10個元素的話, 你的矩陣表示法會是 [3 x 10]
矩陣的操作行為:
假設你有一個 [3 x 10] 的矩陣 X, [10 x 1] 的矩陣 Y.
則 X * Y 會得到一個 [3 x 1] 的矩陣
X + Y會出現錯誤, 因為維度不同.
若要每個元素單獨操作, 則你需要在前面加上一個句號, 變成 .*
這時候你拿 X .* Y 也會因為維度不同而出現錯誤:
error: product: nonconformant arguments (op1 is 3x10, op2 is 10x1)
特別的是當你只有單一Colume的時候, octave會幫你防呆直接進行運算.
不過最好還是避免這樣的操作...
另外幾個常用的操作如下:
求得轉置矩陣 (Transpose), 直接加上一個單引號可以得到 [10 x 3]的轉置矩陣:
X'
求得反矩陣 (Inverse):
pinv(X)
你可以試試使用 X * pinv(X)看看得到的結果是甚麼
* 注意這個pinv求反矩陣是即使你的X為non singular的時候它也會試著求解.
加總矩陣元素: sum(X)
它會將每一個Colume的元素加總, 假設你有 X 如下
8 3 4
1 5 9
6 7 2
8 3 4
1 5 9
6 7 2
則 sum(X) 會得到 [30 30 30] 的 [1 x 3] 矩陣
提到了函式, Octave和Matlab一樣都支援自定義函式,
只要你在同一個操作目錄下就可以直接使用. (當然, 你也可以透過將操作路徑 ($addpath) 加入搜尋路徑)
例如說你有一個 catFunction.m
內容如下:
function[outMatrix] = catGenRandXY[length_X, length_Y]
outMatrix = round(rand(length_X, length_Y) * 100);
接著在command line輸入
matrix = catGenRandXY(3, 10)
就會得到一個 [3 x 10] 的 matrix 囉
訂閱:
張貼留言 (Atom)
OpenGL 閱讀筆記 (二) OpenGL基本操作
這邊虎喵跳過glfw/glew的初始化, 先來提一下OpenGL的基本操作方式 前面也提到過, OpenGL是一個類C的語言, 因此使用C/C++的攻城獅們應該會感到很熟悉. OpenGL的基本動作循環如下: 每一行code的解釋如下: // 本地變數,...
-
前面幾篇關於FaceDetection的文章已經介紹如何應用openCV內建的 library 以及分析臉部辨識所需要的xml檔案 這一篇文章將會介紹如何產生出 xml 檔案提供給 openCV使用 獲取人臉資料庫 因為要重新訓練出模型, 因此需要有大量...
-
深入研究演算法 為了能夠即時地計算出Face, 使用了三個的方式來達到目的 1. Integral Image 2. AdaBoost 3. Cascade filter Integral Image - 積分圖 當計算一個圖像當中某個區域的積分 ...
-
Face Detection Example 今天喵把課題提升到 FaceDetection的 Level 感覺FaceDetection是個非常高深的題目 不過, 使用了openCV所提供的 library, 喵一下子就做到了臉部偵測~ 主程式為 int ma...

沒有留言:
張貼留言