天天看點

機器學習記錄(一)

注:本文是在觀看吳恩達教授的機器學習教程視訊後進行的總結,這裡全部都是在matlab中完成的,當然也可以使用Octave,因為本人電腦中之前下載下傳了matlab,是以就不用Octave了。

1.一些基本操作

加+

機器學習記錄(一)

減-

機器學習記錄(一)

乘*

機器學習記錄(一)

除/

機器學習記錄(一)

指數運算 ^

機器學習記錄(一)

還有常見的邏輯運算:等于 (==) 、不等于 (~=)(注意不要寫成 !=) 、與 (&&) 、或 (||) ,并用 0 表示為真(True), 1 表示為假(False)。還有異或運算 xor ,如 xor(0,1) 。

機器學習記錄(一)

 注釋使用%

機器學習記錄(一)

 在Octave中可以使用PS1('gzb>>')指令來更改等待指令的樣式,但是在matlab中沒有PS1指令。

2、變量

使用指令: a = 4 (把4的值賦給a) , 直接列印結果;如果将指令改為 a = 4; 則不會列印結果。在 matlab 中 " ; " 隐藏列印輸出。如果想看變量 a 的值,隻需輸入變量名,或者使用指令: disp(a) 。

機器學習記錄(一)

 将字元串或布爾值(true or false)賦給變量b

機器學習記錄(一)

format long 指令輸出字元串預設的位數,format short 指令輸出少量小數點後位數。也可以使用 "0.3%f" 表示代替c放在這裡并顯示 c值的小數點後三位數字 。

機器學習記錄(一)

 3、矩陣與向量

建立一個矩陣 A 輸入指令 A = [1 2; 3 4; 5 6] 這會産生一個 3x2的矩陣 A ,第一行是 1 2 ,第二行是 3 4, 第三行是 5 6,分号的作用其實就是在矩陣内換行到下一行。或者也可以使用矩陣 B 的方式建立一個矩陣。

機器學習記錄(一)

 同理可以建立一個一維行向量C=[1,2,3],或建立一個列向量D=[1;2;3]

機器學習記錄(一)

矩陣的計算和資料處理

假設有3個矩陣,A為3x2,B為3x2,C為2x2。則矩陣間的運算有:A*C(矩陣相乘)、A.*C(矩陣對應元素相乘)、A.^2(矩陣A中元素平方)、1./A(矩陣A中元素求倒數)。

機器學習記錄(一)

 索引

如何擷取矩陣中元素的值?如何在原有的矩陣基礎上增加一列或一行?下面的指令可以解決以上問題。

A(3,2)——找到第3行第2列

A(2,:)——獲得第2行所有元素

A(:,2)——獲得第2列所有元素

A([1,3],:)——獲得第1、3行所有元素

A=[A,[100,101,102]]——在矩陣A右邊新增一列

A(:,2)=[10;11;12]——用新的列向量替換矩陣A中的第2列

A(:)——把矩陣A中的所有元素合為一個單獨的列向量

C=[A,B]——将矩陣A和B合為一個新的矩陣C

C=[A;B]——将矩陣A和B組合為一個2列的新矩陣

機器學習記錄(一)

 一些特殊的矩陣生成指令,如:ones(3,2)--生成一個3x2的矩陣,且矩陣元素均為1;zeros(2,3)--生成一個2x3的矩陣,且矩陣元素均為0;eye(3)--生成一個3x3的機關矩陣;rand(1,3)--随機生成一個1x3的矩陣;randn(1,3)--随機生成一個服從高斯分布/正态分布的矩陣。

機器學習記錄(一)

此外還可以使用指令v=1:0.1:2來建構矩陣,從1到2以0.1為步長,一般預設步長為1。

機器學習記錄(一)

 使用hist()指令可以繪制直方圖,這裡用hist()來驗證高斯分布。

機器學習記錄(一)
機器學習記錄(一)

                                                     h(w)

機器學習記錄(一)

                                                   h(w,50)

 4、移動資料

矩陣A為3x2的矩陣,使用指令size(A)可以傳回矩陣A的大小(行和列);size(A,1)傳回矩陣A第一次元的大小(行數);size(A,2)傳回矩陣A的列數;length(A)傳回矩陣A最大次元的大小。

機器學習記錄(一)

 如何在檔案系統中加載和查找資料?

指令pwd可以查找目前檔案所在路徑;cd '這裡是新的路徑'指令可以改變目前檔案的路徑;ls指令列出該路徑下所有檔案;load data.txt 指令将桌面的data.txt檔案載入matlab,載入後data指令可直接傳回文本裡面的資料;who指令可顯示目前matlab中存儲的所有變量,whos指令可列出所有變量,還列出了變量的次元、占用的記憶體、資料類型。clear a 指令則是清除變量a;V=data(1:5)将data中前5個資料指派向量V,在通過指令save newdata.txt V -ascii;指令将向量V的資料以ASCII碼的形式儲存到新的檔案中。

機器學習記錄(一)

 儲存到桌面如下:

機器學習記錄(一)

 5、資料繪制

首先,繪制一個正弦函數y1

機器學習記錄(一)
機器學習記錄(一)

再繪制一個餘弦函數y2,這裡餘弦函數的圖像會覆寫正弦函數的圖像。

機器學習記錄(一)
機器學習記錄(一)

 如果我們想要y1不被覆寫,則可以使用指令hold on;再輸入plot(t,y2,'r')在同一個視窗繪制圖像(r表示紅色)

機器學習記錄(一)
機器學習記錄(一)

 如何給圖像打标簽?

xlabel('這裡是标簽内容')——給X軸打标簽

ylabel('這裡是标簽内容')——給Y軸打标簽

legend('這裡是标簽内容','這裡是标簽内容')——給圖像中的曲線打标簽

title('這裡是标題内容')——标題

機器學習記錄(一)
機器學習記錄(一)

我們也可以在兩個不同的視窗繪制分别繪制圖像。指令如下:

機器學習記錄(一)
機器學習記錄(一)
機器學習記錄(一)

 也可以将一個視窗分為1x2的格子,分别使用不同格子。

機器學習記錄(一)
機器學習記錄(一)

如何改變刻度?

機器學習記錄(一)
機器學習記錄(一)

生成5x5的彩色格圖,不同顔色對應不同的,magic為幻方矩陣,此函數傳回由 1 到 n2 的整數構成并且總行數和總列數相等的 n×n 矩陣。n 的階數

必須是大于或等于 3 的标量才能建立有效的幻方矩陣。

機器學習記錄(一)
機器學習記錄(一)

将彩色格圖轉化為灰階直方圖,右邊為不同灰階對應不同值。

機器學習記錄(一)
機器學習記錄(一)

繼續閱讀