k-近临算法及代码实现

k-近临算法(KNN)采用测量不同特征值之间的距离方法进行分类。k-近邻算法优点是精度高、对异常值不敏感、无数据输入假定,缺点是计算复杂度高、空间复杂度高,适用数据范围为数值型和标称型。

k-近邻算法的工作原理:存在一个样本数据集合(训练样本集),并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较。然后算法提取样本集中特征最相似数据(最近邻)的分类标签,一般,我们只选择样本数据集中前k个最相似的数据。选择k个最相似数据中出现次数最多的分类,作为新数据的分类。

“近邻性”用距离度量,如欧式距离。


k-近邻算法计算过程

(1)在算式之前,需要把每个属性的值规范化,这有助于防止具有较大初始值域的属性(如收入)比具有较小初始值域的属性(如二元属性)的权重过大。


(2)对于某未知元组进行分类,找出离它最近的k个点。k一般为奇数是为了更好的比较,作出判别,比如(k=5, 3:2)

(3)属于哪一个类的多,就把这个待判别点(未知元组)判别为哪一类。

      

      另外, KNN也可以用于数值预测,即返回给定未知元组的实数值预测。在这种情况下,分类器返回未知元组的K个最近邻的实数值标号的平均值。

       如果属性不是数值而是标称的(或类别的)如颜色,如何计算距离?一种简单的方法是比较元组X1和X2中对应属性的值。如果两者相同(元组X1、X2均为蓝色),则二者之间的差为0,如果二者不同,则差为1。

       KNN使用基于距离的比较,本质上赋予每个属性相等的权重。当数据存在噪声或不相关属性时,准确率可能受到影响。然而,结合属性加权和噪声数据元组的剪枝。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值