admin 管理员组文章数量: 1087821
machine
(本文转自于我自己简书的文章,原创于2019.04.24 )
我前面说过,提高记忆的最好方法最好就是做个小测验、作业、实战、review or something。只要你做过以上这些动作,大脑又会有新一轮的总结。
machine-learning-ex1是我的第一次提交程序小作业。由于对每一个问题都深而细地研究,所以做的时间比较长。打开ex1.m我们可以发现各个步骤的作业都封装在主程序ex1.m里面,目的是让大家深入浅出循序渐进地理解每一个步骤每一个公式的含义(吴教授的用心良苦啊)。
作业的第一部分warmUpExercies.m大概就是热个身,这个没什么好说的了。
作业的第二部分是画图,完善plotData,这个plotData的Hint其实给了很大的提示,而且也是课程视频里面讲过实现方法,也没什么好说的了。xlabel和ylabel是对应的x轴y轴显示文字标签。
plot(x, y, 'rx', 'MarkerSize', 10);
xlabel('Population of City in 10,000s');
ylabel('Profit in $10,000s');
第三部分:computeCost。
Hyposthesis = X * theta;
Temp = (Hyposthesis - y).^2;
J = sum(Temp) / (2*m);
用一句话就是
J = sum((X * theta - y).^2) / (2*m)
最后算出来的答案是:54.24
刚开始我用的是for循环慢慢理解,对于新人来说,一开始就要从最基本的for循环求和开始理解,才慢慢地,用一步解决。一步到位虽然简单明了,但是很多新人没搞懂。弯路是最好的捷径。
接着就是gradientDescent求theta最优解。这部分的详细分解我已经在文章说过,也不细细说。最先要从for循环开始,一层一层嵌套,就像剥洋葱一样,到最后理解会非常清晰。答案是-3.6303 1.1664。
最后一部分就是画图,让你可以清晰看见J和梯度算法的可视化
本文标签: machine
版权声明:本文标题:machine 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1699327676a342873.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论