KNN的主要优点有:
1.理论成熟,思想简单,既可以用来做分类又可以做回归
2.可以用于非线性分类
3.训练时间复杂度比支持向量机之类的算法低
3.和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感
4.由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属的类别,因此对于类域的交叉或重叠较多的待分类样本集来说,KNN方法较其他方法更为适合
5.该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量比较小的类域采用这种算法比较容易产生误分类情况
KNN的主要缺点:
1.计算量大,尤其是特征数非常多的时候
2.样本不平衡的时候,对稀有类别的预测准确率低
3.KD树,球树之类的模型建立需要大量的内存
4.是慵懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢
5.相比决策树模型,KNN模型的可解释性不强
KNN算法介绍:
KNN,k-NearestNeighborK ,又称K最近邻。所谓K最近邻,就是k个最近的邻居的意思。
说的是每个样本都可以用它最接近的k个邻居来代表,是一种分类算法,用于参考已知的数据,对未知实例的类别进行判断。
算法步骤:
将每个样本视作一个点
1. 载入数据集,对数据进行必要的预处理
2. 设置参数K,K最好选择奇数,因为后续进行归类的策略是少数服从多数,设置K为奇数的话总会有结果。
3. 计算待预测点与已知点之间的关系,这里的关系可以有多种方式来体现,常用如下:
①欧式距离(应用较广,其他及其算法也有广泛应用),其计算方法:
②余弦值
③相关度
④曼哈顿距离
⑤…
4. 之前确定了参数K,计算了待预测点与已知点之间的距离衡量,将计算的结果进行从小到大排序,取前K个点
5. 将待预测点归类为多数的那一个类别,这便是对于未知点的类别预测结果了。
算法优点:
1.简单,易于理解,易于实现,无需估计参数,无需训练;
2. 适合对稀有事件进行分类;
3.特别适合于多分类问题(multi-modal,对象具有多个类别标签), kNN比SVM的表现要好。
算法缺点:
需要大量的空间来存储已知的实例,再一个是算法复杂度较高。
算法理解:
我们根据一张图来理解这个算法吧。
未知点X延伸出的5个箭头,表示我们的K为5,也就是我们选取了5个已知点用于对X进行归类预测
特殊情况:
对于未知点Y不使用算法,我们会将未知点Y归类为W1这一类,运行了算法后,会将Y归类为W2类,这明显是错误的归类结果。
这是由于样本分布不平衡造成的。我们可以通过给计算后的距离加上权重来控制不同距离的点对结果的贡献程度,离未知点越近的,权重大,对结果贡献度大,反之离未知点远的,权重小,对结果的贡献度小。
knn就是当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。
释义:
近邻算法;最近邻;近邻法
例句:
KNN nearest neighbors is one of the best text categorization algorithms based on Vector Space Model.
近邻算法是基于向量空间模型的最好的文本分类算法之一.
网络:
KNN classifier KNN分类器;分类器
feature weighted KNN 特征加权算法;的特征加权算法
knn algorithm knn算法
KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。优点:
① 训练时间复杂度比支持向量机之类的算法低,仅为O(n)
② 和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感
③ KNN主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合缺点① 计算复杂性高;空间复杂性高; ② 样本不平衡的时候,对稀有类别的预测准确率低 ③ 可解释性差,无法给出决策树那样的规则。
这是新加坡的脏话 翻译过来是gan ni niang
KNN 原理
KNN是一种即可用于分类又可用于回归的机器学习算法。
对于给定测试样本,基于距离度量找出训练集中与其最靠近的K个训练样本,然后基于这K个“邻居”的信息来进行预测。
在分类任务中可使用投票法,选择这K个样本中出现最多的类别标记作为预测结果;
在回归任务中可使用平均法,将这K个样本的实值输出标记的平均值作为预测结果。当然还可以基于距离远近程度进行加权平均等方法。
KNN 优点
1、理论成熟,思想简单,既可以用来做分类也可以用来做回归
2、可用于非线性分类
3、训练时间复杂度比支持向量机之类的算法低,仅为O(n)
4、和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感
5、对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合
6、比较适用于样本容量比较大的类域的自动分类。
KNN 缺点
1、计算量大,尤其是特征数非常多的时候。
2、样本不平衡的时候,对稀有类别的预测准确率低
3、KD树,球树之类的模型建立需要大量的内存。
4、使用懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢。
5、相比决策树模型,KNN模型可解释性不强。
KNN(K-Nearest Neighbor)K-近邻算法,是一种最简单常用的监督学习算法,属于“懒惰学习”,即在训练阶段仅仅是把样本保存起来,训练时间开销为0,待收到测试样本后再进行处理。而那些在训练阶段就对样本进行学习处理的方法,称为“急切学习”。
懒惰学习是一种训练集处理方法,其会在收到测试样本的同时进行训练,与之相对的是急切学习,其会在训练阶段开始对样本进行学习处理。
作为一种非参数的分类算法,K-近邻(KNN)算法是非常有效和容易实现的。它已经广泛应用于分类、回归和模式识别等。
在应用KNN算法解决问题的时候,要注意两个方面的问题——样本权重和特征权重。利用SVM来确定特征的权重,提出了基于SVM的特征加权算法(FWKNN,featureweightedKNN)。实验表明,在一定的条件下,FWKNN能够极大地提高分类准确率。
KNN(K-Nearest Neighbor)是最简单的机器学习算法之一,可以用于分类和回归,是一种监督学习算法。它的思路是这样,如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
也就是说,该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。