具有多项式内核的sklearn和SVM

时间:2014-03-21 10:27:45

标签: python scikit-learn svm

我使用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

任何想法为什么会这样?

由于

2 个答案:

答案 0 :(得分:2)

尝试减少C(尝试C = 0.001,0.01,0.1)。 C是惩罚参数,随着C变大,模型试图减少惩罚,因此需要更多时间进行训练。

或者,尝试减少交叉验证折叠的数量。由于数据集仅包含1422个点,请尝试使用cv = 5。这将花费更少的运行时间。

答案 1 :(得分:0)

尝试设置(rwxr-x--x)。

类似的东西:

max_iter = 1e5

它出现以下错误,但终止:

    clf = svm.SVC(C=1.0, kernel='poly', degree=3, gamma=2,max_iter = 1e5)