Andrew Ng 机器学习公开课 - 线性回归
我的机器学习系列从现在开始将会结合Andrew Ng老师与sklearn的api是实际应用相结合来写了。
吴恩达(1976-,英文名:Andrew Ng),华裔美国人,是斯坦福大学计算机科学系和电子工程系副教授,人工智能实验室主任。吴恩达是人工智能和机器学习领域国际上最权威的学者之一。吴恩达也是在线教育平台Coursera的联合创始人(with Daphne Koller)。
2014年5月16日,吴恩达加入百度,担任百度公司首席科学家,负责百度研究院的领导工作,尤其是Baidu Brain计划。
Scikit-learn项目最早由数据科学家David Cournapeau 在2007 年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。
它的维护也主要依靠开源社区。
-------------------------------------------正文-------------------------------------------------
在做数学分析之前我们需要掌握以下知识
1.矩阵求导
2.方阵的迹
1.矩阵求导:
设现在有一方程可知y的值是受x1,x2... ... xn 的值变化,我们可以这么类比,在三维空间中存在一个平面,这个平面弯弯曲曲,在平面上的一点他的梯度由向x和y方向的下降的趋势组成,回到方程也就是说y的 y的导 由 沿着 x1 ......xn方向上的“斜率”叠加而成,那就显而易见了,我们就是要求出y的全微分
,现在回到矩阵分析矩阵的。我们定义一个矩阵使得第一列的值为x1第二列的为x2一直到xn
这张图片表示这三个y方程的数据,为了方便我只列了三个特征(也就是x)因为矩阵的每一行代表着一个y ,y对矩阵求导就有
当然为这是为了让大家看清楚并且更能理解,更好的表示求偏导这一特性。
所以得出结论函数ff是从m∗nm∗n的矩阵到实数域的映射,对其求梯度可以表示为如下形式:
当然f(A)是矩阵等情况读者你就可以自己了解一下。
2.方阵的迹
定义:在线性代数中,一个n×n矩阵A的主对角线(从左上方至右下方的对角线)上各个元素的总和被称为矩阵A的迹(或迹数),一般记作tr(A)。于是就有
我们需要用到方阵的迹的几大性质
我对第一(1)进行了证明
好到此为止我们需要整理的线性代数的知识就到此为止了。
问题提出
现在有这么一组数据每一行为一个样本。我们把样本中房子的价格称作features,把卧室数目和房子大小称作target。也就是说在这组数据中每一个样本有两个target和一个features,这个features就是我们要预测出的答案,也就好比方程y=ax1+bx2+C
我们先定义一些符号
m = training examples
x = "input" variables features
y = "output"variable target
(x,y) - training example
有时我们需要让假设h对的依赖表示出来并且我们假设x0 = 1。
为了让式子更加简洁
此时我们使用最小二乘法来表示算出来的结果与正实数据的关系
注:1/2 是为了更好的计算后面就知道了。
现在我们的任务为找到一组使得
最小最好越接近于0越好,越接近0代表数据越线性。
接下来我们来了解一个关于梯度的知识
梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
所以当我们在沿着梯度的方向下降的时候是下降的最快的,当我们的梯度下降到最低为什么是梯度为零时结束 呢?
当迭代点是最优时,其对应的梯度为零称之为无约束问题解得一阶必要条件
证明的核心思想是利用最优点处利用泰勒展开,因为已经是最优点,所以在其附近的点函数值近似相等,便可以得到梯度为零的结论
所以我们可以写出迭代方程
是步长,也就是你朝着梯度的方向下山一步迈远。
过小会导致迭代时间太长。过大可以越过最低点,导致来回震荡,这里的
是需要我们手动输入的
1.第一种解法(迭代少)
对式子的每一行为更新一次求出结果为
则此时迭代方程为
此时我们是根据第一个样本修改后在来修改第二个参数每一行为一个样本进行迭代。我们画一个等高线,此时的下降趋势为
可以看到随意每次的方向有弯路但是大体方向还是走到了最低处。
2.正规方程
正规方程每次迭代更新需要整个矩阵的数据来求出。
现在我们每一个样本的数据都设置为列矩阵通过下面这种方式来将我们的target examples来表示出来自然 y用来表示features examples。
此时为
因为
根据我们上面对矩阵的迹和求导就可得
得出最优解
参考文献:
1、斯坦福大学公开课 机器学习
讲师:吴恩达 (Andrew Ng)
原视频:http://open.163.com/special/opencourse/machinelearning.html
2、Scikit-Learn简介
作者:yoyofu007
来源:CSDN
原文:https://blog.csdn.net/yoyofu007/article/details/80924166
Andrew Ng 机器学习公开课 - 线性回归的更多相关文章
- Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
网易公开课,监督学习应用.梯度下降 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个 ...
- Andrew Ng机器学习公开课笔记 -- 支持向量机
网易公开课,第6,7,8课 notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考 先继 ...
- Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)
网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...
- Andrew Ng机器学习公开课笔记 -- 学习理论
网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法 Bias/va ...
- Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf Model Selection 首先需要解决的问题是,模型 ...
- Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control
网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比 ...
- Andrew Ng机器学习公开课笔记 -- Generative Learning algorithms
网易公开课,第5课 notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf 学习算法有两种,一种是前面一直看到的,直接对p(y|x; θ)进行建模 ...
- Andrew Ng机器学习公开课笔记 -- Generalized Linear Models
网易公开课,第4课 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 前面介绍一个线性回归问题,符合高斯分布 一个分类问题,logstic回 ...
- Andrew Ng机器学习公开课笔记 -- Logistic Regression
网易公开课,第3,4课 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 前面讨论了线性回归问题, 符合高斯分布,使用最小二乘来作为损失函数 ...
随机推荐
- jenkins 构建 job 并获取其状态的实现
目录 BACKGROUND INVESTIGATION I 1. 连续触发的相同 job 构建不会重复入队 2. 连续触发的不同 job 构建会各自入队 3. 参数变动的相同 job 构建将分别入队 ...
- Exists 和Not Exists使用
描述:exists表示()内子查询语句返回结果不为空说明where条件成立就会执行主sql语句,如果为空就表示where条件不成立,sql语句就不会执行.not exists和exists相反,子查询 ...
- go 下载图片
package main import ( "net/http" "fmt" "io/ioutil" "strings" ...
- centos8平台使用xfs文件系统
一,xfs文件系统的特点 XFS是一种高性能的日志文件系统, 它是由SGI公司设计的,被称为业界最先进的.最具可升级性的文件系统技术. 最初是从unix(irix)移植到linux系统上的. 从cen ...
- HTML5/HTML 4.01/XHTML
HTML5/HTML 4.01/XHTML 元素和有效的 DTD 下面的表格列出了所有的 HTML5/HTML 4.01/XHTML 元素,以及它们会出现在什么文档类型 (DTD) 中: 标签 HTM ...
- SE第一次作业
作业一.对软件工程的初步认识 下面是我对于软件工程的认识,结合自己的理解和课上听讲的内容 软件工程=软件+工程?软件工程是否就是简单的软件+工程呢?那么我们先来看下各自的概念. 那么什么叫软件呢,既然 ...
- BeanCopier的使用
BeanCopier进行的是bean之间的copy,从一个类到另一个类,进行属性值的拷贝. 成功copy的条件: 1.属性的类型和名称都相同 2.目标类的setter缺少或缺失会导致拷贝失败,名称相同 ...
- ServletResponse使用介绍
ServletResponse为将响应发送到客户端的对象:Servlet 容器创建 ServletResponse 对象,并将它作为参数传递给Servlet的service 方法,如下图 : Http ...
- 2020-2021-1 20209306 《linux内核原理与分析》第三周作业
目录 一.实验:完成一个简单的时间片轮转多道程序内核代码 二.学习总结 1.堆栈相关的寄存器 2.堆栈操作 3.其他关键寄存器 4.用堆栈来传递函数的参数 5.了解了函数如何传递返回值,堆栈还提供局部 ...
- Redis---08Redis集群(一)
一.什么是Redis集群 Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N. Redis 集群通过分区(parti ...