我使用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.这将花费更少的运行时间.