python – 具有多项式内核的sklearn和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

任何想法为什么会这样?

谢谢

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

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

点赞