K近邻法

算法简介

给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类。

模型由三个基本要素决定: 距离度量、K值的选择、分类决策规则。

距离度量

Lp距离定义

二维空间中p取不同值时,Lp=1的点的图形

K值的选择

K值过小,会对近邻的实例点非常敏感,容易发生过拟合;

K值过大,与输入实例较远的训练实例也会对预测起作用,如果k=N,则预测为训练实例最多的类,不可取。

应用中,k值一般取一个比较小的值,采用交叉验证法选取最优k值。

分类决策规则

多数表决规则,即由输入实例的k个临近的训练实例中的多数类决定输入实例的类。

算法实现

构造kd树

以二维空间为例,给定数据集

1、X(1)轴中位数为7,以平面X(1)=7将空间分为左右两个子矩形(子节点);

2、左矩形以X(2)=4分为两个子矩形,右矩形以X(2)=6分为两个子矩形;

3、如此递归,得到如下kd树。

搜索kd树

1、在kd树中找到包含点S的叶节点D,则最近邻点在以S为圆心通过D的园内;

2、返回父节点B,B的另一子节点F与圆不相交,不可能有最近邻点;

3、返回上一级父节点A,A的另一子节点C与圆相交,该区域有在圆内的E,E成为新的最近邻点。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • KNN模型概括 KNN是非线性算法,可以用于分类,也可以用于回归问题。 对于新的实例,根据其K个最近邻的训练实例的...
    闫阿佳阅读 2,934评论 0 0
  • 一.朴素贝叶斯 1.分类理论 朴素贝叶斯是一种基于贝叶斯定理和特征条件独立性假设的多分类的机器学习方法,所...
    wlj1107阅读 8,491评论 0 5
  • 保留初心,砥砺前行 k-nearest neighbor, k-NN是一种可以用于多分类和回归的方法。knn是一...
    加勒比海鲜王阅读 5,307评论 3 7
  • 原文章为scikit-learn中"用户指南"-->"监督学习的第六节:Nearest Neighbors"###...
    HabileBadger阅读 12,038评论 0 7
  • 思念是一堵墙 斑驳是它的忧伤 我在墙边慢慢地踱着 指甲缓缓游曳在它松脆的石灰上 有一株爬山虎静悄悄地在墙角发芽 它...
    山城过客阅读 2,920评论 0 2

友情链接更多精彩内容