的应用可以选取不同的k值。如果未知样本si的周围的样本点的个数较少,那么该k个点所覆盖的区域将会很大,反之则小。因此最近邻算法易受噪声数据的影响,尤其是样本空间中的孤立点的影响。其根源在于基本的k最近邻算法中,待预测样本的k个最近邻样本的地位是平等的。在自然社会中,通常一个对象受其近邻的影响是不同的,通常是距离越近的对象对其影响越大8。近邻法研究方法该算法没有学习的过程,在分类时通过类别已知的样本对新样本的类别进行预测,因此属于基于实例的推理方法。如果取K等于1,待分样本的类别就是最近邻居的类别,称为NN算法。
f只要训练样本足够多,NN算法就能达到很好的分类效果。当训练样本数趋近于∞时,NN算法的分类误差最差是最优贝叶斯误差的两倍;另外,当K趋近于∞时KNN算法的分类误差收敛于最优贝叶斯误差。下面对K近邻算法描述:输入:训练数据集DXiYi1≤i≤N,其中Xi是第i个样本的条件属性,Yi是类别新样本X,距离函数d。输出X的类别Y。fori1toNdo计算X和Xi之间的距离dXiX;e
dfor对距离排序,得到dXXi1≤dXXi2≤…≤dXXiN;选择前K个样本:SXi1Yi1…XiKYiK;统计S中每个类别出现的次数,确定X的类别Y。K近邻法需要解决的问题1寻找适当的训练数据集训练数据集应该是对历史数据的一个很好的覆盖,这样才能保证最近邻有利于预测,选择训练数据集的原则是使各类样本的数量大体一致,另外,选取的历史数据要有代表性。常用的方法是按照类别把历史数据分组,然后再每组中选取一些有代表性的样本组成训练集。这样既降低了训练集的大小,由保持了较高的准确度。2确定距离函数距离函数决定了哪些样本是待分类本的K个最近邻居,它的选取取决于实际的数据和决策问题。如果样本是空间中点,最常用的是欧几里德距离。其它常用的距离函是由绝对距离、平方差和标准差。3决定K的取值邻居的个数对分类的结果有一定的影响,一般先确定一个初始值,再进行调整,直到找到合适的值为止。4综合K个邻居的类别多数法是最简单的一种综合方法,从邻居中选择一个出现频率最高的类别作
f为最后的结果,如果频率最高的类别不止一个,就选择最近邻居的类别。权重法是较复杂的一种方法,对K个最近邻居设置权重,距离越大,权重就越小。在统计类别时,计算每个类别的权重和,最大的那个就是新样本的类别9。
fr