作业1 线性回归

编程作业1:线性回归

介绍:

         在本节练习中,您将实现线性回归并了解它的对数据如何处理。在开始本节编程练习前,我们强烈推荐观看视频讲座并回顾相关的话题。

         要开始练习前,您需要下载初始代码并解压到你希望完成联系的目录中去。如果有需要,可以使用octave/matlab中cd命令去更改该目录。您也可以在课程网站的“环境设置说明”中找到安装Octave/Matlab的说明。

本练习中包含的文件:

ex1.m - Octave/MATLAB 脚本指导你完成练习

ex1 multi.m - 练习后面部分的octave/matlab脚本

ex1data1.txt - 一元线性回归数据集

ex1data2.txt – 多元线性回归数据集

submit.m - 将解决方案发送到我们服务器的提交脚本

[*] warmUpExercise.m - octave/matlab中的简单示例函数

[*] plotData.m – 数据显示函数

[*] computeCost.m - 计算线性回归成本的函数

[*] gradientDescent.m – 运行梯度下降函数

[+] computeCostMulti.m – 多元线性回归代价函数

[+] gradientDescentMulti.m – 多元变量梯度下降法

[+] featureNormalize.m – 归一化特征函数

[+] normalEqn.m - 计算法方程的函数

* 指示你要完成的文件

† 表示可选练习

在整个练习中,您将使用脚本ex1.m和ex1 multi.m。这些脚本为问题设置数据集和你将要调用的函数。你只是按照中的说明修改其他文件中的功能这项任务。对于本编程练习,你只需要完成练习的第一部分,即实现一个变量的线性回归。第二部分为可选,包含多变量的线性回归。

哪里能得到帮助

本课程的来呢西使用Octavel1或Matalab非常适合于数值计算的高级语言。如果您没有安装Octave或Matlab,请参阅课程网站“环境设置说明”中的安装说明。在octave/matlab命令行中,键入help并后跟函数名,将显示内置函数的文档。例如,“帮助绘图”将显示用于绘图的帮助信息。更多关于Octave资料说明可以在Octave资料网页找到,更多关于MATLAB资料说明可以在MATLAB资料网页找到。我们也强烈鼓励利用网上讨论与其他学生讨论练习。但是,不要查看其他人编写的任何源代码,也不要与其他人共享您的源代码。

1、 简单的octave/Matlab 函数

。。。

2、一元线性回归

         在本节的部分练习中,你将使用一元线性回归去预测快餐车的性能。假设你是一家餐饮连锁店的首席执行官,正在考虑在不同的城市开设新的门店。这家连锁店在各个城市都有快餐车,而且你也有来自各个城市的收入和人口数据。

         您希望使用此数据帮助您选择下一个要展开的城市。文件ex1data1.txt包含线性回归问题的数据集。第一列是一个城市的人口,第二列是该城市快餐车的收益。负值代表损失,ex1.m脚本已经设置为为您加载此数据。

2.1 描绘数据

         在开始任何任务前,将数据可视化时十分有用的。对于这个数据集,可以使用散点图来可视化数据,因为它只有两个属性可绘制(profit和population)。(你在现实生活中会遇到的许多问题都是多维的不能绘制在二维图上。

2.2 梯度下降法

在这一部分,你将使用梯度下降法求解线性回归的参数theta

2.2.1 更新方程

线性回归的目标是最小化成本函数

 假设hΘ(x)有下列形式给出:

hΘ(x) = ΘTx=Θ0+Θ1x1

 回想一下,模型的参数是θj值。你将调整这些值去最小化代价函数J(Θ)。一种算法是批梯度下降法(batch gradient descent algorithm.)。每次迭代都要更新

(对所有的j,同时更新θj)

每一步梯度下降,你的参数θj都将接近最优值(最低代价成本J(Θ))。

实现说明:我们将每一个样本数据最为一行存贮在X矩阵中通过Octave/MATLAB。考虑到截距项(θ0),我们在矩阵X添加了额外的一列并且都设置为1。这允许我们把θ0当作另一个“特征”。

2.2.2 实现

  在ex1.m中,我们已经建立了线性回归的数据。在下面的几行中,我们在数据中添加另一个维度,以适应θ0截距项。我们初始化参数从0到0.01学习效率。

猜你喜欢

转载自www.cnblogs.com/weststar/p/11613627.html
今日推荐