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树的最近邻搜索)

  • 相关阅读:
    单机安装nginx
    单机安装hdfs
    单机安装postgresql
    cookie和session
    zookeeper的学习笔记
    java的反射和代理
    spring boot配置404 和 500错误页面跳转
    react + ant Upload前端解析excel文件后时间解析为数字转化回日期格式
    Chrome浏览器手动添加Cookie
    实现table列拖拽插件(colResizable)
  • 原文地址:https://www.cnblogs.com/angelica-duhurica/p/10888316.html
Copyright © 2011-2022 走看看