zoukankan      html  css  js  c++  java
  • 统计学习方法 三 kNN

    KNN

    (一)KNN概念:

      K近邻算法是一种回归和分类算法,这主要讨论其分类概念:

      

    K近邻模型三要素:

    1,距离:

                

    2,K值的选择:

        K值选择过小:模型过复杂,近似误差减小,估计误差上升,出现过拟合

        K值选择过大:模型过于简单,预测能力弱

        K值的选择:可以通过交叉验证来确定,k一般取一个较小的值

    3,分类决策规则:

        

    (二),kd树

     1,构造kd树

       

        

        

          

    2,kd树最近邻搜索策略

          

          

    一个复杂点了例子如查找点为(2,4.5)。

    1、同样先进行二叉查找,先从(7,2)查找到(5,4)节点,在进行查找时是由y = 4为分割超平面的,由于查找点为y值为4.5,因此进入右子空间查找到(4,7),形成搜索路径<(7,2),(5,4),(4,7)>,

    2、取(4,7)为当前最近邻点,计算其与目标查找点的距离为3.202。然后回溯到(5,4),计算其与查找点之间的距离为3.041。

           ((4,7)与目标查找点的距离为3.202,而(5,4)与查找点之间的距离为3.041,所以(5,4)为查询点的最近点;)

    3、以(2,4.5)为圆心,以3.041为半径作圆,如图4所示。可见该圆和y = 4超平面交割,所以需要进入(5,4)左子空间进行查找。此时需将(2,3)节点加入搜索路径中得<(7,2),(2,3)>。

    4、回溯至(2,3)叶子节点,(2,3)距离(2,4.5)比(5,4)要近,所以最近邻点更新为(2,3),最近距离更新为1.5。

    5、回溯至(7,2),以(2,4.5)为圆心1.5为半径作圆,并不和x = 7分割超平面交割,如图5所示。

    至此,搜索路径回溯完。返回最近邻点(2,3),最近距离1.5。

     

            

    (三)总结:

              个人体会:knn:输入训练数据,通过训练数据构建一个kd树,测试时,将数据插入kd树中,然后根据指定的距离测试方法选择最近的K个值,再根据决策规则选择测试数据所属的分类(关键是构建kd树(选中位数原则)和kd树查找),感觉适合特征是连续的数据

              

              

    参考网址:

        http://blog.csdn.net/losteng/article/details/50893739      

        http://www.cnblogs.com/hemiy/p/6155425.html

         http://www.cnblogs.com/chaosimple/p/4153167.html

  • 相关阅读:
    Android短信管家视频播放器代码备份
    深入理解Android的startservice和bindservice
    Android拦截外拨电话
    android中的目录结构介绍
    2013年最后的3个月,你想到了什么呢?
    如何通过Html网页调用本地安卓app?
    Textview文字监控(输入到某个字符后,进行操作)
    ASP.NET MVC5 网站开发实践(二) Member区域
    ASP.NET MVC5 网站开发实践(二) Member区域
    ASP.NET MVC5 网站开发实践(一)
  • 原文地址:https://www.cnblogs.com/ksWorld/p/7107720.html
Copyright © 2011-2022 走看看