首页 > 其他 > 详细

KNN可视化

时间:2019-05-19 22:24:34      阅读:298      评论:0      收藏:0      [点我收藏+]

今天的博客主要介绍KNN算法以及其可视化的实现

一.KNN算法简介

        KNN,即K近邻法(k-nearst neighbors),所谓的k最近邻,就是指最接近的k个邻居(数据),即每个样本都可以由它的K个邻居来表达。kNN算法的核心思想是,在一个含未知样本的空间,可以根据离这个样本最邻近的k个样本的数据类型来确定样本的数据类型。在scikit-learn 中,与近邻法这一大类相关的类库都在sklearn.neighbors包之中。其中分类器有KNN分类树KNeighborsClassifier、限定半径最近邻分类树的类RadiusNeighborsClassifier以及最近质心分类算法NearestCentroid等等。前两种分类算法中,scikit-learn实现两个不同的最近邻分类器:KNeighborsClassifier基于每个查询点的k个最近邻点实现学习,其中k是用户指定的最近邻数量。 RadiusNeighborsClassifier基于每个训练点的固定半径r内的最近邻搜索实现学习,其中r是用户指定的半径浮点值。关于这两种分类器的差别可以参考KNN算法的KD树和球树进行了解。

二.Python可视化实现KNN算法

        这里通过python的绘图工具Matplotlib包可视化实现机器学习中的KNN算法。 需要提前安装python的Numpy和Matplotlib包。 KNN–最近邻分类算法,算法逻辑比较简单,思路如下: 
1.设一待分类数据iData,先计算其到已标记数据集中每个数据的距离;

2.然后根据离iData最近的k个数据的分类,出现次数最多的类别定为iData的分类。

三.实现代码及结果

1.实现代码如下:

下面的代码主要是随机生成两个不同数据集数据集,其中normal为两个正态分布数据集,ring为正态分布且环绕状分布的数据集。

技术分享图片

 

 技术分享图片

2.实验结果如下:

n=200,k=3时:

技术分享图片

 

n=200,k=9时:

技术分享图片

所以当k较小时,分类数据点的效果就越准确。

 

 

 

技术分享图片

 

技术分享图片

 

KNN可视化

原文:https://www.cnblogs.com/silencexiaoyou/p/10890948.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!