我在Python中使用scikitlearn來創建一些SVM模型,同時嘗試不同的內核。代碼非常簡單,並遵循以下形式:SVM內核的速度?線性與RBF vs Poly
from sklearn import svm
clf = svm.SVC(kernel='rbf', C=1, gamma=0.1)
clf = svm.SVC(kernel='linear', C=1, gamma=0.1)
clf = svm.SVC(kernel='poly', C=1, gamma=0.1)
t0 = time()
clf.fit(X_train, y_train)
print "Training time:", round(time() - t0, 3), "s"
pred = clf.predict(X_test)
該數據是8個功能和3000多個觀察點。我很驚訝地看到rbf在一秒之內就被安裝了,而線性需要90秒,poly需要幾個小時。
我認爲非線性內核會更復雜,需要更多時間。是否有一個原因是線性需要比rbf更長的時間,並且poly比兩個都花費了更多的時間?根據我的數據,它可以有很大的不同嗎?
您可以在其他數據集上重現該現象嗎?你能提供導致這種情況的數據集嗎? – THN
@thn是的,它似乎是我使用的任何數據集的問題。然而,我正在處理的是邁克爾J福克斯基金會移動傳感器數據集 –