吳恩達機器學習總結五 單變數線性回歸實戰

2021-08-22 03:23:50 字數 1944 閱讀 5333

線性回歸實戰總結:

單變數線性回歸:

1、載入和檢視資料(準備工作)

2、定義代價函式(準備工作,遞迴下降的時候要呼叫)

定義輸入:x,y,引數theta

單變數線性回歸定義式:

這裡可以看出引數為2*1矩陣,為方便矩陣計算,因為x的列數要等於θ的行數

所以假設x0=1,即θ0=θ0*x0,把所有x最左邊加一列1,擴充套件為兩列的x矩陣

m=length(x) //獲得x矩陣的行數

x=[ones(m,1),x]; //構造乙個跟x相同行數的全1的列向量,並和x合併成x矩陣

theta=zeros(2,1);//構造2*1的零矩陣theta

定義輸出:計算在當前引數theta的情況下,系統的代價函式值

function j = computecost(x, y, theta)

j=0; //初始化代價函式值j

m=length(y) //計算樣本個數,就是上式中的m,後邊要用

predict = x*theta; //計算根據當前引數計算出的**值

j = sum((predict-y).^2)/(2*m) //計算上式,返回代價函式值

end

3、遞迴下降法尋找引數區域性最優解

定義迭代下降函式:

定義輸入:x,y,theta(計算代價函式),alpha,iterations

其中α確定每次迭代的步長,這裡暫設為0.01

還要指定迭代次數,因為可能永遠迭代不完,暫定為1500次

alpha=0.01;

iterations=1500;

定義輸出:theta(最終求得引數構造**函式)、j_history(記錄代價函式值,用於檢驗)

function [theta, j_history] = gradientdescent(x, y, theta, alpha, num_iters)

m = length(y);

j_history = zeros(num_iters,1);

for i = 1:num_iters

theta = theta-alpha/m*(x』*(x*theta-y));

j_history(i,1)=computecost(x,y,theta);

end

end

在函式中呼叫:

[theta,j_history]=gradientdescent(x,y,theta,alpha,iterations);

4、檢驗迭代過程是否正確

繪製每一步迭代的代價函式值的變化圖,看代價函式值是不是一直在下降:

將引數帶入表示式,用表示式進行**:

按照**方程將原始資料的屬性帶進去,得到**值,發現就在那條直線上,然後與真實資料差異較大,因為真實資料可能本來也不是線性關係

吳恩達《機器學習》課程總結(2)單變數線性回歸

監督學習中的回歸問題案例房價 監督演算法的工作方式 案例中 表示訓練集的數量,代表特徵 輸入變數,代表目標變數 輸出變數,y 代表例項,i y i 代表第 個觀察例項,代表假設 函式 輸入到輸出的對映。房價 的一種表達方式 只有乙個變數,所以成為當變數線性回歸問題。對於回歸問題常用的代價函式是平方誤...

吳恩達機器學習 單變數線性回歸 學習筆記

說明 本文是本人用於記錄學習吳恩達機器學習的學習筆記,如有不對之處請多多包涵.一 模型的描述 下面的這張是對於課程中一些符號的基本的定義 吳老師列舉的最簡單的單變數線性回歸方程 二 代價函式 這節課的主要目標是如何選擇這個模型的兩個引數 下圖是吳老師的分析怎麼將模型轉化求解需要的兩個引數 h x 的...

機器學習筆記 吳恩達 一 單變數線性回歸

代價函式詳解 梯度下降法 個人blog 我們有關於房屋面積和房屋 的資料集,現在想擬合一條直線通過房屋的面積來 房屋 這條直線應該盡可能的符合已有的資料。這裡我們簡單的假設該直線的方程為 h x x h x theta x h x x其中x表示房屋的面積,h x 表示 出的房價。有了這個假設函式我們...