Python 对新数据应用系数列表(来自回归模型)
Python apply list of coefficient (from regression model) on new data
我有一个来自 sklearn 逻辑回归模型的系数列表:
[-0.52 0.31 0.059 0.1 ]
现在,我有一个新的数据框,例如:
df = A B C D
1 5 2 7
6 2 1 9
我想添加一个新列 - 这是在每一行上应用系数列表的结果。
所以这些值将是:
1*-0.52 + 5*0.31 + 2*0.059 + 7*0.1 = 1.848
6*-0.52 + 2*0.31 + 1*0.059 + 9*0.1 = -1.541
最好的方法是什么?
谢谢!
所以我们可以numpy
reshape
l = [-0.52, 0.31, 0.059, 0.1 ]
s = [1, 5 ,2 ,7 ,6 ,2 ,1 ,9]
np.sum(np.array(s).reshape(-1,4)*l, axis=1)
Out[140]: array([ 1.848, -1.541])
已更新
df['New'] = df.dot(l)
df
Out[145]:
A B C D New
0 1 5 2 7 1.848
1 6 2 1 9 -1.541
这是矩阵乘法。你可以这样做:
df['new_col'] = df @ a
输出:
A B C D new_col
0 1 5 2 7 1.848
1 6 2 1 9 -1.541
我有一个来自 sklearn 逻辑回归模型的系数列表:
[-0.52 0.31 0.059 0.1 ]
现在,我有一个新的数据框,例如:
df = A B C D
1 5 2 7
6 2 1 9
我想添加一个新列 - 这是在每一行上应用系数列表的结果。 所以这些值将是:
1*-0.52 + 5*0.31 + 2*0.059 + 7*0.1 = 1.848
6*-0.52 + 2*0.31 + 1*0.059 + 9*0.1 = -1.541
最好的方法是什么?
谢谢!
所以我们可以numpy
reshape
l = [-0.52, 0.31, 0.059, 0.1 ]
s = [1, 5 ,2 ,7 ,6 ,2 ,1 ,9]
np.sum(np.array(s).reshape(-1,4)*l, axis=1)
Out[140]: array([ 1.848, -1.541])
已更新
df['New'] = df.dot(l)
df
Out[145]:
A B C D New
0 1 5 2 7 1.848
1 6 2 1 9 -1.541
这是矩阵乘法。你可以这样做:
df['new_col'] = df @ a
输出:
A B C D new_col
0 1 5 2 7 1.848
1 6 2 1 9 -1.541