21. KNN算法KNN算法又称为k近邻分类(k-nearest neighbor classification)算法,是从训练集中找到和新数据最接近的k条记录,然后根据他们的主要分类来决定新数据的类别。该算法涉及3个主要因素:训练集、距离或相似的衡量、k的大小。一、算法要点1. 指导思想其指导思想是“近朱者赤,近墨者黑”,由你的邻居来推断出你的类别。2. 算法步骤:1)算距离:计算已知类别数据集合汇总的点与当前点的距离,按照距离递增次序排序;2)找邻居:选取与当前点距离最近的K个点;3)做分类:确定距离最近的前K个点所在类别的出现频率,返回距离最近的前K个点中频率最高的类别作为当前点的预测分类。3. k值设定为多大?k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太多的其它类别的点。(对距离加权,可以降低k值设定的影响)k值通常是采用交叉检验来确定(以k=1为基准)经验规则:k一般低于训练样本数的平方根 2距离或相似度的衡量什么是合适的距离衡量?距离越近应该意味着这两个点属于一个分类的可能性越大。常用的距离衡