zoukankan      html  css  js  c++  java
  • k近邻法(kNN)

    《统计学习方法》(第二版)第3章

    3 分类问题中的k近邻法

    k近邻法不具有显式的学习过程。

    3.1 算法(k近邻法)

    1. 根据给定的距离度量,在训练集(T)中找出与(x)最邻近的(k)个点,涵盖这k个点的x的邻域记作(N_k(x))
    2. (N_k(x))中根据分类决策规则(如多数表决)决定(x)的类别(y)

    3.2 k近邻模型的三个基本要素

    距离度量

    特征空间中,对每个实例点的距离是两个实例点相似程度的反映。

    (L_p)距离:

    [L_p(x_i,x_j)=(sum_{t=1}^n|x_i^{(l)}-x_j^{(l)}|^p)^frac{1}{p},p ge 1 ]

    (p=2→欧氏距离)

    (p=1→曼哈顿距离)

    (p=infty→各个坐标距离的最大值)

    [L_{infty}(x_i,x_j)=max_l|x_i^{(l)}-x_j^{(l)}| ]

    k值的选择

    k值较小,学习的近似误差会减小,但是意味着整体模型变得复杂,容易发生过拟合。

    k值较大,整体的模型变得简单,但是学习的近似误差会增大。

    通常采用交叉验证法来选取最优的k值。

    分类决策规则

    往往选择多数表决,即由输入实例的k个邻近的训练实例中的多数类决定输入实例的类。

    3.3 实现

    最简单的实现:线性扫描(当训练集很大时,计算非常耗时,不可行)

    另一种想法:使用特殊的结构存储训练数据

    kd树

    kd树是一种对K维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。

    kd树是二叉树, 表示对K维空间的一个划分( partition)。构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分,构成一系列的k维超矩形区域。kd树的每个结点对应于一个k维超矩形区域。

    算法(构造平衡kd树)

    算法(用kd树的最近邻搜索)

  • 相关阅读:
    redhat下设置网桥br0
    RackSpace推开源云计算平台OpenStack震动业界
    centos5.2 64位yum国内源之首选 上海交大(未验证)
    image config
    编程的四种境界
    怎样学好C语言
    利用SSL加密HTTP通道加强IIS安全性
    Sql Server 日期函数
    如何启用Oracle 11g的默认用户Scott
    ASP.NET自定义错误处理页面的添加
  • 原文地址:https://www.cnblogs.com/angelica-duhurica/p/10888316.html
Copyright © 2011-2022 走看看