我遇到以下问题,我在scikit-learn库中运行SVR,训练集上有大约46500次观察,并且运行时间超过6小时,直到现在。
我正在使用线性内核。
def build_linear(self):
model = SVR(kernel='linear', C=1)
return model
我已经尝试过改变" C" 1e-3和1000之间的值没有任何变化。
聚内核在大约5分钟内运行,但我需要评估的值,可以跳过这部分...
有没有人知道如何加快速度?
非常感谢!
答案 0 :(得分:2)
众所周知,SVM会随着样本的数量而严重缩放!
使用LinearSVR或使用大量数据代替带有线性内核的SVR:SGDClassifier
LinearSVR在它可以计算的内容方面受到更多限制(没有非线性内核),更多受限制的算法通常有更多的假设,并使用它们来加速(或节省内存)。
SVR基于libsvm,而LinearSVR基于liblinear。两者都是经过良好测试的高质量实施。
(添加以下内容可能很有价值:不要浪费时间等待这些等待6小时的一般情况。对数据进行子样本并尝试更小,更小,......示例并从中推断出运行时或问题编辑:看来你已经这样做了,好!)。