我使用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
任何想法为什么会这样?
由于
答案 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)