zoukankan      html  css  js  c++  java
  • 线性回归-理论篇

     【转载】http://blog.csdn.net/pakko/article/details/36641561

     “回归”的由来

    FrancisGalton,英国生物学家,他研究了父母身高与子女身高之间关系后得出,若父母身高高于平均大众身高,则其子女身高倾向于倒退生长,即会比其父母身高矮一些而更接近于大众平均身高。若父母身高小于平均身高,则其子女身高倾向于向上生长,以更接近于大众平均身高。此现象,被Galton称之为回归现象,即regression.

     

    什么是线性回归?

    回归分析是一种统计工具,它利用两个或两个以上变量之间的关系,由一个或几个变量来预测另一个变量。

    回归分析中:

    • 自变量只有一个时,叫做一元线性回归,
    • 自变量有多个时,叫做多元线性回归,

    分类(Classification)与回归(Regression)都属于监督学习,它们的区别在于:

    • 分类:定性输出称为分类,或者说是离散变量预测。如识别正常邮件/垃圾邮件;识别图像中的人脸/非人脸;识别信贷中的正常行为/欺诈行为。(左图)
    • 回归:定量输出称为回归,或者说是连续变量预测。如给定了房子的面积、地段和房间数,预测房子的价格。(右图)

     

    一元线性回归

    问题描述

    我想要一套200平方米的房子价格大概是多少呢?这时在数据表中我又找不到到对应的数据,那么这时就要做线性回归分析了。如图找到这样的一条直线,使图中的所有点到直线的距离最小(即误差最小)。

    下面我们用数学语言来表达“使图中的所有点到直线的距离最小”这句话。

    (1)X与y的关系可以表示为:(b叫偏移,w叫超越平面参数)。

    这样的表达还不够统一,不方便计算,我们把上面改写成向量形式,以便于推广到N维形式,改写成正式:


    (2)“使图中的所有点到直线的距离最小”用数学的语言描述如下:

     

             这里是变量w的函数,故我们的目标就成了获取使值最小时的w的值。


    下图中,该图表示当取各个值时对应的的值,从图中可看出,当分别取特定的某一值时,可达到全局最小值。

     

    解决方法

    梯度下降算法(Gradient Descent)

    循环直到收敛{

     

    }

    对于线性回归模型,成本函数的导数如下:

               

    更通俗化的解释是:

    (1)上图中图形其实像一个碗一样,有一个最低点。找这个最低点的办法就是,先随便找一个,然后沿着这个碗下降的方向找,最后就能找到碗的最低点。

    (2)如何找某一点下降的方向?找那一点导数的反方向。如下图:


    (3)只要将任意一个点,沿着使导数的反方向慢慢移动,那么最终会到达使最小的那一点。(注:最小二乘法是个凸函数,所以局部最优值也即为全局最优值)

    (4)是自定义的,叫学习速率(learning rate)。

    • 值设得太大,可能永远无法收敛;
    • 设得太小,则收敛会很慢很慢。

    一般程序里会写明最多循环次数以及收敛条件。若能自动收敛,甚好,若不能,则循环指定次数后,强行退出。此时,你需要调参数或者重新慎视假设模型!

     

    正规方程组(Normal Equation)

    成本函数写成向量形式如下: 

      

    我们的目标是使最小,上式对W求导得: 

    X是矩阵,代表训练集,每一行是一个样本的各特征值。Y是个向量,对应每个样本的结果值。

     

    梯度下降与正规方程组的对比:

     Gradient Descent

     Normal Equation

     自定义

    不需要定义

     盾环N次才能得到最佳w值

    不需要任何循环操作

     特征个数非常大时,也适用

    X的转阵与逆矩阵的计算量很大,导致特征个数多时,会很慢;

    适用于特征个数小于100000时使用

     需要特征缩放(feature scaling)

    不需要feature scaling

     

    多元线性回归(LinearRegression with Multiple Variables)

    跟一元线性回归的参数回归方式如出一辙,唯一区别在回归函数的假设上:

    多元,故名思义,就是说有多个特征做为输入。那问题就来了,若多个特征的表达值的范围不一样,会有什么影响和后果?

    比如,继续拿预测房价作为例子。现在它的特征增加了,特征1是面积,特征2是房间数,特征3是房子的年龄。很明显,这三个特征的值的范围是有很大差异的。

    • 特征1:100到300之间
    • 特征2: 2到5之间
    • 特征3:20到60年之间

    若不做任何处理,则特征1和3对结果的影响远大于特征2,而可能扭曲了真实情况下各特征在最终结果中所应占的权重比例。

     

    所以,一般情况下,特征与特征之间的值变化范围差异过大时,我们用feature scaling的手段来规范化特征值,使每个特征的特征值都处于-1至1之间。

    如果不同变量之间的大小不在一个数量级,作feature scaling能大大减少寻找最优解的时间;

    NG给的建议:最大变量和最小变量均值差3倍以内为佳;


    注:feature scaling的方法可自定义,常用的有:
    1) rescaling
    (X - mean(X))/max - min

    2) 中值正规化(mean normalization)

    (X-mean(X))/ std,  std是标准方差


    参考链接:

    http://hi.baidu.com/einyboy/item/5ee49dd9c853f1f8cb0c39ae

    http://blog.163.com/phoenixbai@126/blog/static/1086513492013953817839

    http://blog.sciencenet.cn/blog-427701-688352.html

  • 相关阅读:
    HDU 2089 不要62
    HDU 5038 Grade(分级)
    FZU 2105 Digits Count(位数计算)
    FZU 2218 Simple String Problem(简单字符串问题)
    FZU 2221 RunningMan(跑男)
    FZU 2216 The Longest Straight(最长直道)
    FZU 2212 Super Mobile Charger(超级充电宝)
    FZU 2219 StarCraft(星际争霸)
    FZU 2213 Common Tangents(公切线)
    FZU 2215 Simple Polynomial Problem(简单多项式问题)
  • 原文地址:https://www.cnblogs.com/haoyy/p/6100452.html
Copyright © 2011-2022 走看看