【机器学习详解】KNN分类的概念、误差率及其问题

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/50923056

勿在浮沙筑高台

KNN概念

KNN(K-Nearest Neighbors algorithm)是一种非参数模型算法。在训练数据量为N的样本点中,寻找最近邻测试数据x的K个样本,然后统计这K个样本的分别输入各个类别w_i下的数目k_i,选择最大的k_i所属的类别w_i作为测试数据x的返回值。当K=1时,称为最近邻算法,即在样本数据D中,寻找最近邻x的样本,把x归为此样本类别下。常用距离度量为欧式距离。

算法流程:

                 

左图所示:在二维平面上要预测中间‘*‘所属颜色,采用K=11时的情况,其中有4黑色,7个蓝色,即预测‘*‘为蓝色。

右图所示:当K=1时,即最近邻算法,相当于把空间划分成N个区域,每个样本确定一块区域。每个区域中的点都归属于该样本的类别,因为该区域的数据点与所用样本相比与区域样本最近,此算法也被称为Voronoi tessellation

--------------------------------------------------------------------------------------------------------------------------------------------

下面四副图像是在一个二维平面上,数据点类别为3类,采用K=10。图(a)为样本数据点;图(b)为平面上每个位置属于y=1(对应‘+’)的概率热量图像,图(c)为类别y=2(对应‘*‘)时对应的热量图像;图(d)采用MAP估计(即最大概率的类别)平面各点所属类别。

------------------------------------------------------------------------------------------------------------------

KNN算法误差率

假设最优贝叶斯分类率记为P_B,根据相关论文证明KNN算法的误差率为:

当数据样本量N趋于无穷大时,K=1时:    ,M为数据类别总数

当数据样本量N趋于无穷大时,M=2时:;

由公式看出,KNN的算法要优于1-NN算法,因为降低了误差下界。并随着k的增大,P_kNN渐近于最优误差率P_B;事实上,当k->∞时(但仍然占样本总量N很小一部分),KNN算法准确率趋近于贝叶斯分类器。

KNN算法的问题

  • 当数据量N很大,同时数据维度D很高,搜索效率会急剧下降。若采用暴力求解法,复杂度为。为增大效率,可以采用KD树等算法优化,见:KD树与BBF算法解析
  • 有时根据现实情况,需要降低样本数量,可以采用prototype editing或者condensing算法等;prototype
    editing算法采用自身数据样本作为测试样本,应用KNN算法,若分类错误则剔除该样本。
  • 当样本总量N很小时,会造成错误率上升。一种解决办法是训练度量距离方法,对不同的样本采用不同的度量方法目的是为了降低错误率,此种方法可以分为:全局方法(global)、类内方法(class-dependent)、局部方法(locally-dependent)。

Ref:Machine Learning: A Probabilistic Perspective

Pattern Recognition,4th.

时间: 2024-08-11 03:25:18

【机器学习详解】KNN分类的概念、误差率及其问题的相关文章

【机器学习详解】SMO算法剖析(转载)

[机器学习详解]SMO算法剖析 转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51227754 CSDN?勿在浮沙筑高台 本文力求简化SMO的算法思想,毕竟自己理解有限,无奈还是要拿一堆公式推来推去,但是静下心看完本篇并随手推导,你会迎刃而解的.推荐参看SMO原文中的伪代码. 1.SMO概念 上一篇博客已经详细介绍了SVM原理,为了方便求解,把原始最优化问题转化成了其对偶问题,因为对偶问题是一个凸二次规划问题,这样的凸二次规

【机器学习具体解释】KNN分类的概念、误差率及其问题

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/50923056 勿在浮沙筑高台 KNN概念 KNN(K-Nearest Neighbors algorithm)是一种非參数模型算法.在训练数据量为N的样本点中,寻找近期邻測试数据x的K个样本,然后统计这K个样本的分别输入各个类别w_i下的数目k_i,选择最大的k_i所属的类别w_i作为測试数据x的返回值.当K=1时,称为近期邻算法,即在样本数据D中,寻找近期邻x的样本,把x归

【机器学习详解】SVM解二分类,多分类,及后验概率输出

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51073885 CSDN?勿在浮沙筑高台 支持向量机(Support Vector Machine)曾经在分类.回归问题中非常流行.支持向量机也称为最大间隔分类器,通过分离超平面把原始样本集划分成两部分. 首先考虑最简单的情况:线性可分支持向量机,即存在一个超平面可以把训练样本分开. 1.线性可分支持向量机 1.考虑一个线性二分类的问题:如下左图,在二维平面上有二种样本点x,目

【机器学习详解】AdaBoost算法原理

转载请注明出处:勿在浮沙筑高台http://blog.csdn.net/luoshixian099/article/details/51714346 1.概念 AdaBoost是一种级联算法模型,即把几个弱分类器级联到一起去处理同一个分类问题.也就是"三个臭皮匠顶一个诸葛亮"的道理.例如一个专家作出的判定往往没有几个专家一起作出的判定更准确.一种情况:如果每个专家都仅有一票的权利,采用投票机制的方法属于uniform形式:另一种情况是分配给每个专家的票数不一致则属于linear形式.A

【机器学习详解】线性回归、梯度下降、最小二乘的几何和概率解释

线性回归 即线性拟合,给定N个样本数据(x1,y1),(x2,y2)....(xN,yN)其中xi为输入向量,yi表示目标值,即想要预测的值.采用曲线拟合方式,找到最佳的函数曲线来逼近原始数据.通过使得代价函数最小来决定函数参数值. 采用斯坦福大学公开课的例子:假如一套房子的价格只考虑由房屋面积(Living area)与卧室数目(bedrooms)两个因素决定,现在拿到手有m个样本,如下图所示.此例中,输入x=(x1,x2)为2维向量,分别对应房屋面积和卧室数目,y对应价格.现在想根据上述样本

【机器学习详解】概率生成模型与朴素贝叶斯分类器

转载请注明出处http://blog.csdn.net/luoshixian099/article/details/51028244 1.概率生成模型 首先介绍生成模型的概念,然后逐步介绍采用生成模型的步骤. 1.1概念 即对每一种类别Ck分别建立一种模型p(Ck|x),把待分类数据x分别带入每种模型中,计算后验概率p(Ck|x),选择最大的后验概率对应的类别. 假设原始数据样本有K类,生成学习算法是通过对原始数据类p(x|Ck)与p(Ck)建立数据类模型后,采用贝叶斯定理从而得出后验概率p(C

【机器学习详解】SVM解回归问题

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51121767 CSDN?勿在浮沙筑高台 对于SVM解分类二分类问题,及多分类问题,在上一篇文章已经详述http://blog.csdn.net/luoshixian099/article/details/51073885.本文将对SVM解回归问题,进行分析. 1.方法分析 在样本数据集(xn,tn)中,tn不是简单的离散值,而是连续值.如在线性回归中,预测房价的问题.与线性回

【机器学习详解】SMO算法剖析

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51227754 CSDN?勿在浮沙筑高台 本文力求简化SMO的算法思想,毕竟自己理解有限,无奈还是要拿一堆公式推来推去,但是静下心看完本篇并随手推导,你会迎刃而解的.推荐参看SMO原文中的伪代码. 1.SMO概念 上一篇博客已经详细介绍了SVM原理,为了方便求解,把原始最优化问题转化成了其对偶问题,因为对偶问题是一个凸二次规划问题,这样的凸二次规划问题具有全局最优解,如下: 其

详解五大分类方法及其优缺点,数据挖掘师必会!

分类算法是一种在专家指导下的,有监督的数据挖掘方法,其种类很多,包括: 传统方法:线性判别法.距离判别法.贝叶斯分类器: 现代方法:决策树.神经网络ANN.支持向量机SVM: 1.决策树 决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序.无规则的实例中,推理出以决策树表示的分类规则. 2.贝叶斯 贝叶斯(Bayes)分类算法是一类利用概率统计知识进行分类的算法,如朴素贝叶斯(Naive Bayes)算法 这些算法主要利用Bayes定理,来预测一个未知类别的样本属于各个类别的可能性,选