线性回归

先复习一下线性回归的损失函数:

我们的目标是使该函数最小,用矩阵表示为:

对参数w求导得:

令上式等于0可估计出回归系数w得最优解:

但线性回归往往容易欠拟合,除了使用更复杂得函数拟合,还可以使用局部加权线性回归(locally weighted linear regression)

局部加权线性回归(LWLR)

在该算法中我们给待预测点附件得每个点赋予一定的权重,即在计算时我们更关注附近的数据,离的远的数据就不管了。
常使用高斯核来给数据点赋权重

高斯核

局部加权线性回归损失函数

同理,解的回归系数为损失函数对w求偏导,令偏导等于0求解w

回归系数

举个例子我们要拟合的数据如下,显然线性回归会欠拟合:

使用局部加权线性回归:

import matplotlib.pyplot as plt
import numpy as np
import mathdata = np.loadtxt('ex0.txt')def lwlr(testpoint, xArr, yArr, k):m = xArr.shape[0]   # 有多少行,200weights = np.mat(np.eye(m))  # (200,200)的单位矩阵for j in range(m):diffMat = testpoint - xArr[j, :]  # xArr的j行所有值weights[j, j] = np.exp(diffMat * diffMat.T / (-2.0*k**2))  # 这一直说我没对齐,卡了半天,最后把输入的X,mat一下就好了xTx = xArr.T * (weights * xArr)if np.linalg.det(xTx) == 0.0:print("矩阵为奇异矩阵,不能求逆")returnws = xTx.I * (xArr.T * (weights * yArr.T))return testpoint * wsdef lwlrTest(testArr, xArr, yArr, k):m = testArr.shape[0]  # 样本数200yHat = np.zeros(m)  #for i in range(m):yHat[i] = lwlr(testArr[i], xArr, yArr, k)return yHatX = np.mat(data[:, :2])
y = np.mat(data[:, -1])
yHat = lwlrTest(X, X, y, 0.01)  # 预测值yHat
srtInd = X[:, 1].argsort(0)  # 按特征的大小(x轴)排序,画折线图必须先排序, srtInd = [[151],[24]]
xSort = X[srtInd][:, -1]plt.plot(xSort[:, -1], yHat[srtInd], c='r')
plt.scatter(data[:, -2], data[:, -1])
plt.show()


如果使用线性回归会欠拟合:

机器学习:局部加权线性回归(Locally Weighted Linear Regression)相关推荐

  1. 局部加权线性回归(Locally weighted linear regression)

    这里有现成的,引用一下.http://www.cnblogs.com/czdbest/p/5767138.html 转载于:https://www.cnblogs.com/imageSet/p/757 ...

  2. 局部加权线性回归(Local Weighted Linear Regression)+局部加权回归+局部线性回归

    局部加权线性回归(Local Weighted Linear Regression)+局部加权回归+局部线性回归 locally weighted scatterplot smoothing,LOWE ...

  3. 机器学习--局部加权线性回归

    文章目录 局部加权线性回归 预测鲍鱼年龄 局部加权线性回归 具体理论见上次笔记<线性回归> 预测鲍鱼年龄 import numpy as npclass LocalWeightedLine ...

  4. 机器学习代码实战——线性回归(多变量)(Linear Regression)

    文章目录 1.实验目的 2.导入必要模块并读取数据 3.对数据进行处理 3.1.experience字段数字化 3.2.test_score(out of 10)字段NaN替换为平均数 4.训练+预测 ...

  5. 【机器学习】线性回归之概率解释及局部加权线性回归

    Probabilistic interpretation 我们应该想这样一个问题:当我们讨论回归问题时,我们为什么要最小化平方损失函数?在CS229的课程中,吴恩达教授给我们做了详细的概率解释.现总结 ...

  6. 机器学习基础(三十) —— 线性回归、正则化(regularized)线性回归、局部加权线性回归(LWLR)

    1. 线性回归 线性回归根据最小二乘法直接给出权值向量的解析解(closed-form solution): w=(XTX)−1XTy w=(\mathbf X^T\mathbf X)^{-1}\ma ...

  7. 机器学习(回归五)——线性回归-局部加权线性回归

    前面博客有讲到,样本如果不是线性的可以通过多项式扩展,映射到多维空间来拟合.如此之外,还可以做一个局部加权线性回归(Locally Weighted Linear Regression,LWLR). ...

  8. 吴恩达——机器学习 局部加权回归(Loess)

    先介绍参数学习方法和非参数学习方法: 参数学习方法:有固定数目的参数, 比如线性回归和逻辑回归中的 非参数学习方法:参数的数目会随着训练集的大小呈线性增长,比如局部加权回归 局部加权回归(Locall ...

  9. 1.9 程序示例--局部加权线性回归-机器学习笔记-斯坦福吴恩达教授

    程序示例–局部加权线性回归 现在,我们在回归中又添加了 JLwr() 方法用于计算预测代价,以及 lwr() 方法用于完成局部加权线性回归: # coding: utf-8 # linear_regr ...

最新文章

  1. php 点击删除数据,使用php脚本删除数据
  2. Redis进阶 - 因异常断电导致的Redis Cluster Fail故障处理
  3. mysql怎么计算某个字段重复的个数_2020最新版MySQL数据库面试题(一)
  4. 万字长文|深入理解XDP全景指南
  5. 【自然框架】之通用权限(四):角色表组
  6. java重载方法math_Java语言程序设计(十二)Math数学类,方法重载及变量作用域...
  7. websocket底层处理粘包_Socket解决粘包问题1
  8. java学习笔记---3
  9. LCD1602显示中文汉字
  10. PCB检查流程checklist
  11. Java-数据结构-TreeMap
  12. 详解Transformer中Self-Attention以及Multi-Head Attention
  13. Spring boot2.0 JpaRepository findOne的使用
  14. NOIP2017模拟赛(4) 总结
  15. 新加硬盘但计算机里找不着,电脑开机找不到硬盘怎么办
  16. 一键彻底关闭Win10自带Windows Defender杀毒软件
  17. Intel 内部指令---AVX编程基础
  18. 1997年-2017年各省(直辖市、不包含西藏)能源投入(万吨标准煤)
  19. Java实现Excel批量导入数据
  20. 幸运盒子幸运砸金蛋微信盲盒游戏源码

热门文章

  1. 自学Java day12 使用jvav实现链表 从jvav到架构师
  2. 如何进入华为P40 debug 模式/开发者选项模式
  3. php实现一个简单的访客统计功能
  4. 电源完整性之DC-DC
  5. narwal机器人_Narwal云鲸扫地机器人扫拖彻底,用户用得更省心省力
  6. android监听点击通知栏,android使用NotificationListenerService监听通知栏消息
  7. 电脑技巧:推荐几款装机必备的软件
  8. GitHub 标星 120K+!这些神器仅需一行代码即可下载全网视频!
  9. 结巴分词有前空格_jieba英文空格分词问题
  10. php 项目反应理论,科学网—好文 | 纽约石溪大学:机器学习中基于项目反应理论的集成学习 - 陈培颖的博文...