Row*_*ney 5 python numpy linear-regression
我试图在方程组中求解m1,m2,m3,m4,这样:
y=(m1*x1)+(m2*x2)+(m3*x3)+(m4*x4)
Run Code Online (Sandbox Code Playgroud)
哪里:
x1=[x11,x12,x13...]
x2=[x21,x22,x23...]
x3=[x31,x32,x33...]
x4=[x41,x42,x43...]
y=[y1,y2,y3,y4,...]
Run Code Online (Sandbox Code Playgroud)
我一直在努力做到:
m=numpy.linalg.lstsq(A,y)[0]
Run Code Online (Sandbox Code Playgroud)
哪里:
A = [[x11,x21,x31,x41],[x12,x22,x32,x42],.....]
Run Code Online (Sandbox Code Playgroud)
但是我的结果与Mat-lab中的类似分析不匹配.
您可能会看到的任何建议或问题都非常有用!
谢谢.
看来您构建的A矩阵不正确。此外,np.linalg.lstsq似乎只接受一个2D数组A,这意味着您可以一次对一个变量进行最小二乘。尝试这个:
nvar = 4
one = np.ones(x1.shape)
A = np.vstack((x1,one,x2,one,x3,one)).T.reshape(nvar,x1.shape[0],2)
for i,Ai in enumerate(A):
a = np.linalg.lstsq(Ai,y)[0]
R = np.sqrt( ((y - Ai.dot(a))**2).sum() )
print R
Run Code Online (Sandbox Code Playgroud)