Я подгоняю простую модель полиномиальной регрессии, и я хочу получить коэффициенты из подобранной модели.
Учитывая код подготовки:
import pandas as pd
from itertools import product
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline
# data creation
sa = [1, 0, 1, 2, 3]
sb = [2, 1, 0, 1, 2]
raw = {'a': [], 'b': [], 'w': []}
for (ai, av), (bi, bv) in product(enumerate(sa), enumerate(sb)):
raw['a'].append(ai)
raw['b'].append(bi)
raw['w'].append(av + bv)
data = pd.DataFrame(raw)
# regression
x = data[['a', 'b']].values
y = data['w']
poly = PolynomialFeatures(2)
linr = LinearRegression()
model = make_pipeline(poly, linr)
model.fit(x, y)
Из этого ответа, я знаю, что коэффициенты могут быть получены с помощью
model.steps[1][1].coef_
>>> array([ 0.00000000e+00, -5.42857143e-01, -1.71428571e+00,
2.85714286e-01, 1.72774835e-16, 4.28571429e-01])
Но это дает одномерный массив, и я не уверен, какие числа соответствуют каким переменным.
Являются ли онизаказывается как a 0 , a 1 , a 2 , b 0 , b 1 ,b 2 или как a 0 , b 0 , a 1 , b 1 , а 2 , б 2 ?