k近邻算法
k近邻算法实际上是用训练数据集将特征向量空间进行过划分,并以其作为分类的“模型”;其中,k值的选择、距离的度量、分类决策规则为其三个基本要素
- k近邻算法中,给定一个训练数据集,对新输入的实例,找到与该实例最邻近的k个实例,其中k个实例中所属分类最多的分类即为所输实例的分类
注:k=1时为最近邻算法,即以距离实例最近点的类别作为输出类别
注:k近邻算法没有显示的学习过程
当k近邻算法的训练集、k值、距离的度量、分类决策规则确定后,对任何输入的实例,其输出类别是唯一的,相当于由以上所给的要素,将特征空间唯一地划分为一些确定的子空间;图3.1为二维特征空间的一个划分
下面以最近邻算法为例说明:在特征空间中,与任意一点Xi的距离相较于其他各点最近的点所组成的区域叫作单元,所有训练实例点的单元构成特征空间的一个划分;其中将Xi的类Yi作为相应单元内所有点的类标记
距离度量:
K值的选择:
当k值太小时,“学习”的近似误差减小,即只有与输入实例较近的训练实例会对预测结果产生影响,但此时“学习”的估计误差会增大,即预结果对实例点过于敏感,模型的复杂度较大,产生“过拟合”
当k值太大时,“学习”的近似误差会增大,即与输入实例较远的点也会对预测结果产生较大的影响;但是此时“学习”的估计误差相对较小,模型也比较简单 (当k=N时,模型就过于简单)
一般的,我们会选取一个比较小的k值,并用交叉验证法来选取最优的k值