我面临的第一个机器学习算法是knn,最让我困惑的是将数据集分割成训练和测试数据。使用更复杂的ms算法,我可以想象计算机需要一个“训练”过程,但是knn更简单,没有必要设置一个训练集。要么就是我还没有完全理解knn。
对于背景:我有一个数据集,必须要求用户提供一些输入。从那里我可以找到用户的k个最近的邻居。
我会非常感谢你的解释的。事先谢谢:)。
发布于 2019-11-29 23:48:34
KNN通常有验证数据集以获得要考虑的最优邻居数。
因此,在测试集上,您可以检查算法是如何“在野外”执行的。
如果您可以从用户的输入中找到要考虑的最佳邻居数,则不需要进行测试或验证。如果没有(例如,用户输入一些值,但考虑到不能确定要考虑的较好邻居的数量),则应该同时进行验证和测试(或者进行其他一些变体,例如K-折叠,以找到超参数)。
编辑:还有其他的超参数,比如距离度量,但是这个想法仍然有效。
https://stackoverflow.com/questions/59110523
复制相似问题