Многомерная (полиномиальная) кривая наилучшего соответствия в питоне?
Как рассчитать линию наилучшего соответствия в python, а затем вывести ее на диаграмму рассеяния в matplotlib?
Я вычислил линейную линию наилучшего соответствия, используя Регрессию наименьших квадратов, следующим образом:
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_
Это многовариантно (для каждого случая есть много значений x). Итак, X - это список списков, а y - это один список. Например:
x = [[1,2,3,4,5], [2,2,4,4,5], [2,2,4,4,1]]
y = [1,2,3,4,5]
Но как мне сделать это с полиномиальными функциями более высокого порядка. Например, не просто линейные (x в степени M = 1), но биномиальные (x в степени M = 2), квадратичные (x в степени M = 4) и так далее. Например, как получить наилучшие кривые соответствия из следующих?
Extracted from Christopher Bishops's "Pattern Recognition and Machine Learning", p.7: