【发布时间】:2014-04-28 16:01:25
【问题描述】:
我正在使用 sklearn for python 使用 SVM 执行交叉验证。我尝试使用线性和 rbf 内核,一切正常。当我用多项式内核运行它时,虽然它永远不会完成。它已经运行了8个小时,仍然没有。输入X的维数是(1422, 2)
def SupportVectorMachines(X,y):
clf = svm.SVC(C=1.0, kernel='poly', degree=3, gamma=2)
classifier = clf.fit(X,y)
score = cross_validation.cross_val_score(classifier, X,y, cv=10, n_jobs=1).mean()
return score
有什么想法吗?
谢谢
【问题讨论】:
-
你标准化输入了吗? SVM 可能对此非常挑剔,尤其是 poly kernel 存在数值稳定性问题。
-
是的,我做到了。还是不行。我尝试了标准化输入和非标准化输入
-
嗯。好吧,在最坏的情况下,SVM 训练可能需要立方时间。您是否尝试过在
cross_val_score上设置verbose=2,看看它是否可以在 8 小时内至少训练一个 SVM? -
仍然卡住了。没有打印任何东西
-
恐怕我没主意了;我从不使用内核 SVM,因为它们的训练时间很难估计(尽管在 1422×2 数据集上,8 小时非常极端)。
标签: python scikit-learn svm