Python 同时执行n个线性回归
我有一个y-a 100行乘5列的数据帧 我有一个100行5列的数据帧 对于i=0,…,4,我想回归y[:,i]和x[:,i] 我知道如何使用循环Python 同时执行n个线性回归,python,pandas,linear-regression,Python,Pandas,Linear Regression,我有一个y-a 100行乘5列的数据帧 我有一个100行5列的数据帧 对于i=0,…,4,我想回归y[:,i]和x[:,i] 我知道如何使用循环 但是有没有一种方法可以对线性回归进行矢量化,这样我就不会有循环了?据我所知,没有任何方法可以将这一切同时放在优化的Fortran库LAPACK中,因为每个回归都是它自己独立的优化问题 请注意,4项上的循环与回归本身无关,您需要完全计算,因为每个回归都是一个孤立的线性代数问题。。。因此,我认为这里没有多少时间可以节省…如果您能够在单个数据帧中获取数据,那
但是有没有一种方法可以对线性回归进行矢量化,这样我就不会有循环了?据我所知,没有任何方法可以将这一切同时放在优化的Fortran库LAPACK中,因为每个回归都是它自己独立的优化问题
请注意,4项上的循环与回归本身无关,您需要完全计算,因为每个回归都是一个孤立的线性代数问题。。。因此,我认为这里没有多少时间可以节省…如果您能够在单个数据帧中获取数据,那么使用“应用”应该是可能的。 我现在无法测试它,但我想到了这样的事情: 使用多索引创建单个DF:
i row x y
0 0 1.1 2.2
...
0 99 3.14 2.3
1 0 2.2 3.3
...
1 99 4.5 3.5
2 0 ... ...
然后可以按“i”列分组,并对子组应用任意函数
def linear_fit(sub_df):
do_linear_fit(sub_df['x'], sub_df['y'])
df.groupby('i').apply(linear_fit)
我希望这有帮助,否则我可以提供更多的帮助
但请记住@Retozi已经提到的内容。这不会明显快于循环(它不是并行运行或“同时”运行),但阅读和pythonic/pandas方法当然会更好…您可以使用一个进程池并行运行它,但是,设置流程和来回传输数据的开销是否值得,还有争议