机器学习:局部加权线性回归(Locally Weighted Linear Regression)
线性回归
先复习一下线性回归的损失函数:
我们的目标是使该函数最小,用矩阵表示为:
对参数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)相关推荐
- 局部加权线性回归(Locally weighted linear regression)
这里有现成的,引用一下.http://www.cnblogs.com/czdbest/p/5767138.html 转载于:https://www.cnblogs.com/imageSet/p/757 ...
- 局部加权线性回归(Local Weighted Linear Regression)+局部加权回归+局部线性回归
局部加权线性回归(Local Weighted Linear Regression)+局部加权回归+局部线性回归 locally weighted scatterplot smoothing,LOWE ...
- 机器学习--局部加权线性回归
文章目录 局部加权线性回归 预测鲍鱼年龄 局部加权线性回归 具体理论见上次笔记<线性回归> 预测鲍鱼年龄 import numpy as npclass LocalWeightedLine ...
- 机器学习代码实战——线性回归(多变量)(Linear Regression)
文章目录 1.实验目的 2.导入必要模块并读取数据 3.对数据进行处理 3.1.experience字段数字化 3.2.test_score(out of 10)字段NaN替换为平均数 4.训练+预测 ...
- 【机器学习】线性回归之概率解释及局部加权线性回归
Probabilistic interpretation 我们应该想这样一个问题:当我们讨论回归问题时,我们为什么要最小化平方损失函数?在CS229的课程中,吴恩达教授给我们做了详细的概率解释.现总结 ...
- 机器学习基础(三十) —— 线性回归、正则化(regularized)线性回归、局部加权线性回归(LWLR)
1. 线性回归 线性回归根据最小二乘法直接给出权值向量的解析解(closed-form solution): w=(XTX)−1XTy w=(\mathbf X^T\mathbf X)^{-1}\ma ...
- 机器学习(回归五)——线性回归-局部加权线性回归
前面博客有讲到,样本如果不是线性的可以通过多项式扩展,映射到多维空间来拟合.如此之外,还可以做一个局部加权线性回归(Locally Weighted Linear Regression,LWLR). ...
- 吴恩达——机器学习 局部加权回归(Loess)
先介绍参数学习方法和非参数学习方法: 参数学习方法:有固定数目的参数, 比如线性回归和逻辑回归中的 非参数学习方法:参数的数目会随着训练集的大小呈线性增长,比如局部加权回归 局部加权回归(Locall ...
- 1.9 程序示例--局部加权线性回归-机器学习笔记-斯坦福吴恩达教授
程序示例–局部加权线性回归 现在,我们在回归中又添加了 JLwr() 方法用于计算预测代价,以及 lwr() 方法用于完成局部加权线性回归: # coding: utf-8 # linear_regr ...
最新文章
- php 点击删除数据,使用php脚本删除数据
- Redis进阶 - 因异常断电导致的Redis Cluster Fail故障处理
- mysql怎么计算某个字段重复的个数_2020最新版MySQL数据库面试题(一)
- 万字长文|深入理解XDP全景指南
- 【自然框架】之通用权限(四):角色表组
- java重载方法math_Java语言程序设计(十二)Math数学类,方法重载及变量作用域...
- websocket底层处理粘包_Socket解决粘包问题1
- java学习笔记---3
- LCD1602显示中文汉字
- PCB检查流程checklist
- Java-数据结构-TreeMap
- 详解Transformer中Self-Attention以及Multi-Head Attention
- Spring boot2.0 JpaRepository findOne的使用
- NOIP2017模拟赛(4) 总结
- 新加硬盘但计算机里找不着,电脑开机找不到硬盘怎么办
- 一键彻底关闭Win10自带Windows Defender杀毒软件
- Intel 内部指令---AVX编程基础
- 1997年-2017年各省(直辖市、不包含西藏)能源投入(万吨标准煤)
- Java实现Excel批量导入数据
- 幸运盒子幸运砸金蛋微信盲盒游戏源码
热门文章
- 自学Java day12 使用jvav实现链表 从jvav到架构师
- 如何进入华为P40 debug 模式/开发者选项模式
- php实现一个简单的访客统计功能
- 电源完整性之DC-DC
- narwal机器人_Narwal云鲸扫地机器人扫拖彻底,用户用得更省心省力
- android监听点击通知栏,android使用NotificationListenerService监听通知栏消息
- 电脑技巧:推荐几款装机必备的软件
- GitHub 标星 120K+!这些神器仅需一行代码即可下载全网视频!
- 结巴分词有前空格_jieba英文空格分词问题
- php 项目反应理论,科学网—好文 | 纽约石溪大学:机器学习中基于项目反应理论的集成学习 - 陈培颖的博文...