據我所知,在Scikit學習中支持向量迴歸需要一個度數的整數。但是,在我看來,好像是不考慮低階多項式。在Scikit中找到混合度多項式學習支持向量迴歸
運行下面的例子:
import numpy
from sklearn.svm import SVR
X = np.sort(5 * np.random.rand(40, 1), axis=0)
Y=(2*X-.75*X**2).ravel()
Y[::5] += 3 * (0.5 - np.random.rand(8))
svr_poly = SVR(kernel='poly', C=1e3, degree=2)
y_poly = svr_poly.fit(X, Y).predict(X)
(如複製並從這裏http://scikit-learn.org/stable/auto_examples/svm/plot_svm_regression.html略有修改)
繪製數據給出了一個相當差的擬合(甚至跳過管線5時,其中被賦予一個隨機誤差到Y值)。
似乎不考慮低階項。我試圖通過一個[1, 2]
列表degree
參數,但後來我得到了一個錯誤predict
命令。有什麼方法可以包含它們嗎?我錯過了什麼明顯的東西?
您點球C被設定爲1000,它基本上懲罰任何有效的參數。嘗試將其設置爲1或更低 – chrisckwong821
它有幫助,但它不能解決我的一般問題,即考慮低階項的範圍。 – Eulenfuchswiesel
此評論https://stats.stackexchange.com/questions/152610/extremly-poor-polynomial-fitting-with-svr-in-sklearn是非常有用的,但是如果包含較低順序的術語,我不能從中引用它 – Eulenfuchswiesel