k近邻算法及python实现

k近邻算法是机器学习中最简单的一种算法,简单粗暴,给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,把这K个实例中出现最多的类作为输入实例的类。对于初学者可能会好奇,这个近邻是什么意思?例如调查一群人的信息,会对研究目标调查多个特征,记录人的头发长度、身高、年龄、体重、肤色,性别,对这些特征采用数值进行刻画。假设现在我们需要通过头发长度、身高、年龄、体重和肤色这些数据来判断一个人的性别,我们会计算这个人的数据与其他(她)人的数据的差值,对差值取绝对值求和,找出差别最小的k个人,而把这k个人中性别多数作为这个人的性别判断结果。

k近邻算法

  输入:训练数据集


其中,xi属于特征向量,yi为实例的类别,i=1,2,...,N

 输出:实例x所属的类y

(1)根据给定的距离度量,在训练集T中找出与x最近的k个点,涵盖这个k个点的x的领域记做Nk(x).


(2)根据分类决策规则决定x的类别y,通常采用多数表决策略:


上式中I为指示函数,当yi=cj是I为1,否则为零。


从上面的算法可以看出,K近邻算法并不像其它的机器学习算法那样通过训练数据得到一个模型,通过这个学习到的模型来对数据进行预测。而是需要对每个预测数

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值