¿Hay casos en los que PCA es más adecuado que t-SNE?

39

Quiero ver cómo 7 medidas de comportamiento de corrección de texto (tiempo dedicado a corregir el texto, número de pulsaciones de teclas, etc.) se relacionan entre sí. Las medidas están correlacionadas. Ejecuté un PCA para ver cómo se proyectaban las medidas en PC1 y PC2, lo que evitó la superposición de ejecutar pruebas de correlación bidireccionales separadas entre las medidas.

Me preguntaron por qué no usar t-SNE, ya que la relación entre algunas de las medidas podría ser no lineal.

Puedo ver cómo permitir la no linealidad mejoraría esto, pero me pregunto si hay alguna buena razón para usar PCA en este caso y no t-SNE. No me interesa agrupar los textos de acuerdo con su relación con las medidas, sino más bien con la relación entre las medidas mismas.

(Supongo que EFA también podría ser un mejor / otro enfoque, pero esa es una discusión diferente.) En comparación con otros métodos, hay pocas publicaciones aquí sobre t-SNE, por lo que parece que vale la pena hacer la pregunta.

usuario3744206
fuente
3
t-SNE no escala bien con el tamaño del conjunto de datos, mientras que PCA sí. Esto proviene de la experiencia en la ejecución de ambos en grandes conjuntos de datos utilizando la implementación scikit-learn.
Mai
@Mai, presumiblemente, ¿esto se aplica principalmente a grandes conjuntos de datos? Mi conjunto de datos es pequeño (unos pocos cientos de puntos de datos).
user3744206

Respuestas:

65

-SNE es una gran pieza de Machine Learning, pero se pueden encontrar muchas razones para usar PCA en lugar de él. De la parte superior de mi cabeza, mencionaré cinco. Como la mayoría de las otras metodologías computacionales en uso, t -SNE no es unabala de platay hay bastantes razones que lo convierten en una opción subóptima en algunos casos. Permítanme mencionar algunos puntos en breve:tt

  1. Estocasticidad de la solución final . PCA es determinista; -SNE no lo es. Uno obtiene una buena visualización y luego su colega obtiene otra visualización y luego se vuelven artísticos, lo que se ve mejor y si una diferencia de 0.03 % en la divergencia K L ( P | | Q ) es significativa ... En PCA la respuesta correcta a la pregunta planteada está garantizada. t -SNE podría tener mínimos mínimos que podrían conducir a diferentes soluciones. Esto requiere múltiples ejecuciones y plantea preguntas sobre la reproducibilidad de los resultados.t0.03%KL(P||Q)t

  2. Interpretabilidad del mapeo . Esto se relaciona con el punto anterior, pero supongamos que un equipo ha acordado una semilla / carrera aleatoria particular. Ahora la pregunta se convierte en lo que esto muestra ... -SNE intenta mapear correctamente solo a los locales / vecinos, por lo que nuestras ideas de esa incorporación deben ser muy cautelosas; Las tendencias globales no se representan con precisión (y eso puede ser potencialmente una gran cosa para la visualización). Por otro lado, PCA es solo una rotación diagonal de nuestra matriz de covarianza inicial y los vectores propios representan un nuevo sistema axial en el espacio abarcado por nuestros datos originales. Podemos explicar directamente lo que hace un PCA en particular.t

  3. Aplicación a datos nuevos / no vistos . -SNE no está aprendiendo una función desde el espacio original al nuevo (más bajo) dimensional y eso es un problema. En ese sentido, t -SNE es un algoritmo de aprendizaje no paramétrico, por lo que aproximarse al algoritmo paramétrico es un problema mal planteado. La incrustación se aprende moviendo directamente los datos a través del espacio de baja dimensión. Eso significa que uno no obtiene un vector propio o una construcción similar para usar en datos nuevos. En contraste, usando PCA, los vectores propios ofrecen un nuevo sistema de ejes que se puede usar directamente para proyectar nuevos datos. [Aparentemente uno podría intentar entrenar una red profunda para aprender el tttt-Mapeo SNE (puede escuchar al Dr. van der Maaten a ~ 46 'de este video sugiriendo algo en este sentido) pero claramente no existe una solución fácil.]

  4. ttt

  5. k ttkkkmejor combinación lineal en términos de varianza explicada. (Gracias a @amoeba por notar que hice un desastre cuando intenté esbozar este punto por primera vez).

t

ttt

usεr11852 dice Reinstate Monic
fuente
tk=2,3,4 4 ) y, por lo tanto, ofrecía ideas confusas, pero confundí el punto que estaba tratando de hacer. Además, como la reconstrucción es posible desde LLE (Roweis y Saul, 2000), ¿por qué no sería posible mediante t-SNE?
usεr11852 dice Reinstate Monic
@amoeba: Gracias por mencionarlo. Actualicé mi respuesta en consecuencia.
usεr11852 dice Reinstate Monic
3
Con respecto a su punto # 3: aquí está el documento de 2009 sobre t-sne paramétrico lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf . Parece que realmente no despegó (tiene 25 veces menos citas que el documento original de t-sne), pero de hecho es bastante fácil de implementar con la tecnología / bibliotecas actuales. Lo tengo en funcionamiento en Keras; He estado trabajando en investigarlo (y posiblemente extenderlo) en las últimas semanas.
ameba dice Reinstate Monica
¡Guay! (+1) Si obtiene una preimpresión flotante de arXiv, hágamelo saber (aquí o 10 veces), tendré mucha curiosidad por los resultados. Sí, he visto ese documento al momento de escribir esta respuesta (en realidad es un documento conocido, diría yo), pero como dijiste, no parecía estar tomado. Además, el punto n. ° 3 sigue siendo perfectamente válido: debe crear un DNN para obtener algo que PCA ofrece a través de un solo producto cruzado de matriz.
usεr11852 dice Reinstate Monic el
12

https://stats.stackexchange.com/a/249520/7828

Es una excelente respuesta general.

Me gustaría centrarme un poco más en tu problema. Aparentemente, desea ver cómo se relacionan sus muestras con respecto a sus 7 variables de entrada. Eso es algo que t-SNE no hace. La idea de SNE y t-SNE es colocar a los vecinos cerca uno del otro, (casi) ignorando por completo la estructura global.

Esto es excelente para la visualización, ya que se pueden trazar elementos similares uno al lado del otro (y no uno encima del otro, por ejemplo, el hacinamiento).

Esto no es bueno para un análisis más detallado. Se pierde la estructura global, es posible que algunos objetos no puedan moverse hacia sus vecinos, y la separación entre los diferentes grupos no se conserva cuantitativamente. Es por eso que, por ejemplo, la agrupación en la proyección generalmente no funciona muy bien.

PCA es todo lo contrario. Intenta preservar las propiedades globales (vectores propios con alta varianza) mientras que puede perder desviaciones de baja varianza entre vecinos.

Anony-Mousse
fuente
Ah, eso es exactamente lo que asumí. No me interesa cómo se ubican los puntos de datos en el espacio, sino más bien cómo se relacionan entre sí las medidas. Estas dos cosas están conectadas, por supuesto, pero en términos de visualización e interpretación de estas relaciones, sospecho que solo PCA hace lo que quiero. Por ejemplo, existen relaciones positivas y negativas entre las medidas y lo que realmente me interesa es el valor absoluto de las asociaciones, lo que nuevamente creo que es más fácil de interpretar / ver si uso PCA.
user3744206
1
Para ese caso de uso, puede ser mejor observar la matriz de correlación en sí misma, es decir, solo hacer comparaciones por pares. Entonces también puede manejar la no linealidad, por ejemplo, utilizando la correlación de Spearman.
Anony-Mousse
¿Podemos usar T-SNE para problemas de clúster? Por lo que yo entiendo, ¿podemos proyectar un nuevo punto de llegada e intentar agruparnos en las dimensiones inferiores? Es posible ?
Catbuilts
No. Debido a que tSNE no es lineal, no puede simplemente calcularlo para nuevos datos (ver arriba). Y hubo una discusión hiriente de que también puede ser engañoso agrupar los datos proyectados.
Anony-Mousse
1

Para dar un ángulo aplicado, PCA y t-SNE no son mutuamente excluyentes. En algunos campos de la biología, estamos tratando con datos altamente dimensionales (p. Ej., ScRNA-seq tiene miles de dimensiones) donde t-SNE simplemente no escala. Por lo tanto, usamos PCA primero para reducir la dimensionalidad de los datos y luego, tomando los principales componentes principales, calculamos el gráfico de vecindad y luego incorporamos el gráfico en 2 dimensiones usando t-SNE (o un enfoque similar de reducción de dimensionalidad no lineal como UMAP) para visualizar los datos.

Chris_Rands
fuente