对课本原有代码加入循环,从1到10改变Knn的k值,进一步测试当k取哪个值时代码效果最好
结果如下:
结果显示,当K取3或4时代码效果最好,猜测原因为K取1,2时参考的样本偏少,故结果不如3,4的要好,而取太多时失去近邻性,其他样本反而干扰正确率
3和4时测试结果一样,考虑时间效率取3最优
这与百度的结果相符合
加入循环后的代码:
# -*- coding: UTF-8 -*-
import numpy as np
import operator
from os import listdir
"""
函数说明:kNN算法,分类器
Parameters:
inX - 用于分类的数据(测试集)
dataSet - 用于训练的数据(训练集)
labes - 分类标签
k - kNN算法参数,选择距离最小的k个点
Returns:
sortedClassCount[0][0] - 分类结果
Modify:
2017-03-25
"""
def