一、什么是K近邻?

K近邻是一种基本的分类和回归方法。
在分类时,对新的实例,根据其K个最近邻的训练实例的类别,通过多数表决权等方式预测其类别。
通俗的讲,找K个和其关系最近的邻居,哪个类别的邻居多,就把它划分到哪一类 特性:
(1)多分类
(2)判别模型
(3)三个基本要素:K值选择、距离度量、分类决策规则
(4)K=1时,称为最近邻算法

二、K近邻模型

1、模型:K近邻法的模型对应特征空间的一个划分,每一个划分对应一个类别

2、距离度量:
(1)通常使用欧氏距离
(2)更一般的Lp距离 3、K值选择:
(1)K值过小:整体模型复杂,容易过拟合 —— 只有最近的几个点起到作用,可能是噪声
(2)K值过大:整体模型简单 —— 距离过远(不相似)的点也会起到预测作用
(3)选择方法:在实际应用中,通常选择一个比较小的数值。通常采用交叉验证的方式选择最优的K值
(4)具体怎么选呢???—— 待补充 4、分类决策规则:多数表决权
损失函数:0-1函数
误分类率:1-正确分类率
误分类率最小(经验风险最小)——> 正确分类率最大
什么样的正确分类率最大? —— 分到多数堆里....

三、K近邻法的实现:kd树

K近邻法实现考虑的一个重要问题:如何对训练数据进行快速K近邻搜索?

简单实现:线性扫描,计算输入实例与每个训练实例的距离。

kd树:
(1)二叉树
(2)每个结点对应于K维空间划分中的一个超矩形区域
(3)快速搜索,省去对大部分数据点的搜索减少搜索的工作量

统计学习方法三:K近邻的更多相关文章

  1. 《统计学习方法》笔记三 k近邻法

    本系列笔记内容参考来源为李航<统计学习方法> k近邻是一种基本分类与回归方法,书中只讨论分类情况.输入为实例的特征向量,输出为实例的类别.k值的选择.距离度量及分类决策规则是k近邻法的三个 ...

  2. 李航统计学习方法——算法2k近邻法

    2.4.1 构造kd树 给定一个二维空间数据集,T={(2,3),(5,4),(9,6)(4,7),(8,1),(7,2)} ,构造的kd树见下图 2.4.2 kd树最近邻搜索算法 三.实现算法 下面 ...

  3. 统计学习方法 三 kNN

    KNN (一)KNN概念: K近邻算法是一种回归和分类算法,这主要讨论其分类概念: K近邻模型三要素: 1,距离: 2,K值的选择: K值选择过小:模型过复杂,近似误差减小,估计误差上升,出现过拟合 ...

  4. 李航《统计学习方法》CH01

    CH01 统计学方法概论 前言 章节目录 统计学习 监督学习 基本概念 问题的形式化 统计学习三要素 模型 策略 算法 模型评估与模型选择 训练误差与测试误差 过拟合与模型选择 正则化与交叉验证 正则 ...

  5. 统计学习方法(三)——K近邻法

    /*先把标题给写了.这样就能经常提醒自己*/ 1. k近邻算法 k临近算法的过程,即对一个新的样本,找到特征空间中与其最近的k个样本,这k个样本多数属于某个类,就把这个新的样本也归为这个类. 算法  ...

  6. 《统计学习方法》笔记(3):k近邻

    k近邻(KNN)是相对基本的机器学习方法,特点是不需要建立模型,而是直接根据训练样本的数据对测试样本进行分类. 1.k近邻的算法? 算法对测试样本进行分类的一般过程如下: 1)根据给定的k值,搜索与测 ...

  7. 统计学习方法c++实现之二 k近邻法

    统计学习方法c++实现之二 k近邻算法 前言 k近邻算法可以说概念上很简单,即:"给定一个训练数据集,对新的输入实例,在训练数据集中找到与这个实例最邻近的k个实例,这k个实例的多数属于某个类 ...

  8. 统计学习三:1.k近邻法

    全文引用自<统计学习方法>(李航) K近邻算法(k-nearest neighbor, KNN) 是一种非常简单直观的基本分类和回归方法,于1968年由Cover和Hart提出.在本文中, ...

  9. 统计学习方法与Python实现(二)——k近邻法

    统计学习方法与Python实现(二)——k近邻法 iwehdio的博客园:https://www.cnblogs.com/iwehdio/ 1.定义 k近邻法假设给定一个训练数据集,其中的实例类别已定 ...

随机推荐

  1. 洛谷 P2888 [USACO07NOV]牛栏Cow Hurdles

    题目戳 题目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the ...

  2. CF878C Tournament set 图论

    题面 题面 题解 如果2个人可以互相战胜,那么我们连一条无向边,于是最后会剩下t个联通块,其中每对联通块之间都有严格的大小关系(a.max < b.min),因此我们每插入一个点就相当于合并一段 ...

  3. 【LOJ6436】【PKUSC2018】神仙的游戏(NTT)

    [LOJ6436][PKUSC2018]神仙的游戏(NTT) 题面 LOJ 题解 看到\(zsy\)从\(PKUSC\)回来就秒掉了这种神仙题 吓得我也赶快看了看\(PKUSC\)都有些什么神仙题 然 ...

  4. 洛谷 P4027 [NOI2007]货币兑换 解题报告

    P4027 [NOI2007]货币兑换 题目描述 小 \(Y\) 最近在一家金券交易所工作.该金券交易所只发行交易两种金券:\(A\) 纪念券(以下简称 \(A\) 券)和 \(B\) 纪念券(以下简 ...

  5. redis的自带VM(虚拟内存)

    Redis支持采用VM技术,以达到当数据超过设置的可使用的物理内存的时候能够正常运行.当数据超过物理内存的时候,把一部分数据写入磁盘中的一块空间来代替物理内存. vm-enabled no       ...

  6. Redis的List链表类型命令

    List是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key理解为链表的名字.list类型其实就是一个每个子元素都是string类型的双向链表.我们可以通过push.po ...

  7. python创建多维列表

    By francis_hao    Mar 24,2018   "*"操作符可以用于列表,表示将列表内容重复n次.如下,   但是当列表内容是列表的时候就出问题了,如果我只是修改多 ...

  8. python requests https 访问出错

    错误提示: /usr/local/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:100: InsecurePla ...

  9. Asp.Net Core 依赖注入默认DI,Autofac注入

    使用默认DI 修改Startup类方法ConfigureServices如下: public void ConfigureServices(IServiceCollection services) { ...

  10. img图片居中

    关键词:clear: both;    display: block;    margin:auto; 图片居左,居右,居中: /* Alignment */ .alignleft { display ...