✏️
LiHang-TongJiXueXiFangFa
  • Introduction
  • 第2章 感知机 - 原始形式
    • 学习策略的推导
    • 梯度下降法的算法过程
    • 梯度下降法的推导过程
    • 梯度下降法的收敛证明
  • 第2章 感知机 - 对偶形式
    • 学习模型的推导
    • 梯度下降法的算法过程
    • 梯度下降法的推导过程
  • 第3章 k近邻算法
    • 模型三要素
    • 构造平衡kd树
    • 用kd树的k近邻搜索
    • kd树的原理与改进
  • 第4章 朴素贝叶斯
    • 模型公式的推导
    • 策略公式的推导
    • 最大似然估计算法过程
    • 贝叶斯估计算法过程
  • 第5章 决策树
    • 决策树的模型
    • 信息增益的算法
    • ID3决策树的生成算法
    • C4.5决策树的生成算法
    • 决策树的剪枝算法
  • 第5章 CART决策树
    • CART树的生成
    • CART树的剪枝
  • 第6章 逻辑回归
    • 二分类逻辑回归模型
    • 多分类逻辑回归模型
  • 第6章 最大熵模型
    • 最大熵的原理
    • 最大熵模型的定义
    • 最大熵的学习过程
    • 根据最大熵的学习过程推导最大熵模型
    • 证明:对偶函数的极大化=模型的极大似然估计
  • 第6章 目标函数最优化问题
    • 改进的迭代尺度法(IIS)
    • IIS算法公式(1)推导
    • A和B的推导
    • 拟牛顿法
  • 第7章 支持向量机
    • 函数间隔与几何间隔
  • 第7章 线性可分SVM
    • 凸二次规划问题推导
    • 支持向量
    • 凸二次规划问题求解
    • 原始问题转换为对偶最优化问题
  • 第7章 线性SVM
    • 原始问题转换为对偶最优化问题
    • 根据 a 求 w 和 b*
    • 支持向量
  • 第7章 非线性SVM
    • 核函数与核技巧
    • 核技巧在SVM中的应用
    • 7.3.2 正定核
    • 常用的核函数
  • 第7章 序列最小最优化算法
    • 选择变量
    • 推导1
    • 推导2
    • 推导3
    • 推导4
    • 推导5:update b
  • 第8章 adaboost
    • 算法过程
    • 训练误差分析
    • 加法模型
    • 前向分步算法
    • adaboost一种特殊的加法模型
  • 第8章 提升树
    • 回归问题提升树的推导
    • 回归问题提升树前向分步算法
    • 一般决策问题梯度提升算法
  • 第9章 EM算法
    • 算法过程
    • Q函数的推导
    • 关于算法的收敛性
    • 高斯混合模型参数估计的EM算法
    • Q函数推导
    • 推导2
  • 第10章 隐马尔可夫模型
    • 定义
    • 概率计算问题 - 直接计算法
    • 概率计算问题 - 前向算法
    • 概率计算问题 - 后向算法
    • 学习问题 - 监督学习
    • 学习问题 - 非监督学习
    • Baum - Welch算法推导
    • 推导1
    • 预测问题 - 近似算法
    • 预测问题 - 维特比算法
    • 维特比算法推导过程
  • 第11章 条件随机场
    • 概率无向图模型
  • 遗留问题
Powered by GitBook
On this page
  • 构造
  • 搜索
  • 升级成K近邻

Was this helpful?

  1. 第3章 k近邻算法

kd树的原理与改进

Previous用kd树的k近邻搜索Next第4章 朴素贝叶斯

Last updated 5 years ago

Was this helpful?

构造

KD树的构造过程实际上是用许多与坐标轴平行的分割线按照一定规划将一个空间划分成多个子空间。 其中,每个分割线都经过一个样本点,每个区域有一个样本点。 将上图这样的划分转换成的kd树是: 其中,圆形结点代表分割线上的样本,方形结点代表区域中的样本。

可以发现,方形结点所在的区域是由它的路径上的圆形结点所在的分割线分割出来的。 例如: D所在的区域是经过A、B所在的分割线切割得到的。 E所在的区域是经过A、C所在的分割线切割得到的。

搜索

KD的树的优化策略是省去对大部分数据点的搜索,从而减少搜索的计算量。

假设目标点落在与D相同的区域,那么应该在以下这些点中搜索来寻找最近点:

所在的位置

点

个数

1

与目标点同区域的点

D

1

2

目标点所在区域的分界线上的点

A、B

3

分界线的另一侧区域的点

A所在分界线的另一侧区域的点:C、E、G B所在分界线的另一侧区域的点:F

1类点和2类点的数量比较少,剪枝优化主要是针对3类点进行的。 只有在目标点离分界线足够近的情况下,才会考虑搜索分界线另一侧区域的点。 判断依据为:目标点到边界的距离 < 当前记录的最近距离。 如果条件不符合,分界线另一侧所有的点都不用搜索了,相当于一次砍掉了半棵子树,这个优化还是比较可观的。

升级成K近邻

书上算法为寻找最近邻。 每次寻找对最近邻后,将这个最近邻mark一下。 并令所有被mark过的点到目标点的距离为inf。

log⁡2N−1\log_2N-1log2​N−1
21−1+22−1+⋯2^1-1 + 2^2-1 + \cdots21−1+22−1+⋯