K-NN是一种基本分类与回归方法。
输入:实例的特征向量。
输出:实例的类别(可以取多类)
K-NN算法的三要素:K值的选择,距离度量,分类拒测规则。
K-NN近邻法的一个实现方法-KD树。
3.1 K近邻算法
K近邻法简单,直观:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分为这个类。
输入:训练数据集
T={(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)}
xi为特征向量,yi为实例的类别。
输出:实例x所属的类y。
(1)根据给定的距离度量,在训练集T中找出与x最邻近的k个点,涵盖这k个点的x的领域记作Nk(x)
(2)根据分类拒测规则,决定x的类别。
3.2K近邻模型
3.2.1 模型
当训练集,距离度量,k值以及分类拒测规则确定后,对于任何一个新的输入实例,它所属的类唯一地确定。
3.2.2 距离度量
特征空间中两个实例点的距离是两个实例点相似程度的反映
距离有欧氏距离,曼哈顿距离等等。
3.2.3 k值的选择
如果选择较小的K值,容易发生过拟合。
如果选择较大的K值,容易发生欠拟合。
3.2.4 分类决策规则
多数表决规则,经验风险最小化
3.3K近邻算法的实现
实现K近邻法时,主要考虑的问题是如何对训练数据进行快速K近邻搜索。这点在特征空间的维数大及训练数据容量大的时候尤其必要。
构造平衡kd树(1)
用kd树的最近邻搜索(2)