Coursera机器学习课程

本专题作为前一段时间在Coursera上AndrewNg机器学习课程的总结专题(MATLAB实现)

将原先facebook上博文移植于此

补全后续课程笔记

【Linear Regression·一点技术】

梯度下降算法实现后,成功实现多元线性回归这一算法,至此,第一部分线性回归的课程就学习完啦~
接下来聊聊具体算法内容,线性回归的原理上周就已经说过啦,通过不同变量来确定函数最小值或者做出预测。这次选用了两个变量X1,X2,将这两个变量带入函数,得到期望输出Y,数据如图一,显示在三维图中如图二。于是,输入为47*3的矩阵[1, x1, x2],输出为47*1的矩阵[y],theta初始设为[0, 0, 0],学习率为0.03,共进行500步,函数代码如图三。由运行结果可以看出,实际在学习250次后就可以找到最优值,J_cost基本保持不变,如图四。值得一提的是,在利用梯度下降时,首先要对输入数据进行特征缩放,原因在于输入矩阵中X1与X2相差数量级较大,绘制在坐标图中为很扁的椭圆,这就造成梯度下降时会沿着一条曲折的z字型下降,浪费时间,降低算法效率。而将数据特征缩放后,保证输入矩阵三个变量处于同一数量级,绘制出来发现他们基本为圆形,较为理想,特征缩放公式如图五,代码如图六。 继续阅读“【Linear Regression·一点技术】”