Coursera上的Andrew Ng《機器學習》學習筆記Week2
Coursera上的Andrew Ng《機器學習》學習筆記Week2
作者:雨水/家輝,日期:2017-01-18,CSDN部落格:http://blog.csdn.net/gobitan
Lecture 1: Linear Regression with Multiple Variables多元線性迴歸
多個引數的線性迴歸與單引數並沒有特別不同。但有一點有所不一樣:當有多個引數的時候,如果兩個引數的尺度差異太大,會導致收斂速度不一致。可採用feature scaling和mean normalization解決。
![](https://i.iter01.com/images/53f3b08677fc2fffe7a1e5bafbb5180aa30862b303be80cd724f39176b840c7b.png)
梯度下降演算法實踐:特徵尺度(Feature Scaling)和mean normalization 均值歸一化
Gradient Descent Practice: Learning Rate
![](https://i.iter01.com/images/1c7f6ddc51b886248ecfa4a9ff76f64ce682930903463d45a3d78092515fbcbb.png)
Features and Polynomial Regression(多項式迴歸)
![](https://i.iter01.com/images/3ed3776e1c9b2960d3c1d00eb17f0866c129de2d06e1dd26632d289986b03e16.png)
上圖感覺未完全懂?
normal equation標準方程
![](https://i.iter01.com/images/629ff4ac4980f018255618d3917457c33543c426e9727f6209ea648ba198fa83.png)
多元迴歸的標準方程推導:Xθ=y --> XT Xθ= XT y -->XTX θ= XT y -->(XTX)-1 XTX θ =(XTX)-1 XTY --> θ= (XTX)-1 XTy
Octave的表達:pinv(x'*x)*x'*y
梯度下降演算法與標準方程對比:
![](https://i.iter01.com/images/718c11a23afb4d803e2b68abe129cb84fd0d8cdda9873f65f22db8a1fb8b1763.png)
Normal Equation Noinvertibility 標準方程的不可逆
講的是(x'*x)不可逆的情況,如:
[1] 冗餘的特徵(比如引數之間線性依賴)
[2] 引數太多(eg. m<=n) 注:m為樣本數,n為特徵數
Lecture 2: Octave/Matlab Tutorial
這部分知乎上有比較全的講解,可參考:https://zhuanlan.zhihu.com/p/22484964 Octave/Matlab教程-Coursera-史丹佛-機器學習
Octave入門
%表示行註釋
;表示該行的值不輸出,如下所示:
>> a=3;
>> a=3
a = 3
>>
其他例子:
>> a=pi
a = 3.1416
>> disp(a)
3.1416
>> format long
>> a
a = 3.14159265358979
sprintf的使用類似C語言的格式化
矩陣的輸入:
>> A=[1 2; 3 4; 5 6]
A =
1 2
3 4
5 6
>>
冒號表示式的規則是告訴octave建立一個以第一個數字開始並以1遞增至第二個數的向量。在第一和第 二個數之間可以插入第三個引數來宣告向量中元素之間的遞增量。如下所示:
>> 1:3
ans =
1 2 3
>> 1:0.5:3
ans =
1.0000 1.5000 2.0000 2.5000 3.0000
>>
>> ones(2,3)
ans =
1 1 1
1 1 1
>> zeros(1,3)
ans =
0 0 0
>>
rand(M,N) 建立一個MXN的矩陣,元素為隨機值
hist直方圖
diagonal matrix對角矩陣
>> eye(4)
ans =
Diagonal Matrix
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>>help eye
Moving Data Around
>>who %檢視當前的變數
>>whos %檢視當前變數的詳情
>>save hello.dat A; %將A儲存至hello.dat檔案
>>clear A %清除變數A
>>load hello.dat %載入資料檔案hello.dat
Computing on data
矩陣乘法A*B
A.*B表示對應的元素相乘,類似寫法A.^2表示A的每個元素做平方,1./A表示1除以每個元素
>> A=[1 2; 3 4]
A =
1 2
3 4
>> 1./A
ans =
1.00000 0.50000
0.33333 0.25000
>> log(A)
ans =
0.00000 0.69315
1.09861 1.38629
>>
A(:)將矩陣轉為一個向量,如:
>> A(:)
ans =
1
3
2
4
>>
類似的還有指數exp,絕對值abs,直接用負號-作為字首,最大值max,求和sum
>> B=[1; 2; 3]
B =
1
2
3
>> sum(B)
ans = 6
>>
矩陣的轉置A'
A(m:n)表示取向量的第m個元素到第n個元素進行賦值。對於矩陣來說,元素編號是從上到下,從左向右依次編號。
記住兩點:
[1] :表示取向量的元素。前面的數字表示開始的序號,後面的數字表示結束的序號。如果數字省略了,前面的預設值就是1,後面預設值就是最後一個;
[2] ,表示索引矩陣中的某個值。前面的數字表示行序號,後面的數字表示列序號。
Plotting Data資料視覺化
>> t=[0:0.01:0.98];
>> y1=sin(2*pi*4*t);
>> plot(t,y1) % 畫圖
>> xlabel('time') % x軸標籤
>> ylabel('value') % y軸標籤
>> legend('sin') % 圖例
>> title('my plot') % 標題
>> print -dpng 'myplot.png' % 儲存圖
![](https://i.iter01.com/images/41f1b136b511da383670405b91511ea47d3c4cbc625f1556d9ce359be82332d3.png)
figure用於畫多張圖,subplot用於多個圖畫在一張上面。
imagesc用於給矩陣畫圖
Control Statements: for, while, if statement
for迴圈語句
>> for i=1:10,
> v(i)=2^i;
> end
while迴圈語句
>> i = 1;
>> while i<=5,
> v(i) = 100;
> i = i+1;
> end;
if語句
>> if i==1,
disp('The value is one.')
else
disp('The value is not one.')
end;
The value is not one.
>>
定義函式
>> function y = squareThisNumber(x)
y=x^2;
end;
>> squareThisNumber(4)
ans = 16
>>
也可以將函式定義在檔案中,檔案以m結尾,然後將其路徑新增到Octave的路徑中。
>> addpath('C:/Users/dhu/Desktop') % 新增搜尋路徑
成本函式的定義如下所示:
Vectorization向量化
參考資料:
[2] https://zhuanlan.zhihu.com/p/22484964 Octave/Matlab教程-Coursera-史丹佛-機器學習
相關文章
- 吳恩達(Andrew Ng)——機器學習筆記1吳恩達機器學習筆記
- Coursera 機器學習 第9章(上) Anomaly Detection 學習筆記機器學習筆記
- Andrew NG 深度學習課程筆記:梯度下降與向量化操作深度學習筆記梯度
- 大型機器學習【Coursera 史丹佛 機器學習】機器學習
- 機器學習學習筆記機器學習筆記
- 【Andrew Ng 機器學習】Week 1(二):代價函式和梯度下降機器學習函式梯度
- 機器學習整合學習—Apple的學習筆記機器學習APP筆記
- Andrew NG 深度學習課程筆記:二元分類與 Logistic 迴歸深度學習筆記
- 機器學習筆記機器學習筆記
- Python機器學習筆記:sklearn庫的學習Python機器學習筆記
- 李巨集毅機器學習-學習筆記機器學習筆記
- 機器學習學習筆記——基本知識機器學習筆記
- 機器學習演算法學習筆記機器學習演算法筆記
- 機器學習 | 吳恩達機器學習第九周學習筆記機器學習吳恩達筆記
- 《機器學習初步》筆記機器學習筆記
- 機器學習課程筆記機器學習筆記
- 學習筆記-虛擬機器筆記虛擬機
- Machine Learning 機器學習筆記Mac機器學習筆記
- JavaScript入門學習學習筆記(上)JavaScript筆記
- 機器學習框架ML.NET學習筆記【9】自動學習機器學習框架筆記
- 吳恩達《構建機器學習專案》課程筆記(1)– 機器學習策略(上)吳恩達機器學習筆記
- 吳恩達機器學習筆記 —— 18 大規模機器學習吳恩達機器學習筆記
- 吳恩達機器學習筆記 —— 11 應用機器學習的建議吳恩達機器學習筆記
- Lua 學習筆記(上)筆記
- 機器學習演算法:Logistic迴歸學習筆記機器學習演算法筆記
- AI學習筆記之——如何理解機器學習(Machine Learning)AI筆記機器學習Mac
- 從機器學習新手到工程師:Coursera 公開課學習路徑指南機器學習工程師
- 【筆記】《Python大戰機器學習》筆記Python機器學習
- JAVA虛擬機器學習筆記Java虛擬機機器學習筆記
- numpy的學習筆記\pandas學習筆記筆記
- 《吳恩達機器學習》學習筆記007_支援向量機吳恩達機器學習筆記
- 吳恩達機器學習筆記 —— 1 緒論:初識機器學習吳恩達機器學習筆記
- 吳恩達機器學習筆記 —— 12 機器學習系統設計吳恩達機器學習筆記
- Scikit-Learn 與 TensorFlow 機器學習實用指南學習筆記2 — 機器學習的主要挑戰機器學習筆記
- 吳恩達機器學習筆記 —— 14 無監督學習吳恩達機器學習筆記
- 機器學習個人筆記(三)之無監督學習機器學習筆記
- 機器學習-學習筆記(二) --> 模型評估與選擇機器學習筆記模型
- 機器學習學習筆記之——演算法鏈與管道機器學習筆記演算法
- 圖文並茂,700 頁的機器學習筆記火了!值得學習機器學習筆記