Какая связь метода наименьших квадратов и X'Xθ = X'y?

У меня три точки: (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

И метод-1, и метод-2 могут дать результат [ 1.0615 0.25133333], кажется, что метод-2 эквивалентен методу наименьших квадратов. Но, не знаю почему, может ли кто-нибудь раскрыть лежащий в основе принцип их эквивалентности?


person expoter    schedule 09.03.2017    source источник
comment
Вот хорошее объяснение: Решение метода наименьших квадратов   -  person expoter    schedule 10.03.2017


Ответы (1)


Оба подхода эквивалентны, потому что метод наименьших квадратов θ = argmin (Xθ-Y)'(Xθ-Y) = argmin ||(Xθ-Y)||^2 = argmin ||(Xθ-Y)||, что означает, что вы пытаетесь минимизировать длину вектора (Xθ-Y), поэтому вы пытаетесь минимизировать расстояние между Xθ и Y. X — постоянная матрица, поэтому Xθ — вектор из пространства столбцов X. Это означает кратчайшее расстояние между этими двумя вектора - это когда Xθ равно проекции вектора Y на пространство столбцов X (это легко видно из рисунка). Это приводит к Y^(шляпа) = Xθ = X(X'X)^(-1)X'Y, где X(X'X)^(-1)X' — матрица проекции в пространство столбцов X. После некоторых изменений вы можете заметить, что это эквивалентно (X'X)θ = X'Y. Вы можете найти точное доказательство в любой книге по линейной алгебре.

person Ethan    schedule 09.03.2017