一、引言。
KNN(K- Nearest Neighbor)法即K最邻近法,最初由 Cover和Hart于1968年提出,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路非常简单直观:如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别 。
二、KNN算法原理。
在分类任务中,我们的目标是判断样本x的类别y。KNN会先观察与该样本点距离最近的K个样本,统计这些样本所属的类别。然后将当前样本归到出现次数最多的类中。下面我们用数学语言来描述KNN算法。设已分类样本的集合为。对于一个待分类的样本x,定义其邻居
为
中与x距离最近的K个样本
组成的集合,这些样本对应的类别分别是
。我们统计集合
中类别为j的样本的数量,记为
:
其中,是示性函数,其自变量p是一个命题,当p为真时,
,反之,当p为假时,
,最后,我们将x的类别
判断为使
最大的类别:
与分类任务类似,我们还可以将KNN应用于回归任务。对于样本x,我们需要预测其对应的实数值y。同样,KNN考虑K个相邻的样本点,将这些的样本,点对于实数值
进行加权平均,就得到样本x的预测结果
:
,其中
在这里,权重代表不同邻居对当前样本的重要程度,权重越大,该邻居的值
对最后的预测影响也越大。我们即可以预先定义好权重,也可以根据数据集的特性设置权重与距离的关系,还可以将权重作为模型的参数,通过学习得到。
注意:样本之间的距离用欧氏距离。对于n维空间中的两个点和
,其欧氏距离为:
三、KNN的应用场景。
1.数据预处理:用于缺失值估算。
2.推荐系统:根据用户的行为数据,推荐相似的物品或内容。
3.金融:用于信用评估、股票市场预测等。
4.医疗保健:用于疾病诊断、病情预测等。
5.模式识别:用于手写数字识别、物体分类等。
四、KNN的优缺点。
1.优点:简单易懂,无需复杂的模型训练和参数估计;适合多分类问题;对异常值不敏感;适合类域交叉样本;适用大样本自动分类。
2.缺点:计算量较大,尤其在处理大数据集时;对特征值敏感;需要选择合适的K值和距离度量方法;空间复杂度较高,需要存储所有训练