Kernel Regression 核回归 详细讲解


目录

  • Kernel Regression 核回归 详细讲解
  • 一、首先介绍一下核函数
  • 二、核估计
  • 举个例子
  • 三、核回归
  • 举个例子
  • 四、带宽的影响


传统的线性回归只能拟合一条直线,核回归作为拟合非线性模型的一种方法,本质是利用核函数作为权重函数来建立非线性回归模型的。
先总结一下核回归的结论:
利用核函数计算出核回归 python 核回归应用_线性回归核回归 python 核回归应用_机器学习_02处的权重为:核回归 python 核回归应用_机器学习_03
核回归 python 核回归应用_线性回归(观测数据点,也就是我们的数据集中的点),核回归 python 核回归应用_机器学习_02(要预测的点)
则在核回归 python 核回归应用_机器学习_02处预测的核回归 python 核回归应用_机器学习_07值为所有核回归 python 核回归应用_机器学习_08的加权和: 核回归 python 核回归应用_核回归 python_09
接下来我们就从头开始讨论一下核回归,也称为局部线性回归。

一、首先介绍一下核函数

在非参数统计中,核是一个权重函数,并满足以下性质:

  1. 核函数是对称的,最大值在曲线中间。下图展示的是高斯核函数:
  2. 函数曲线下方面积必须等于1,即
    核回归 python 核回归应用_核回归 python_10
  3. 核函数的值必须是非负的,即
    核回归 python 核回归应用_核函数_11

二、核估计

在本篇中,主要讨论使用高斯核函数来拟合数据。高斯核函数的公式如下:
核回归 python 核回归应用_机器学习_12

其中,核回归 python 核回归应用_线性回归 是观察到的数据点,核回归 python 核回归应用_机器学习_02 是需要计算核函数的值(可能表述不准确,但是看到后面就明白了),核回归 python 核回归应用_机器学习_15

举个例子

假设这里由6个数据点,代表6个学生某门课的成绩:
核回归 python 核回归应用_机器学习_16

现在需要围绕这6个数据点构建核曲线,构建核曲线需要三个输入,分别是:

  • 观测数据点核回归 python 核回归应用_机器学习_17
  • 带宽核回归 python 核回归应用_核回归 python_18的值
  • 线性间隔的一系列数据点,包括需要估计核回归 python 核回归应用_线性回归_19值的观测数据点,如核回归 python 核回归应用_核函数_20

根据给的观测数据点核回归 python 核回归应用_线性回归核回归 python 核回归应用_机器学习_15计算所有核回归 python 核回归应用_核回归 python_23核回归 python 核回归应用_线性回归_24值,即核函数的值,下图的是观测数据点为核回归 python 核回归应用_权重_25,核回归 python 核回归应用_线性回归_26时所有核回归 python 核回归应用_核回归 python_23的的核回归 python 核回归应用_线性回归_24值:

核回归 python 核回归应用_线性回归_29


将以上数据画图显示出来,横坐标是核回归 python 核回归应用_核回归 python_23,纵坐标是核回归 python 核回归应用_线性回归_24。以核回归 python 核回归应用_线性回归为均值,核回归 python 核回归应用_机器学习_15为标准差构建的核曲线,可以看到和高斯分布一样

核回归 python 核回归应用_核函数_34


同理,对于所有的6个观测数据点,每个数据点对应一个核曲线,如下图所示。可以看到,对于离核回归 python 核回归应用_线性回归很远的核回归 python 核回归应用_核回归 python_23核回归 python 核回归应用_线性回归_24值几乎为0,如当核回归 python 核回归应用_权重_25是,核回归 python 核回归应用_线性回归_39核回归 python 核回归应用_线性回归_24值为0.

核回归 python 核回归应用_权重_41

三、核回归

下面进入重点了,核回归!
上面求出来的核值也就是核回归 python 核回归应用_线性回归_24值有什么用呢?核值用来计算权重以预测给定输入的输出,那如何计算权重以及如何使用权重来预测输出呢,接下来会详细介绍。

举个例子

下面给出了不同区域面积对应的河流量数据,区域面积与河流量之间是非线性关系,输入x也就是区域面积,输出y就是河流量。我们要做的就是建立x和y之间的非线性关系。

核回归 python 核回归应用_核回归 python_43


第一步:核作为权重函数

在上面我们已经讲解过了使用带宽为所有的观测数据点建立核曲线。接下来就要利用这些核曲线计算权重。这个例子中带宽使用了10。这个带宽需要根据数据进行调整以更好的拟合数据。下图展示了在不同x值处的核曲线:

核回归 python 核回归应用_核回归 python_44


注意:需要在所有的输入值x处建立核曲线,因为核回归的计算本质就是:给一个数据核回归 python 核回归应用_机器学习_17,要预测其核回归 python 核回归应用_权重_46值,就是计算所有观测数据核回归 python 核回归应用_权重_46值的加权和,而每个观测数据核回归 python 核回归应用_权重_46的权重就是其核曲线在核回归 python 核回归应用_机器学习_17处的那个值。

结合上面那个图,我们计算一下当核回归 python 核回归应用_线性回归_50的时候,如何预测它对应的y值。所有的核曲线在核回归 python 核回归应用_线性回归_50处的值就是上图中标星星的位置:

核回归 python 核回归应用_核函数_52


就用这些K值来计算权重,每一个K值都是在0~1之间(因为核函数的性质,上面提到了),计算权重的公式如下:

核回归 python 核回归应用_权重_53


核回归 python 核回归应用_核函数_54就是输入数据i的权重,n是观测数据的总数,所以当核回归 python 核回归应用_线性回归_50的时候,其预测对应的y值等于:

核回归 python 核回归应用_核函数_56


(核回归 python 核回归应用_核函数_57表示区域面积是11的时候的河流量,核回归 python 核回归应用_权重_58是对应的权重,根据上面那个式子计算出来的)

具体的计算数据由下表给出:

核回归 python 核回归应用_权重_59


同理,对于任何核回归 python 核回归应用_机器学习_02的值都由上面的过程估计,计算相应的核回归 python 核回归应用_机器学习_07值,就可以绘出下图:

核回归 python 核回归应用_权重_62


到这里,关于核回归大家应该都了解清楚了,之前的疑惑应该也消失了。那么进入最后一个部分,带宽的影响。

四、带宽的影响

上面的计算是基于核回归 python 核回归应用_线性回归_63的,带宽对于预测的效果时有很大影响的,下图显示了带宽等于5,10,15的效果:

核回归 python 核回归应用_核函数_64


核回归 python 核回归应用_权重_65


核回归 python 核回归应用_权重_66


可以看到较小的带宽值会过拟合数据,因为带宽小,核曲线就会变窄,预测核回归 python 核回归应用_线性回归处的y值的时候,核回归 python 核回归应用_机器学习_08会被赋予很高的权重,相当于核曲线只关注了与核回归 python 核回归应用_线性回归很近距离的y值,所以产生了过拟合。而当带宽过大时,预测曲线又会变得过渡平滑,欠拟合了没有办法表达出真实的输入与输出之间的关系。所以一般在核回归中带宽也是在回归过程中被优化的变量。

到这里,本文就结束了,希望可以帮助你。