机器学习--KNN算法(K-近邻)

KNN算法

  • 简称:K近邻算法
  • 英文全称:K-Nearest Neighbors Algorithm
  • 属于监督学习
  • 中心思想:找到未分类的测试样本,附近K个最相近的已分类的样本,该样本的分类,由附近已分类的样本投票决定

如何计算测试样本与y已分类样本之间的距离

  • 欧氏距离:相当于两点间距离
  • 曼哈顿距离:相当于X+Y

如何选择K值

  • K为经验值
  • 通常K取奇数
  • 一般情况下K∈(1,√n)
  • 当n较少时,K可以尝试(1,10]
  • 当n过大时,K∈(1,√n/2]

K值过大或过小的影响

  1. K值过小:例如K=1,预测结果对近邻的实例点非常敏感,容易受到噪声影响,发生过拟合
  2. K值过大:可以一定程度上避免上述情况,但是现有训练集的训练误差会增大,输入不相似的训练实例会导致预测错误

优点

适合分类问题,有较高的精确度,对异常值不敏感

缺点

1.计算未分类点与所有已分类的点距离,在进行排序,导致计算量大,不适合数据量很大的数据集
改进:使用K-D树数据结构,优化搜索操作,减少计算量
2.样本不平衡问题会影响分类结果
改进:采用权值的方法(距离的倒数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值