吳恩達(dá)機(jī)器學(xué)習(xí)課程作業(yè) Exercise 2: Linear Regression, matlab實(shí)現(xiàn)。
-
線性回歸
線性回歸基本模型:
其中诗箍,為
個(gè)特征變量,
為擬合系數(shù)挽唉,
為截距滤祖。為簡(jiǎn)便,引入
瓶籽,改寫(xiě)上式:
采用均方誤差(MSE)衡量擬合損失:
為第
個(gè)樣本
的預(yù)測(cè)值匠童,
為實(shí)際值,
為樣本個(gè)數(shù)塑顺。
記.
可矢量化為:
使用梯度下降求解:
為學(xué)習(xí)率汤求。
-
matlab實(shí)現(xiàn)求
數(shù)據(jù)準(zhǔn)備: Download ex2Data.zip.
% Data Visualization
X = load('ex2x.dat');
Y = load('ex2y.dat');
figure
plot(X, Y, 'o');
ylabel('Height in meters')
xlabel('Age in years')
- 梯度下降
m = length(Y); % the number of training examples
X = [ones(m, 1), X]; % Add a column of ones to X (i.e., x_0)
theta0 = 0; theta1 = 0;
theta = [theta0; theta1]; % dim: 2x1
epoch_num = 5000; % 迭代次數(shù)5000
alpha = 0.05;
Loss = zeros(1, epoch_num); %記錄每一輪的平均損失
for epoch = 1:epoch_num
J = norm(X*theta - Y)^2/m/2;
Loss(epoch) = J;
theta = theta - alpha * X'*(X*theta - Y)/m;
end
-
直接求解
是關(guān)于
的光滑凸函數(shù),具有閉式解:
通過(guò)matlab直接求解可得: