我是matlab的新手。对我来说,任务是对某些数据集进行数据分类。给定的数据集由数值组成。困扰我的一件事是我必须完成所有KNN,ANN,SVM。在执行KNN时,我遇到了一个问题,比如如何找到K的值。如果是用户定义的,我们必须从哪个值开始以及何时停止它。如果有人回答我的问题,我将非常感谢
答案 0 :(得分:1)
这些模型中的每一个都有一些必须“手工”找到的元参数:
正确的评估必须测试上述的许多组合,更重要的是,它们应该由模型本身选择 。因此,检查一组值并选择分数最高的值是 methodolicaly错误。这通常通过将您的训练数据(在训练测试分割后)分成训练和验证,然后执行参数的内部测试(训练'数据训练)并选择产生最佳结果(在验证数据上)的顺序来完成最后给出整个模型得分(关于测试数据)。
我们必须从哪个值开始以及何时停止它。如果有人回答我的问题,我将非常感谢
对于从1开始并以示例数结束的每个自然K,KNN被很好地定义。然而,它通常在{1,5,10,15}的K上进行测试(仅仅是拇指规则,仅此而已)。
答案 1 :(得分:0)
那么,就KNN而言,K的值被确定为n的平方根,即训练样本的数量。因此,如果您有100个训练样例,则k的值应为10.但是,这只是拇指规则。
来源: Brett Lantz
的机器学习