1. KNN算法
K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法,是一个理论上比较成熟的方法,也
是最简单的机器学习算法之一,1968年由 Cover 和 Hart 提出。
该方法的思路是:如果一个样本在特征空间中的 k 个最相似(即特征空间中最邻近)的样本中的大
多数属于某一个类别,则该样本也属于这个类别。KNN 算法中,所选择的邻居都是已经正确分类
的对象;该方法在分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类
别。KNN算法并不具有显式的学习过程。k=1时,为最近邻搜索。
特点:基于实例之间距离和投票表决的分类,精度高、对异常值不太敏感,计算复杂度高、空间复
杂度高,特别适合多分类,简单易实现,大多数情况下比朴素贝叶斯好,给定训练集、距离度量、
k值及分类决策函数时,其结果唯一确定。
1.1 算法流程
输入:训练数据集为实例的特征向量,实例向量x
输出:实例x所属的类别y
根据给定的距离度量,在训练集T中找出与x最近的k个点,涵盖着k个点的x的邻域记作Nk(x)
在Nk(x)中根据分类决策规则(如多数表决)决定x所属的类别y。上式中,I为指示函数,即当yi