一、KNN算法概述
KNN:K-Nearest-Neighbor算法,即K值为邻近。KNN是最简单的分类算法之一,同时,也是最常用的分类算法之一。KNN算法是有监督学习中的分类算法。
二、原理
基于基于iris数据集,具体经历下面四步流程:
①载入数据,对数据进行预处理 (缺失值处理、标准化等,其中iris数据集数据全面,无需进行缺失值处理)。
②计算待分类点到其他每个样本点的距离。
③对每个距离进行排序,然后选择出距离最小的K个点。
④对K个点所属的类别进行比较,根据少数服从多数的原则,将待分类点归入在K个点中占比最高的那一类。
三、相关基础知识的扩展
(1)对缺失值补全的方法,此处采用对缺失值填充当列数据的平均值的方法
# 缺失值处理
for i in iris_dataset.columns:
if not np.all(pd.notnull(iris_dataset[i])):
iris_dataset[i].fillna(iris_dataset[i].mean())
(2)距离计算公式,包括闵式距离(含欧式距离、曼哈顿距离和切比雪夫距离)、标准化欧式距离(排除数据量纲的影响)、余弦距离、杰卡德距离(求交集、并集间距离)、汉明距离(密码学常用,求字符串间距离)、马氏距离(求分布数据距离)。下面详细介绍闵式距离。
闵氏距离又叫做闵可夫斯基距离,是