看完前三節課程啦,感覺概念還是分開理還可以,但是所有的拼湊在一起又覺得並不是很明朗,有種中學時代只聽課不做練習的感覺。
今天主要是記錄一下malab的理解**。
回歸問題,依舊是用房屋問題作為典型的代表,理論部分就不再這裡記錄了,因為手寫版的理解筆記有了就好了。下面就是簡要概述下流程:
prediction=theta*x
目標是調整theta,使得對於每乙個x對應的prediction盡可能的接近對應的y.
sqrerror=(prediction-y).^2;
[m,n]=size(x);
cost: j=1/(2*m)*sum(sqrerror)
ok,思路都清楚了,下面就是matlab的實現。
%損失函式的定義。存放在專案目錄下,命名為costfunctionj。mfunction j=costfunctionj(x,y,theta)
[m,n]=size(x);
prediction=x*theta;
sqrerror=(prediction-y).^2;
j=1/(2*m)*sum(sqrerror);
%功能:對於任意的theta,給出損失的大小,也就是誤差大小。
%載入資料集
house=load('house.txt');
x=(:,1,2);%所有行,1,2,列(都是我自己的理解,沒學過matlab)
y=(:,3);
hold on %顯示乙個2維座標軸。有不覆蓋原圖的功能
%標上x,y軸
xlabel x
ylabel y
%將(x,y)顯示在座標中
plot(x(:,2),y(:,1),'*');
%theta是自己隨便取的,
theta=[3.575;1.62];
j=costfunctionj(x,y,theta) %就會自動給出誤差啦
%之後就把你這個prediction表示在座標上
x=(0:1);
y=theta(1,:)+theta(2,:)*x;
plot(x,y,'r');%用紅色描繪
下面是用標準方程的方法,參考【
%標準方程解回歸問題%standregres.m
function [theta] = standregres(x,y)
[m,n] = size(x);
xtx=x'*x;
if det(xtx) == 0
disp('this matrix is singular,can not do inverse');
endtheta =pinv(xtx)*x'*y;
end%下面是對函式的呼叫:
house=load('house.txt');x=(:,1,2);%所有行,1,2,列(都是我自己的理解,沒學過matlab)
y=(:,3);
hold on %顯示乙個2維座標軸。有不覆蓋原圖的功能
%標上x,y軸
xlabel x
ylabel y
%將(x,y)顯示在座標中
plot(x(:,2),y(:,1),'*');
theta = standregres(x,y);
x=(0:1);y=theta(1,:)+theta(2,:)*x;
plot(x,y,'g');%用綠色描繪
機器學習 線性回歸
可以說基本上是機器學習中最簡單的模型了,但是實際上其地位很重要 計算簡單 效果不錯,在很多其他演算法中也可以看到用lr作為一部分 先來看乙個小例子,給乙個 線性回歸是什麼 的概念。圖來自 2 假設有乙個房屋銷售的資料如下 面積 m 2 銷售價錢 萬元 123 250 150 320 87 160 1...
機器學習(線性回歸)
在機器學習中,回歸 分類和標註共同構成了監督學習技術。監督學習 supervised learning 是機器學習在工業界應用最廣的乙個領域分支。在學術界中也是研究最多的領域之一。大家都知道的資料探勘十大經典演算法中,監督學習技術佔據6席。方法 自變數 特徵 因變數 結果 關係 回歸演算法是試圖採用...
機器學習 線性回歸
line fitter linearregression 建立模型 line fitter.fit temperature,sales 傳入引數 sales predict line fitter.predict temperature 模型 直線 直線上會有loss 計算loss時 要使用平方距離...