第三章 k近邻法
3.1 k近邻算法
k近邻算法是一种基本的分类与回归算法。
k近邻法简单直观:给定一个训练数据集,对于新输入的实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例多数属于某个类,就把该输入实例分为这个类。
算法 3.1(k近邻法)
当k=1时,为k近邻法的特殊情况,称为最近邻算法。
k近邻法没有显示的学习过程。(没办法拿到一个模型拿来计算)
3.2 k近邻模型
实际:k近邻法使用的模型对应于特征空间的划分。
模型由==距离度量、k值的选择、分类决策规则三大基本要素构成。
3.2.1 模型
当三大基本要素确定,则对于新输入的实例,他所属的类唯一的确定。
特征空间中,对于每个训练实例点,距离该点比其他点更近的所有点组成的一个区域,叫做单元(cell)。
3.2.2 距离度量
特征空间中两个实例点的距离是两个实例点相似程度的反映。
3.2.3 k值的选择
k值的选择会对k近邻法的结果产生重大影响
k值小 | 近似误差小 | 估计误差大 | 模型复杂,容易过拟合 |
---|---|---|---|
k值大 | 近似误差大 | 估计误差小 | 模型简单,容易欠拟合 |
应用中,k一般取一个较小的值。通常采用交叉验证法选取最优的k值。
3.2.4 分类决策规则
在k近邻法中往往是多数表决。
3.3 k近邻法的实现:kd树
为了实现快速k近邻搜索。
k近邻最简单的实现方法是线性扫描。但在训练集很大的时候计算非常耗时。
3.1 构造kd树
根据中位数和维数不断进行切分,直到无法切分。