数据分析 | KNN模型

本文介绍了KNN模型的基本思想,如何选择合适的k值(权重设置与交叉验证),以及三种常用的距离度量(欧氏、曼哈顿与余弦相似度)。通过实例演示了如何在Python中实现KNN分类器,包括参数设置和实际应用过程。
摘要由CSDN通过智能技术生成

一、模型思想

邻近算法,或者说K最邻近(KNN,K-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。

KNN原理1

如上图所示,模型的本质就是寻找k个最近的样本,然后基于最近样本做“预测”。对于离散型因变量来说,从k个最近的已知类别样本中挑选出频率最高的类别用于未知样本的判断;对于连续变量来说,则是将k个最近的已知样本均值作为未知样本的预测。

模型的执行步骤如下:

  1. 确定未知样本近邻的个数k值
  2. 根据某种度量样本间相似度的指标,将每一个未知类别样本的最近k个已知样本搜寻出来,形成簇
  3. 对搜寻出来的已知样本进行投票,将各簇下类别最多的分类用作未知样本点的预测

二、k值的选择

不同的k值对模型的预测准确性会有较大的影响,若k值过于偏小,可能会导致模型的过拟合;若k值偏大,又可能会使模型欠拟合。

01 设置权重

若k值设置的比较大时,担心模型发生欠拟合的现象时,可以设置近邻样本的投票权重,若已知样本距离未知样本比较远时,则对应的权重就设置得小一点,否则权重就大一点,通常可以将权重设置为距离的倒数。

02 交叉验证

采用多重交叉验证法,就是将k取不同的值,然后在每种值下执行m重交叉验证,最后选出平均误差最小的k值

preview

三、距离度量

01 欧式距离

在n维空间中,对于两点 A ( x 1 , x 2 , ⋯   , x n ) A(x_1,x_2,\cdots,x_n) A(x1,x2,,xn) B ( x 1 , x 2 , ⋯   , x n ) B(x_1,x_2,\cdots,x_n) B(x1,x2,,xn) 间距离为:
d A , B = ( y 1 − x 1 ) 2 + ( y 2 − x 2 ) 2 + ⋯ + ( y n − x n ) 2 d_{A,B}=\sqrt{(y_1-x_1)^2+(y_2-x_2)^2+\cdots+(y_n-x_n)^2} dA,B=(y1x1)2+(y2x2)2+

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ouroboroszzs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值