KNN算法中,在选择K个最近邻时,如果出现了两个已知样本与输入样本的距离相等,那么应该选哪个邻居呢
不知道你这个问题是否已经解决, 如果还没有解决的话:距离度量(相似度计量)
分类之间相似度的计算采用距离度量,常见的距离度量:欧氏距离、曼哈顿距离、明科夫斯基距离。一般采用欧氏距离。
K值的选择
k值的选项表示对分类甄别条件的宽松或严苛。当K值过小时,k近邻模型更复杂,新实例的分类容易受到局部少数训练实例的影响,容易发生欠拟合;当K值过大时,k近邻模型更简单,容易发生过拟合,导致泛化性能下降。因此k 值得选择会对分类结果产生重大影响。k 值的选择反映了对近似误差与估计误差之间的权衡,通常由交叉验证选择最优的k值 。
(交叉验证)
交叉验证的基本想法是重复地使用数据,把给定的数据进行切分,将切分的数据组合为训练集与测试集,在此基础上反复进行训练测试以及模型的选择。在实现过程中将采用sklearn.model_selection.cross_val_score()实现交叉验证选取k kk值。
分类决策规则
分类决策规则往往是多数表决,即由输入实例的k kk个邻近输入实例中的多数类决定输入实例的类
如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形。
如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形。