線性回歸實戰總結:
單變數線性回歸:
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 表示 出的房價。有了這個假設函式我們...