python机器学习_监督学习算法之KNN分类算法

KNN,即K-Nearest Neighbor,是一种基于距离度量的监督学习算法。它对噪声有良好的鲁棒性,并能在大数据集上有效工作。KNN在电影分类、手写字识别等场景中有广泛应用。尽管存在不相关属性影响距离计算和查询效率低的问题,但通过属性加权和使用如kd-tree等索引方法,可以优化这些问题。
摘要由CSDN通过智能技术生成

KNN的英文全称叫K-Nearest Neighbor,中文名称为K最近邻算法,它是由Cover和Hart在1968年提出来的。

相似性的度量:

相似性一般用空间内两个点的距离来度量。距离越大,表示两个越不相似。

KNN算法原理:

1. 计算已知类别数据集中的点与当前点之间的距离;
2. 按照距离递增次序排序;
3. 选择与当前距离最小的k个点;
4. 确定前k个点所在类别的出现概率;
5. 返回前k个点出现频率最高的类别作为当前点的预测分类。

 

 

 

 

 


电影分类:

KNN算法归纳:

(1)KNN属于惰性学习(lazy-learning)
(2)KNN的计算复杂度较高
(3)k取不同值时,分类结果可能会有显著不同

 

 

 

 

KNN算法应用说明:

按距离加权的k-近邻算法是一种非常有效的归纳推理方法。它对训练数据中的噪声有很好的鲁棒性,而 且当给定足够大的训练集合时它也非常有效。注意通过取k个近邻的加权平均,可以消除孤立的噪声样例的影
响。

问题一:近邻间的距离会被大量的不相关属性所支配。

解决方法:当计算两个实例间的距离时对每个属性加权。 

问题二:应用k-近邻算法的另外一个实践问题是如何建立高效的索引。因为这个算法推迟所有的处理,直
到接收到一个新的查询,所以处理每个新查询可能需要大量的计算。 


解决方法:目前已经开发了很多方法用来对存储的训练样例进行索引,以便在增加一定存储开销情况下 更高效地确定最近邻。一种索引方法是kd-tree(Bentley 1975;Friedman et al. 1977),它把实例存 储在树的叶结点内,邻近的实例存储在同一个或附近的结点内。通过测试新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值