zoukankan      html  css  js  c++  java
  • 局部加权线性回归

    加权直线回归

    简单来说,这个过程其实是在先拟合出一条曲线,然后再用这个曲线去预测需要预测的点。但是如果这个曲线拟合得不好(或者说样本数据含有大量噪音),那么这个预测结果就会很差。

    局部加权线性回归

    对于一个数据集合(x0,y0),(x1,y1),⋯,(xm,ym),我们预测它在x点时对应的y值时,如果采用的是传统的 线性回归模型,那么:


        Fit θ to mininize ∑i(y(i)−θTx(i))2
        Output θTx

    但是对于 局部加权线性回归(Locally Weighted Linear Regression)来说,在一定程度上可以避免上述问题,但是会付出一些计算量的代价。
    局部加权线性回归(Locally Weighted Linear Regression)的过程是这样的:

        Fit θ to mininize ∑iw(i)(y(i)−θTx(i))2
        Output θTx

    其中w(i)是一个非负的权值,这个权值是用来控制每一个训练实例对于模型的贡献,假设要预测的点是x,则w(i)可以定义为:

    w(i)=e−(x(i)−x)22τ2(1)

    要理解这个凭空多出来的w(i)是什么意思,我们需要首先来看一下这个函数的图像:
    从图像中我们可以看到,越是靠近预测点x,其函数值就越接近于1,越是远离预测点x,其函数值就越接近于0。将这个函数加入到原始的线性回归模型中,就变成了局部加权线性回归模型,其直观意义就是越是靠近预测点的实例点,它们对预测点的影响就应该越大,越是远离预测点的实例点,它们对预测点的影响就越小,也就是说局部加权线性回归模型只关注于预测点附近的点(这就是局部的含义),而不考虑其他远离预测点的实例点。
    局部加权线性回归其实是一个非参数学习算法(non-parametric learning algorithm),而相对的的,线性回归则是一个参数学习算法(parametric learning algorithm),因为它的参数是固定不变的,而局部加权线性回归的参数是随着预测点的不同而不同。
    由于每次预测时都只看预测点附近的实例点,因此每一次预测都要重新运行一遍算法,得出一个组参数值,因此其计算代价是比较高的。

  • 相关阅读:
    Dynamically allocated memory 动态分配内存【malloc】Memory leaks 内存泄漏
    const pointers
    heap是堆,stack是栈
    Java中使用Cookie
    Postman注册、登录、导出、导入
    HttpServletRequest get post 入参
    判断设置的时间是否大于当前时间
    JS回车登录
    一个普通的Ajax
    Java工具类
  • 原文地址:https://www.cnblogs.com/AI001/p/3996898.html
Copyright © 2011-2022 走看看