算法思想
从训练集中找出k个最接近测试对象的训练对象,再从k个对象中确定主导类别,将此类别赋给测试对象。
假设训练对象有n个属性,每个对象由n维空间的一个点表示,则真个训练集处于n维空间中,每当给定一个测试对象c我们计算c到训练对象的距离,找到最接近c的k个对象。然后c指派到最近邻中数量最多的类。
特别的,当K=1时,测试对象c会被指派到与它最近的训练对象所属的类。
关键要素
使用k近邻法需要考虑的:
1.被标记的训练对象
2.距离指标的选择,一般使用欧式距离或者曼哈顿距离。
7-19为欧式距离,7-20为曼哈顿距离
3.最近邻的个数k,k的值可以通过实验来确定,对于小数据集,k取1会有挺好的效果,在样本数多的情况下,往往选择较大的k值
算法性能
k邻近算法的性能受到关键因素的影响
1。K值的选择
如果k值选择过小,会对噪声点的影响特别敏感;反之,k值选择过大,那么近邻中可能包含太多种类别的点
2。目标类别的选择
最简单的做法就是根据距离加权
3。距离指标的选择
根据数据选择合适的测距方法也非常的重要。