您的位置:首页 > 其它

公开课机器学习笔记(1)回归分析

2015-03-25 17:26 190 查看
2014-10-20 11:16 1148人阅读 评论(0) 收藏 举报

回归分析之我见

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 的由来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: