基本分类方法——knn(k近邻)算法

笨鸟居士的博客 笨鸟居士的博客     2022-08-18     373

关键词:

在这篇文章 http://www.cnblogs.com/charlesblc/p/6193867.html

讲SVM的过程中,提到了KNN算法。有点熟悉,上网一查,居然就是K近邻算法,机器学习的入门算法。

参考内容如下:http://www.cnblogs.com/charlesblc/p/6193867.html

1、kNN算法又称为k近邻分类(k-nearest neighbor classification)算法。
最简单平凡的分类器也许是那种死记硬背式的分类器,记住所有的训练数据,对于新的数据则直接和训练数据匹配,如果存在相同属性的训练数据,则直接用它的分类来作为新数据的分类。这种方式有一个明显的缺点,那就是很可能无法找到完全匹配的训练记录。

kNN算法则是从训练集中找到和新数据最接近的k条记录,然后根据他们的主要分类来决定新数据的类别。该算法涉及3个主要因素:

训练集距离或相似的衡量k的大小

 

3、行业应用
客户流失预测、欺诈侦测等(更适合于稀有事件的分类问题)

1、指导思想
kNN算法的指导思想是“近朱者赤,近墨者黑”,由你的邻居来推断出你的类别。

 

计算步骤如下:
    1)算距离:给定测试对象,计算它与训练集中的每个对象的距离
    2)找邻居:圈定距离最近的k个训练对象,作为测试对象的近邻
    3)做分类:根据这k个近邻归属的主要类别,来对测试对象分类

 

2、距离或相似度的衡量
什么是合适的距离衡量?距离越近应该意味着这两个点属于一个分类的可能性越大。
觉的距离衡量包括欧式距离夹角余弦等。
对于文本分类来说,使用余弦(cosine)来计算相似度就比欧式(Euclidean)距离更合适。

 

3、类别的判定
投票决定:少数服从多数,近邻中哪个类别的点最多就分为该类。
加权投票法:根据距离的远近,对近邻的投票进行加权,距离越近则权重越大(权重为距离平方的倒数

 

1、优点
简单,易于理解,易于实现,无需估计参数,无需训练
适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型)
特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如根据基因特征来判断其功能分类,kNN比SVM的表现要好

2、缺点
懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢
可解释性较差,无法给出决策树那样的规则。

 

四、常见问题

1、k值设定为多大?
k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太多的其它类别的点。(对距离加权,可以降低k值设定的影响)
k值通常是采用交叉检验来确定(以k=1为基准)
经验规则:k一般低于训练样本数的平方根

 

2、类别如何判定最合适?
投票法没有考虑近邻的距离的远近,距离更近的近邻也许更应该决定最终的分类,所以加权投票法更恰当一些。

 

3、如何选择合适的距离衡量?
高维度对距离衡量的影响:众所周知当变量数越多欧式距离的区分能力就越差
变量值域对距离的影响:值域越大的变量常常会在距离计算中占据主导作用,因此应先对变量进行标准化

 

4、训练样本是否要一视同仁?
在训练集中,有些样本可能是更值得依赖的。
可以给不同的样本施加不同的权重,加强依赖样本的权重,降低不可信赖样本的影响。

 

5、性能问题?
kNN是一种懒惰算法,平时不好好学习,考试(对测试样本分类)时才临阵磨枪(临时去找k个近邻)。
懒惰的后果:构造模型很简单,但在对测试样本分类地的系统开销大,因为要扫描全部训练样本并计算距离。
已经有一些方法提高计算的效率,例如压缩训练样本量等。

 

6、能否大幅减少训练样本量,同时又保持分类精度?
浓缩技术(condensing)
编辑技术(editing)

 

KNN可以用于推荐:

这里我们不用KNN来实现分类,我们使用KNN最原始的算法思路,即为每个内容寻找K个与其最相似的内容,并推荐给用户。

(注:注意与协同过滤的区别。协同过滤又多了一层,先看关注相同内容的用户,然后通过用户喜欢的内容来推荐;归根结底是因为无法计算内容之间的相似度,而把看了相同内容的用户再看的内容作为相似度的考量)。
 
 

 

k-近邻(knn)算法

...(K-NN)  邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。  kNN算法的核心思想... 查看详情

knn算法

k近邻法(k-Nearesteighbor,K-NN)是一种基本分类和回归方法。K近邻法的输入为实例的特征向量,对应的特征空间的点:输出为实例的类别,可以取多类。   k值的选择,距离度量,和分类决策规则是... 查看详情

class-k近邻算法knn

...1构造kd树3.2kd树搜索1k近邻算法knearestneighbor,k-NN,是一种基本分类与回归的方法,输入为实例的特征向量——对应空间的点,输出为实例的类别,可取多类。kNN假定一个训练集,实例类别已确定,分类时,对新的实例根据其k个... 查看详情

k近邻法(knn)原理小结

K近邻法(k-nearstneighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用。比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出了。这里就运用了KNN的思想。KNN方法既... 查看详情

k近邻算法(knn)与k-means算法的对比

k近邻算法(knn)是一种基本的分类与回归的算法,k-means是一种基本的聚类方法。k近邻算法(knn)基本思路:如果一个样本在特征空间的k个最相似(即特征空间最邻近)的样本大多数属于某一类,则该样本也属于这一类。影响... 查看详情

tensorflow实现knn(k近邻)算法

首先先介绍一下knn的基本原理:KNN是通过计算不同特征值之间的距离进行分类。整体的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。K通常... 查看详情

后端程序员之路12k最近邻(k-nearestneighbour,knn)分类算法

K最近邻(k-NearestNeighbour,KNN)分类算法,是最简单的机器学习算法之一。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方... 查看详情

k最近邻算法(代码片段)

...、KNN最近邻算法、神经网络算法、已经决策树等等。KNN的基本思想根据距离函数计算待分类样本X和每个 查看详情

k-近邻算法(knn)

工作原理:分类算法。输入未标记的新样本时,用算法提取训练样本集中和待分类的样本最近邻的K个分类标签(比如样本只有两个特征,在二维坐标系中用点来表示一个样本,选择和新样本点距离最近的K个点)。选取这k个分类... 查看详情

机器学习分类算法--k近邻算法knn(代码片段)

一、K近邻算法基础KNN-------K近邻算法--------K-NearestNeighbors思想极度简单应用数学知识少(近乎为零)效果好(缺点?)可以解释机器学习算法使用过程中很多细节问题更完整的刻画机器学习应用的流程 importnumpyasnpimportmatplotlib... 查看详情

knn是啥意思

参考技术Aknn是邻近算法,或者说K最邻近分类算法,全称为K-NearestNeighbor,是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,是K个最近的邻居的意思,说的是每个样本都可以用最接近的K个邻近值来代表。近邻算法是将数... 查看详情

机器学习之knn(k-近邻算法)(代码片段)

...结 KNN算法简介 k近邻算法(k-nearestneighbor)是一种基本的分类、回归算法。算法的基本思想是“物以类聚”。也就是说,物体周边事物的类别可以在某种程度上反应该物体的类别。例如,可以通过了解你身边最亲密的几个... 查看详情

k近邻法(knn)原理小结(代码片段)

  一、绪论   K近邻法(k-nearestneighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用。比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出了。这里就运用... 查看详情

knn(k-nearestneighbor)算法

参考技术A参考《数据挖掘10大算法》对kNN算法进行基本总结,附有一个Python3的简例。基本思想从训练集中找出k个最接近测试对象的训练对象,再从这k个对象中找出居于主导的类别,将其赋给测试对象。定位由于这种总体占优的... 查看详情

knn(代码片段)

...简单的机器学习算法之一,也是基于实例的学习方法中最基本的,又是最好的文本分类算法之一。 通常,在分类任务中可使用“投票法”,即选择这k个实例中出现最多的标记类别作为预测结果; 查看详情

k-邻近(knn)算法

K近邻分类算法概述K-近邻算法是机器学习之中最简单的分类算法之一,它采用测量不同特征值之间的距离方法进行分类。它的工作原理是:存在一个样本数量集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们... 查看详情

k-近邻算法(knn)

...说,K-近邻算法采用测量不同特征值之间的距离方法进行分类。欧氏距离是最常见的距离度量,衡量的是多维空间中各个点之间的绝对距离。公式如下:身高、体重、鞋子尺码数据对应性别导包,机器学习的算法KNN、数据鸢尾花... 查看详情

机器学习实战k-近邻算法实施knn分类算法

2.预测数据分类时,出现‘dict’objecthasnoattribute‘iteritems‘如: 最常见的解决办法是更改环境变量顺序如 注意:哪个版本在上面,cmd中的python版本即是谁。如又如:  然后预测数据所在分类即可实现:  查看详情