Умножение строки DF на коэффициенты - PullRequest
0 голосов
/ 06 июня 2018

Я хочу сохранить коэффициенты модели statsmodels.api для будущего использования (поэтому мне не нужно каждый раз запускать модель).Когда я получаю новый фрейм данных, для которого я хочу сделать прогноз, я хочу иметь возможность умножать каждую строку фрейма данных на коэффициенты (то есть model.params).Затем я бы суммировал результаты для каждой строки * коэффициентов, чтобы получить прогноз для этой строки.Однако, мне кажется, что это не работает для меня, когда я пытаюсь:

preds = []
for row in df.iterrows():
    preds.append((model.params*row).sum())

Редактировать: пример

df:

Height    Weight    Color
  6         5         3
  6         2         4
  9         1         9
  10        3         3

коэффициенты:

Высота: -1,6403

Вес: 2,0435

Цвет: 300,4532

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Я бы подумал сделать что-то вроде:

df.dot(model.params)

Это вычисляет точечное произведение в каждой из строк DataFrame.

0 голосов
/ 07 июня 2018

Кажется, вам нужно:

coeff_dict = {
        'Height': -1.6403,
        'Weight': 2.0435,
        'Color': 300.4532
 }
df.assign(prediction=df.assign(**coeff_dict).mul(df).sum(axis=1))

Вывод:

    Height  Weight Color  prediction
0       6       5      3    901.7353
1       6       2      4   1196.0580
2       9       1      9   2691.3596
3      10       3      3    891.0871
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...