吴恩达机器学习课程作业 Exercise 2: Linear Regression, matlab实现。
-
线性回归
线性回归基本模型:
其中,为
个特征变量,
为拟合系数,
为截距。为简便,引入
,改写上式:
采用均方误差(MSE)衡量拟合损失:
为第
个样本
的预测值,
为实际值,
为样本个数。
记.
可矢量化为:
使用梯度下降求解:
为学习率。
-
matlab实现求
数据准备: 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; % 迭代次数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
-
直接求解
是关于
的光滑凸函数,具有闭式解:
通过matlab直接求解可得: