1

Фон: Я делаю полиномиальное регрессионное моделирование, используя scikit-learn. С созданной моделью регрессии вы можете получить список коэффициентов.Создать формулу полного полиномиального регрессии, а не только коэффициенты, использующие sklearn?

poly = PolynomialFeatures(degree) 
X_ = poly.fit_transform(X) 
model = linear_model.LinearRegression(fit_intercept=True) 
model.fit(X_, Y_) 
print model.coef_ 

Результаты:

[0.00000000e + 00 -3.69049908e + 00 9.45845788e-03 4.79401992e + 01 1.13710193e + 01 2.55613693e + 01]

It означает Y = 0 + -3.69 X1 + 0.00945 X2 + 47.9 X1^2 + 11.3 X1X2 + 25.5 X2^2

Но вы не знаете, какие термины они представляют с первого взгляда. Вам нужно будет проверить список, чтобы узнать, что именно. Надеюсь, что компьютер напечатает всю формулу, а не только коэффициенты.

Есть ли способ сделать это? Я не вижу никакой функции в sklearn, которая может это сделать. Так я думал о написании функции для создания упорядоченного списка для членов полинома

Так что, если я вход 1, есть только одна переменных решения, полиномиальные термины, как [1, X1]

Для входа- , это [1, X1, X2, X1^2, X1X2, X2^2].

Для ввода 3 это [1, X1, X2, X1^2, X1X2, X2^2, X1X3, X2X3, X3^2, X1^3, X1^2 * X2, X1 * X2^2, ......... X3^3]

Так что я надеюсь написать эту функцию. Но мне сложно определить алгоритм ранжирования. Может ли кто-нибудь дать мне намек на это? Есть ли шаблон, который я могу отслеживать при создании списка?

ответ

0

OK Я понял это сам.

print poly.powers_ 

использовать этот код, а для п переменных, это выглядит как

[[0 0 0 0] 
[1 0 0 0] 
[0 1 0 0] 
[0 0 1 0] 
[0 0 0 1] 
[2 0 0 0] 
[1 1 0 0] 
[1 0 1 0] 
[1 0 0 1] 
[0 2 0 0] 
[0 1 1 0] 
[0 1 0 1] 
[0 0 2 0] 
[0 0 1 1] 
[0 0 0 2] 
[3 0 0 0] 
[2 1 0 0] 
[2 0 1 0] 
[2 0 0 1] 
[1 2 0 0] 
[1 1 1 0] 
[1 1 0 1] 
[1 0 2 0] 
[1 0 1 1] 
[1 0 0 2] 
[0 3 0 0] 
[0 2 1 0] 
[0 2 0 1] 
[0 1 2 0] 
[0 1 1 1] 
[0 1 0 2] 
[0 0 3 0] 
[0 0 2 1] 
[0 0 1 2] 
[0 0 0 3] 
[4 0 0 0] 
[3 1 0 0] 
[3 0 1 0] 
[3 0 0 1] 
[2 2 0 0] 
[2 1 1 0] 
[2 1 0 1] 
[2 0 2 0] 
[2 0 1 1] 
[2 0 0 2] 
[1 3 0 0] 
[1 2 1 0] 
[1 2 0 1] 
[1 1 2 0] 
[1 1 1 1] 
[1 1 0 2] 
[1 0 3 0] 
[1 0 2 1] 
[1 0 1 2] 
[1 0 0 3] 
[0 4 0 0] 
[0 3 1 0] 
[0 3 0 1] 
[0 2 2 0] 
[0 2 1 1] 
[0 2 0 2] 
[0 1 3 0] 
[0 1 2 1] 
[0 1 1 2] 
[0 1 0 3] 
[0 0 4 0] 
[0 0 3 1] 
[0 0 2 2] 
[0 0 1 3] 
[0 0 0 4]] 

И формула может построить на этом листе.

Я не уверен, что я дал понять, поэтому, если кто-нибудь видит эту тему и имеет схожие проблемы, просто оставьте сообщение, и я могу объяснить это.

Смотрите эту страницу: sklearn: how to get coefficients of polynomial features

+0

Можете ли вы объяснить более о том, как превратить этот лист в формулу? – b123400

 Смежные вопросы

  • Нет связанных вопросов^_^