八度等效于Octave的pinv(A)的代码(伪逆)

时间:2019-03-04 18:39:10

标签: python numpy

当我尝试将矩阵计算从八度转换为numpy时,我绝对是在扯我。特别是在多元回归方面。

我的任意数据如下,其中数组“ x”是我的输入值:

x = [
[1, 1 ,2], 
[1, 3 ,4],
[1, 5 ,6], 
[1, 7, 8],
[1, 9 ,10],
[1, 11 ,12]]

'y'是我的输出值(简称为和):

y = [[3],[7],[11],[15],[19],[23]]

在Octave中,以下代码将计算正确的系数(其中pinv(A)用于计算矩阵A的Moore-Penrose伪逆):

pinv (x' * x) * x' * y'

在numpy中,我正在执行以下操作:

x = np.array(x)
y = np.array(y)
x_T = (x.transpose())
x_theta = (inv(np.dot(x_T,x)))
x_theta = np.dot(x_theta,x_T)
x_theta = np.dot(x_theta,y)

但是这输出:

[[-330.5],[36.875],[-3.875]]

这显然是不正确的。假设我只是简单,但任何帮助将不胜感激。

非常感谢!

1 个答案:

答案 0 :(得分:0)

将其发布为答案,这样您的问题就不会仍然没有答案-在np.linalg.pinv(在八度中使用pinv的地方)使用index.js:205 Uncaught TypeError: Cannot read property 'shape' of undefined(伪反函数)。