Многомерная (полиномиальная) кривая наилучшего соответствия в питоне?

Как рассчитать линию наилучшего соответствия в 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:

Extracted from Christopher Bishops's "Pattern Recognition and Machine Learning", p.7

Ответы на вопрос(1)

Ваш ответ на вопрос