统计学习方法读书笔记(三)
来源:互联网 发布:ubuntu优麒麟 编辑:程序博客网 时间:2024/05/16 16:02
k近邻法(K-NN)是一种基本的分类和回归方法。
k近邻法三要素:k值选择,距离度量,分类决策规则。
其实k近邻法相比于其他算法还是挺简单的。
本文主要从k近邻法的实现方法来阐述——kd树,kd树的构造,搜索kd树。
k近邻法算法:
输入:训练数据集
x是实例的特征向量,y是对实例的分类。
输出:实例x所属的类y.
(1):根据给定的距离度量,在训练集T中找出与x最近邻的k个点,涵盖着k个点的x领域记作:.
(2):在中根据分类决策规则决定x的类别y:
其中I 为指示函数,满足条件就为1。不满足就为0。
k近邻模型:
就是对于实例点来说,距离该点比其他点更加近的所有点构成的集合。叫做单元(cell)。如下图所示:
距离度量:
距离度量的定义:
有以下几种距离度量:
(1):当p=2时,称为欧式距离:
(2)当p=1时称为曼哈顿距离:
(3):当p=时,他是各个坐标系距离的最大值:
分类决策规则:
如果损失函数是0-1损失函数,分类函数为:
那么误分类率是:
则误分类率是(用0-1函数表示出来,这个公式就是按照上面公式来的):
要使误分类率最小(经验风险最小)。则就要使得最大。
构造kd树算法:
输入:k维空间数据集T={x1,x2,x3……xN},
其中
输出kd树:
(1)开始:构造根节点,根节点对应于包含T的k维空间的超巨型区域。选择为坐标轴,以T中所有的实例的坐标的中位数为分切点,将根节点对应的超巨型区域切分成两个子区域,切分由通过切分点并与坐标轴垂直的超平面实现。
由根节点生成深度为1的左,右子节点:左子节点对应坐标小于切分点的子区域,右子节点对应于坐标大于切分点的子区域。
将落在切分超平面的实例点保存在根节点。
(2)重复:对深度为j的节点,选择为切分的坐标轴,以该节点的区域中所有的实例点坐标的中位数为切分点,将该节点对应的超巨型区域切分为两个子区域,切分通过切分点并与坐标轴垂直的超平面实现。
(3):直到两个区域没有实例点为止,从而形成kd树的划分。
是不是看到上面三个步骤很糊,什么玩意。别着急,我都一个一个字打出来了,手都打疼了,至少比你看的还累。
构造实例如下:
给出实例点:T={(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)}
(1)根据x轴方向的值2,5,9,4,8,7排序选出中值为7,所以选取(7,2)。这样,该节点的分割超平面就是通过(7,2)并垂直于x轴的直线x = 7;
(2)确定左子空间和右子空间。分割超平面x = 7将整个空间分为两部分,如下图所示。x <= 7的部分为左子空间,包含3个节点{(2,3),(5,4),(4,7)};另一部分为右子空间,包含2个节点{(9,6),(8,1)}。
(3)依次按照中位数划分,这样直到区域没有实例点为止。
构造后的图形如下:
最后就是搜索kd树:估计写完都得吐血了,看的糊糊的。
好吧,推荐一篇博文:http://blog.csdn.net/losteng/article/details/50893739
讲的比较清晰。在这里就不赘述了。
下一篇:朴素贝叶斯法。马上就要期末考试了,可能有时候时间会来不及,不过会尽力按照时间更新。
如有错误,欢迎批评指正!
- 统计学习方法读书笔记(三)
- 统计学习方法(三)
- 统计学习方法读书笔记(一)
- 《统计学习方法》读书笔记(一)
- 统计学习方法读书笔记(一)
- 统计学习方法读书笔记(二)
- 统计学习方法读书笔记(四)
- 统计学习方法笔记(三)
- 统计学习方法第一章读书笔记
- 统计学习方法读书笔记-knn
- 统计学习方法-读书笔记
- 统计学习方法读书笔记
- 统计学习方法读书笔记--概论
- 统计学习方法 -- 读书笔记
- 统计学习方法读书笔记-概论
- 统计学习方法(三)--感知机
- 《统计学习方法》笔记三
- 决策树小结----统计学习方法读书笔记
- linux下apache2.2用apxs动态安装扩展模块
- 分治法求解最近点对问题
- 进程四要素
- 测试
- 【bzoj 2152】聪聪可可(树的点分治)
- 统计学习方法读书笔记(三)
- HTML5 input
- 关于不支持多线程处理的并发问题
- bzoj1002
- mysql基础&重点知识总结及在python中的应用(2)
- C语言贪心算法之喷水装置(二)
- leetcode 372. Super Pow
- LOJ6000 「网络流 24 题
- Spring Bean生命周期