KNN做回归和分类的主要区别在于最后做预测时候的决策方式不同。KNN做分类预测时,一般是选择多数表决法,即训练集里和预测的样本特征最近的K个样本,预测为里面有最多类别数的类别。而KNN做回归时,一般是选择平均法,即最近的K个样本的样本输出的平均值作为回归预测值。

KNN的三要素:k值的选取,距离度量的方式和分类决策规则

可以通过交叉验证选择一个合适的k值。对于距离的度量,我们最常用的是欧式距离,即对于两个n维向量x和y,两者的欧式距离定义为:

KNN的实现方式:

1)蛮力实现:即为计算预测样本和训练样本中所有点的距离,选择距离最小的前K个元素。利用投票表决法确定预测样本的类别。(或利用均值法确定预测样本的值)

其优点是实现简单,但是其缺点是当数据过大时计算量太大。

2)KD树:具体参考https://www.cnblogs.com/pinard/p/6061661.html

KNN算法的优缺点分析:

优点:

第一、简单好用,容易理解,精度高,理论成熟,既可以用来做分类也可以用来做回归;第二、对异常值不敏感

缺点:

第一、计算复杂性高;空间复杂性高;第二、样本不平衡会造成很大影响。第三、最大的缺点是无法给出数据的内在含义。

最新文章

  1. 如何自定义Flask中的响应类
  2. HBase应用开发回顾与总结系列之二:RowKey行键设计规范
  3. WPS Office Pro 2016 专业版
  4. ECSHOP始终显示全部分类方法
  5. Nodejs异步
  6. gulp详细入门
  7. heartbeat单独提供高可用服务
  8. Linux Shell 命令--awk
  9. XML 与 XML Schema的使用教程
  10. Spark学习(一)
  11. aop通配符语法
  12. 在operator =中要处理“自我赋值”
  13. HDU 4614 Vases and Flowers 【线段树】+【二分】
  14. 浅析 Bigtable 和 LevelDB 的实现
  15. 打包pyinstaller
  16. 在 Swift 中调用 OC 代码
  17. Linux常用基本命令(rename,basename,dirname)
  18. Windows 7系统如何设置计划任务?
  19. python 元组元素反转
  20. 网络对抗课题4.3.1 SQL注入原理与实践

热门文章

  1. 【洛谷5363】[SDOI2019] 移动金币(动态规划)
  2. autojump--懒人利器
  3. P站全新官方精选集Pixivision
  4. netty ByteBuf与String相互转换
  5. 【洛谷5008】逛庭院(Tarjan,贪心)
  6. java高并发系列 - 第3天:有关并行的两个重要定律
  7. Oracle:Redhat 7.4+Oracle Rac 11.2.0.4 执行root.sh报错处理
  8. springmvc学习笔记二:重定向,拦截器,参数绑定
  9. 1.java容器基本内容
  10. RSA加密算法破解及原理