zoukankan      html  css  js  c++  java
  • Locally weighted linear regression(局部加权线性回归)

        (整理自AndrewNG的课件,转载请注明。整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/

        前面几篇博客主要介绍了线性回归的学习算法,那么它有什么不足的地方么?怎么改进呢?这就是本篇的主题。

        为了引出问题,先看一个关于线性的例子,选取不同的特征会得到不同结果。考虑给定一组数据,我们要进行线性回归,得到之间的关系。提出了三种不同的特征的选择方式,结果如下:

    image

    左图,选取一个特征,假设为,我们可以看到数据不能很好的和数据相吻合。

    中图,我们选取了两个特征,假设为,我们可以看到拟合效果变好了。那是不是特征越多越好呢?非也。

    右图,一共6个数据点,所以用5阶多项式就可以做到所有的数据点都在曲线上了,假设为。虽然将数据点拟合的很perfect,但是我们不认为这是一个很好的假设,因为它不能做到很好的预测。

         我们称左图的拟合效果为underfitting(欠拟合),数据中的明显的结构关系没有被模型所捕获。称右图的拟合效果为overfitting(过拟合),这种假设只是用于特定的数据,预测效果不好。中图的效果最好,那我们应该如何选择特征,使得假设的效果最好?有人说了,那就挨个试呗,先选择1个特征,看效果,2个特征,看效果。。。。我们可不愿意做这种事情。

        就像上面讨论的那样,特征的选择对学习算法的性能至关重要,那有没有自动选择特征集的算法,或者是让特征的选择对结果影响不那么大?这就是我们要介绍的Locally weight-

    ed linear regression (LWR),这个算法对特征集要求不是非常的严格。

        在最初的线性回归算法中,对于输入变量,我们要预测,我们通常要做的:

          image

        相对而言,对于局部加权线性回归,我们要做:

        image ,这里多了一个权值项。直观上,的值越大,它所对应的对结果的影响越大,反之越小。

        我们选择的形式如下:

        image ,其中的就是我们要预测的输入变量。为了理解,看下图:

       

        gg1显然,当足够小时,近似为1;当足够大时,近似为0;也就是说离很近的样本会得到接近为1的权值,很远的样本权值近乎为0。所以我们无们可以这样理解:在局部构成了线性回归算法,对于的学习,主要依赖于附近的点。如下图:

          image ,图中红色直线使用线性回归做的结果,黑色直线使用LWR做的结果,可以看到局部加权回归的效果较好。

        在让我们来看一下形式的的形式,和高斯函数形式很像,但和那一点关系都没有哦!是波长参数,控制了权值随距离的下降速率。

        总结一下:LWR算法是我们遇到的第一个non-parametric(非参数)学习算法,而线性回归则是我们遇到的以一个parametric(参数)学习算法。所谓参数学习算法它有固定的明确的参数,参数一旦确定,就不会改变了,我们不需要在保留训练集中的训练样本。而非参数学习算法,每进行一次预测,就需要重新学习一组是变化的,所以需要一直保留训练样本。也就是说,当训练集的容量较大时,非参数学习算法需要占用更多的存储空间,计算速度也较慢。有得必有失,效果好当然要牺牲一些其他的东西。人不一定什么都擅长,只要有自己的特点就可以了!!

  • 相关阅读:
    4-12日 面向对象的组合和继承
    4-8日 递归和二分查找
    4-11 对象的交互 命名空间作用域
    [LeetCode]-algorithms-Reverse Integer
    [LeetCode]-algorithms-Longest Palindromic Substring
    [LeetCode]-algorithms-Median of Two Sorted Arrays
    [LeetCode]-algorithms-Longest Substring Without Repeating Characters
    [LeetCode]-algorithms-Add Two Numbers
    Java中创建String的两种方式
    Java中String为什么是不可变的
  • 原文地址:https://www.cnblogs.com/hust-ghtao/p/3587971.html
Copyright © 2011-2022 走看看