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算法的区别相关推荐

  1. 最长不下降子序列的O(n^2)算法和O(nlogn)算法

    转帖 最长不下降子序列的O(n^2)算法和O(nlogn)算法 最长不下降子序列(LIS:Longest Increasing Subsequence) //用句通俗的话说,我讲的很通俗易懂~~ 问题 ...

  2. WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析

    参考 FileInputFormat类中split切分算法和host选择算法介绍  以及 Hadoop2.6.0的FileInputFormat的任务切分原理分析(即如何控制FileInputForm ...

  3. 贪心算法和01背包算法

    贪心算法和01背包算法 实验报告 1.问题 2.解析 3.设计 4.分析 5.源码 实验报告 课程名称 <算法分析与设计> 实验名称 贪心算法和01背包算法 1.问题 [描述算法问题,首选 ...

  4. 并行sgd算法和min-batch gd算法

    sgd算法全称随机梯度下降法,有着比批梯度下降法更快收敛的优势,该算法名称中的"随机"二字是改算法的中心精神所在. sgd算法是一种天生的串行的算法,当数据量大的时候们希望通过使用 ...

  5. KNN算法和sklearn中的KNN算法

    KNN基本思想 KNN是通过测量不同特征值之间的距离进行分类.它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是 ...

  6. LBG算法、Lloyd算法和K均值算法

    ---------------------------------LBG算法.Lloyd算法和K-Means算法--------------------------------- LBG算法是一种矢量 ...

  7. K-means算法和K临近算法

    1.K-means算法 设定k个质心 repeat 遍历所有元素,选择最近的质心为一个簇 重新计算每个簇的质心 until 簇稳定不再变化或者到达最大迭代次数 实践复杂度为O(tkn),t为迭代次数, ...

  8. 使用Weka进行K-近邻算法和K-均值算法的使用

    0x01 Weka简介 Weka是由新西兰怀卡托大学开发的智能分析系统(Waikato Environment for Knowledge Analysis)  .在怀卡托大学以外的地方,Weka通常 ...

  9. 字符串匹配算法(一):BF(BruteForce)算法和RK(RabinKarp)算法

    文章目录 BF 思路 实现 RK 思路 实现 字符串匹配是计算机科学中最古老.研究最广泛的问题之一.一个字符串是一个定义在有限字母表∑上的字符序列.例如,ATCTAGAGA是字母表∑ = {A,C,G ...

最新文章

  1. vc 添加打开文件对话框并读取文件
  2. 优化DOTTEXT之二:缓存用户控件
  3. MySQL5.5.32编译安装
  4. 简单接触一下scikit-learn
  5. [你必须知道的.NET]第十九回:对象创建始末(下)
  6. linux怎么启动端口服务,Linux 根据端口快速停止服务并启动的办法
  7. 机器人学 —— 机器人感知(Mapping)
  8. python创建链表实例_python数据结构链表之单向链表(实例讲解)
  9. mysql金钱默认字段格式化_在SQL数据库中,设置了一个字段的类型为money,但是money类型数据保留的是四位小数,如何设置为两位小数?...
  10. 转:Python网页解析:BeautifulSoup vs lxml.html
  11. 谈谈银联 js 支付
  12. 使用VLC搭建视频直播服务器
  13. 9款非常适合Sketchup的渲染插件以及优点介绍
  14. 2022大厂真题盘点!190道大数据高频面试题+答案详解
  15. 联想z5 Android 9.0,联想Z5开启Android 9.0内测,新增人脸识别!
  16. VMware虚拟机配置IP地址
  17. 计算机网络安全-----Internet安全
  18. wangEditor 初始化设置行高、字体和字体大小
  19. 5G时代带动陶瓷PCB成长——GPS陶瓷天线调试方法(二)
  20. 重庆智能停车场的无线wifi网络覆盖解决方案

热门文章

  1. 什么是前端渲染和后端渲染和SPA页面
  2. bm29 bm30 bm4
  3. usleep java_usleep是否创建了线程取消点?
  4. 牛客网软件测试面试题总结
  5. MySQL索引重复插入数据报错
  6. WIN10 LTSC 安装EDGE和微软应用商店
  7. Opencv4android 眼睛追踪
  8. Windows中telnet不是内部或外部命令解决方法
  9. Unity之android Drawable数据传递以APPIcon为例
  10. DNW FOR WIN7