k近邻模型主要包含三个基本要素:距离度量、k值的选择、分类决策规则

模型:

k近邻法中,当训练集、距离度量、k值及分类决策规则确定后,对于一个新的输入实例,它所属的类唯一确定,这相当于根据上述要素将特征空间划分为一些子空间,确定子空间里的每一点所属的类。

距离度量:

特征空间中的两个实例点的距离是两个实例点相似程度的反映,k近邻模型的特征空间一般是n维实数向量空间Rn.使用的距离时欧氏距离,但也可以使用其他的距离,如Lp距离。当p=1时,称为曼哈顿距离,相应点的坐标之差的绝对值。当p=2时,是欧氏距离。当p=无穷大时,相应点的坐标之差的最大值。

k值的选择:

k值较小时,就意味着整体模型比较复杂,容易发生过拟合。k值较小时,整体模型比较简单,不能进行很好的预测。一般情况下我们会选择k值较小。

分类决策规则:

如果分类的损失函数为0-1 损失函数,分类函数为:f:R^{n}\rightarrow{c_{1,c_{2},\dots,c_{k}}}

那么误分类的概率为:    P(Y=/f(x))=1-P(Y=f(x))

对于给定的实例x属于X,其中最邻近的k个实例点构成集合Nk(x).如果涵盖Nk(x)的区域的类别是cj,那么误分类的概率是:

1/k*sum  I(yi=/cj)=1-1/k*sum  I(yi=cj)

要是误分类的概率最小即经验风险最小,就要使sum  I(yi=cj)最大,所以多数表决规则等价于经验风险最小化。

k近邻模型的更多相关文章

  1. K近邻模型(k-NN)

    原理 K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻 ...

  2. 学习笔记——k近邻法

    对新的输入实例,在训练数据集中找到与该实例最邻近的\(k\)个实例,这\(k\)个实例的多数属于某个类,就把该输入实例分给这个类. \(k\) 近邻法(\(k\)-nearest neighbor, ...

  3. 从K近邻算法谈到KD树、SIFT+BBF算法

    转自 http://blog.csdn.net/v_july_v/article/details/8203674 ,感谢july的辛勤劳动 前言 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章 ...

  4. 统计学习方法(三)——K近邻法

    /*先把标题给写了.这样就能经常提醒自己*/ 1. k近邻算法 k临近算法的过程,即对一个新的样本,找到特征空间中与其最近的k个样本,这k个样本多数属于某个类,就把这个新的样本也归为这个类. 算法  ...

  5. 机器学习中 K近邻法(knn)与k-means的区别

    简介 K近邻法(knn)是一种基本的分类与回归方法.k-means是一种简单而有效的聚类方法.虽然两者用途不同.解决的问题不同,但是在算法上有很多相似性,于是将二者放在一起,这样能够更好地对比二者的异 ...

  6. <转>从K近邻算法、距离度量谈到KD树、SIFT+BBF算法

    转自 http://blog.csdn.net/likika2012/article/details/39619687 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章待写:1.KD树:2.神经 ...

  7. 机器学习之路: python k近邻分类器 KNeighborsClassifier 鸢尾花分类预测

    使用python语言 学习k近邻分类器的api 欢迎来到我的git查看源代码: https://github.com/linyi0604/MachineLearning from sklearn.da ...

  8. 统计学习方法三:K近邻

    一.什么是K近邻? K近邻是一种基本的分类和回归方法. 在分类时,对新的实例,根据其K个最近邻的训练实例的类别,通过多数表决权等方式预测其类别. 通俗的讲,找K个和其关系最近的邻居,哪个类别的邻居多, ...

  9. 统计学习三:1.k近邻法

    全文引用自<统计学习方法>(李航) K近邻算法(k-nearest neighbor, KNN) 是一种非常简单直观的基本分类和回归方法,于1968年由Cover和Hart提出.在本文中, ...

随机推荐

  1. vue实例生命周期

    实例生命周期 var vm = new Vue({ data: { a: 1 }, created: function () { // `this` 指向 vm 实例 console.log('a i ...

  2. F9 excel上传

    1 在前台制定文件上传按钮 <div id="dataImport" class="mini-webuploader" pickerText=" ...

  3. matlab里plot画多幅图像、设置总标题、legend无边框

    %%绘图 suptitle('公路')  %总标题subplot(2,2,1);plot(x,y11,'r-') hold onplot(x,y21,'b-')xlabel('方向')ylabel(' ...

  4. Error pulling origin: error: Your local changes to the following files would be overwritten by merge

    Git在pull时,出现这种错误的时候,可能很多人进进行stash,相关stash的请看:Error pulling origin: error: Your local changes to the ...

  5. 总结的OSM 地图相关的分析

    How OSM works:  Tile Format: png,  z: levels [0- 18], x: Latitude [0- ], y: Longitude [0- ];         ...

  6. 关于C语言知识调查

    因为上一篇随笔对这一部分写得不够清楚,因此在这篇做一些补充. 你是怎么学习C语言的? 起初,对于C语言的学习主要是通过老师课堂的教学,完成相关的课后作业.与我的技能相比的话,他们都有一个共同点需要去实 ...

  7. java的基础语法

  8. VMMap(查看内存工具)

    来源: http://www.cnblogs.com/georgepei/archive/2012/03/07/2383445.html http://www.cnblogs.com/georgepe ...

  9. mysql修改编码

    1.查看当前编码 2.设置utf8mb4编码(也可以是其他),修改my.cnf或my.ini

  10. android判断文件是否是图片文件的方法

    判断一个文件是否是图片文件的方法,采用BitmapFactory去decode然后根据返回的Options参数来确定: public static boolean isImageFile(String ...