En un algoritmo de regresión por mínimos cuadrados, tengo que hacer las siguientes operaciones para calcular los coeficientes de regresión:
- Multiplicación de matrices, complejidad: O(C2N)
- Inversión de la matriz, complejidad: O(C3)
- Multiplicación de matrices, complejidad: O(C2N)
- Multiplicación de matrices, complejidad: O(CN)
¿Cómo puedo determinar la complejidad computacional global de este algoritmo?
EDITAR: He estudiado la regresión por mínimos cuadrados del libro Introducción a la minería de datos por Pang Ning Tan. La explicación sobre la regresión lineal por mínimos cuadrados está disponible en el apéndice, donde se proporciona una solución mediante el uso de la ecuación normal (algo de la forma a=(XTX)−1XTy) que implica 3 multiplicaciones de matrices y 1 inversión de matrices).
Mi objetivo es determinar la complejidad computacional global del algoritmo. Más arriba, he enumerado las 4 operaciones necesarias para calcular los coeficientes de regresión con su propia complejidad. Basándonos en esta información, ¿podemos determinar la complejidad global del algoritmo?
Gracias.
0 votos
¿Podría ampliar la información? Das tres medidas diferentes de esfuerzo para la multiplicación de matrices, y no estoy seguro de cuál es la correcta. Además, hay al menos tres métodos que conozco para hacer lineal mínimos cuadrados (y un poco más para no lineal mínimos cuadrados). ¿Qué intentas hacer? ¿De dónde has sacado el algoritmo que tienes actualmente?
0 votos
@J.M. He dado más detalles en mi pregunta. Por favor, hágamelo saber si necesita más información.
2 votos
Bien... formando M=X⊤X es una multiplicación matricial. Formando b=X⊤y es una multiplicación matricial-vectorial. Pero, por favor, por favor , por favor no utilice la inversión+multiplicación para calcular c=M−1b ¡! Es una mejor práctica computacional formar la descomposición Cholesky de M y utilizarlo en el cálculo de c .
0 votos
Claro, ¡gracias por el consejo! Sin embargo, todavía necesito saber cómo determinar la complejidad computacional de mi implementación actual. ¿Se puede deducir de la información que he proporcionado anteriormente?
0 votos
En realidad, todo lo que quiero saber es esto: De las 4 operaciones matriciales que enumeré arriba (con su propia complejidad), ¿cuál tiene el mayor grado de complejidad? 3 de ellas tienen el mismo grado de complejidad, así que no estoy seguro de cuál puedo asignar como complejidad global del algoritmo.