机器学习之KNN
2024-09-06 04:48:16
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算法的优缺点分析:
优点:
第一、简单好用,容易理解,精度高,理论成熟,既可以用来做分类也可以用来做回归;第二、对异常值不敏感
缺点:
第一、计算复杂性高;空间复杂性高;第二、样本不平衡会造成很大影响。第三、最大的缺点是无法给出数据的内在含义。
最新文章
- 如何自定义Flask中的响应类
- HBase应用开发回顾与总结系列之二:RowKey行键设计规范
- WPS Office Pro 2016 专业版
- ECSHOP始终显示全部分类方法
- Nodejs异步
- gulp详细入门
- heartbeat单独提供高可用服务
- Linux Shell 命令--awk
- XML 与 XML Schema的使用教程
- Spark学习(一)
- aop通配符语法
- 在operator =中要处理“自我赋值”
- HDU 4614 Vases and Flowers 【线段树】+【二分】
- 浅析 Bigtable 和 LevelDB 的实现
- 打包pyinstaller
- 在 Swift 中调用 OC 代码
- Linux常用基本命令(rename,basename,dirname)
- Windows 7系统如何设置计划任务?
- python 元组元素反转
- 网络对抗课题4.3.1 SQL注入原理与实践
热门文章
- 【洛谷5363】[SDOI2019] 移动金币(动态规划)
- autojump--懒人利器
- P站全新官方精选集Pixivision
- netty ByteBuf与String相互转换
- 【洛谷5008】逛庭院(Tarjan,贪心)
- java高并发系列 - 第3天:有关并行的两个重要定律
- Oracle:Redhat 7.4+Oracle Rac 11.2.0.4 执行root.sh报错处理
- springmvc学习笔记二:重定向,拦截器,参数绑定
- 1.java容器基本内容
- RSA加密算法破解及原理