machine-learning - 最小二乘和X'Xθ = X'y 有什么关系?

标签 machine-learning linear-algebra linear-regression least-squares

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

方法 1:最小二乘法

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

方法2:矩阵乘法

我们有以下推导过程:

# 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 的列空间的向量。这意味着这两个向量之间的最短距离是当 Xθ 等于向量的投影时Y到X的列空间(从图片中可以很容易观察到)。结果是 Y^(hat) = Xθ = X(X'X)^(-1)X'Y,其中 X(X'X)^(-1)X' 是 X 的列空间的投影矩阵。经过一些更改后,您可以观察到这与 (X'X)θ = X'Y 等效。您可以在任何线性代数书籍中找到确切的证明。

关于machine-learning - 最小二乘和X'Xθ = X'y 有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42697745/

相关文章:

machine-learning - 为什么线性模型适用于图像分类?

javascript - D3.js 线性回归

machine-learning - 如何将数据从输入空间 I 获取到特征空间 Y

tensorflow - Google colab pro GPU 运行速度极慢

machine-learning - 如何将不确定性传播到神经网络的预测中?

python - python 中的特征向量给出了看似随机的元素符号

python - xgboost 预测方法为所有行返回相同的预测值

algorithm - 通过删除行和列使奇异矩阵成为非奇异矩阵

r - 如何创建一个 for 循环来查找 R 中多个变量之间的相互作用?

r - 如何修复 abline 警告,仅使用前两个系数?