¿Curva de ajuste multivariable (polinomio) en python?
¿Cómo se calcula una línea de mejor ajuste en python y luego se grafica en un diagrama de dispersión en matplotlib?
Calculé la línea lineal de mejor ajuste utilizando la Regresión de mínimos cuadrados ordinarios de la siguiente manera:
from sklearn import linear_model
clf = linear_model.LinearRegression()
x = [[t.x1,t.x2,t.x3,t.x4,t.x5] for t in self.trainingTexts]
y = [t.human_rating for t in self.trainingTexts]
clf.fit(x,y)
regress_coefs = clf.coef_
regress_intercept = clf.intercept_
Esto es multivariado (hay muchos valores de x para cada caso). Entonces, X es una lista de listas, y y es una lista única. Por ejemplo:
x = [[1,2,3,4,5], [2,2,4,4,5], [2,2,4,4,1]]
y = [1,2,3,4,5]
Pero, ¿cómo hago esto con funciones polinomiales de orden superior? Por ejemplo, no solo lineal (x a la potencia de M = 1), sino binomial (x a la potencia de M = 2), cuadrática (x a la potencia de M = 4), y así sucesivamente. Por ejemplo, ¿cómo obtengo las curvas de mejor ajuste de las siguientes?
Extraído de "Reconocimiento de patrones y aprendizaje automático" de Christopher Bishops, p.7: