1.模型结构说明
2.模型构建
2.1 K值选取
从
总的来说,
2.2 最邻近样例搜索
由于
2.2.1 树构造过程
(1) 在这个过程中,划分空间时变量优先选择策略可以为:依据子空间内(根节点时为整个样例空间)样例在该变量上取值波动程度(即方差),波动大的优先选择。当然,也可以是随机选择。
(2) 当所有变量都已被用来划分样例、划分仍未结束时,需要接着用所有变量再进行一次划分,不断重复该过程,直到划分停止。
(3) 假设当前选择用变量
(4)
(5) 划分值(矩形超平面位置)选择的是各子空间内样例在变量上取值的中位数,这种划分策略保证生成的
(6) 若训练集中存在标称型属性,使用K最邻近分类器则不太合适,因为标称型属性无法参与到距离度量的计算中。
2.2.2 树的构造算法
输入:
,其中
输出:
- 开始:构造根节点,根节点对应于包含
的
维空间的超矩形区域。选择
为坐标轴,以中所有实例的
坐标的中位数为切分点,将根节点对应的超矩形区域切分为两个子区域。切分由通过切分点并与坐标轴
垂直的超平面实现。对由根结点生成深度为1的左、右子结点,左子结点对应坐标
小于切分点的子区域,右子结点对应于坐标
大于切分点的子区域。将落在切分超平面上的实例点保存为根节点。 - 重复:对深度为
的结点,选择
为切分的坐标轴,
,以该结点的区域中所有实例的
坐标的中位数为切分点,将该结点对应的超矩形区域分为两个子区域。切分由通过切分点并与坐标轴
垂直的超平面实现。由该结点生成深度为+1的左、右子结点:左子结点对应坐标
小于切分点的区域,右子结点对应坐标
大于切分点的区域。将落在切分超平面上的实例点保存在该结点。 - 结束:直到两个区域没有实例存在时停止。
举一个
轴,6个数据点
坐标的中位数为7(5也可以),以平面
=7将空间划分为左、右两个子矩形(子结点),左子矩形以
=4平面一分为二,右子矩形以
=6一分为二,如此递归,得到下图(左)所示的特征空间划分,下图(右)所示的
2.2.3 搜索树
从树的构造过程来看,可以省去对大部分数据点的搜索,从而减少搜索的时间。给定一个目标点(即待分类样例),先找到包含该目标点的叶子结点,然后依次回退到父结点,在这个过程中不断查找与目标点最邻近的样例,当确定不可能存在更近的结点时,结束搜索过程,这个过程可以用下图来说明(此次搜索过程不涉及图中左下子区域中的点,因此未画出)
首先找到点F所在的叶子结点,即点E(点F与点E在同一区域内),此时点E为最邻近点,计算点F与点E间的距离,得到
,故此时点D是最邻近点。
接着再回到结点C的父结点A上,计算点A与点F间的距离并与
至此为止,在本例中搜索过程结束,需要说明的是,本例中的圆在实际多维特征空间中为超球体,判断超球体与分类矩形超平面是否相交的方法为:待分类点(目标点)与分类超矩形平面的距离(即在当前分类变量
树上最邻近点的搜索算法为:
- 在
树上找出包含目标点
的叶子结点:从根节点出发,递归的向下访问
树,若目标点
当前维的坐标小于切分点的坐标,则移动到左子树点,否则移动到右子树点,直至子结点为叶子结点为止。
- 以此叶子结点为最邻近点
- 递归的向上回退,在每个结点进行一下操作:
- 如果该结点保存的实例点比当前最近点距离目标点更近,则以该实例点为“当前最近点”
- 当前最近点一定存在于该结点的一个子结点对应的区域。检查该子结点父结点的另一子结点对应的区域是否有更近点。具体的,检查另一子结点对应的区域是否与以目标点为球心、以目标点与“当前最近点”间距离为半径的超球体相交。如果相交,可能在另一子结点对应的区域内存在距离目标点更近的点,移动到另一子结点。接着递归的进行最邻近搜索。如果不想交,则向上回退。
- 当退回到根结点时,结束搜索,最后的“当前最近点”即为
的最邻近点。
以上的过程是
的情况,对于
的情况,搜索的方式和
时一样,但在找最近的3.对距离进行加权处理
当数据中类分布不平衡时,会出现以下这种情况,假设
蓝色的点表示类1,橙色的点表示类2,依据KNN算法中对类别的判定规则,此时样本的类别被预测为类2,但是从图中可以明显的看出待分类样本离类别1的点更近、更应该将其归为类1,为了处理这种情况,可以采用距离加权的方式,距离越近的点赋予其更大的权值。权值的计算方式有多种,这里介绍一种常用的方式——采用高斯函数计算权值。
高斯函数的定义形式为
其中
式中
4.K最邻近分类方法的优缺点
4.1 优点
- 无需参数估计,无需训练,属于消极学习方法
- 对个别异常值不敏感,当然,前提时
值不能过小
- 由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合
4.2 缺点
- 计算复杂度高,涉及到距离的计算机排序操作
- 采用
树建立模型需要消耗大量内存,尤其是在数据样本量大时
- 类别预测数据慢
- 仅适用于数据样本大的情况,数据样本量小时容易误分类
来源:https://www.cnblogs.com/hgz-dm/p/10886189.html
为坐标轴,以
坐标的中位数为切分点,将根节点对应的超矩形区域切分为两个子区域。切分由通过切分点并与坐标轴
垂直的超平面实现。对由根结点生成深度为1的左、右子结点,左子结点对应坐标
小于切分点的子区域,右子结点对应于坐标
大于切分点的子区域。将落在切分超平面上的实例点保存为根节点。
为切分的坐标轴,
,以该结点的区域中所有实例的
坐标的中位数为切分点,将该结点对应的超矩形区域分为两个子区域。切分由通过切分点并与坐标轴
垂直的超平面实现。由该结点生成深度为
小于切分点的区域,右子结点对应坐标
大于切分点的区域。将落在切分超平面上的实例点保存在该结点。



