10173835

当前课程知识点:机器学习概论 >  第六章 基于实例的学习 >  6.6 距离加权的K近邻算法 >  距离加权的K近邻算法

返回《机器学习概论》慕课在线视频课程列表

距离加权的K近邻算法在线视频

下一节:第六章课件

返回《机器学习概论》慕课在线视频列表

距离加权的K近邻算法课程教案、知识点、字幕

然后给大家看几个例子 我们刚才已经给大家看过这个图了

原来是红色的这个分布 有这些点用1NN得到了这个是蓝色的这条线

5NN是这个点 这个 然后呢开始有神奇的事情发生了

我们如果加一个核函数 加一个距离 这个距离呢

我们是用距离的平方分之一

你会发现我现在学到的这个是蓝色的这条线

比刚才的5NN要好很多 也平滑很多 而且接近很多

但还不够好 对吧 我换一个核函数 这个核函数

就把它加了一个smoothing 把刚才的D前面加一个D0的smoothing

我们把它叫做平滑化 然后你会看到这个比刚才那个

看起来确实更平滑一些了 好吧 请期待下一个结果 高斯核函数

你还是用的一样的这个 对你加上一个高斯核函数

还是用的近邻的方法

然后我们可以学到非常接近它真实分布的这个状态了

这个高斯核大家应该已经反复的被知道 就是它是一个指数

就是E的负D 底下除以它的那个参数 它的标准差

所以呢 当这个方法出来了之后 我们又会看到

我们现在就可以总结一下了

今天跟大家讲的就是KNN 就是基于实例的学习

我们其实从1NN讲起 到KNN 然后到距离加权的近邻的方法

其实你就要涉及四个factor 四个因素

第一个因素是你要确定一个距离的度量

第二个因素是你打算采用多少个neighbor多少个邻居

第三个呢 是你要不要用一个加权函数

这个加权函数就是我们刚才说的那个核函数

要不要对距离做加权 第四就是你怎么样来输出你的最终的这个

local point 你这个点是什么 在1NN里面

我们刚才给大家介绍的是用了欧式距离 然后呢 我们只看一个

我们不用 也不需要加权 因为你就一个样例 然后呢

你怎么费的这个漏扣的点 就是它离哪个最近就把它输出成哪个

这个就是我们的1NN 对于KNN来说还是欧式距离

只是我们这里看了K个点 还有呢 我们也不用距离加权

然后我们最后的做法是做 做这个投票 然后呢

关于距离加权的KNN呢 我们其实在这里面我们用的就不是欧式距离了

我们是一个scaled的欧式距离 对距离做了放缩

然后要看多少个邻居呢 两种做法 要么是所有的邻居

要么是只看K个邻居也可以

所以刚才课间的时候曾经有同学来问我说 可不可以看

就是看几个邻居可不可以看所有的 可以

我们在距离加权的这个时候

因为你已经天然的把不同邻居的影响考虑进来了

你就可以看多个邻居了 如果你不做加权的话

我不建议你看所有邻居 那就是属于对所有的结果

你都大锅饭的去投票 那是不可以的

但你考虑了距离加权你就可以看所有的邻居

当然你也可以只看K个邻居 然后还有你用什么样的

要不要选择距离加权函数呢 要呀

然后这个时候你可以用很多种不同的和

其中我们刚才给了一个高斯和 请大家留意这里有一个高斯和

这里是一个 我们刚才说它是高斯和的参数 这个除以一个

就是标准差的那个参数 就是这个高斯

高斯曲线的这个高斯分布的标准差 这个我们把它叫做KW

这个KW是描述了这个 的宽度 它很重要 它很影响结果

我们一会儿会给大家用实际的例子 就是用数据的例子来看一看

然后那么你得到了 而且高斯和只是其中之一哈

你还有其他的核函数 我们刚才都写 都说过

其实理论上来讲什么样的核函数都可以 有可能可以使用

要针对你的问题来去分析

唯一的要求就是它必须得是一个距离的倒数

就是和距离是反向的倒数的关系

然后那怎么样去 去拟合最近的那个呢 你就把这个权重加上

就是把距离权重加上 做一个加权的投票

或者加权的距离的计算平均就可以了

这是我们要做的所有的事情 但是呢

我们在这里给大家再讲一些更新的topic叫做

locally weighted regression 这个事实上给大家做一个示意图

大家就知道什么叫做locally weighted regression了

大家在此呢 我们先看它其实 你看这个名字

你就知道它是什么算法了 首先它是一个regression

什么是regression 就是它是一个拟合

它其实就是要拟合出一个你最终的连续值的这种输出的目标函数

就是它不是离散的输出 而是连续输出的时候 我们会给它一个

把它这个问题不是一个分类任务 而是一个回归任务

是一个拟合regression 然后呢 local是什么意思呀

local的意思是说 我们只用你这个点附近的局部点就可以了

也就意味着你可以不用所有的点 你这个是取K

K用一些局部的点 我们这个就叫local 然后weighted的呢

事实上是说每一个点对这个当前这个点的贡献 是是有限

就是是加了权的 这么听起来大家觉得这个好像跟

刚才的距离加权的K近邻好像没什么区别嘛 的确

它可以看作是距离加权K近邻的一个特例 这个特例呢

就是因为我们是在做regression 是在做拟合 而刚才的那个

那个距离加权的KNN 你其实我们是拿离散点来去 来去举例的

这个呢 会有一个问题 就是regression的时候

你到底怎么样去做 在局部的时候怎么样做拟合

我们在这个举一个例子 假设这个是我们的 是这个样子

你其实会觉得它是一个这样的一批点

那么如果你要用一个线型的函数去拟合 你可能学到的是这种

这种样子 那其实效果会很糟糕 对吧 那么接下来呢

我们其实想有没有什么办法能改变这个呢

我们其实如果基于simple regression的做法

你这种线型回归你找到的这个 它的误差就会非常大了

我们在这儿主要指的是线型回归 那事实上我们如果用绿色来描述

用这种局部的我们加权的线型回归 可以做到什么样的事情

我们在这儿主要是做线型回归 你用几个点去求一条

做一个线型回归 然后这是你的第一个

然后这个就是你能够预测出来 你会发现它跟这个很接近

然后呢 下一个点 比如说在这个位置的点呢 你用这个位置的点

就是这个你要预测的这个点 附近的点去做线型回归

距离加权的线型回归 然后得到了这样的曲线 然后关于这个点

它应该是什么 应该是用它附近的点去做locally的regression

然后关于这个点 你也是用它附近的点去做regression

最后你会发现 你其实对于每一个数据点

你是用了一个局部的线型回归的模型 去做了一个拟合

线型模型去做了拟合 而且这个可以有距离加权

拟合出来的时候 每一个点其实最终它可以拟合的非常的接近

它的原始的分布 它有一个好处 就是你用的其实本质上

你是用的线型模型 线型模型非常的简单方便 易于计算

有特别多的好处 而且不容易过拟合

但是 因为你用了locally weighted 的这种方式 你

就可以最终让它呈现它事实上能够表达和描述的是一个复杂的规律

所以这个也是我们在这里要做一些介绍的

因此呢 对于locally weighted regression来说

这个是用locally weighted regression可以得到的结果其实也是很平滑的

也是用scaled的欧式距离 也是用这个 也是用核函数

唯一不同的是 它跟那个前面的distance weighted KNN相比

它唯一不同的是怎么样去fit你当前的这个点呢

你其实是去找一个local局部的线型模型

然后去找优化的是你局部线型 局部的这个线型模型它的

它的那个均方误差 然后使得均方误差最小的那个

就作为我当前这个局部的线型模型的这个输出

所以这个就是我们跟大家介绍的 应该是第五个

今天这个课里面介绍的第四个 还是五个 1NN KNN

然后还有distance加权的 那第四个locally weighted regression

第四个方法

然后最后给大家看一些例子 可能会有一些感受

你看这个是一些数据三种类型的数据点 我们如果就用线型回归

看到的是得到的这样的结果

你会发现对最左边的这个其实误差非常大

就基本上我们肉眼可见它其实应该是这样的一个 一个曲线

但是基本上损失了所有的信息

这个就是模型的上面的bias 这个模型呢

你看起来的fit得挺好了 但是它其实跟我刚才举的例子是很像的

它其实本质上我们肉眼 人看起来觉得它应该不是一个线型模型

然后这个呢 我们看不出什么规律来

倒反而觉得这个线型模型可能看起来还OK 好

然后还有一种做法就是 你就把点连到一起 等连到一起呢

你其实会发现这种情况 你就把噪声全都fit上了 但这种情况呢

你连了这个点 因为它数据本身也比较干净 你连了这个点感觉

哇 这个描述的很好呀 然后但这个办法你也一样是有这个噪声的

把噪声也fit的非常明显 最近邻的办法

会发现和直接连接点差不了太多 跟刚才的直接连接点非常像

它只是把那些抖动变成的阶梯状 显得略微平滑了一点

K近邻 我们这里用了9近邻 然后K近邻的时候

你会发现这个还是smoothing做的很好的 就是对噪声的 比如说这样的点啊

这种的例外的点 其实还是可以做得挺好的 但是呢

你的这个 就是它在一些有特别

特别陡的这些地方你损失的一些信息

这里其实也损失掉了不少的信息 然后第二个这个情况

除了两头之外 看起来也还行吧 但是还是不令人满意

然后对于第三个这种情况呢 你会觉得它的

它大概 trance到了它的趋势 但是仍然是在这种前后的

这种效果跟线型拟合相比效果还是要差很多 这是9NN

然后呢 这个是kernel regression

就是distance weighted regression 那个kernel regression

大家不知道是不是能看得清楚

我们在这里面的窗口取乘三十二分之一

然后就是x 这个x轴的32分之一 因为kernel决定了

你影响它的这个每一个已有的这些点 对你的距离的影响范围

然后所以你会看到这个就平滑很多了

然后但是事实上如果你把kernel变得更高一些的话

不是 把这个KW 把这个窗口变得更高一些的话

效果会变差 就是fit就不是特别好了

然后这个非常好 这个基本上是目前看到的最好的结果

然后这个呢 就平滑很多

但是我们确实也不知道这种变化它到底是噪声

还是说它其实会比那个linear regression好一点但是

然后所以其实特别值得提醒的是

如果你要用这种distance weighted这种

kernel regression的话

特别重要的是kernel的宽度其实是很有影响的

就是这个KW 特别需要去考虑一下

好 然后我们这个是给了一个locally weighted regression

就是locally weighted regression就是在局部线型regression

它跟刚才的那个kernel number的distance weighted kernel

是不完全一样的 就是最主要是它在输出的时候 在这里用了线性

然后线性你会发现 这个拟合的非常好

但这个的宽度我们取了十六分之一 然后这个宽度是三十二分之一

这个宽度是八分之一 总之目前为止 我们觉得这一批结果是最好的

但你也一定体会到了 你瞧对不同的数据点 那个KW都得不一样啊

那它到底哪个好呢 看来也只能训练一下

就是我们虽然说它是非参数的方法 但是呢

其实仍然需要有一些参数去训练 只是模型本身不是固定的

最后跟大家总结一下一个概念叫做lazy learning和eager learning

就是懒惰的学习和eager learning

热情的学习

对 和热情的学习 好 这个翻译不错

好 反了 那么eager learning是说我先去设定一个假设和模型

比如说 你看到这种随机的运动 你觉得就是一个老鼠

然后现在来了一个random movement 你就说我看到一个老鼠了

这是我们以前的那些model之前讲的

lazy learning呢 是我们instance base learning属于lazy learning的部分

lazy learning说 我先什么都不干先存下来

来了新的之后说它跟哪个很像 它就是哪个

那我们今天学的就是lazy learning的一类方法

lazy learning它的你的查询来了之后 就是你要分的样例来了之后

它才会去做泛化 然后它的 所以它训练时间很短

但它测试时间太长了 然后相反的eager learning呢

我在看到这个之前 我先把模型泛化好了

所以它的训练需要比较长的训练时间 测试基本上瞬间就可以完成

然后lazy learner呢 你是可以去做到局部优化

但是这种eager learner 大多数情况下

我们更多情况它往往能够达到全局的去实现全局优化的

如果它们的假设空间一样的话 那么比如说它们都是线性函数的话

lazy learner往往能够描述更复杂的问题

有更复杂的表达更复杂的函数

好 这个是我们今天跟大家介绍的所有的内容

希望大家呢 能够一步一步的能够follow这一类非常很神奇的办法

然后以后也许还能够用得到 好 今天的课程就到这里 大家下课

机器学习概论课程列表:

第一章 绪论

-1.1 课程介绍

--课程介绍(1)

--课程介绍(2)

-1.2 机器学习的背景

--机器学习的背景

-1.3 什么是机器学习

--什么是机器学习

-1.4 机器学习系统设计

--机器学习系统设计(1)

--机器学习系统设计(2)

-第一章作业

-第一章课件

第二章 决策树学习(I)

-2.1 决策树的基本概念

--决策树的基本概念

-2.2 决策树的实例和发展历史

--决策树的实例和发展历史

-2.3 经典决策树算法ID3

--经典决策树算法ID3(1)

--经典决策树算法ID3(2)

--经典决策树算法ID3(3)

-2.4 过拟合和前剪枝

--过拟合和前剪枝

-第二章作业

-第二章课件

第三章 决策树学习(II)和贝叶斯学习

-3.1 下午茶时间:勒索软件

--下午茶时间:勒索软件

-3.2 后剪枝

--后剪枝

-3.3 决策树的改进和归纳学习假设

--决策树的改进和归纳学习假设

-3.4 贝叶斯学习的背景

--贝叶斯学习的背景

-3.5 极大似然假设、朴素贝叶斯和最小描述长度

--极大似然假设、朴素贝叶斯和最小描述长度

-第三章作业

-第三章课件

第四章 马尔可夫模型和隐马尔可夫模型

-4.1 下午茶时间:微博的垃圾检测

--下午茶时间:微博的垃圾检测

-4.2 马尔可夫模型

--马尔可夫模型

-4.3 隐马尔可夫模型

--隐马尔可夫模型

-4.4 评估问题

--评估问题(1)

--评估问题(2)

-4.5 解码问题

--解码问题

-4.6 隐马尔可夫模型的应用

--隐马尔可夫模型的应用

-第四章课件

-第四章作业

第五章 假设检验

-5.1 下午茶时间:图灵奖

--下午茶时间:图灵奖(1)

--下午茶时间:图灵奖(2)

-5.2 假设评估

--假设评估(1)

--假设评估(2)

--假设评估(3)

-5.3 置信度和置信区间

--置信度和置信区间(1)

--置信度和置信区间(2)

--置信度和置信区间(3)

-5.4 有限数据下的比较

--有限数据下的比较

-第五章课件

-第五章作业

第六章 基于实例的学习

-6.1 下午茶时间:黑洞照片

--下午茶时间:黑洞照片

-6.2 基于实例的学习的基本概念

--基于实例的学习的基本概念

-6.3 最近邻算法

--最近邻算法

-6.4 K邻近算法

--K近邻算法

-6.5 KD树

--KD树

-6.6 距离加权的K近邻算法

--距离加权的K近邻算法

-第六章课件

-第六章考试

第七章 支持向量机(I)

-7.1 支持向量机的背景

--支持向量机的背景

-7.2 线性支持向量机

--线性支持向量机(1)

--线性支持向量机(2)

--线性支持向量机(3)

--线性支持向量机(4)

--线性支持向量机(5)

-第七章课件

-第七章作业

第八章 支持向量机(II)和无监督学习

-8.1 核函数支持向量机

--核函数支持向量机:向量空间

--核函数支持向量机:核函数(1)

--核函数支持向量机:核函数(2)

-8.4 支持向量机总结

--支持向量机总结

-8.5 无监督学习简介

--无监督学习简介(1)

--无监督学习简介(2)

-8.6 层次聚类

--层次聚类

-8.7 K-means聚类和K-medoids聚类

--K-means聚类和K-medoids聚类

-第八章课件

-第八章作业

距离加权的K近邻算法笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。