之前所讨论的梯度下降算法,其算法模型是“线性回归模型”,我们可以理解为变量与因变量之间的关系是线性的。而现实情况是,使用线性模型去描述所有数据,很容易出现欠拟合(underfitting)的情况;同样,如果使用相当复杂的模型去描述数据集中所有的细节,则很容易产生另一种问题:过拟合(overfitting),即过分关注细节而忽略了数据变化的趋势。

 
所以,我们在此引出另一种模型:Locally weighted regression algorithm(LWLR/LWR),通过名字我们可以推断,这是一种更加关注局部变化的模型。的确如此,在普通的linear regression algorithm中,cost function是完全基于training set的,我们通过算法与training set求出h(x)的参数theta,然后训练结束,此后无论推测多少输出,h(x) 不再发生任何变化。
 
而LWR的完全不同之处在于,我们的cost function是由training set和要预测的数据共同决定的。我们从linear regression的cost function中看到,每个training example的权重都是相等的,而在LWR algorithm中,则是利用的权重项来给予预测值周边局部内的training sub-set更高关注,而基本忽略其他域内training examples的。其cost function为如下形式:
其中权重项的值为:

如果仔细观察,我们可以分析出这个函数是如何为局部范围内的训练样例加权而为局部范围外的训练样例除权的了:

a.当训练样例与x无限接近,我们可以知道,此时的权重项无限接近于1
b.当训练样例与x逐渐远离直至无穷远,此时的权重将无限接近于0
c.w的表达式看起来很像高斯分布,虽然它和高斯分布没什么关系,但的的确确也是一个Bell-Shaped Curve,而分母处tow称为bandwidth parameter,其作用类似于高斯分布中均方差的作用,用以控制钟形曲线的宽窄陡峭程度,如果tow很大,则表明离散程度大,曲线平缓,如果tow小,说明分布比较集中,曲线比较陡峭。
 
从某种意义上讲,LWR基本忽略了远离局部域的训练样例,专注于在预测值周边的training sub-set中建立线性回归模型,并做局部拟合。普通的linear regression模型是一种parametric learning algorithm,也就是说,学习过程有明确的参数,一旦确定就不会改变,一旦学习就可以丢弃。但locally weighted linear  regression是non-parametric learning algorithm,每次进行预估时,都需要进行重新学习。所以说,虽然lwr提供了更精准的拟合,但占用了更多的存储空间,计算时间也会更长。
 
 

Locally weighted regression algorithm的更多相关文章

  1. Locally weighted regression algorithm

    在此引出另一种模型:Locally weighted regression algorithm(LWLR/LWR),通过名字我们可以推断,这是一种更加关注局部变化的模型.的确如此,在普通的linear ...

  2. Locally Weighted Regression

    简单回顾一下线性回归.我们使用了如下变量:\(x\)—输入变量/特征:\(y\)—目标变量:\((x,y)\)—单个训练样本:\(m\)—训练集中的样本数目:\(n\)—特征维度:\((x^{(i)} ...

  3. Robust Locally Weighted Regression 鲁棒局部加权回归 -R实现

    鲁棒局部加权回归 [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. 算法参考文献: (1) Robust L ...

  4. locally weighted regression - CS229

    欠拟合和过拟合 看下方的三张图 第一幅拟合为了 y=θ0+θ1xy=θ0+θ1x 的一次函数 第二幅拟合为了y=θ0+θ1x+θ2x2y=θ0+θ1x+θ2x2 的二次函数 第三幅拟合为了 y=∑5j ...

  5. 局部加权回归、欠拟合、过拟合(Locally Weighted Linear Regression、Underfitting、Overfitting)

    欠拟合.过拟合 如下图中三个拟合模型.第一个是一个线性模型,对训练数据拟合不够好,损失函数取值较大.如图中第二个模型,如果我们在线性模型上加一个新特征项,拟合结果就会好一些.图中第三个是一个包含5阶多 ...

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

    (整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 前面几篇博客主要介绍了线性回归的学习算法,那么它有什么不足的地方么 ...

  7. 局部权重线性回归(Locally weighted linear regression)

    在线性回归中,因为对參数个数选择的问题是在问题求解之前已经确定好的,因此參数的个数不能非常好的确定,假设參数个数过少可能拟合度不好,产生欠拟合(underfitting)问题,或者參数过多,使得函数过 ...

  8. Locally Weighted Linear Regression 局部加权线性回归-R实现

      局部加权线性回归  [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. 线性回归容易出现过拟合或欠拟合的问 ...

  9. Logistic Regression Algorithm解决分类问题

    在线性回归算法中,我们看到,在training set中,输入矩阵X与向量y的值都是连续的.所以在二维空间中,我们可以用一条直线去模拟X与y的变化关系,寻找参数向量theta的取值.如根据房屋面积预测 ...

随机推荐

  1. WEUI官方样式小程序工具打开预览

    https://github.com/Tencent/weui-wxss 用微信web开发者工具打开dist目录(请注意,是dist目录,不是整个项目)

  2. 如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧

    实际案例: 1.过滤掉列表 [3,9,-1,10,20,-2..]的负数 2.筛出字典{'LiLei':79,'Jim':88,'Lucy':92...}中值高于90的项 3.筛出集合 {77,89, ...

  3. django-5-使用数据库

    修改默认数据库 django默认数据库为 SQLite3,若需要修改,比如改成mysql,则需要修改与settings.py文件同路径的__init__.py文件,添加如下内容: import pym ...

  4. [模板]网络最大流 & 最小费用最大流

    我的作业部落有学习资料 可学的知识点 Dinic 模板 #define rg register #define _ 10001 #define INF 2147483647 #define min(x ...

  5. springCloud的使用04-----熔断器hystrix的使用

    1. restTemplate+ribbon使用hystrix 1.1 引入依赖 <!-- 配置hystrix断路器 --> <dependency> <groupId& ...

  6. JS异步加载,JQ事件不被执行解决方法

    一,在我们实现动态生成HTML代码时会出现,使用JQ方法会不被执行,解决方法,如下:使用jquery的委托事件,将该方法委托到页面已经存在的一个节点上 <!DOCTYPE html> &l ...

  7. 使用intellij的idea集成开发工具中的git插件(转)

    转自:https://blog.csdn.net/u012225679/article/details/71123171 注意:这里并没有介绍git客户端的安装,如果要安装客户端,大家可以参考如下的链 ...

  8. Motan框架初体验

    1.什么是Motan? Motan是一套基于java开发的RPC框架,除了常规的点对点调用外,motan还提供服务治理功能,包括服务节点的自动发现.摘除.高可用和负载均衡等.Motan具有良好的扩展性 ...

  9. 10.ThreadLocal

    /** * - void set(Object value)设置当前线程的线程局部变量的值. * - public Object get()该方法返回当前线程所对应的线程局部变量. * - publi ...

  10. vue+cesiumjs环境搭建【import引入】

    之前写了一遍博客关于vue+cesium的搭建,后面是在index.html里通过script引入的,但是后面要用到指南针的时候发现指南针没法引入了 之前的链接:  https://www.cnblo ...