Deep Learning Exercise: Linear Regression
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相关推荐
- Exercise: Linear Regression
Exercise: Linear Regression 题目地址: http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?c ...
- machine learning (2)-linear regression with one variable
machine learning- linear regression with one variable(2) Linear regression with one variable = univa ...
- Deep learning:一softmax Regression 练习
引言: 参看的是http://www.cnblogs.com/tornadomeet/archive/2013/03/23/2977621.html 和 http://deeplear ...
- 网上某位牛人的deep learning学习笔记汇总
目录(?)[-] 作者tornadomeet 出处httpwwwcnblogscomtornadomeet 欢迎转载或分享但请务必声明文章出处 Deep learning一基础知识_1 Deep le ...
- (转) Deep Learning Resources
转自:http://www.jeremydjacksonphd.com/category/deep-learning/ Deep Learning Resources Posted on May 13 ...
- Deep Learning 9_深度学习UFLDL教程:linear decoder_exercise(斯坦福大学深度学习教程)...
前言 实验内容:Exercise:Learning color features with Sparse Autoencoders.即:利用线性解码器,从100000张8*8的RGB图像块中提取颜色特 ...
- Deep learning:二十二(linear decoder练习)
前言: 本节是练习Linear decoder的应用,关于Linear decoder的相关知识介绍请参考:Deep learning:十七(Linear Decoders,Convolution和P ...
- 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 ...
- 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 ...
最新文章
- eclipse中如何将java项目转为java Web项目
- 马斯克的90后合伙人离职Neuralink!5岁学编程,曾创立2家公司
- android textview 常用属性id,Android TextView常用属性
- sql语句:union
- POJ 3615 floyd 求任意起点终点的最短路
- 调用AutoCAD的内置对话框
- 用ajax的方法获取列表,用ajax从服务器获取列表数据,为什么getElementsByTaName('li')的长度为0呢...
- 利用redis实现分布式锁
- 查找任意数目参数的最大值
- 如何优雅地「蜗居」?
- Java 获取文件的上级目录
- vim命令杂烩(复制粘贴、建文件、撤销等)
- python文件的路径_如何从目录中给出python文件的路径
- centos8 安装geany
- Android 系统(125)---Android通过Dialer实现暗码启动
- mysql中条件查询加排序和索引的关系
- Linux查找树莓派ip地址,让树莓派“说”出自己的IP地址
- matlab混沌指数的计算,Matlab编程之混沌系统李雅普诺夫指数分析
- 黑域助手连接服务器才能用吗,自己装黑域一定要用电脑设置了才能用吗
- 高级语言程序设计(C语言)----第三章(上) 数据类型、运算符和表达式
热门文章
- 程序人生:Facebook的23岁创始人
- 删除数组最后一个元素
- 友推集成第三方登录和分享的步骤
- FLStudio21水果软件中文版本有哪些新增功能?
- 黑马程序员--网络编程知识点总结
- [非原子批处理出现故障]使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null
- 珠海拱北口岸停车攻略,拱北口岸地下停车场收费
- R 实现分层抽样教程
- H5+JavaScript 剪刀石头布小游戏完整代码
- python的简单使用_用python简单处理图片