1. 程式人生 > >1 Week One 1.1 Programming Exercise 1: Linear Regression

1 Week One 1.1 Programming Exercise 1: Linear Regression

1 Week One
1.1 Programming Exercise 1: Linear Regression
在檔案warmUpExercise.m中,您將找到Octave / MATLAB函式的大綱。 通過填寫以下程式碼將其修改為返回5 x 5的單位矩陣:
這裡寫圖片描述
效果圖:
這裡寫圖片描述
接下來,指令碼呼叫plotData函式來建立資料的散點圖。 你的工作是完成plotData.m來繪製情節; 修改該檔案並填寫以下程式碼:
這裡寫圖片描述

效果圖:
這裡寫圖片描述
當您執行梯度下降以學習最小化成本函式J(θ)時,通過計算成本來監控收斂是有幫助的。 在本節中,您將實現一個計算J(θ)的函式,以便檢查梯度下降實現的收斂性。 您的下一個任務是完成computeCost.m檔案中的程式碼,該檔案是計算J(θ)的函式。 當你這樣做時,請記住變數X和y不是標量值,而是矩陣的行代表了訓練集中的例子。 完成該功能後,ex1.m中的下一步將使用θ初始化為零來運computeCost,並且您將看到在螢幕上顯示的成本。
這裡寫圖片描述


效果圖:
這裡寫圖片描述
計算結果和預期是一致的,成本函式計算正確。
接下來,您將在檔案gradientDescent.m中實現漸變下降。迴圈結構已經為您編寫,您只需在每次迭代中向θ提供更新。在您程式設計時,確保您瞭解您要優化的內容以及正在更新的內容。請記住,成本J(θ)由向量θ而不是X和y進行引數化。也就是說,我們通過改變向量θ的值而不是通過改變X或y來最小化J(θ)的值。
這裡寫圖片描述
效果圖:
這裡寫圖片描述
到這裡就滿分了。
為了更好的理解訓練過程,我把程式碼改了下,選取迭代過程中的1、300、600、900、1200、1500迭代顯示效果。效果如下:
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
在featureNormalize.m中,填寫如下程式碼:

這裡寫圖片描述

提交後,效果如下:
這裡寫圖片描述
您應完成computeCostMulti.m和gradientDescentMulti.m中的程式碼以實現具有多個變數的線性迴歸的成本函式和梯度下降。 如果你的程式碼在前一部分(單個變數)已經支援多個變數,那麼你也可以在這裡使用它。分別如下:
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

完成normalEqn.m中的程式碼以使用上面的公式計算θ。
這裡寫圖片描述
效果圖
這裡寫圖片描述
兩種方法得到的theta值不一樣,但是結果可能是一致的。是的,因為原理是不一樣的。通過視覺化,顯示出價格基本是一致的。
這裡寫圖片描述
這裡寫圖片描述
任務完成!!!恭喜恭喜!