1. 程式人生 > 其它 >簡單易學的機器學習演算法——線性迴歸(2)

簡單易學的機器學習演算法——線性迴歸(2)

一、基本線性迴歸模型的抽象

    在基本的線性迴歸中(可見簡單易學的機器學習演算法——線性迴歸(1)),對於一個線性迴歸為題,我們得到一個線性方程組:

在上一篇中我們是構建平方誤差函式使得誤差函式取得最小值得方法求得迴歸係數

換種思考,對於這樣的一個線性方程組的求解我們有其他的方式,這裡我們提到了廣義逆。

二、廣義逆

三、線性迴歸的求解

    對於上面的線性方程組

,利用Moore-Penrose廣義逆,我們可以求得迴歸係數為:

四、實驗

    我們同樣採用簡單易學的機器學習演算法——線性迴歸(1)中的實驗資料,我們得到以下的實驗結果:

原始資料

最佳擬合直線

MATLAB實驗原始碼

主函式

%% load Data
A = load('ex0.txt');

X = A(:,1:2);%讀取x
Y = A(:,3);

ws = pinvRegres(X,Y);

%% plot the regression function
x = 0:1;
y = ws(1,:)+ws(2,:)*x;
hold on
xlabel x;
ylabel y;
plot(X(:,2),Y(:,1),'.');
plot(x,y);
hold off

求線性迴歸係數

function [ ws ] = pinvRegres( X, Y )
    [m,n] = size(X);
    ws = zeros(m,1);
    ws = pinv(X)*Y;
end

實驗資料下載