使用KNN进行数值分类

时间:2014-02-15 22:44:12

标签: machine-learning

我是matlab的新手。对我来说,任务是对某些数据集进行数据分类。给定的数据集由数值组成。困扰我的一件事是我必须完成所有KNN,ANN,SVM。在执行KNN时,我遇到了一个问题,比如如何找到K的值。如果是用户定义的,我们必须从哪个值开始以及何时停止它。如果有人回答我的问题,我将非常感谢

2 个答案:

答案 0 :(得分:1)

这些模型中的每一个都有一些必须“手工”找到的元参数:

  • ANN - 隐藏节点数,学习率,动量率......
  • SVM - 内核类型,C值,gamma(在poly / RBF内核的情况下)
  • KNN - 使用的指标,投票加权计划,K

正确的评估必须测试上述的许多组合,更重要的是,它们应该由模型本身选择 。因此,检查一组值并选择分数最高的值是 methodolicaly错误。这通常通过将您的训练数据(在训练测试分割后)分成训练和验证,然后执行参数的内部测试(训练'数据训练)并选择产生最佳结果(在验证数据上)的顺序来完成最后给出整个模型得分(关于测试数据)。

  

我们必须从哪个值开始以及何时停止它。如果有人回答我的问题,我将非常感谢

对于从1开始并以示例数结束的每个自然K,KNN被很好地定义。然而,它通常在{1,5,10,15}的K上进行测试(仅仅是拇指规则,仅此而已)。

答案 1 :(得分:0)

那么,就KNN而言,K的值被确定为n的平方根,即训练样本的数量。因此,如果您有100个训练样例,则k的值应为10.但是,这只是拇指规则。

来源 Brett Lantz

的机器学习