SciKit Learn SVR 运行时间过长

我遇到如下问题:我在一个包含大约46500个观测值的训练集上运行scikit-learn库的SVR,运行时间已经超过六个小时,直到现在。

我使用的是线性核函数。

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

我已经尝试将”C”值在1e-3到1000之间调整,但没有任何变化。

多项式核函数大约在5分钟内就能运行完,但我需要这些值进行评估,不能跳过这一部分…

有没有人有加速的建议?

非常感谢!


回答:

SVM的扩展性随着样本数量的增加而变差是众所周知的!

与其使用带有线性核函数的SVR,不如使用LinearSVR,或者对于大数据集使用SGDClassifier

LinearSVR在计算能力上受到更多限制(不支持非线性核函数),而这些更受限制的算法通常有更多假设,并利用这些假设来加速计算(或节省内存)。

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

(值得一提的是:在这种一般情况下,不要浪费时间等待6个小时。可以对数据进行子抽样,尝试从小到大的样本,推断运行时间或问题。编辑:看起来你已经这样做了,很好!)。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注