机器学习之k近邻法

声明:
1、本文仅为学习笔记,不得商用
2、文中所引文献,已在参考资料中说明,但部分来源于网络,出处无可考究,如果文中引用了您的原创,请您私信我
3、如果内容有错误或者不准确的地方请大家指正

  • k 近邻算法简述
  • k近邻模型
    • 模型
    • 距离度量
    • k值的选择
    • 分类决策规则
  • kd tree
    • 构建kd tree

k 近邻算法简述

k近邻算法是一种基本的分类与回归的方法,k近邻法假设给定一个训练集,其中的实例类别已定,分类时,对新的实例,根据其k个最近的训练实例的类别,通过多数表决等方式进行预测。核心思想就是:如果一个样本在特征空间中,其中k个最相邻的样本中的大多数属于某一类,则该样本也属于这一类。通俗的将就是,近朱者赤近墨者黑
注意:k近邻与k-means的区别?k近邻是分类算法,k-means是聚类算法,一个是有监督的学习,一个是无监督的学习

k近邻模型

k近邻使用的模型实际上对应于对特征空间的划分。主要由三个要素决定:距离度量、k值的选择和分类器规则决定。
算法的主要步骤:
1、选择一种合适的距离度量,计算样本到每个测试集的距离
2、对距离进行排序,按照距离的递增进行排序,选择距离最近的k个
3、找到这k个点中,每种label出现的次数,出现次数最多的就是我们要求的

模型

k近邻模型主要是根据训练集、距离度量、k值以及分类决策规则等,将特征空间进行相应的划分。确定每个子空间里每个点的所属类。特征空间的划分如下图所示:
机器学习之k近邻法_第1张图片

将一个特征空间划分为若干的子空间。

距离度量

两个点的距离可以看成两个点相似度的放映,k近邻模型的特征空间一般是 n 维实向量空间Rn。一般选用的都是欧式距离,也可以使用别的距离。

Lp(xi,xj)=(l=1n|x(l)ix(l)j|p)1p

这里 p1 ,当 p=2 ,称为欧式距离
L2(xi,xj)=(l=1n|x(l)ix(l)j|2)12

p=1 ,称为曼哈顿距离
L1(xi,xj)=l=1n|x(l)ix(l)j|

不同的度量距离,所确定的最近邻的点是不同的

k值的选择

k值的选择会对k近邻算法的结果产生重大的影响。最著名的应该就是下面的这个图了:
机器学习之k近邻法_第2张图片
k=3 时,绿色样本点取红色,当 k=5 时,绿色样本点取蓝色,在实际应用中,k值一般取一个较小的值,通常采用交叉验证来选取最优的k值

分类决策规则

k近邻中的分类决策规则往往是多数表决

kd tree

为了实现快速的k近邻搜索,我们介绍kd树方法:

构建kd tree

方法如下:
构建根节点

你可能感兴趣的:(机器学习,机器学习)