带有交叉验证的 KNN 参数调整:得分抽奖

机器算法验证 交叉验证 k-最近邻
2022-03-16 21:42:12

我正在尝试使用 KNN 方法进行二进制分类。当试图找到最佳的“k”参数(算法查看的邻居数量)时,我在我的训练集上训练了一个模型,并在我用我的数据获得的单独验证集上查看它的准确性。这个验证集只有 12 个样本,这会导致 3 k (1,3,5) 的准确性下降。

现在我正在寻找一种方法来选择这些 3 k 中的一个作为最终模型。我想到了以下方法:对于 3 k,我在训练集上对某个 K 进行 K 折交叉验证,然后在这里查看哪个具有最佳平均准确度。这是一个不错的方法,还是有更好的选择?我还想过只选择一个随机的 k(1、3 或 5),因为“验证程序”告诉我可以选择 3 个中的任何一个。

2个回答

当您有一个小测试集时会出现此问题,这可能会导致多个模型通过实现相同数量的正确预测来打成平手。

你先说的方法应该可以。因为在 CV 中,每个模型都会看到每个训练样本一次,我认为您的 3 个模型不太可能具有相同的准确度。如果这种情况持续存在,随机选择是安全的(我会选择 3,因为它是中间元素)

奥卡姆的原则建议你应该选择最简单的模型。所以你应该去那个。但为了更好地了解模型的泛化,我建议您使用嵌套交叉验证。