Использование примера из класса Andrew Ng (поиск параметров для линейной регрессии с использованием нормального уравнения):
С Python:
X = np.array([[1, 2104, 5, 1, 45], [1, 1416, 3, 2, 40], [1, 1534, 3, 2, 30], [1, 852, 2, 1, 36]])
y = np.array([[460], [232], [315], [178]])
θ = ((np.linalg.inv(X.T.dot(X))).dot(X.T)).dot(y)
print(θ)
Результат:
[[ 7.49398438e+02]
[ 1.65405273e-01]
[ -4.68750000e+00]
[ -4.79453125e+01]
[ -5.34570312e+00]]
С Джулией:
X = [1 2104 5 1 45; 1 1416 3 2 40; 1 1534 3 2 30; 1 852 2 1 36]
y = [460; 232; 315; 178]
θ = ((X' * X)^-1) * X' * y
Результат:
5-element Array{Float64,1}:
207.867
0.0693359
134.906
-77.0156
-7.81836
Кроме того, когда я несколько X от Julia, но не Python - θ, я получаю числа, близкие к y.
Я не могу понять, что я делаю неправильно. Спасибо!