Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

1 votos

Matriz pseudo-inversa para regresión lineal multivariada

En el curso de Aprendizaje Automático de Andrew Ng, en la clase 4.6 sobre "Ecuación Normal", dice que para minimizar J(θ)=12mmi=1(hθ(x(i))y(i))2, donde hθ(x)=θ0+θ1x1+θ2x2+...+θnxn y resolver para θ, se debe tomar la matriz de diseño X y calcular la siguiente expresión:

θ=(XTX)1XTy,

donde la matriz de diseño es la matriz de todos los vectores de características [1,x(i)1,x(i)2,...,x(i)m] como filas. Muestra el código de Octave (Matlab) para calcularlo, como pinv(x'*x)*x'*y.

Sin embargo, hace mucho tiempo, cuando usé Numpy para resolver el mismo problema, simplemente usé np.linalg.pinv(x) @ y. Incluso se menciona en la documentación de pinv de Numpy que pinv resuelve el problema de los mínimos cuadrados para Ax=b, de manera que ¯x=A+b.

Entonces, ¿por qué debería calcular θ=(XTX)1XTy cuando puedo simplemente calcular θ=X1y? ¿Hay alguna diferencia?


EDICIÓN:

De hecho, es fácil ver que θ=(XTX)1XTy es correcto, porque por definición,

,

tal que al multiplicar X por la izquierda por (XTX)1)XT, obtenemos I, lo que significa que es su matriz inversa por la izquierda. La inversa por la izquierda es la matriz que se utiliza para resolver el problema de los mínimos cuadrados, ya que al multiplicar ambos lados por ella desde la izquierda, convierte Xθ=y en Iθ=(XTX)1XTy, lo que significa que los coeficientes son ,

lo que nuevamente, gracias a la propiedad asociativa de la multiplicación de matrices, se puede escribir como

X(XT(XXT)1)=I,

Por lo tanto, obtenemos que (XT(XXT)1) es la inversa por la derecha de X.

2voto

Benjamin Dobson Puntos 1

X1 solo tiene sentido para matrices cuadradas. Para problemas de mínimos cuadrados, a menudo tenemos una matriz estrictamente delgada y de rango completo X. Cuando X es cuadrada y de rango completo, entonces puedes usar θ=X1y, ya que (XTX)1XT=X1. Pero cuando X es estrictamente delgada y de rango completo, solo existe la pseudoinversa (XTX)1XT, lo que lleva a la fórmula dada en el enlace.

0 votos

He usado pinv de Numpy en matrices que no son cuadradas. ¿Significa que en tales matrices, numpy automáticamente utiliza la fórmula más larga?

0 votos

Suponiendo que la matriz que tienes es de rango completo y estrecha, entonces sí.

0 votos

¿Cuál es el significado de "skinny"? ¿Y si no es de rango completo? Supongamos que tengo 100 muestras y 10 características, por lo que la dimensión de mi matriz es 100x10.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X