数据挖掘学习--k-近邻分类器(最近邻分类器)

1.k-近邻分类器
k-近邻算法是一种最简单的数据挖掘算法,在平时使用中也很常见。k-近邻中的近邻指的是距离待预测数据的数据点,而k-近邻就指的是取前k近的数据点,例如3-近邻算法就是找到3个离待预测数据作为最近邻。k-近邻算法是一种监督学习的算法(即原本的数据集中是分类明确的)。
2.k-近邻分类器的原理
最近邻分类器把每个样例(训练数据、测试数据同时也有待预测的数据)当作是d维空间上的一个数据点,而d指的是样例的属性个数。而在d维空间上就有不同点之间的“距离”(距离有很多种,汉明距离,欧拉距离,闵科夫斯基距离等),依靠这些点之间的距离的差异,将有远近之分。那么k-近邻分类器就是把预测的原则定位取决与这些离它“最近”的k个数据点,若离它最近的数据点中A类多余B类,则认为它大概率是B类的数据点,完成分类。
3.k-近邻的自写代码

import numpy as np
from math import sqrt
from collections import Counter

#传入参数分别为属性训练集,类别训练集,参数k,待预测的数据
def KNN_classify(x_train , y_train , k , predict):

    assert 1 <= k <= len(x_train) , 'The value of k is invalid.'
    assert len(x_train) == len(y_train) , 'The number of x is not equal to the number of y.'

    #这里点与点的距离取的是欧拉距离,如果是不止这么少的属性空间,那么就运用循环
    distance = [sqrt( ((x
  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值