【问题标题】:What the point of creating traing and testing data in kNN?在 kNN 中创建训练和测试数据有什么意义?
【发布时间】:2020-03-25 09:21:15
【问题描述】:

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

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

非常感谢您的解释。提前谢谢你:)。

【问题讨论】:

    标签: pandas dataset knn training-data


    【解决方案1】:

    KNN 通常有验证数据集来获得要考虑的最佳邻居数量。

    鉴于此,您可以在测试集上检查您的算法在“野外”的执行情况。

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

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

    【讨论】:

    • 您好,非常感谢您的回答。所以假设我只需要找到 3 个邻居,这是否意味着我不再需要测试和验证?
    • 如果您以某种方式知道其他超参数的值(请参阅here 了解一些可行的选项),那么我认为验证没有任何意义,因为它不会改变任何东西。如果除了这些超参数(比如 3 个邻居)别无选择,您仍然可以使用 test 检查算法的运行情况,但这不是必需的。
    猜你喜欢
    • 2012-06-04
    • 2015-07-16
    • 2018-02-25
    • 2020-07-07
    • 1970-01-01
    • 2016-12-14
    • 2013-06-15
    • 2016-10-04
    • 2019-10-23
    相关资源
    最近更新 更多