Teoría
La regresión polinómica es un caso especial de regresión lineal. Con la idea principal de cómo seleccionar sus características. Mirando la regresión multivariada con 2 variables: x1
y x2
. La regresión lineal se verá así:y = a1 * x1 + a2 * x2.
Ahora desea tener una regresión polinómica (hagamos un polinomio de 2 grados). Vamos a crear una serie de características adicionales: x1*x2
, x1^2
y x2^2
. Entonces obtendremos su 'regresión lineal':
y = a1 * x1 + a2 * x2 + a3 * x1*x2 + a4 * x1^2 + a5 * x2^2
Esto muestra muy bien una importante maldición conceptual de dimensionalidad , porque el número de nuevas características crece mucho más rápido que linealmente con el crecimiento del grado de polinomio. Puedes echar un vistazo a este concepto aquí .
Practica con scikit-learn
No necesita hacer todo esto en scikit. La regresión polinómica ya está disponible allí (en la versión 0.15 . Consulte cómo actualizarla aquí ).
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_)