K近邻法(KNN)是一种基本的分类与回归的方法,这里只介绍其分类问题。
KNN算法的基本思想:对于一个新的输入数据点,在训练集中找到与它距离最近的K个点,若这K个点中大部分属于A类,则该数据点也属于A类。
算法流程:
特殊地,若K=1,则相当于离输入实例最近的一个样本实例直接决定了它的类别。
KNN模型的三要素:距离度量、K值选择、分类决策规则。
距离度量:数据点之间的距离有很多度量标准,一般来说可概括为下式:
p=1称为曼哈顿距离,p=2称为欧氏距离,我们最常用的就是欧氏距离(如平面两点间的距离公式)
K值选择:K值若选得过小,则只有与输入实例很近的训练实例才会起到预测作用,预测结果对近邻实例点会变得非常敏感,容易产生过拟合现象;若K值选得过大,则离输入实例较远的训练实例也会对也测结果产生影响,会降低预测的准确性。实际应用中,通常使用交叉验证法来选取一个适当的K值。
分类决策规则:多数表决规则(参考上述KNN算法基本思想)
理由:
简单来讲,为了使误分类率最小(即经验风险最小),则需要找到近邻中的最多类别,即经验风险最小化等价于多数表决。