SciKit Learn SVR 运行时间很长

tsc*_*dia 6 python machine-learning svm scikit-learn

我面临以下问题,我在训练集上运行来自 scikit-learn 库的 SVR,观察次数约为 46500,并且运行了六个多小时,直到现在。

我正在使用线性内核。

def build_linear(self):
    model = SVR(kernel='linear', C=1)
    return model
Run Code Online (Sandbox Code Playgroud)

我已经尝试在 1e-3 和 1000 之间更改“C”值,但没有任何变化。

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

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

非常感谢!

sas*_*cha 10

众所周知,SVM 会随着样本数量的增加而严重扩展!

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

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

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

(补充一点可能很有价值:不要在像这样等待 6 小时的一般情况下浪费时间。对数据进行子采样并尝试更小、更小、......示例并从中推断运行时间或问题。编辑:似乎你已经这样做了,很好!)。