KNN

1、原理

KNN是一种基本分类和回归方法。输入为实例的特征向量,输出为实例的类别。

2、流程

输入训练数据集

T={(x1,y1),(x2,y2),...,(xn,yn)}

其中, xiRn,yi{c1,c2,...,cn},i=1,2,...,N
输出:实例x所属的类y。
(1)根据给定的距离度量,在T中找出与x最近邻的k个点,涵盖k个点的x的邻域记作 Nk(x) ;
(2)在 Nk(x) 中根据分类决策规则决定x的类别y:
y=argmaxcjxiNk(x)I(yi=cj)i=1,2,...,N;j=1,2,...,k

I 为指示函数,yi=cjI=1I=0

3、模型

KNN中当训练集、距离度量、k值和分类决策规则确定后,输出类别唯一确定。

  1. 距离度量
    (1)p=1,曼哈顿距离
    L1(xi,xj)=l=1n|xlixlj|

    (2)p=2,欧氏距离
    L2(xi,xj)=(l=1n|xlixlj|2)1/2

    (3)p= ,各个坐标距离的最大值
    L(xi,xj)=maxl|xlixlj|
  2. k值的选择
    -k值较小,相当于在较小的邻域内对训练实例进行预测,近似误差会减少,估计误差会增大。
    整体模型会变得复杂,容易过拟合
    -k值较大,相当于在较大的邻域内对训练实例进行预测,近似误差会增大,估计误差会减少。
    整体模型会变得简单,容易欠拟合
    -调参的时候,先取一个较小的数值,用交叉验证的方法来选取k值。
  3. 分类决策规则
    一般采用多数表决规则。

4、kd树

kd数是一种对k维空间的实例进行存储以便对其进行快速检索的树状数据结构。

5、优缺点

-优点:
1. 思想简单,理论成熟,既可以用来做分类也可以用来做回归;
2. 可用于非线性分类;
3. 训练时间复杂度为O(n);
4. 准确度高,对数据没有假设,对outlier不敏感;

-缺点:
1. 计算量大;
2. 样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);
3. 需要大量的内存;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值