机器学习具体算法系列之最近邻居法(KNN算法)

本内容 来自 微信公众平台:机器学习之窗

   以及  http://www.cnblogs.com/kaituorensheng/p/3579347.html

在模式识别领域中,最近邻居法(KNN算法,又译K-近邻算法)是将在特征空间中最接近的训练样本进行分类的方法。最近邻居法采用向量空间模型来分类,概念为相同类别的案例,彼此的相似度高,而可以借由计算与已知类别案例之相似度来评估未知类别案例可能的分类

K-NN是一种基于实例的学习,或者是局部近似和将所有计算推迟到分类之后的惰性学习。

k-近邻算法是所有的机器学习算法中最简单的之一:被分配的对象被列为了其邻域对象较多的类别的K近邻算法是最常见的(k是一个正整数,通常很小)。如果k=1,那么对象被简单分配给其近邻的类。同样的方法可以用于回归,如:简单地将对象的属性值分配为其K近邻的属性值的平均值。它可以有效的衡量邻居的权重,使较近邻居的权重比较远邻居的权重大。(一种常见的加权方案是给每个邻居权重赋值为1/ d,其中d是到邻居的距离。这个方案是一个线性插值的推广。)邻居都取自一组已经正确分类(在回归的情况下,指属性值正确)的对象。虽然没要求明确的训练步骤,但这也可以当作作是一种训练样本集的算法。k-近邻算法对数据的局部结构是非常敏感的。近邻算法能用一种有效的方式准确地计算决策边界。

  • Target  :分类未知类别实例

  • Input   : 待分类未知类别实例项目, 已知类别实例集合,其中包含固定已知类别的实例

  • Output :   实例可能的类别

 

 具体分析如下:

k近邻法(k nearest neighbor algorithm,k-NN)是机器学习中最基本的分类算法,在训练数据集中找到k个最近邻的实例类别由这k个近邻中占最多的实例的类别来决定,当k=1时,即类别为最近邻的实例的类别。

如上图所示(引自wiki),当k=3时,此时红色的个数为2,则绿色的输入实例的类别为红色的三角形,当k=5时,此时蓝色的个数为3,输入实例的类别为蓝色的四边形。
    在分类过程中,k值通常是人为预先定义的常值,从上图可以看出,k值的选取对会对结果有很多的影响。大的k值可以减小噪声对分类的影响,但是和实例较远的实类会对判决起作用,通常采用交叉验证的方式来选取最优的k值。

 

posted @ 2014-10-29 17:28  Medical algorithm  阅读(2376)  评论(0编辑  收藏  举报