-
k近邻算法的基本原理
存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。最后选择k个最相似数据的中出现次数最多的分类,作为新数据的分类。
-
具体算法实现:
将预测样本与训练样本中的每个样本计算距离,将所有计算出的距离从小到大排序,取出前k个距离对应的样本,统计这k个样本对应的分类数量,数量最多的类型就是预测样本的类型。
假设绿色的小方块是我们要预测的点,我们样本集中有蓝色三角和红色圆两个分类,当k=3时,圈起来的样本集中蓝色三角的数量最多,所以,我们判断绿色方块的类别是属于蓝色三角的类别。也就变成下图的模样。
但是当我们把k取成5时,可以发现在圆圈中红圆的数量变多了,所以这个时候我们判定绿色小方块为红圆。