【发布时间】:2015-01-23 13:45:17
【问题描述】:
我知道如何使用 Python 通过最小二乘法求解 A.X = B:
例子:
A=[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,0,0]]
B=[1,1,1,1,1]
X=numpy.linalg.lstsq(A, B)
print X[0]
# [ 5.00000000e-01 5.00000000e-01 -1.66533454e-16 -1.11022302e-16]
但是用一个不是身份的权重矩阵来解决这个相同的方程呢:
A.X = B (W)
例子:
A=[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,0,0]]
B=[1,1,1,1,1]
W=[1,2,3,4,5]
【问题讨论】:
-
是的;我在解决之前尝试过: B=numpy.dot(B,W) ,但我有一条消息:numpy.linalg.linalg.LinAlgError: 0-dimensional array given。数组必须是二维的
-
如果你取两个一维数组的点积,你会得到一个标量。也许您的意思是简单地将 B 的元素乘以 W 的元素?在这里最好使用 numpy 数组而不是 Python 列表。
标签: python numpy matrix least-squares