数据挖掘算法---KNN(附python代码)

KNN(K近邻)是一种基于最相似性的分类算法。本文介绍了KNN的思想、关键步骤、适用场景,并提供了Python代码示例。相似度计算通常使用余弦相似度、皮尔逊系数或欧氏距离,K的选取需要平衡模型复杂度和泛化能力。KNN搜索可以通过kd树优化。KNN适用于样本量大的分类任务。
摘要由CSDN通过智能技术生成

首先本文只是介绍一下算法的思想以及里面涉及的关键的步骤,至于其所以然,大家可以看些专业的讲义或者视频,在此强烈推荐July的文章,虽然对于一些基础不好的人来说看完july的一篇长文是很费劲的,但是此人有传道精神,解惑品质,日后定成大师。希望以后大家多多支持。

KNN中文名字是K近邻,可以用于分类和回归,下面以分类为例进行讲解:

算法思想:

基于最相似的算法思想,类似协同过滤。比如说已知了训练集的一些数据的标签,要预测测试集的数据的标签,只需要计算预测集的每一个数据和训练集的数据的相似度,然后选取最相似的k个,再然后让着k个数据的类标签共同投票要预测的数据的类标签。

这里写图片描述

**

几个问题:

**

  1. 相似度如何计算?
    一般的相似性计算有余弦相似度、皮尔十森系数、欧氏距离。。。。具体采用哪个要看具体的情景。

  2. K的选取有何原则?
    如果K选的过大,就不能很好的利用训练数据的有效的信息,也就是那些真正相似的数据,极端的例子是K取训练数据的总数;另一方面K选的过小,容易造成模型变得复杂,结果变得十分敏感,且出现错误的概率也增大,比如噪声恰好和目标数据很相似,极端的例子就是K=1,这时候就叫做最近邻。

  3. 共同投票的原则是什么?
    投票多采用多数投票决定,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值