zoukankan      html  css  js  c++  java
  • KNN算法简介

    KNN(K Nearest Neighbor)算法

    一、算法思想:

    假设一个样本空间里的样本分成几个类型[1],然后给定一个待分类的数据,通过计算距离该数据最近的K个样本来判断这个待分类数据属于哪个分类。简单的说,就是由那些里自己最近的K个样本点投票决定待分类数据归为哪一类。

     

    二、实例说明:

    下图中有两种类型的样本数据,一类是蓝色的正方形,另一类是红色的三角形,中间那个绿色的圆形是待分类数据;

    clip_image002

    1 KNN算法示例

    如果K=3,那么离绿色点最近的有2个红色的三角形和1个蓝色的正方形,这三个点进行投票,于是绿色的待分类点就属于红色的三角形。

    如果K=5,那么离绿色点最近的有2个红色的三角形和3个蓝色的正方形,这五个点进行投票,于是绿色的待分类点就属于蓝色的正方形。

     

    三、算法描述

    KNN算法的步骤可以描述为[2]

    1、计算出样本数据和待分类数据的距离;

    2、为待分类数据选择K个与其距离最小的样本;

    3、统计出K个样本中大多数样本所属的分类;

    4、这个分类就是待分类数据所属的分类。

     

    四、注意事项:

    K应该设置为一个奇数,这样可以保证投票的时候不会有平票。

     

    参考文献:


    [1] 《K Nearest Neighbor 算法》 http://coolshell.cn/articles/8052.html

    [2] 《数据挖掘之分类 (KNN算法的描述及使用)》 http://ahuaxuan.iteye.com/blog/164435

  • 相关阅读:
    洛谷 1195 口袋的天空
    洛谷1955 程序自动分析
    【洛谷3295】[SCOI2016]萌萌哒
    洛谷2024 食物链
    八数码问题
    Codeforces Round #442 (Div. 2)
    Oracle 中truncate与delete的区别
    git命令提交步骤和解决冲突的
    git 更新代码到本地
    12、Python中的包
  • 原文地址:https://www.cnblogs.com/chaosimple/p/3213682.html
Copyright © 2011-2022 走看看