SciKit Learn SVR运行时间很长

时间:2017-11-23 16:49:17

标签: python machine-learning scikit-learn svm

我遇到以下问题,我在scikit-learn库中运行SVR,训练集上有大约46500次观察,并且运行时间超过6小时,直到现在。

我正在使用线性内核。

def build_linear(self):
    model = SVR(kernel='linear', C=1)
    return model

我已经尝试过改变" C" 1e-3和1000之间的值没有任何变化。

聚内核在大约5分钟内运行,但我需要评估的值,可以跳过这部分...

有没有人知道如何加快速度?

非常感谢!

1 个答案:

答案 0 :(得分:2)

众所周知,SVM会随着样本的数量而严重缩放!

使用LinearSVR或使用大量数据代替带有线性内核的SVR:SGDClassifier

LinearSVR在它可以计算的内容方面受到更多限制(没有非线性内核),更多受限制的算法通常有更多的假设,并使用它们来加速(或节省内存)。

SVR基于libsvm,而LinearSVR基于liblinear。两者都是经过良好测试的高质量实施。

(添加以下内容可能很有价值:不要浪费时间等待这些等待6小时的一般情况。对数据进行子样本并尝试更小,更小,......示例并从中推断出运行时或问题编辑:看来你已经这样做了,好!)。