11 votos

¿Cómo se selecciona el número de componentes para el análisis de componentes independientes?

A falta de buenas conjeturas a priori sobre el número de componentes a solicitar en el Análisis de Componentes Independientes, estoy buscando automatizar un proceso de selección. Creo que un criterio razonable podría ser el número que minimiza la evidencia global de correlación entre los componentes calculados. Aquí está el pseudocódigo de este enfoque:

for each candidate number of components, n:
    run ICA specifying n as requested number of components
    for each pair (c1,c2) of resulting components:
        compute a model, m1: lm(c1 ~ 1)
        compute a model, m2: lm(c1 ~ c2)
        compute log likelihood ratio ( AIC(m2)-AIC(m1) ) representing the relative likelihood of a correlation between c1 & c2
    compute mean log likelihood ratio across pairs
Choose the final number of components as that which minimizes the mean log likelihood of component relatedness

Me imagino que esto debería penalizar automáticamente a los candidatos más grandes que el número "verdadero" de componentes porque los ICAs resultantes de tales candidatos deberían ser forzados a distribuir la información de los componentes verdaderos individuales a través de múltiples componentes estimados, aumentando la evidencia media de correlación a través de pares de componentes.

¿Tiene esto sentido? Si es así, ¿hay una forma más rápida de conseguir una métrica agregada de relación entre los componentes estimados que el enfoque de probabilidad logarítmica media sugerido anteriormente (que puede ser bastante lento computacionalmente)? Si este enfoque no tiene sentido, ¿cómo podría ser un buen procedimiento alternativo?

7voto

Nick Randell Puntos 4133

El enfoque de aprendizaje conjunto variacional de ICA puede realizar esta "detección automática de relevancia". Desactiva automáticamente los componentes que no son necesarios para mejorar el límite de la Evidencia Bayesiana.

Vea la tesis de James Miskin disponible aquí que introduce la técnica.

Esto se implementa de forma muy adecuada en Java mediante John Winn (otro doctorado que implementa el aprendizaje conjunto bayesiano mediante un algoritmo de paso de mensajes).

Para aprender la técnica, decidí implementar el algoritmo de Winn en c++ que se puede obtener de aquí (desarrollo activo).

2voto

Arve Puntos 1056

Como dice Tom, la determinación automática de la relevancia es un buen enfoque para seleccionar un pequeño subconjunto de componentes en un modelo probabilístico.

Otro enfoque para el ICA es utilizar un Proceso de Buffet Indio previo - Knowles y Ghahramani lo hacen en "Infinite Sparse Factor Analysis and Infinite Independent Components Analysis".

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