11 votos

PCA con detección de anomalías

Estoy desarrollando un algoritmo que debe encontrar anomalías en un conjunto de datos.

Para reducir el tiempo de cálculo utilicé el PCA en los datos - reducir el número de características reducirá el tiempo de cálculo.

Al revisarlo con un colega, surgió una pregunta sobre el impacto del PCA en ese caso de uso, con el siguiente ejemplo:

Tengo un conjunto de datos con n muestras y m características (m>1), supongamos que una anomalía se refleja sólo en una característica - una característica donde el valor es siempre 0 y en el caso anómalo es 1. Nuestra consideración es que el PCA descuidará esta característica y cuando reduzcamos el número de columnas después del PCA (digamos que tomamos el 95% de los datos) la anomalía "desaparecerá".

¿Se desaconseja el uso de PCA para encontrar anomalías? o nos estamos perdiendo algo?

Hay que tener en cuenta que esto puede parecer un caso extremo tal y como se presenta aquí: will-i-miss-anomalies-outliers-due-to-pca pero las respuestas allí no son adecuadas para mi caso y de todos modos por lo que entiendo su anomalía no debería ser afectada por el PCA (aparece en todas las escalas).

4voto

Sam Wolfe Puntos 11

Se podría implementar PCA robusto de este documento cuyo objetivo es descomponer una matriz dada en una parte dispersa y otra de bajo rango. La parte de bajo rango puede considerarse como los "componentes principales robustos", mientras que la parte dispersa puede dar una pista sobre las anomalías. Lo he utilizado con datos económicos, y ha dado resultados razonables.

3voto

RyanMM Puntos 31

PCA puede para reducir su número de funciones, pero no tiene por qué hacerlo. Tendrá tantas PC como el número de características originales, sólo que algunas de ellas representarán muy poco de la variabilidad total. Esto se puede visualizar en un diagrama de pareto o scree, donde la varianza acumulada alcanza el 100% con el último PC. Por lo tanto, no debería perderse ninguna información al usar PCA. Hay una discusión sobre esto en [ ¿Los componentes del ACP representan realmente el porcentaje de la varianza? ¿Pueden sumar más del 100%? Pero aquí surgen dos puntos contradictorios:

1) Si no se consigue una reducción de la dimensionalidad al retener todos los PC, es decir, si te importa todo las anomalías presentes en su conjunto de datos, y su primer objetivo era tener menos características con las que trabajar (lo que le hará perder algo de información), ¿por qué utilizar el PCA?

2) El ACP se utiliza generalmente cuando el interés son los "modos principales de variabilidad" de tu conjunto de datos: el primer par de PC, generalmente. Las pequeñas anomalías, como creo que es el caso de las que has señalado, son expexto para ser ignorado una vez que sólo se conservan los componentes principales cuando se consideran sólo los primeros PC para la reducción de la dimensionalidad.

Espero que esto ayude.

EDIT: El "tamaño" o la frecuencia de las anomalías de una característica no son importantes por sí mismos, pero debe compararlos con los demás para saber si van a desaparecer cuando se reduce la dimensionalidad. Por ejemplo, si la variabilidad de esta anomalía específica es (cuasi) ortogonal a las primeras PC (las que usted utiliza), entonces perderá esta información. Si tiene la suerte de que el modo de variabilidad de las anomalías que le interesan es similar a los modos principales de la variabilidad de todo su conjunto de datos, entonces esta iformación se mantiene en las primeras PC. Hay una buena discusión sobre este asunto aquí: https://stats.stackexchange.com/a/235107/144543

3voto

ReneBt Puntos 306

El PCA resume la estructura de covarianza de los datos del conjunto de entrenamiento y, por tanto, reflejará toda la varianza presente en ese conjunto. Ningún método lo hará, pero tiene sus puntos fuertes, aunque el más importante es el manejo de patrones y la identificación de patrones inusuales, que por desgracia no es lo que usted está describiendo. Parece que está hablando de eventos raros limitados a una variable, pero PCA puede hacer mucho.

Los valores atípicos plantean dos problemas

1)en la formación/calibración. ¿Alguna muestra presenta una varianza que no está bien representada en todo el conjunto de datos? Si sólo una muestra presenta un comportamiento, su modelo PCA no describirá ese comportamiento de forma fiable. Existen muchos métodos para identificar este tipo de problemas, como el de Hotelling $T^2$ distancia al modelo, apalancamiento, residuos (estos dos últimos pueden utilizarse en función de la muestra o de la variable). Es un tema candente, y ninguna respuesta es universalmente aplicable. En mi opinión, si alguna variación no está bien descrita, las muestras deben eliminarse o el experimento debe rediseñarse, ya que, de lo contrario, se crea un elemento poco fiable en el modelo que se comportará de forma impredecible en nuevos conjuntos de datos, ya que no se conoce bien su varianza ni su covarianza con todo lo demás.

2) en la prueba/validación/aplicación. A

Nuestra consideración es que el PCA descuidará esta característica y cuando >reduzcamos el número de columnas después del PCA (digamos que tomamos >el 95% de los datos) la anomalía "desaparecerá".

No si se utiliza correctamente el PCA, si se mira más allá de los vectores propios básicos en las métricas mencionadas anteriormente se vería algún comportamiento de este tipo. Cuando unas pocas muestras o variables son anómalas y causan una influencia excesiva en el modelo, a menudo son detectables en el apalancamiento, mientras que los residuos son buenos para asegurar que la variación de muestras o variables específicas ha sido contabilizada por el número de PCs elegido.

Si el problema es que se trata de un evento raro que se quiere manejar específicamente con el modelo, entonces el problema es si se ha potenciado el estudio lo suficiente como para obtener una estimación fiable de su comportamiento, no un problema con el PCA en sí. También se pueden hacer cosas con el Diseño de Experimento para asegurar que se captura la máxima varianza relevante con un conjunto de datos eficiente.

¿Se desaconseja el uso de PCA para encontrar anomalías? o nos estamos perdiendo algo?

Yo diría que hay que fomentar el uso del ACP para encontrar anomalías, pero hay que explorar toda la gama de herramientas para buscar diferentes tipos de anomalías. Sin embargo, las anomalías pueden reflejar un diseño de estudio inadecuado para la variación de interés.

2voto

agtb Puntos 176

La respuesta anterior me pareció confusa, así que este es mi intento de explicarla. Puedo ver esta pregunta de dos maneras:

  1. Por anomalía aquí parece querer decir que una característica particular está constantemente corrompida, y su pregunta es por lo tanto: " Si hago un ACP y tomo los componentes correspondientes al 95% de mi varianza, ¿el rasgo corrupto estará presente en estos componentes? " Si es así, la respuesta es " datos insuficientes para una conclusión significativa ." El PCA opera mirando la covarianza empírica de sus datos - si la característica anómala sesga la covarianza empírica lo suficiente, entonces estará presente en los componentes que elimine (suponiendo que se refiere al PCA estándar). Así que si el rango de todas sus características es, digamos, [-0,1,0,1], usted tiene pocas muestras, y la anomalía es lo que usted describe, entonces va a sesgar fuertemente su proyección PCA. En general, esto no es una buena idea.

  2. También podría preguntarse, "Algunos de mis ensayos son anómalos, pero sólo en algunas dimensiones. ¿El PCA para la reducción de la dimensionalidad se deshace de la anomalía?" a lo que la respuesta es "No". El ACP, suponiendo que se aplique a los datos sobre los que se calcula, examina todas las dimensiones y puntos de datos por igual. Si está interesado en la detección de valores atípicos (a lo que correspondería esto), y sabe que está aislado en ciertas dimensiones, su mejor opción es simplemente ejecutar algún tipo de procedimiento estándar de detección de valores atípicos en cada dimensión independientemente.

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