k近邻模型
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近邻模型的更多相关文章
- K近邻模型(k-NN)
原理 K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻 ...
- 学习笔记——k近邻法
对新的输入实例,在训练数据集中找到与该实例最邻近的\(k\)个实例,这\(k\)个实例的多数属于某个类,就把该输入实例分给这个类. \(k\) 近邻法(\(k\)-nearest neighbor, ...
- 从K近邻算法谈到KD树、SIFT+BBF算法
转自 http://blog.csdn.net/v_july_v/article/details/8203674 ,感谢july的辛勤劳动 前言 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章 ...
- 统计学习方法(三)——K近邻法
/*先把标题给写了.这样就能经常提醒自己*/ 1. k近邻算法 k临近算法的过程,即对一个新的样本,找到特征空间中与其最近的k个样本,这k个样本多数属于某个类,就把这个新的样本也归为这个类. 算法 ...
- 机器学习中 K近邻法(knn)与k-means的区别
简介 K近邻法(knn)是一种基本的分类与回归方法.k-means是一种简单而有效的聚类方法.虽然两者用途不同.解决的问题不同,但是在算法上有很多相似性,于是将二者放在一起,这样能够更好地对比二者的异 ...
- <转>从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
转自 http://blog.csdn.net/likika2012/article/details/39619687 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章待写:1.KD树:2.神经 ...
- 机器学习之路: python k近邻分类器 KNeighborsClassifier 鸢尾花分类预测
使用python语言 学习k近邻分类器的api 欢迎来到我的git查看源代码: https://github.com/linyi0604/MachineLearning from sklearn.da ...
- 统计学习方法三:K近邻
一.什么是K近邻? K近邻是一种基本的分类和回归方法. 在分类时,对新的实例,根据其K个最近邻的训练实例的类别,通过多数表决权等方式预测其类别. 通俗的讲,找K个和其关系最近的邻居,哪个类别的邻居多, ...
- 统计学习三:1.k近邻法
全文引用自<统计学习方法>(李航) K近邻算法(k-nearest neighbor, KNN) 是一种非常简单直观的基本分类和回归方法,于1968年由Cover和Hart提出.在本文中, ...
随机推荐
- rocketmq(1)
参考: 开源社区:https://github.com/alibaba/RocketMQ rocketmq入门: http://www.cnblogs.com/LifeOnCode/p/4805953 ...
- C# 语言规范_版本5.0 (第18章 不安全代码)
1. 不安全代码 **(注:此章对于跨多语言编程开发非常重要,如遇异常无法完成跨语言,建议使用此种方式.) 如前面几章所定义,核心 C# 语言没有将指针列入它所支持的数据类型,从而与 C 和 C++ ...
- DBCP数据源的使用
DBCP(DataBase Connection Pool)是一个开源的数据源工具,实际开发直接使用就行了 导入需要的jar包,数据库使用mysql测试
- python 3.5构建WINDOWS推送服务
import ConfigParser import os import sys cf = ConfigParser.ConfigParser() #绝对路径获取 ABSPATH=os.path.ab ...
- Difference between TCP and UDP
refered from http://www.cyberciti.biz/faq/key-differences-between-tcp-and-udp-protocols/ TCP UDP Rel ...
- bit、byte、k
bit(位/比特位):一个二进制数据0/1 byte(字节):简称B:1byte=8bit:一个英文字符占用1byte,一个汉字占用2byte k:1K=1024B M:1M=1024K
- Scala并发编程
Scala的actor提供了一种基于事件的轻量级线程.只要使用scala.actors.Actor伴生对象的actor方法,就可以创建一个actor.它接受一个函数值/闭包做参数,一创建好就开始运行. ...
- HDU 1956 POJ 1637 Sightseeing tour
混合图的欧拉回路判定方法: 1.首先判断基图是否连通,不连通的话表示不可能,否则进入下一步. 2.对于无向边,随便确定一个方向 3.确定好了之后,整张图就变成了有向图,计算每个节点的入度与出度 4.如 ...
- 阮一峰:jQuery的几篇文章
jQuery的设计思想:http://www.ruanyifeng.com/blog/2011/07/jquery_fundamentals.html jQuery的最佳实践:http://www.r ...
- 第五、六章:图像&链接
图像有很多存储格式:JPEG.png.gif等,它们的文件大小也不同,使用的图片类型对于页面响应速度有不同的要求.下面就会简单阐述不同的格式的图片的特点. 1.JPEG格式 JPEG格式适用于彩色照片 ...