K-近邻算法简介

来源:互联网 发布:如何制作淘宝数据包 编辑:程序博客网 时间:2024/05/16 23:40

1.K-近邻算法原理
K-近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论很成熟的机器学习算法之一。该算方法的工作原理:有一个样本的数据集,在机器学习中统称为训练样本集。在训练集中每个数据都有其标签,我们通过标签可以知道每个数据的所属分类。当我们输入一个没有标签的新数据后,如果这个数据在特征空间中的k个最相似(即特征空间中最邻近)的数据中的大多数属于某一个类别,则该样本也属于这个类别(即可以理解为离哪些K个样本最近,则类别和这K个样本一样)。
2.实例讲解K-近邻算法
如右图所示,有两类不同的样本数据,分别用蓝色的小正方形和红色的小三角形表示,而图正中间的那个绿色的圆所标示的数据则是待分类的数据。也就是说,现在, 我们不知道中间那个绿色的数据是从属于哪一类(蓝色小正方形or红色小三角形),下面,我们就要解决这个问题:给这个绿色的圆分类。我们常说,物以类聚,人以群分,判别一个人是一个什么样品质特征的人,常常可以从他/她身边的朋友入手,所谓观其友,而识其人。我们不是要判别上图中那个绿色的圆是属于哪一类数据么,好说,从它的邻居下手。但一次性看多少个邻居呢?从上图中,你还能看到:
1.如果K=3,绿色圆点的最近的3个邻居是2个红色小三角形和1个蓝色小正方形,少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。
2.如果K=5,绿色圆点的最近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。这里写图片描述
3.K-近邻算法的优缺点
优点:精度高,对异常数据不敏感(你的类别是由邻居中的大多数决定的,一个异常邻居并不能影响太大),无数据输入假定;
缺点:计算发杂度高(需要计算新的数据点与样本集中每个数据的“距离”,以判断是否是前k个邻居),空间复杂度高(巨大的矩阵);样本的不均衡可能造成结果错误:如果一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。

1 0
原创粉丝点击