k近邻算法总结

作者: peng_you | 来源:发表于2018-06-10 22:09 被阅读5次

k-nn在轨迹数据采样率合适的情况下,用于路网映射的子流程中;下面将介绍k邻近算法的基本概念和算法实现方式;
1.对于给定的训练集合{(x1,y1),(x2,y2).......(xn,yn)}其中,y为不同的类别,而k邻近算法所起的作用为,对于给定的训练集合,当给定新的输入x时,通过k邻近算法为其分配一个对应的类;

2.一个k邻近模型有三个要素;

1)距离的度量

对于给定的x要求出他到达最近k个训练点的距离,然后根据这k个点,依据某种决策规则,来预测x的类别;多数情况下取得是x-xi的二范数,值得注意的是,不同度量的选取会影响k个近邻点的选取

2)k值得选取
如上,k的选择会对k近邻发的结果产生较大的影响,具体表现在:
k较小时,近似误差小,估计误差较大
k较大时,近似误差大,估计误差较小

3)分类决策规则
k近邻算法的分类决策往往是多数表决,也就是把输入实例的k个近邻的训练实例中的多数类决定实例的类。

3.k近邻算法的实现:kd树
kd树是一种类似于R树的属性结构,但是我觉得他比R树要简单,他的具体构造过程就是先选取一个和训练集x的维数k相同的超平面矩阵,首先,根结点是包含所有训练集的超平面矩阵,然后,选取x某个维的中值,来进行划分,分为左右子结点,再对左右子结点进行递归操作,指导无法再分为止。

下面我将介绍两种kd树常用的算法:

1)构造平衡kd树:
输入:k维训练集
输出:kd树

Step1:构造根节点,其对应包含所有训练集的k为超矩阵区域
step2:对于给定的结点,选取x的维的中值,在该纬度上,进行垂直划分,得到左右结点
step3:对于左右子结点进行递归操作,终止条件为不可再分时

2)用kd树实现最近邻搜索
输入:kd树,目标点x
输出:x的最近邻

step1:在kd树中找到包含x的叶子结点,从根结点出发,向下访问kd树,到达叶子结点为止
step2:把得到的叶子结点作为当前最近点。
step3:递归向上回退,执行以下操作:
1.如果结点所保存的实例点比当前最近点更近,那么把改点作为当前最近点
2.当前最近的点一定存在于该节点的一个子结点对应的区域,检查该区域的另外一个子节点是否有更近的点,并检查以目标点和当前最近的点的距离为半径的超球体相交,如果相交,那么可能纯在另外一个子节点对应区域内存在距离目标点更近的点,移动到另外一个子节点,然后进行递归的最近邻搜索
如过不相交,则向上回退
step4:当回退到根节点时,搜索结束,最后的‘当前最近点’即为x的最近邻点

相关文章

  • “k 近邻算法”综述

    “k 近邻算法”综述 本来题目想叫“白话 k 近邻算法”,后来想想,“k 近邻算法” 的描述几乎就是“白话”,所以...

  • k 近邻法

    k 近邻法 k 近邻算法 k 近邻模型 k 近邻法的实现:kd 树 搜索 kd 树 k 近邻模型实现 k 近邻模型...

  • K-近邻算法介绍与代码实现

    声明:如需转载请先联系我。 最近学习了k近邻算法,在这里进行了总结。 KNN介绍 k近邻法(k-nearest n...

  • 机器学习常用算法

    机器学习常用算法总结如下:决策树随机森林算法逻辑回归SVM朴素贝叶斯K最近邻算法K均值算法Adaboost 算法神...

  • 十大经典算法(五)

    六、KNN(K Nearest Neighbor) K近邻(有监督) KNN算法,即K近邻算法是一种监督学习算法,...

  • 二:K近邻

    简介 K近邻算法,或者说K最近邻(kNN,k- NearestNeighbor)分类算法是数据挖掘分...

  • 最“懒惰”的kNN分类算法

    1. K-近邻算法#### k-近邻算法(k Nearest Neighbor),是最基本的分类算法,其基本思想是...

  • k近邻算法

    k近邻算法简介 k近邻算法(k-nearest neighbor, k-NN)是1967年由Cover T和Har...

  • 《算法图解》note 10 K近邻算法

    这是《算法图解》第十篇读书笔记,内容主要是K邻近算法的介绍。 1.K近邻算法简介 K近邻算法(K-nearest ...

  • 【机器学习实战】第2章 k-近邻算法(KNN)

    第2章 k-近邻算法 KNN 概述 k-近邻(kNN, k-NearestNeighbor)算法主要是用来进行分类...

网友评论

    本文标题:k近邻算法总结

    本文链接:https://www.haomeiwen.com/subject/fwpqeftx.html