局部加权线性回归算法原理分析和代码实战

本文深入探讨局部加权线性回归,解释如何利用高斯核函数解决线性回归的欠拟合问题。通过实例展示算法实现过程,强调权值在数据点周围的影响力,并给出不同k值下拟合效果的比较,揭示最佳k值的重要性。
摘要由CSDN通过智能技术生成

局部加权线性回归算法原理分析和代码实战

前言

前面我们介绍了最基础的线性回归算法,也提到了它容易出现欠拟合的现象。那么,本文的局部加权线性回归将解决这个欠拟合问题。我觉得这个思路具有很好的迁移性,咱们一起好好看看。

项目源码已上传至GitHubb上,有需要的自取:项目地址
如果项目对你有些许帮助,不要忘记给个小⭐⭐

算法原理分析

1. 什么叫局部加权?

使用“近朱者赤,近墨者黑”来形容这个算法再合适不过了。在你的社交圈子里,离你距离越近,对你的影响就越大,离你距离越远,对你的影响越小。我们以每一个数据为一个社交中心,对于存在于该数据周围的所有数据按照距离赋予权值,这里我们使用高斯函数进行权值计算。

2. 什么是高斯核函数?

也称径向基函数,简称RBF,定义为空间中任意一点xi到x之间欧氏距离的单调函数。当两个点距离很近时,这个值越大,当两个点距离很远时,距离很小。我们就使用这个函数来对数据赋予权值。

数据集普遍都具有很多属性,所以一般的高斯核函数如下:

img

σ表示属性值的方差

由于我们本次使用的数据集只有一个属性,并且我们需要自己控制拟合程度,所以,我们对于上面的式子做出了一点改进:

img

这个w权值是一个方阵,其形状大小有数据量决定。我们假设有m条数据量,那么w权值的形状大小为(mxm)的方阵。

此方阵对角线存放权值,其余全是0,这样弄的原因是为了计算表示的方便,我们看下面的式子:

img

img

接下来我以数据点x[0]= [1.0, 0.42781]为数据中心点,对整个数据集计算权值,生成的图像如下:

image-20200624145049225

从图像我们可以看到,接近于0.4281的地方都比较高,都比较接近于1,离这个点越远,其值就越小。

3. 加入权值后的线性回归公式

下面公式是在上一篇博客的公式推导基础上,进行改进的。如果没有看过,建议先去大致看一眼

线性回归算法拟合数据原理分析以及源代码解析

  • 最小均方差公式

img

img

  • 化简形式

img

  • 对F进行求导,得出α的表达式

img

局部加权线性回归代码实战

  1. 加载数据

首先我们先看一下文本数据的属性有哪些

image-20200624113916873

图中最坐标红色方块是数据的常数1,用来求解常量,对应着就是我们前面公式的b。

中间黄色的是我们的属性值α1.

最右边白色的是我们数据的值,也就是y值。

我们来看一下数据的分布情况:

image-20200624115800582

def LoadData(filename):
    dataMat = []
    labelMat = [
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值