K-近邻算法(K-NN)

作者&投稿:卫呢 (若有异议请与网页底部的电邮联系)
~

给定一个训练数据集,对于新的输入实例, 根据这个实例最近的 k 个实例所属的类别来决定其属于哪一类 。所以相对于其它机器学习模型和算法,k 近邻总体上而言是一种非常简单的方法。

找到与该实例最近邻的实例,这里就涉及到如何找到,即在特征向量空间中,我们要采取 何种方式来对距离进行度量

距离的度量用在 k 近邻中我们也可以称之为 相似性度量 ,即特征空间中两个实例点相似程度的反映。在机器学习中,常用的距离度量方式包括欧式距离、曼哈顿距离、余弦距离以及切比雪夫距离等。 在 k 近邻算法中常用的距离度量方式是欧式距离,也即 L2 距离, L2 距离计算公式如下:

一般而言,k 值的大小对分类结果有着重大的影响。 当选择的 k 值较小的情况下,就相当于用较小的邻域中的训练实例进行预测,只有当与输入实例较近的训练实例才会对预测结果起作用。但与此同时预测结果会对实例点非常敏感,分类器抗噪能力较差,因而容易产生过拟合 ,所以一般而言,k 值的选择不宜过小。但如果选择较大的 k 值,就相当于在用较大邻域中的训练实例进行预测,但相应的分类误差也会增大,模型整体变得简单,会产生一定程度的欠拟合。所以一般而言,我们需要 采用交叉验证的方式来选择合适的 k 值

k 个实例的多数属于哪个类,明显是多数表决的归类规则。当然还可能使用其他规则,所以第三个关键就是 分类决策规则。

回归:k个实例该属性值的平均值

它是一个二叉树的数据结构,方便存储 K 维空间的数据

KNN 的计算过程是大量计算样本点之间的距离。为了减少计算距离次数,提升 KNN 的搜索效率,人们提出了 KD 树(K-Dimensional 的缩写)。KD 树是对数据点在 K 维空间中划分的一种数据结构。在 KD 树的构造中,每个节点都是 k 维数值点的二叉树。既然是二叉树,就可以采用二叉树的增删改查操作,这样就大大提升了搜索效率。

如果是做分类,你需要引用:from sklearn.neihbors import KNeighborsClassifier
如果是回归, 需要引用:from sklearn.neighbors import KNeighborsRegressor

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None, **kwargs)




用KNN算法判断知识掌握程度高低
k值过大,模型欠拟合,例如k=N,未知样本的类别将由所有已知样本中频数最高的类别决定,不管是训练集还是测试集被判为一种类别,易欠拟合。一般利用多重交叉验证得到平均误差最小的k值。还有一种方法是设置k近邻样本的投票权重,对已知样本距离较远的设置权重低一些,较近的设置权重高一些,通常将权重...

02 KNN算法 - KD Tree
当样本量少的时候,用 brute 直接搜索最近邻的方式是可行的。即计算到所有样本的距离。但当样本量庞大时,直接计算所有样本距离的工作量很大,这种情况使用 KD Tree 可以节约大量时间成本。KD树采用从m个样本的n维特征中,分别计算n个特征取值的方差,用 方差最大 的第k维特征n k 作为 根节点 。对...

07_推荐系统算法详解
(二)基于近邻的协同过滤 1、 基于用户(User-CF): 基于用户的协同过滤推荐的基本原理是,根据所有用户对物品的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,并推荐近邻所偏好的物品。 在一般的应用中是采用计算“K-近邻”的算法;基于这K个邻居的历史偏好信息,为当前用户进行推荐。 User-CF和基于人口统计学...

聚类算法--DBSCAN
还有一些其他不是实数的距离度量,一般在DBSCAN算法用不上,这里也就不列了。 4)algorithm:最近邻搜索算法参数,算法一共有三种,第一种是蛮力实现,第二种是KD树实现,第三种是球树实现。这三种方法与K近邻法(KNN)原理中算法一致。对于这个参数,一共有4种可选输入,"brute"对应第一种蛮力实现,"kd_tree"对应于第...

数据挖掘课程,有关信息增益的代替指标有哪些,并找出相关英文论文,我只...
K近邻(K近邻,KNN)分类算法,是一个理论上更成熟的方式,也是最简单的机器学习算法的想法?方法是:如果在特征空间中的样本,K最相似的(即,在特征空间中最接近的大多数样品)属于一类,将样品也属于这一类。 BR p> 9。朴素贝叶斯 在众多的分类模型,两种最常用的分类模型是决策树模型(决策树模型...

KNN数据填补算法
在使用KNN算法对数据进行填补时,需要对每条样本寻找其近邻点,所以我们首先需要计算不同样本之间的距离,这里可以使用sklearn.neighbors中的NearestNeighbors来解决 nbrs = NearestNeighbors(n_neighbors, algorithm = 'ball_tree').fit(X)distances, indices = nbrs.kneighbors(X)获得了距离矩阵后我们便...

请比较k近邻,决策树和朴素贝叶斯这三种分类算法之间的异同点
决策树算法主要包括id3,c45,cart等算法,生成树形决策树,而朴素贝叶斯是利用贝叶斯定律,根据先验概率求算后验概率。如果训练集很小,那么高偏差\/低方差分类器(如朴素贝叶斯分类器)要优于低偏差\/高方差分类器(如k近邻分类器),因为后者容易过拟合。然而,随着训练集的增大,低偏差\/高方差分类器将...

np是什么意思
NP的英文全称是Non-deterministic Polynomial的问题,即多项式复杂程度的非确定性问题。NP完全问题(NP-C问题),是世界七大数学难题之一。

如何应对样本不均衡问题
最常见的原型生成算法是通过聚类来实现,例如用k-means算法得到聚类中心之后,根据聚类中心来生成新的样本。 具体做法如下: 1、以少量样本总数出发,确定均衡后多量样本总数; 2、从多量样本出发,利用k-means算法随机的计算K个多量样本的中心; 3、认为k-means的中心点可以代表该样本簇的特性,以该中心点代表该样本簇...

pso的拓扑结构
Kennedy还基于K均值聚类算法提出混合空间邻域和环形拓扑方法的另一个局部PSO算法版本,称为社会趋同法,不用每个微粒的经验而是用它所属空间聚类的共同经验来更新自己。Engelbrecht研究了基本的PSO算法定位并维持多个最优点的能力,发现全局邻域PSO(gBest PSO)算法对此根本无能为力,而局部邻域PSO(nBest ...

元谋县18969713840: 什么是k - 最近邻算法 -
弋凝萘普: K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本...

元谋县18969713840: 请教K - NN法则算法的原理,全天在线,如有提示,立即给分 -
弋凝萘普: KNN(K 最近邻居)算法该算法的基本思路是:在给定新文本后,考虑在训练文本集中与该新文本距离最近(最相似)的 K 篇文本,根据这 K 篇文本所属的类别判定新文本所属的类别,具体的算法步骤如下:STEP ONE:根据特征项集合重新描...

元谋县18969713840: k近邻算法的案例介绍 -
弋凝萘普: 如 上图所示,有两类不同的样本数据,分别用蓝色的小正方形和红色的小三角形表示,而图正中间的那个绿色的圆所标示的数据则是待分类的数据.也就是说,现在, 我们不知道中间那个绿色的数据是从属于哪一类(蓝色小正方形or红色小三...

元谋县18969713840: 数据挖掘 K - NN算法 这个题 过程对吗!!!帮忙下 谢谢 -
弋凝萘普: 过程正确.不需要一定要和第一个比.KNN算法[5]的基本思路是[6]:在给定新文本后,考虑在训练文本集中与该新文本距离最近(最相似)的 K 篇文本,根据这 K 篇文本所属的类别判定新文本所属的类别,具体的算法步骤如下: 一、:根据特征项集合重新描述训练文本向量 二、:在新文本到达后,根据特征词分词新文本,确定新文本的向量表示 三、:在训练文本集中选出与新文本最相似的 K 个文本,

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网