Machine learning 支持向量机分类器的计算复杂度预测

Machine learning 支持向量机分类器的计算复杂度预测,machine-learning,svm,Machine Learning,Svm,线性支持向量机的预测复杂度是多少?它的分离面只是一个超平面,所以预测时间似乎不应该依赖于训练数据。同时我读到复杂性与支持向量的数量成正比。将所有这些支持向量保留在经过训练的分类器中有什么意义?你是对的,线性支持向量机的预测时间不依赖于数据。这是因为预测器只是测试向量和学习权重向量之间的点积 保持支持向量的存在是没有意义的,否则的话,任何人都会感到困惑:)。如果出于某种原因,您想知道稍后的支持向量是什么,您可以通过在训练数据上评估分类器来轻松找到。所有预测错误或SVM输出值绝对值小于1的训练数据样

线性支持向量机的预测复杂度是多少?它的分离面只是一个超平面,所以预测时间似乎不应该依赖于训练数据。同时我读到复杂性与支持向量的数量成正比。将所有这些支持向量保留在经过训练的分类器中有什么意义?

你是对的,线性支持向量机的预测时间不依赖于数据。这是因为预测器只是测试向量和学习权重向量之间的点积


保持支持向量的存在是没有意义的,否则的话,任何人都会感到困惑:)。如果出于某种原因,您想知道稍后的支持向量是什么,您可以通过在训练数据上评估分类器来轻松找到。所有预测错误或SVM输出值绝对值小于1的训练数据样本都是支持向量。

对于线性SVM,确实可以显式计算分离超平面并保存为模型。换句话说,线性支持向量机模型的预测严格要求输入空间中的超平面。许多专门的线性软件包正是这样做的(LIBLINEAR、SVMPERF、PEGASOS等等)。即使您不需要支持向量的知识来使用线性支持向量机进行预测,但是知道支持向量仍然有各种用途

当使用非线性核使用支持向量机进行预测时,情况完全不同,因为分离超平面可能是无限维的(例如,当使用RBF核时)。在特征空间中计算超平面本身甚至可能是不可能的,但是可以通过支持向量和测试点之间的核计算来计算超平面和特征空间中测试点之间的内积。这就是所谓的内核技巧


大多数支持线性和非线性内核的通用软件包倾向于以相同的方式保存所有模型(如LIBSVM)。这意味着,线性模型按照测试点和支持向量之间的内积进行存储和评估,就像非线性模型一样。显然,这比线性支持向量机更复杂。绝大多数人使用通用的支持向量机软件包,而不是专门的线性支持向量机软件包,即使在培训线性支持向量机时也是如此。这可能是许多人错误地认为线性支持向量机的预测总是依赖于支持向量的原因。

因此,如果评估测试点的公式是$f(x)=sign(\sum_{i=1}^{l}v_{i}k(x,x_{i}+b))$。这是否意味着每个维度为d的测试点的复杂度时间是O(3d)。wieghts的d次乘法、点之间的d次乘法和d次和?