KNN算法和Kernel KNN算法的区别
KNN算法和Kernel KNN算法的区别
KNN算法
KNN(K-Nearest Neighbor,简称KNN)算法,是一种常用的监督学习方法,其工作机制为:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本。然后基于这k个“邻居”的信息来进行预测,通常可选择这k个样本中出现最多的类别标记作为测试结果;在回归任务中,可使用“平均法”,即将这k个样本的输出类别标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大。
也就是去找你要分类的这个数据的邻居,物以类聚人以群分,KNN数据分类的道理也是如此。要想知道该数据属于哪一个类别,只需要去调查哪些数据是离该数据最近的数据,知道了这几“邻居”的类别,就可以预测出该数据的类别。
给定一个待分类样本x,该算法首先找出与x最接近或最相似的k个训练样本,然后根据这k个训练样本x的类别标签确定样本的类别,在度量待分类样本与训练集样本的距离或相似性时,一般采用 欧氏距离。这种方法的缺点就是在应对复杂样本(比如样本分布不规则)时,分类准确率会大大降低。欧式距离 ρ ρ ρ的定义如下:
二维空间的欧氏距离,即两点之间的欧氏距离,点 ( x 1 , y 1 ) (x1,y1) (x1,y1)和点 ( x 2 , y 2 ) (x2,y2) (x2,y2):
ρ = √ ( y 2 − y 1 ) + ( x 2 − x 1 ) . ρ = √(y2-y1)+(x2-x1). ρ=√(y2−y1)+(x2−x1).
三维空间的欧氏距离:
ρ = √ ( y 2 − y 1 ) + ( x 2 − x 1 ) + ( z 2 − z 1 ) . ρ = √(y2-y1)+(x2-x1)+(z2-z1). ρ=√(y2−y1)+(x2−x1)+(z2−z1).
Kernel KNN算法
Kernel KNN(核K近邻)算法,使用 核距离 代替欧氏距离作为待分类样本与训练集样本的距离度量,实验表明该算法的分类效果优于传统的K近邻算法。但该算法的主要缺点是核函数的参数P难以确定,主要是依据经验确定。
多项式核函数 K p ( x , y ) Kp(x,y) Kp(x,y)的定义如下:
K ( x , x i ) = ( x ▪ x i + 1 ) d , d = 1 , 2 , . . . , N K(x,xi)=(x▪xi+1)^d, d=1,2,...,N K(x,xi)=(x▪xi+1)d,d=1,2,...,N
最常用的多项式核函数 K p ( x , y ) Kp(x,y) Kp(x,y)的定义如下:
K p ( x , y ) = ( 1 + < x , y > ) P . Kp(x,y) = (1+<x,y>)^P. Kp(x,y)=(1+<x,y>)P.
核函数
在实际数据上经常遇到线性不可分的情况,而解决方法是将特征映射到更高维的空间去,核函数虽然也是将特征进行从低维到高维的转化,但是是在低维上进行计算,而实际的效果表现在高维上,这就解决了维度灾难的问题。
核函数的选择要求满足Mercer定理,即核函数在样本空间内的任意格拉姆矩阵(Gram matrix)为半正定矩阵(semi-positive definite)。
KNN算法和Kernel KNN算法的区别相关推荐
- 最长不下降子序列的O(n^2)算法和O(nlogn)算法
转帖 最长不下降子序列的O(n^2)算法和O(nlogn)算法 最长不下降子序列(LIS:Longest Increasing Subsequence) //用句通俗的话说,我讲的很通俗易懂~~ 问题 ...
- WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析
参考 FileInputFormat类中split切分算法和host选择算法介绍 以及 Hadoop2.6.0的FileInputFormat的任务切分原理分析(即如何控制FileInputForm ...
- 贪心算法和01背包算法
贪心算法和01背包算法 实验报告 1.问题 2.解析 3.设计 4.分析 5.源码 实验报告 课程名称 <算法分析与设计> 实验名称 贪心算法和01背包算法 1.问题 [描述算法问题,首选 ...
- 并行sgd算法和min-batch gd算法
sgd算法全称随机梯度下降法,有着比批梯度下降法更快收敛的优势,该算法名称中的"随机"二字是改算法的中心精神所在. sgd算法是一种天生的串行的算法,当数据量大的时候们希望通过使用 ...
- KNN算法和sklearn中的KNN算法
KNN基本思想 KNN是通过测量不同特征值之间的距离进行分类.它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是 ...
- LBG算法、Lloyd算法和K均值算法
---------------------------------LBG算法.Lloyd算法和K-Means算法--------------------------------- LBG算法是一种矢量 ...
- K-means算法和K临近算法
1.K-means算法 设定k个质心 repeat 遍历所有元素,选择最近的质心为一个簇 重新计算每个簇的质心 until 簇稳定不再变化或者到达最大迭代次数 实践复杂度为O(tkn),t为迭代次数, ...
- 使用Weka进行K-近邻算法和K-均值算法的使用
0x01 Weka简介 Weka是由新西兰怀卡托大学开发的智能分析系统(Waikato Environment for Knowledge Analysis) .在怀卡托大学以外的地方,Weka通常 ...
- 字符串匹配算法(一):BF(BruteForce)算法和RK(RabinKarp)算法
文章目录 BF 思路 实现 RK 思路 实现 字符串匹配是计算机科学中最古老.研究最广泛的问题之一.一个字符串是一个定义在有限字母表∑上的字符序列.例如,ATCTAGAGA是字母表∑ = {A,C,G ...
最新文章
- vc 添加打开文件对话框并读取文件
- 优化DOTTEXT之二:缓存用户控件
- MySQL5.5.32编译安装
- 简单接触一下scikit-learn
- [你必须知道的.NET]第十九回:对象创建始末(下)
- linux怎么启动端口服务,Linux 根据端口快速停止服务并启动的办法
- 机器人学 —— 机器人感知(Mapping)
- python创建链表实例_python数据结构链表之单向链表(实例讲解)
- mysql金钱默认字段格式化_在SQL数据库中,设置了一个字段的类型为money,但是money类型数据保留的是四位小数,如何设置为两位小数?...
- 转:Python网页解析:BeautifulSoup vs lxml.html
- 谈谈银联 js 支付
- 使用VLC搭建视频直播服务器
- 9款非常适合Sketchup的渲染插件以及优点介绍
- 2022大厂真题盘点!190道大数据高频面试题+答案详解
- 联想z5 Android 9.0,联想Z5开启Android 9.0内测,新增人脸识别!
- VMware虚拟机配置IP地址
- 计算机网络安全-----Internet安全
- wangEditor 初始化设置行高、字体和字体大小
- 5G时代带动陶瓷PCB成长——GPS陶瓷天线调试方法(二)
- 重庆智能停车场的无线wifi网络覆盖解决方案