公开课机器学习笔记(1)回归分析
来源:互联网 发布:黑名单软件 编辑:程序博客网 时间:2024/05/23 13:36
回归分析之我见
1.概述
本文主要是介绍回归方面的知识,属于监督性学习。方法的核心思想:从离散的统计数据中得到模型,然后将模型用于预测或者分类(数据可以是多维)。
2.问题的引入
假设我们收集到了一组房屋销售数据如下:
根据上表,我们可以构建一个二维视图:X轴是房屋面积,Y轴是房屋售价,如下:
问题:如果有个人想买一个在已知数据中没有的房子?我们怎么得到房子的售价呢?
我们可以用一条曲线去尽量准的拟合已知数据,然后对于新的输入,我们可以在曲线上将中找到对应的值返回。如果用一条直线去拟合,可能如下图:
(绿色点就是我们要预测的点)
首先给出一些概念和常用的符号:
训练集:X,我们需要输入的数据,也是已知的数据,如上表中数据。
输出数据:Y,回归或者分类等结果。
拟合函数(假设H或者模型):一般写做y=h(x)。
训练数据的条目数:一条训练数据是由一对输入数据和输出数据组成的输入。
数据维度:n (数据的特征数目,Features)
注:回归模型能够解决特征多维的数据。
3学习过程
如下图:
4线性回归
线性回归假设特征和结果满足线性关系,线性关系的表达能力非常强大,每个特征对结果的影响强弱可以由其前面
的参数体现,而且每个特征变量可以先映射到一个函数,然后再参与线性计算。这样就可以表达特征与结果之间的非线性关系。
Example:
我们用x1,x2,x3.....xn描述feature里面的分量,比如x1 = 房屋面积,x2 = 卧室个数等等,我们可以做出一个估计函数:
θ用来调整feature中每个分量的影响力。我们不妨另x0 = 1,我们就可以用向量乘积的形式表示上式了:
接下来我们需要对θ进行评价,因此我们需要对h函数进行评估,这个函数称为Loss Function or error Function,描述h函数好不好的程度,我们称之为J函数,我们可以写一个如下的LF:
J(θ):用对x(i)的估计值与真实值y(i)差的平方和作为LF,1/2是为了后面求导计算方便。
如何调整θ以使得J(θ)取得最小值?最小二乘(min square)和梯度下降。
5梯度下降
在选定线性回归模型后,只需要确定参数θ,就可以将模型用来预测。然而θ需要在J(θ)最小情况下才能确定。因此问题归结为求极小值问题,使用梯度下降法。梯度下降法最大的问题是求得有可能是局部极小值或全局极小值,这与初始点的选取有关。
梯度下降法是如下流程:
1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。
2)改变θ的值,使得j(θ)按梯度下降的方向进行减少。
3)当快达到局部最小值的时候,梯度会越来越小,最后趋近于0。
4)当J(θ)不在改变的时候,我们就可以说算法收敛了,迭代结束。
梯度方向由j(θ)对θ的偏导数确定,由于求的是极小值,因此梯度方向是偏导数的方向。
结果为:
迭代跟新的方式:
1批梯度下降:也就是对全部的训练数据求得误差后再对θ进行更新
缺点:每次需要扫描全部数据集进行求和,当训练集特别大,比如m = 200000效率很低。
2增量(随机)梯度下降:每扫描一步都要对θ进行更新。(更适合训练集特别大的时候)
前一种方法能够不断收敛,后一种方法结果可能不断在收敛处徘徊,但结果都是学习到每个feature的参数。
一般来说,梯度下降法收敛速度还是比较慢的。
6Normal Equations (正规方程组)
前面说了如何用梯度下降来解线性回归问题
其实对于线性回归,也可以不用这种迭代最优的方式来求解
因为其实可以通过normal equations直接算出θ,即具有解析解
首先对于训练集,可以写成下面的向量形式
由于 ,所以
并且 ,故有
可以看到经过一系列的推导,J(θ)有了新的表达形式
那么J(θ)的梯度,即求导,可以得到
而J(θ)最小时,一定是梯度为0时,即可以推出normal equations
所以使J(θ)最小的θ的值可以直接求出,
可以参考Normal Equations 的由来
- 公开课机器学习笔记(1)回归分析
- 公开课机器学习笔记(4)回归分析
- 公开课机器学习笔记(5)逻辑回归
- 公开课机器学习笔记(7)Softmax回归模型
- 斯坦福机器学习公开课笔记(三)--逻辑回归
- 机器学习第二篇(stanford大学公开课学习笔记) —局部加权回归
- 网易公开课“机器学习”学习笔记(一)线性回归
- 机器学习笔记--回归分析(1)
- (机器学习笔记一)回归分析
- 斯坦福机器学习: 网易公开课系列笔记(三)——局部加权回归、logistic回归
- 机器学习公开课备忘录(一)回归问题
- 机器学习公开课-笔记1
- 斯坦福机器学习公开课学习笔记(3)—拟合问题以及局部权重回归、逻辑回归
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
- dnsmasq TFTP directory /tftpd inaccessible: Permission denied
- hdu 4027 线段树
- 一个简单的Spring4和MyBatis事务的例子(很详细)
- C語言及程序設計初步第11講-項目3:如何買玫瑰
- 常见的几种文件或访问路径详解
- 公开课机器学习笔记(1)回归分析
- atoi函数
- python分布式进程
- 关于spring”通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明“的错误
- Python基础03 序列
- 【全入口时代】App、web、微信,一个都不能少
- maven package 命令打包
- 深入理解 C# 协变和逆变
- windows环境用git bash下载android源码