我在数据集上运行knn(在R中),其中对象被分类为A或B.然而,除了B&B之外还有更多A(A类中每18个A类18个) )。
我该如何对抗这个?例如,如果我使用18的ak,并且邻居中有7个B(比18个组中的平均B更多),测试数据仍将被归类为A应该是B。
我认为较低的k会帮助我。选择k的值是否有任何经验法则,因为它与列车集中的类的频率有关?
答案 0 :(得分:1)
不是这样的规则,对于你的情况,我会尝试一个非常小的k,可能在3到6之间。
关于数据集,除非您的测试数据或真实世界数据与您提到的相同比率(18:1)相同,否则我会删除一些A以获得更准确的结果,如果比率为,我不会建议您这样做确实接近现实世界的数据,因为你将失去比率的影响(较低的概率分类为较低的概率数据)。