本文源自微信公众号【Python编程和深度学习】原文链接:机器学习系列(一)K-近邻算法(KNN,K-Nearest-Neighbor),欢迎扫码关注鸭!
目录
一、算法概述
二、Python代码
三、Matlab 代码
一、算法概述
K-近邻算法是最简单的分类器,没有显式的学习过程或训练过程,是懒惰学习(Lazy Learning),数据集事先已经有了分类标签和数据特征值,对测试数据可以直接处理,其处理机制就是通过测量不同特征值之间的距离来进行分类,简单说就是如果测试样本在特征空间中的k个最邻近的样本中,大多数样本属于某个类别,则该测试样本也划分到这个类别,KNN里的K就是最邻近的K个数据样本。
要确定绿圆属于哪个类别,如果k=3,在其最近的3个样本中红色三角形数量最多,绿圆属于红色三角形类别,如果k=5,在其最近的5个样本中蓝色矩形数量最多,绿圆属于蓝色矩形类别,可见k的选择很重要。
当k很小时,结果很容易受噪声影响,容易发生过拟合。当k很大时,与测试样本差别很大的样本也会对预测结果产生影响,k通常取奇数,避免产生相等占比的情况。
我们