K近邻法
K近邻法是机器学习所有算法中理论最简单,最好理解的算法。它是一种基本的分类与回归方法,它的输入为实例的特征向量,通过计算新数据与训练数据特征值之间的距离,然后选取K(K>=1)个距离最近的邻居进行分类判断(投票法)或者回归。如果K=1,那么新数据被简单地分配给其近邻的类。
对于分类问题:输出实例的类别。分类时,对于新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。
对于回归问题:输出为实例的值。回归时,对于新的实例,取其k个最近邻的训练实例的平均值为预测值。
k近邻法分类的直观理解:给定一个训练数据集,对于新的输入实例,在训练集中找到与该实例最近邻的k个实例。这k个实例的多数属于某个类别,则该输入实例就划分为这个类别。
k近邻法不具有显式的学习过程,它是直接预测。实际上它是利用训练数据集对特征向量空间进行划分,并且作为其分类的“模型”
K近邻法的三要素为:K值选择 距离度量 分类决策规则(取均值的规则)。当k=1时,称为最近邻算法。应用中,k值一般取一个较小的数值,通常采用交叉验证法来选用最优的k值,就是比较不同k值时的交叉验证平均误差率,选择误差率最小的那个k值。
KNN算法要求数据的所有特征都可以做可比较的量化。