浅谈K-NN算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解决维度灾害问题的常用方法:1)属性加权;2)属 性选择。
近邻Biblioteka Baidu引问题
k-近邻算法的所有计算几乎都花费在索引近邻问题上 。因此,如何建立高效的索引是k-近邻算法的另外一 个实践问题。 目前,已经开发了很多对存储的训练样例进行索引的 方法,以便能高效地确定最近邻。如kd-tree把实例存 储在树的叶结点内,邻近的实例存储在同一个或附近 的节点内,通过测试新查询xq的选定属性,树的内部 节点把查询xq排列到相关的叶结点。
应用K-近邻算法来进行预测的时候,经常会遇到很多 现实问题。
这些问题包括:维度灾害问题、近邻索引问题、近邻 大小问题、 计算效率问题、归纳偏置问题。
维度灾害问题
k-近邻算法的一个实践问题:维度灾害
许多学习方法,比如决策树方法,选择部分属性作出判断, 而k-近邻方法中实例间的距离是根据实例的所有属性计算的 。 实例间距离会被大量的不相关属性所支配,可能导致相关属 性的值很接近的实例相距很远。
K-近邻算法特点
KNN 算法本身简单有效,它是一种 lazy-learning 算 法,分类器不需要使用训练集进行训练,训练时间复 杂度为0。KNN 分类的计算复杂度和训练集中的文档 数目成正比,也就是说,如果训练集中文档总数为 n, 那么 KNN 的分类时间复杂度为O(n)。
K-近邻三个基本要素
算法举例
如上图所示,有两类不同的样本数据,分别用蓝色的小正方形和红色 的小三角形表示,而图正中间的那个绿色的圆所标示的数据则是待分 类的数据。 问题:给这个绿色的圆分类? 如果K=3,绿色圆点的最近的3个邻居是2个红色小三角形和1个蓝色 小正方形,少数从属于多数,基于统计的方法,判定绿色的这个待分 类点属于红色的三角形一类。 如果K=5,绿色圆点的最近的5个邻居是2个红色三角形和3个蓝色的 正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待 分类点属于蓝色的正方形一类。
针对K近邻缺点的改进方案
针对第一个缺点,可以采用权值的方法(和该样本距 离小的邻居权值大)来改进。
目前常用的解决方法是事先对已知样本点进行剪辑, 事先去除对分类作用不大的样本。该算法比较适用于 样本容量比较大的类域的自动分类,而那些样本容量 较小的类域采用这种算法比较容易产生误分。
K近邻算法带来的问题
近邻大小问题
k-近邻算法的预测结果与k的大小相关。同样的数据, K值不同可能导致不同的预测结果。
计算效率问题
k-近邻算法推迟所有的计算处理,直到接收到一个新 的查询,所以处理每个新查询可能需要大量的计算。
归纳偏置问题
k-近邻算法的归纳偏置是:一个实例的分类xq与在欧 氏空间中它附近的实例的分类相似。
K近邻算法的缺点
当样本不平衡时,如一个类的样本容量很大,而其他 类样本容量很小时,有可能导致当输入一个新样本时, 该样本的K个邻居中大容量类的样本占多数。该算法只 计算“最近的”邻居样本,某一类的样本数量很大, 那么或者这类样本并不接近目标样本,或者这类样本 很靠近目标样本。 计算量较大,因为对每一个待分类的文本都要计算它 到全体已知样本的距离,才能求得它的K个最近邻点。
问题
实现 K 近邻算法时,主要考虑的问题是如何对训练数 据进行快速 K 近邻搜索,这在特征空间维数大及训练 数据容量大时非常必要。
K近邻算法应用
文本分类 图像处理
Thank you for your attention!
浅谈K-NN算法
主讲:苏敏
小组成员:骆健、刘兵、张文平、李鸣、苏敏
基本概念
全称:k-Nearest Neighbor 简称:K-NN
中文:K-近邻算法
什么是K-近邻算法
何谓K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法, 单从名字来猜想,可以简单粗暴的认为是:K个最近的邻居,当K=1 时,算法便成了最近邻算法,即寻找最近的那个邻 居。为何要找邻 居?打个比方来说,假设你来到一个陌生的村庄,现在你要找到与你 有着相似特征的人群融入他们,所谓入伙。 用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新 的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就 是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输 入实例分类到这个类中。根据这个说法,咱们来看下引自维基百科上 的一幅图:
内容补充:K值的选择
内容补充:距离度量之欧式距离

K近邻算法的优点
K-近邻算法不是在整个实例空间上一次性地预测目标 函数值,而是针对每个待预测的新实例,建立不同的 目标函数逼近,作出局部的和相异的预测 。这样做的 好处是:有时目标函数很复杂,但具有不太复杂的局 部逼近。 距离加权的k-近邻算法对训练数据中的噪声有很好的 健壮性,通过取k个近邻的加权平均,可以消除孤立的 噪声样例的影响。
K 值的选择 距离度量
根据欧氏距离定义实例间的距离。两个实例xi和xj的 距离d(xi,xj)定义为 n 2 d(x i ,x j ) ar(x i ) ar(x j )
分类决策规则
r 1
往往是多数表决,即由输入实例的 K 个最临近的训 练实例中的多数类决定输入实例的类别
基本思想
产生训练集,使得训练集按照已有的分类标准划分成离散型数 值类,或者是连续型数值类输出。 以训练集的分类为基础,对测试集每个样本寻找K个近邻,采 用欧式距离作为样本间的相似程度的判断依据,相似度大的即 为最近邻。一般近邻可以选择1个或者多个。 当类为连续型数值时,测试样本的最终输出为近邻的平均值; 当类为离散型数值时,测试样本的最终为近邻类中个数最多的 那一类。
相关文档
最新文档