насколько я понимаю, поддержка векторной регрессии в обучении 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
. Есть ли способ включить их? Я пропустил что-то очевидное?