第一部分:线性回归(单变量)
题目介绍:预测食品利润,第一列数据是城市的人口,第二列数据是该城市的食品利润。
1.绘制数据
通过可视化可以更好地理解数据。在ex1.m中已经加载了数据并且设置了X,y变量分别为人口和利润:
data = load('ex1data1.txt');
X = data(:, 1); y = data(:, 2);
m = length(y); % number of training examples
绘制数据的二维表示图:
plot(x, y, 'rx', 'MarkerSize', 10);
ylabel('profit in $10,000s');
xlabel('population of City in 10,000s');
2.梯度下降
线性回归的目标是最小化损失函数:
其中的假设函数为:
梯度下降更新公式(需要同时更新其中的每个theta_j):
ex1.m中设置了截距项theta_0为1,初始化了拟合参数、迭代次数和学习率:
X = [ones(m, 1), data(:,1)]; % Add a column of ones to x
theta = zeros(2, 1); % initialize fitting parameters
% Some gradient descent settings
iterations