Exercise1-线性回归问题
一、单变量的线性回归
问题描述:你是一个老板,现在你手上存在一个ex1data1.txt的文件,这个文件里面存在两列,第一列是城市人口,第二列是这个城市的利润,你需要从这些数据中找到谁能成为下一个发展的城市!
(1)可视化操作——绘制散点图(scatter plot)
%step1:在主函数ex1.m里面获取ex1data1.txt里面的数据,并保存在两个矩阵里面。
data = load('ex1data1.txt');%从由逗号隔开的文档中获得数据
X = data(:, 1); y = data(:, 2);%X存储文档的第一列,城市人口,y存储文档的第二列,存储的是利润
m = length(y); %训练实例的数目或者说是城市的个数
plotData(X, y);%调用函数来绘制散点图
%step2:在plotData.m实现画图功能
plot(x,y,'rx','MarkerSize',10);%绘图,每个点用‘rx’表示红色的叉标记
ylabel('Profit in $10,000s');% 设置y轴标签
xlabel('Population of City in 10,000s');% 设置x轴标签
(2)梯度下降算法(gradient descent)
回顾之前所说地单变量的线性回归:
假设函数:
代价函数:
step1:implementation(这些代码在ex1.m里面无需我们添加)
需要注意的是,我们存储每一个样例作为X的一行,但是考虑到的存在,所以我们在X上再添加一列,并且全部置1,就相当于我们把当成了另外一个特征!
进行一些初始化的操作并且给X添加全1列: