最小二乘与X'Xθ = X'y是什么关系?

What the relationship of least square and X'Xθ = X'y?

我有三点:(1,1), (2,3), (3, 3.123)。我假设假设是,我想对这三个点进行线性回归。我有两种计算θ的方法:

方法一:最小二乘法

import numpy as np
# get an approximate solution using least square
X = np.array([[1,1],[2,1],[3,1]])
y = np.array([1,3,3.123])
theta = np.linalg.lstsq(X,y)[0]
print theta

方法二:矩阵乘法

我们有以下推导过程:

# rank(X)=2, rank(X|y)=3, so there is no exact solution.
print np.linalg.matrix_rank(X)
print np.linalg.matrix_rank(np.c_[X,y])
theta = np.linalg.inv(X.T.dot(X)).dot(X.T.dot(y))
print theta

method-1和method-2都可以得到结果[ 1.0615 0.25133333],看来method-2等价于最小二乘。但是,我不知道为什么,谁能透露一下它们等价的基本原理?

这两种方法是等效的,因为最小二乘法是 θ = argmin (Xθ-Y)'(Xθ-Y) = argmin ||(Xθ-Y)||^2 = argmin ||(Xθ-Y)||,这意味着您尝试最小化向量的长度 ( Xθ-Y),因此您尝试最小化 Xθ 和 Y 之间的距离。X 是常数矩阵,因此 Xθ 是来自 X 的第 space 列的向量。这意味着这两个向量之间的最短距离是当 Xθ 相等时将向量 Y 投影到 X 的 space 列(从图片中可以很容易地观察到)。结果为 Y^(hat) = Xθ = X(X'X)^(-1)X'Y,其中 X(X'X)^(-1)X' 是到列 [=12= 的投影矩阵] 的 X。经过一些更改后,您可以观察到这等同于 (X'X)θ = X'Y。您可以在任何线性代数书籍中找到确切的证明。