1 Week One 1.1 Programming Exercise 1: Linear Regression

1 Week One
1.1 Programming Exercise 1: Linear Regression
在文件warmUpExercise.m中,您将找到Octave / MATLAB函数的大纲。 通过填写以下代码将其修改为返回5 x 5的单位矩阵:
这里写图片描述
效果图:
这里写图片描述
接下来,脚本调用plotData函数来创建数据的散点图。 你的工作是完成plotData.m来绘制情节; 修改该文件并填写以下代码:
这里写图片描述

效果图:
这里写图片描述
当您执行梯度下降以学习最小化成本函数J(θ)时,通过计算成本来监控收敛是有帮助的。 在本节中,您将实现一个计算J(θ)的函数,以便检查梯度下降实现的收敛性。 您的下一个任务是完成computeCost.m文件中的代码,该文件是计算J(θ)的函数。 当你这样做时,请记住变量X和y不是标量值,而是矩阵的行代表了训练集中的例子。 完成该功能后,ex1.m中的下一步将使用θ初始化为零来运computeCost,并且您将看到在屏幕上显示的成本。
这里写图片描述
效果图:
这里写图片描述
计算结果和预期是一致的,成本函数计算正确。
接下来,您将在文件gradientDescent.m中实现渐变下降。循环结构已经为您编写,您只需在每次迭代中向θ提供更新。在您编程时,确保您了解您要优化的内容以及正在更新的内容。请记住,成本J(θ)由矢量θ而不是X和y进行参数化。也就是说,我们通过改变向量θ的值而不是通过改变X或y来最小化J(θ)的值。
这里写图片描述
效果图:
这里写图片描述
到这里就满分了。
为了更好的理解训练过程,我把代码改了下,选取迭代过程中的1、300、600、900、1200、1500迭代显示效果。效果如下:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
在featureNormalize.m中,填写如下代码:

这里写图片描述
提交后,效果如下:
这里写图片描述
您应完成computeCostMulti.m和gradientDescentMulti.m中的代码以实现具有多个变量的线性回归的成本函数和梯度下降。 如果你的代码在前一部分(单个变量)已经支持多个变量,那么你也可以在这里使用它。分别如下:
这里写图片描述
这里写图片描述
这里写图片描述

完成normalEqn.m中的代码以使用上面的公式计算θ。
这里写图片描述
效果图
这里写图片描述
两种方法得到的theta值不一样,但是结果可能是一致的。是的,因为原理是不一样的。通过可视化,显示出价格基本是一致的。
这里写图片描述
这里写图片描述 任务完成!!!恭喜恭喜!