Wielowymiarowa (wielomianowa) najlepsza krzywa dopasowania w Pythonie?
Jak obliczyć linię najlepszego dopasowania w pytonie, a następnie narysować ją na wykresie rozrzutu w matplotlib?
Obliczyłem liniową linię najlepszego dopasowania przy użyciu zwykłej regresji najmniejszych kwadratów w następujący sposób:
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_
Jest to wielowymiarowa (istnieje wiele wartości x dla każdego przypadku). Tak więc X jest listą list, a y to pojedyncza lista. Na przykład:
x = [[1,2,3,4,5], [2,2,4,4,5], [2,2,4,4,1]]
y = [1,2,3,4,5]
Ale jak to zrobić z funkcjami wielomianowymi wyższego rzędu. Na przykład nie tylko liniowy (x do potęgi M = 1), ale dwumianowy (x do potęgi M = 2), kwadratowy (x do potęgi M = 4) i tak dalej. Na przykład, jak uzyskać najlepsze krzywe dopasowania z poniższych?
Wyciąg z „Rozpoznawania wzorców i uczenia maszynowego” Christophera Bishopsa, s.7: