Teoria
A regressão polinomial é um caso especial de regressão linear. Com a idéia principal de como você seleciona seus recursos. Observando a regressão multivariada com 2 variáveis: x1
e x2
. A regressão linear ficará assim:y = a1 * x1 + a2 * x2.
Agora você deseja ter uma regressão polinomial (vamos fazer polinômio de 2 graus). Vamos criar algumas características adicionais: x1*x2
, x1^2
e x2^2
. Portanto, obteremos sua 'regressão linear':
y = a1 * x1 + a2 * x2 + a3 * x1*x2 + a4 * x1^2 + a5 * x2^2
Isso mostra bem uma importante maldição conceitual da dimensionalidade , porque o número de novos recursos cresce muito mais rápido do que linearmente com o crescimento do grau de polinômio. Você pode dar uma olhada neste conceito aqui .
Pratique com o scikit-learn
Você não precisa fazer tudo isso no scikit. A regressão polinomial já está disponível lá (na versão 0.15 . Veja como atualizá-la aqui ).
from sklearn.preprocessing import PolynomialFeatures
from sklearn import linear_model
X = [[0.44, 0.68], [0.99, 0.23]]
vector = [109.85, 155.72]
predict= [[0.49, 0.18]]
#Edit: added second square bracket above to fix the ValueError problem
poly = PolynomialFeatures(degree=2)
X_ = poly.fit_transform(X)
predict_ = poly.fit_transform(predict)
clf = linear_model.LinearRegression()
clf.fit(X_, vector)
print clf.predict(predict_)