【问题标题】:Support Vector Machine (SVM) vs K-NN testing efficiency支持向量机 (SVM) 与 K-NN 测试效率
【发布时间】:2017-08-28 05:34:18
【问题描述】:

如果计算支持向量机 (SVM) 模型,当针对测试集运行模型时,是否比运行 KNN 更高效?

【问题讨论】:

    标签: c++ machine-learning svm


    【解决方案1】:

    我不确定您是指计算时间还是某事。就像“效率”的准确性。

    如果你想知道你的分类器有多好,我会说这取决于你的数据。如果那里有一个“最适合所有事物”的分类器,那它不是唯一使用的分类器吗?

    如果您想了解计算速度,那就是的。 K-NN 将您的测试数据点与所有训练数据点进行比较以对其进行分类。 SVM 只需要它的支持向量,所以这里的测试应该会更快。

    编辑:

    就像 MSalters 提到的,有一些方法可以提高 K-NN 的计算速度,所以上述陈述对于非常好的优化算法可能并不正确,但对于基本概念来说却是这样。

    【讨论】:

    • 您的 K-NN 实现有点幼稚。从理论上讲,您确实可以通过计算所有距离并最小化距离来确定最近的邻居。在实践中,对集合进行预处理是一个可行的选择,尤其是当 K-NN 有很多点时(即重要时)。
    • 是的,你是对的,对于支持向量机来说,最坏的情况也是所有向量都成为支持向量。因此,它也可能取决于您的数据。但是开箱即用的 knn 通常比开箱即用的 svm 慢。
    猜你喜欢
    • 2011-11-09
    • 2023-03-15
    • 2019-06-27
    • 2016-03-17
    • 2013-08-21
    • 2019-09-19
    • 2020-01-04
    • 2013-03-11
    • 2017-01-09
    相关资源
    最近更新 更多