k近邻(K-Nearest Neighbor, 简称KNN)算法既可以用于分类问题也可以用回归问题.两者最大的区别在于最终决策时方法的选择,对于分类问题来说,采用多数表决法;而对于回归问题来说,采用选择平均法;
在此只总结分类问题中的k近邻模型.
一. K近邻模型
k近邻算法对于分类问题的大致描述:对于给定的训练数据集,有新的实例输入,在训练数据集中找到与该实例最邻近的k个实例,这个k个实例中大多数属于哪个类别,则把这个新的实例归为这个类别.
通过以上,可以看出当训练数据集确定后,并指定邻近度量(距离度量)方法,k值以及决策规则(上述的规则被称为多数表决)后,对于任何一个新的输入实例,都有唯一确定的类别.因此,k近邻模型由距离度量,k值和决策规则这三个要素组成.
1. 距离度量
在k近邻模型中一般使用的距离是欧式距离,当然也可以是其他距离.
比如闵可夫斯基距离
当式中p=1时,称为曼哈顿距离;p=2时称为欧式距离;当p=∞时称为切比雪夫距离,切比雪夫距离定义为各坐标数值差的最大值,其公式为:
当然,选择不同的距离度量确定的邻近点也是不同的.
2. k值的选择
如果k值的选择过小,比如极端值k=1(这时算法称为最近邻算法), 结果将会归为最近邻的那一个点所属的类别,但是当这个最近邻点为噪声,那么预测将会出错.也就是说k值的减少会增大模型的复杂程度,容易发生过拟合.
如果k值的选择过大,比如极端值k=N(N为样本容量), 那么无论输入什么实例,预测的结果均为训练集中最多的类,这时模型又过于简单.
在实际应用中,通常会采用交叉验证的方法选择最优的k值.
3. 决策规则
对于分类问题的k近邻模型来说,常用的决策规则是多数表决,即由输入实例的k个邻近的训练实例中的多数类别来决定输入实例的类别.
多数表决规则等价于误分类率最小化(即经验风险最小化).
参考:
李航博士著<统计学习方法>