我想存储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
答案 0 :(得分:2)
我会考虑做类似的事情:
df.dot(model.params)
这会计算DataFrame的每一行上的点积。
答案 1 :(得分:0)
好像你需要:
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