¿Qué algoritmo de clasificación se debe usar después de ver que t-SNE separa bien las clases?

12

Supongamos que tenemos un problema de clasificación y al principio queremos obtener una idea de los datos y hacemos t-SNE. El resultado de t-SNE separa las clases muy bien. Esto implica que es posible construir un modelo de clasificación que también separe muy bien las clases (si t-SNE no se separa bien, entonces no implica mucho).

Sabiendo que t-SNE se enfoca en la estructura local y que puede separar bien las clases: ¿Cuáles son los algoritmos de clasificación que deberían funcionar bien en este problema? Scikit sugiere SVM con un núcleo Gaussian RBF, pero ¿cuáles son los otros?

Tomek Tarczynski
fuente
3
(+1) K-vecinos más cercanos podría ser una opción natural muy simple y fácil de implementar.
ameba dice Reinstate Monica

Respuestas:

7

Primero una breve respuesta, y luego un comentario más largo:

Responder

Las técnicas de SNE calculan una matriz de similitud N × N tanto en el espacio de datos original como en el espacio de incrustación de baja dimensión de tal manera que las similitudes forman una distribución de probabilidad sobre pares de objetos. Específicamente, las probabilidades generalmente están dadas por un núcleo gaussiano normalizado calculado a partir de los datos de entrada o de la incrustación. En términos de clasificación, esto inmediatamente trae a la mente métodos de aprendizaje basados ​​en instancias . Ha incluido uno de ellos: SVM con RBF, y @amoeba ha incluido kNN. También hay redes de funciones de base radial , en las que no soy un experto.

Comentario

Habiendo dicho eso, sería doblemente cuidadoso al hacer inferencias en un conjunto de datos simplemente mirando los gráficos de t-SNE. t-SNE no se centra necesariamente en la estructura local. Sin embargo, puede ajustarlo ajustando el perplexityparámetro, que regula (sin apretar) cómo equilibrar la atención entre los aspectos locales y globales de sus datos.

En este contexto, perplexityes una puñalada en la oscuridad sobre cuántos vecinos cercanos puede tener cada observación y es proporcionado por el usuario. El documento original dice: "El rendimiento de t-SNE es bastante robusto a los cambios en la perplejidad, y los valores típicos están entre 5 y 50". Sin embargo, mi experiencia es que sacar el máximo provecho de t-SNE puede significar analizar múltiples parcelas con diferentes perplejidades.

En otras palabras, sintonización learning ratey perplexity, es posible obtener gráficas 2D de aspecto muy diferente para el mismo número de pasos de entrenamiento y utilizando los mismos datos.

Este documento de Destill How to Use t-SNE Effective da un gran resumen de las trampas comunes del análisis de t-SNE. Los puntos de resumen son:

  1. Esos hiperparámetros (por ejemplo, tasa de aprendizaje, perplejidad) realmente importan

  2. Los tamaños de clúster en un gráfico t-SNE no significan nada

  3. Las distancias entre grupos pueden no significar nada

  4. El ruido aleatorio no siempre parece aleatorio.

  5. Puedes ver algunas formas, a veces

  6. Para la topología, puede necesitar más de un gráfico

Específicamente a partir de los puntos 2, 3 y 6 anteriores, pensaría dos veces antes de hacer inferencias sobre la separabilidad de los datos al observar los gráficos individuales de t-SNE. Hay muchos casos en los que puede "fabricar" gráficos que muestran grupos claros utilizando los parámetros correctos.

Zhubarb
fuente
1
Berkmeister: Todo lo que escribiste tiene sentido. Mi problema es bastante fácil de describir: quiero que el modelo de clasificación sea lo mejor posible. ¿Cómo puedo usarlo para mejorar la calidad del modelo? Mi mejor suposición fue que t-SNE puede 'sugerir' qué método podría ser relevante para un problema dado.
Tomek Tarczynski
2
Consulte editar, los métodos de aprendizaje basados ​​en instancias serían compatibles con cualquier pista que pueda obtener de los gráficos de t-SNE.
Zhubarb
2
(+1): Gracias por la respuesta, estaba buscando exactamente esto. Aceptaré la respuesta dentro de dos días.
Tomek Tarczynski