在 kNN 中创建跟踪和测试数据有什么意义?



我正面临着我的第一个机器学习算法,它是knn,最让我困惑的是将数据集拆分为训练数据和测试数据。使用更复杂的ms算法,我可以想象计算机需要一个"训练"过程,但knn更简单,并且不需要训练集。要么这样,要么我还没有完全理解knn。

对于背景:我有一个数据集,必须要求用户提供一些输入。从那里我可以找到用户的k个最近邻居。

如果你的解释,我会很棒。提前谢谢你:(。

KNN 通常具有验证数据集,以获取要考虑的最佳邻居数。

鉴于此,在测试集上,您可以检查算法在"野外"的表现。

如果您能以某种方式从用户的输入中找到要考虑的最佳邻居数,则不需要测试或验证。如果不是(例如,用户输入了一些值,但鉴于您无法确定要考虑的邻居数量(,您应该同时进行验证和测试(或其他一些变体,例如 K-Fold,以查找超参数(。

编辑:还有其他超参数,如距离度量,但这个想法成立。

最新更新