机器学习 之KNN近邻法

1、KNN近邻法

  • KNN模型由三个基本要素决定:

    • 距离度量:其中欧式距离一般误差最小,\(x_{i} 和 x_{j}\)为两个样本点:\[L_{2}(x_{i}, x_{j}) = (\sum\limits_{l=1}^{n} |x_{i}^{(l)} - x_{j}^{(l)}|)\]

    • k值的选择:k较小->近似误差会减小,估计误差会增大,模型变复杂,容易过拟合;k较大->估计误差减小,近似误差增大,模型变简单。k值一般取一个比较小的数值。

    • 分类决策规则:分类损失函数是误分类率:

\[L = \frac{1}{k} \sum\limits_{x_{i} \in N_{k}(x)} I(y_{i} \ne c_{j}) = 1 - \frac{1}{k} \sum\limits_{x_{i} \in N_{k}(x)} I(y_{i} = c_{j}) \]

要使误分类率最小,即经验风险最小,就要使$\sum\limits_{x_{i} \in N_{k}(x)} I(y_{i} = c_{j}) $最大,所以多数表决规则等价于经验风险最小化。

  • KNN算法流程:

    1. 输入:训练数据集D; 输出:实例x所属的类y。

    2. 根据给定的距离度量,在训练集D中找到与x最近邻的k个点,涵盖这k个点的x邻域记作\(N_{k}(x)\)

    3. \(N_{k}(x)\)中根据分类决策规则决定x的类别y(如多数表决):

\[y = arg \ max_{c_{j}} \sum\limits_{x_{i} \in N_{k}(x)} I(y_{i}=c_{j})\]

其中\(I\)为指示函数,即当\(y_{i}=c_{j}\)\(I\)为1,否则\(I\)为0;

  • kd树:是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。其选择训练实例点在选定坐标轴上的中位数为切分点,从而将实例分配为两部分,依次循环构建树形结构。目标点的最近邻一定在以目标点为中心并通过当前最近点的超球体的内部。

猜你喜欢

转载自www.cnblogs.com/hugechuanqi/p/10583975.html