use*_*183 5 classification knn
我有7个类需要分类,我有10个功能.在这种情况下我是否需要使用k的最佳值,或者我必须运行KNN以获得介于1和10(大约10)之间的k值,并在算法本身的帮助下确定最佳值?
在k-NN算法中需要注意的重要事项是,在k-NN算法中确定k的值时,特征的数量和类的数量都不起作用.k-NN算法是一种ad-hoc分类器,用于根据距离度量对测试数据进行分类,即如果与其他类相比,更接近测试样本的Class-1训练样本数量更多,则测试样本被归类为Class-1训练样本.对于Eg:如果k = 5个样本的值,则基于距离度量选择5个最接近的训练样本,然后对每个类的大多数样本进行投票.因此,如果3个样本属于1类,2个属于5类,则该测试样本被归类为1类.因此,k的值表示对测试样本进行分类所需的训练样本的数量.
提出您的问题,k的值是非参数的,选择k值时的一般经验法则是k = sqrt(N)/ 2,其中N代表训练数据集中的样本数.我建议的另一个提示是尝试保持k odd的值,以便在选择类之间没有关系,但这表明训练数据在类之间高度相关并使用简单的分类算法(如k-) NN会导致分类性能不佳.