Programming Exercise 1:Linear Regression
本文主要是对coursera上机器学习课程第一次编程作业中英文pdf的个人翻译及涉及的程序的编写,编译环境为matlab。
本训练会使用线性回归,并观察他怎么应用在数据上。
Files included in this exercise
ex1.m,ex1_multi.m,ex1data1.txt,ex1data2.txt,submit.m
需要去填写完成的程序
warmUpExercise.m,plotData.m,computeCost.m,gradientDescent.m,computeCostMulti.m,gradientDescentMulti.m,featureNormalize.m,normalEqn.m
本次练习中会用到ex1.m和ex1_multi.m。这俩脚本程序会配置问题所需要数据和调用你需要写的代码。不需要改动他们。只需要完成第一部分,第二部分是选作的。有兴趣也可以写第二部分,我写了。
1.Simple Octave/Matlab function
ex1.m的第一部分帮你训练octave/matlab,在warmUpExercise.m中,你会发现一个Octave/MATLAB函数的框架。通过填入以下代码来修改它,返回一个5*5的单位矩阵。
A=eye(5);
完成后会生成一个对角单位阵,现在ex1.m会暂停,直到你按下任意键。他会接下来完成任务的其他部分。如果你想退出,按下ctrl-c。
1.1submitting Solutions
完成训练中的一部分后,可以使用submit函数上传你的答案,来获得评分。
2.单变量线性回归
本部分,你会使用单变量线性回归来预测食物货车的收益。假设你是一个餐馆的CEO,并想在不同的城市来开分店。城市链之间有货车来送,并且你有了不同城市的收益和人口的数据。你想用这些数据来帮你选择哪个城市来开下一家店。
文件ex1data1.txt包含了用于我们线性回归问题的数据集。第一列是城市人口,第二列是该城食物货车的收益。负值说明了收益减少。ex1.m已经为你准备好了这些数据。2.1plotting the data
在开始任何工作之前,首先把数据可视化是很有用的。对于这个数据集,能够使用离散画图来可视化这些数据,由于它只含有两种属性来画图(profit&population)。其他很多你在实际生活中遇到的情况可能是多维的,而不能通过2D来画出来。
Ex1.m中,数据集从数据文件中load出来,成为变量x和y。
data = load('ex1data1.txt');
X = data(:, 1); y = data(:, 2);
m = length(y); % number of training examples
接下来,脚本会调用plotData函数来画出数据。任务是完成plotData.m,修改文件,并填入以下代码。
plot(x, y, ' rx' , ' MarkerSize' , 10); % Plot the data
ylabel(' Profit in $10,000s' ); % Set the y−axis label
xlabel(' Population of City in 10,000s' ); % Set the x−axis label
现在,当你继续运行ex1.m时,我们的结果可能如图1.
function plotData(x, y)
%PLOTDATA Plots the data points x and y into a new figure
% PLOTDATA(x,y) plots the data points and gives the figure axes labels of
% population and profit.
figure; % open a new figure window
% ====================== YOUR CODE HERE ======================
% Instructions: Plot the training data into a figure using the
% "figure" and