Dada uma matriz de dados digamos 1000000 observações 100 recursos, existe uma maneira rápida de construir uma aproximação tridiagonal
?
Então, pode-se fatorar ,
todos 0, exceto e , e realizar uma correlação rápida (clareamento) resolvendo
. (Por "rápido", quero dizer .)
(Adicionado, tentando esclarecer): Estou procurando um branqueador rápido e sujo que seja mais rápido que o completo mas melhor que a diagonal. Digamos que seja pontos de dados recursos, por exemplo, 1000000 100, com recursos 0-média.
1) construa , Cholesky o fator como , resolva para embranquecer novos s. Isso é quadrático no número de recursos.
2) diagonal: ignora completamente as correlações cruzadas.
Um poderia obter uma matriz tridiagonal de apenas zerando todas as entradas fora do tridiagonal, ou não acumular-los em primeiro lugar. E aqui começo a afundar: deve haver uma melhor aproximação, talvez hierárquica, de bloco diagonal → tridiagonal?
(Adicionado em 11 de maio): Deixe-me dividir a pergunta em duas:
1) existe um aproximado rápido ?
Não (whuber), é preciso olhar para todos os {N \ escolher 2} pares (ou ter estrutura ou amostra).
2) dado um , com que rapidez se pode embranquecer novos s?
Bem, fatorar , triangular inferior, uma vez, e resolver
é bem rápido; scipy.linalg.solve_triangular, por exemplo, usa Lapack.
Eu estava procurando por um branqueamento ainda mais rápido (), ainda procurando.