Python 用numpy计算多元线性回归

Python 用numpy计算多元线性回归,python,numpy,math,regression,linear-regression,Python,Numpy,Math,Regression,Linear Regression,1-使用A=np。数组([x1,x2,x3])修复了中的错误 所以我决定增加x1、x2和x3中的元素数量,并继续使用中的示例,现在我得到了错误 “ValueError:要解压缩的值太多”。Numpy不能用这么多数字计算吗 >>> x1 = np.array([3,2,2,3,4,5,6,7,8]) >>> x2 = np.array([2,1,4.2,1,1.5,2.3,3,6,9]) >>> x3 = np.array([6,5,8,9,7

1-使用A=np。数组([x1,x2,x3])修复了中的错误

所以我决定增加x1、x2和x3中的元素数量,并继续使用中的示例,现在我得到了错误 “ValueError:要解压缩的值太多”。Numpy不能用这么多数字计算吗

>>> x1 = np.array([3,2,2,3,4,5,6,7,8])
>>> x2 = np.array([2,1,4.2,1,1.5,2.3,3,6,9])
>>> x3 = np.array([6,5,8,9,7,0,1,2,1])
>>> y = np.random.random(3)
>>> A = np.array([x1,x2,x3])
>>> m,c = np.linalg.lstsq(A,y)[0]
Traceback (most recent call last):
File "testNumpy.py", line 18, in <module>
  m,c = np.linalg.lstsq(A,y)[0]
ValueError: too many values to unpack
x1=np.数组([3,2,2,3,4,5,6,7,8]) >>>x2=np.数组([2,1,4.2,1,1.5,2.3,3,6,9]) >>>x3=np.数组([6,5,8,9,7,0,1,2,1]) >>>y=np.随机。随机(3) >>>A=np.数组([x1,x2,x3]) >>>m,c=np.linalg.lstsq(A,y)[0] 回溯(最近一次呼叫最后一次): 文件“testNumpy.py”,第18行,在 m、 c=np.linalg.lstsq(A,y)[0] ValueError:要解压缩的值太多 2-我还将我的版本与中定义的版本进行了比较。哪一个是正确的?为什么他们在这个例子中使用转置


谢谢,

解包错误不是来自NumPy,而是来自您试图从函数调用解包两个值,当只返回一个值时,请注意行末尾的
[0]

>>> x1 = np.array([3,2,2,3,4,5,6,7,8])
>>> x2 = np.array([2,1,4.2,1,1.5,2.3,3,6,9])
>>> x3 = np.array([6,5,8,9,7,0,1,2,1])
>>> y = np.random.random(3)
>>> A = np.array([x1,x2,x3])
>>> print np.linalg.lstsq(A,y)[0]
array([ 0.01789803,  0.01546994,  0.01128087,  0.02851178,  0.02561285,
        0.00984112,  0.01332656,  0.00870569, -0.00064135])
相比

>>> print np.linalg.lstsq(A,y)
(array([ 0.01789803,  0.01546994,  0.01128087,  0.02851178,  0.02561285,
         0.00984112,  0.01332656,  0.00870569, -0.00064135]),
 array([], dtype=float64), 
 3,
 array([ 21.78630954,  12.03873305,   3.8217304 ]))

请参见,第一个数组是变量的系数。我认为这里的混淆是一个变量与一个观察值。您当前有三个观察值和九个变量。
A.T
将变量转换为观察值,反之亦然。

请发布完整的问题。如果你的另一个问题被删除了,那么就没有你真正想要达到的目标的痕迹。这个错误不是来自NumPy。Python它告诉您,
np.linalg.lstsq(A,y)[0]
返回的值超过了您期望的两个值(
m,c
)。如果您之前问题的发布答案修复了该问题中提出的问题,您最好接受答案。随着时间的推移,你会发现,如果你不感谢他们或不承认他们的努力,他们对你的帮助会越来越少(这也让其他人知道,不要浪费时间试图弄清楚张贴的答案是否足够)。我不明白输出结果是什么。它们是线性回归()中定义的beta吗?如何从np.linalg.lstsq的输出中得到方程y=mx+c中的“c”?@xeon123您必须添加一列1s