Deep Learning Exercise: Linear Regression


简介

最简单的二元线性回归,参考斯坦福大学教学网http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex2/ex2.html。该例给出的训练集有50个样本,其中 x 指 50 个小孩子的年龄,从 2 岁到 8 岁,y 为这 50 个小孩子所对应的身高。问题是通过这 50 个样本建立出一个合适的模型,并且预测出 3.5 岁和 7 岁小孩子的身高。我们通过建立二元线性回归模型来解答这一问题。

原本的问题示例和解答中使用的是 Matlab,而本文所使用的是 Mathematica,以下是这一问题的不同解决方法加代码。

解法及代码

读取数据并进行初步处理

ex2x = Import["/Users/xuzhouyang/Downloads/ex2Data/ex2x.dat”]
ex2y = Import["/Users/xuzhouyang/Downloads/ex2Data/ex2y.dat”]
ex2x = Flatten[ex2x]
ex2y = Flatten[ex2y]
ex2x1 = Thread[List[ex2x, 1]]

对于训练集中的 50 个样本绘制散点图

ListPlot[Thread[List[ex2x, ex2y]],AxesLabel -> {"Age in years", "Height in meters”}]

方法一:Normal Equation

计算模型参数 theta

theta = Inverse[Transpose[ex2x1].ex2x1].Transpose[ex2x1].ex2y

通过计算的模型参数绘出拟合的直线

Show[ListPlot[Thread[List[ex2x, ex2y]],AxesLabel -> {"Age in years", "Height in meters"}],
Plot[theta[[1]]*x + theta[[2]], {x, 2, 8}]]

方法二:Gradient descend

theta = {0, 0}
Module[{alpha = 0.07, m=Length[ex2y]},For[i = 0, i < 1500, i++,grad = Transpose[ex2x1].(ex2x1.theta - ex2y)/m;theta = theta - alpha*grad]

方法三(使用 MMA 内置的线性拟合来验证)

lm = LinearModelFit[Thread[List[ex2x, ex2y]], x, x]

通过计算得到的 theta 参数来进行预测:

{3.5, 1}.theta    0.973742
{7, 1}.theta       1.19733

可以得到结果分别是 3.5 岁的孩子身高为 0.973742,7 岁孩子的身高为 1.19733。

绘制关于 theta 的 cost function J(theta) 的等高线图

ContourPlot[Total[(ex2x1.{x, y} - ex2y)^2]/(
2*50), {x, -10, 10}, {y, -10, 10}, Contours -> 10]

感谢阅读。

Deep Learning Exercise: Linear Regression相关推荐

  1. Exercise: Linear Regression

     Exercise: Linear Regression 题目地址: http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?c ...

  2. machine learning (2)-linear regression with one variable

    machine learning- linear regression with one variable(2) Linear regression with one variable = univa ...

  3. Deep learning:一softmax Regression 练习

    引言: 参看的是http://www.cnblogs.com/tornadomeet/archive/2013/03/23/2977621.html 和         http://deeplear ...

  4. 网上某位牛人的deep learning学习笔记汇总

    目录(?)[-] 作者tornadomeet 出处httpwwwcnblogscomtornadomeet 欢迎转载或分享但请务必声明文章出处 Deep learning一基础知识_1 Deep le ...

  5. (转) Deep Learning Resources

    转自:http://www.jeremydjacksonphd.com/category/deep-learning/ Deep Learning Resources Posted on May 13 ...

  6. Deep Learning 9_深度学习UFLDL教程:linear decoder_exercise(斯坦福大学深度学习教程)...

    前言 实验内容:Exercise:Learning color features with Sparse Autoencoders.即:利用线性解码器,从100000张8*8的RGB图像块中提取颜色特 ...

  7. Deep learning:二十二(linear decoder练习)

    前言: 本节是练习Linear decoder的应用,关于Linear decoder的相关知识介绍请参考:Deep learning:十七(Linear Decoders,Convolution和P ...

  8. Machine Learning week 6 quiz: programming assignment-Regularized Linear Regression and Bias/Variance

    一.ex5.m %% Machine Learning Online Class % Exercise 5 | Regularized Linear Regression and Bias-Varia ...

  9. Machine Learning week 2 quiz: Linear Regression with Multiple Variables

    Linear Regression with Multiple Variables 5 试题 1. Suppose m=4 students have taken some class, and th ...

最新文章

  1. eclipse中如何将java项目转为java Web项目
  2. 马斯克的90后合伙人离职Neuralink!5岁学编程,曾创立2家公司
  3. android textview 常用属性id,Android TextView常用属性
  4. sql语句:union
  5. POJ 3615 floyd 求任意起点终点的最短路
  6. 调用AutoCAD的内置对话框
  7. 用ajax的方法获取列表,用ajax从服务器获取列表数据,为什么getElementsByTaName('li')的长度为0呢...
  8. 利用redis实现分布式锁
  9. 查找任意数目参数的最大值
  10. 如何优雅地「蜗居」?
  11. Java 获取文件的上级目录
  12. vim命令杂烩(复制粘贴、建文件、撤销等)
  13. python文件的路径_如何从目录中给出python文件的路径
  14. centos8 安装geany
  15. Android 系统(125)---Android通过Dialer实现暗码启动
  16. mysql中条件查询加排序和索引的关系
  17. Linux查找树莓派ip地址,让树莓派“说”出自己的IP地址
  18. matlab混沌指数的计算,Matlab编程之混沌系统李雅普诺夫指数分析
  19. 黑域助手连接服务器才能用吗,自己装黑域一定要用电脑设置了才能用吗
  20. 高级语言程序设计(C语言)----第三章(上) 数据类型、运算符和表达式

热门文章

  1. 程序人生:Facebook的23岁创始人
  2. 删除数组最后一个元素
  3. 友推集成第三方登录和分享的步骤
  4. FLStudio21水果软件中文版本有哪些新增功能?
  5. 黑马程序员--网络编程知识点总结
  6. [非原子批处理出现故障]使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null
  7. 珠海拱北口岸停车攻略,拱北口岸地下停车场收费
  8. R 实现分层抽样教程
  9. H5+JavaScript 剪刀石头布小游戏完整代码
  10. python的简单使用_用python简单处理图片