最近邻与K近邻算法思想
在关于径向基神经网络的一篇博文机器学习之径向基神经网络(RBF
NN)中已经对最近邻思想进行过描述,但是写到了RBF中有些重点不够突出,所以,这里重新对最近邻和K近邻的基本思想进行介绍,简洁扼要的加以总结。
最近邻的基本思想
保存所有观察到的有标签的样本,然后对新来的测试样本,在标签样本集中找到与测试样本最接近的标签样本,然后将该标签样本作为测试样本的输出。这是一种典型的监督式学习。在机器学习中有着非常重要的应用。只是对于最近邻来讲,训练似乎变了含义,它几乎不做训练,仅仅是存储观测过的样本及标签,并没有学到什么Hypothesis。所以算作是非常lazy的学习算法。在训练时lazy,那么在测试时就要费劲了,因为它需要计算每个标签样本与输入测试样本之间的相似度,运算花销较大。这就体现了磨刀不误砍柴工中磨刀和不磨刀的区别:如果磨刀了,在砍柴的时候就省事儿了,如果不磨刀,在砍柴的时候就得费劲了。
稍微拓展一下,我们选出最相似的k个邻居,然后由着k个邻居进行投票,或者线性融合,然后再输出,这样的模型就叫做k最近邻模型。在实际应用中K近邻的鲁棒性比最近邻要好许多。实际上将K近邻的相似度作为投票权重融合起来,这样的方法与统计分析中的蒙特卡洛方法颇为神似。
***********************************
2015-8-7
最近邻与K近邻算法思想的更多相关文章
- K近邻算法小结
什么是K近邻? K近邻一种非参数学习的算法,可以用在分类问题上,也可以用在回归问题上. 什么是非参数学习? 一般而言,机器学习算法都有相应的参数要学习,比如线性回归模型中的权重参数和偏置参数,SVM的 ...
- K近邻算法(一)
K 近邻算法思想: 寻找该点周围最近的K个点.根据这K 个点的类别来判断该点的类别: 核心: 数据归一化.(在必要的时候必须进行数据归一化处理,防止某一特征在计算数据时占比较重) 计算欧拉距离 . 使 ...
- 从K近邻算法谈到KD树、SIFT+BBF算法
转自 http://blog.csdn.net/v_july_v/article/details/8203674 ,感谢july的辛勤劳动 前言 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章 ...
- <转>从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
转自 http://blog.csdn.net/likika2012/article/details/39619687 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章待写:1.KD树:2.神经 ...
- 分类算法----k近邻算法
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的 ...
- 1. K近邻算法(KNN)
1. K近邻算法(KNN) 2. KNN和KdTree算法实现 1. 前言 K近邻法(k-nearest neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用, ...
- Python3入门机器学习 - k近邻算法
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...
- [转]K近邻算法
什么是K近邻算法 何谓K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法,单从名字来猜想,可以简单粗暴的认为是:K个最近的邻居,当K=1时,算法便成了最近邻算法,即 ...
- 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
转载自:http://blog.csdn.net/v_july_v/article/details/8203674/ 从K近邻算法.距离度量谈到KD树.SIFT+BBF算法 前言 前两日,在微博上说: ...
随机推荐
- QGraphicsView,QGraphicsScene,QGraphicsItem
参考:Qt4 开发实践第八章 图形视图QGraphicsView #ifndef DRIVEDGRAPH_H #define DRIVEDGRAPH_H #include <QObject> ...
- EL运算符和基本运算
1.EL存取器:.和[] ${applicationScope.list[].name} 获取applicationScope中list集合的第二个元素的name属性. 2.三元运算符: ${> ...
- PHP的3种发送HTTP请求的方式
1.CURL方式发送数据及上传文件 <?php class IndexController extends ControllerBase { public function indexActio ...
- codevs 4028 EZ系列
4028 EZ系列之愤怒的一天 题目描述 Description 有一天,在某某教学楼某某课室某某课桌旁,某某某大声尖叫起来. 在那一瞬间,勇敢的丁畅大大站了出来,向某某某讨好,结果被揍得半死. ...
- P5590 【赛车游戏】
果然我还是太\(Naive\)了 首先有一些点/边其实是没有意义的,如果从1出发不能到该点或者从该点不能到n,这个点就可以不用管了.这个过程可以用正反两边\(dfs/bfs\)实现 然后删掉那些点之后 ...
- 45、sparkSQL UDF&UDAF
一.UDF 1.UDF UDF:User Defined Function.用户自定义函数. 2.scala案例 package cn.spark.study.sql import org.apach ...
- (30)打鸡儿教你Vue.js
Vue+Webpack 1.对es6语法有基本了解 2.了解前端工程化 3.了解vuejs 1.通过webpack搭建vue工程workflow 2.哪些是学习vue的重点 3..vue文件开发模式 ...
- Windows下Apache配置多域名项目
<VirtualHost www.a.com:80> DocumentRoot "C:\object\a\web" ServerName http://www.a.co ...
- ora-28000:the account is locked,Oracle修改密码有效期,Oracle设置密码不过期
查询Oracle用户是否被锁定 --例如我这里是VMCXEDDB 是否被锁定 select username,account_status,lock_date from dba_users where ...
- 深入理解volatile原理与使用
volatile:称之为轻量级锁,被volatile修饰的变量,在线程之间是可见的. 可见:一个线程修改了这个变量的值,在另一个线程中能够读取到这个修改后的值. synchronized除了线程之间互 ...