A una persona se le dan tres elementos, dicen fotos de caras, y se le pide que elija cuáles de las tres caras son las más similares. Esto se repite una gran cantidad de veces con diferentes combinaciones de caras, donde cada cara puede ocurrir en muchas combinaciones. Dado este tipo de datos, me gustaría modelar / estimar la diferencia / similitud entre las caras asumiendo que cada cara podría colocarse en un espacio 2D (o 3d, 4d, etc.) donde la distancia entre cada cara refleja las opciones de el participante.
¿Cuál sería una buena (quizás incluso estándar) forma de modelar / estimar esto?
Cualquier sugerencia hacia modelos / documentos y / o paquetes de software es muy apreciada.
modeling
dimensionality-reduction
psychometrics
similarities
Rasmus Bååth
fuente
fuente
MASS::isoMDS()
enR
.Respuestas:
Se puede encontrar un buen enfoque para este tipo de problema en la sección 4 del artículo El sistema de recuperación de imágenes bayesianas, PicHunter por Cox et al (2000). Los datos son un conjunto de resultados enteros.UNA1, . . . ,UNAnorte dónde norte es el número de pruebas En su caso, hay 3 resultados posibles por ensayo. PermitiréUNAyo ser el índice de la cara que quedó fuera. La idea es postular un modelo generativo para el resultado dados algunos parámetros del modelo, y luego estimar los parámetros por máxima verosimilitud. Si mostramos caras(X1,X2,X3) y el participante dice que (X2,X3) son los más similares, entonces el resultado es A = 1 , con probabilidad
El modelo en el documento era ligeramente diferente ya que el documento utilizaba atributos conocidos de las imágenes para calcular la distancia, en lugar de una incrustación desconocida. Para aprender una incrustación, necesitaría un conjunto de datos mucho más grande, en el que cada cara se mostrara varias veces.
Este modelo básico supone que todos los ensayos son independientes y todos los participantes son iguales. Un buen beneficio de este enfoque es que puede embellecer fácilmente el modelo para incluir la no independencia, los efectos de los participantes u otras covariables.
fuente
Pensamiento:
Creo que las caras propias son una forma decente de convertir lo que pueden ser espacios de un millón de dimensiones en unas pocas decenas de dimensiones.
Premisa:
Así que supongamos que está utilizando una herramienta decente de caras propias, o una que:
Esto significa que no tiene "imágenes" tanto como tiene vectores de longitud O (n = 50) elementos de tamaño donde los elementos son pesos para cada cara propia que comprende la base.
Análisis:
Primero, crearía vectores de 150 elementos (concatenación de peso) como entradas y vectores de 1 elemento (elementos de coincidencia más cercana) como salidas. Si los elementos 1 y 2 fueran los más cercanos, el valor de salida sería "12". Si los elementos 1 y 3 fueran los más cercanos, la salida sería "13". Si los elementos 2 y 3 fueran los más cercanos, la salida sería "23". Dado que solo hay 3 salidas únicas, podría reasignarlas al caso 1 para "12", el caso 2 para "13" y el caso 3 para "23".
En segundo lugar, me gustaría tirar tantos datos sin sentido como sea posible. Esto significa que trataría de usar algo como bosques aleatorios para determinar cuáles de las ~ 150 columnas no eran informativas. También hay un "método aleatorio de gemelos malvados", pero no lo tengo al alcance de la mano como R me da con bosques aleatorios. (Si conoce una buena biblioteca R para esto, lo invito a ponerla en los comentarios).
En tercer lugar, en mi experiencia personal, si tiene tamaños de muestra decentes y una base decente, un bosque aleatorio generalmente puede llevarlo a las ~ 30 variables de interés, incluso de hasta 15k columnas. Aquí es donde debe considerar cuál es la forma general de la respuesta.
Puede probar una docena de razas de transformaciones de estas variables para asignar las entradas reducidas a las salidas:
Más pensamientos:
ACTUALIZACIÓN:
La herramienta "gemelo malvado aleatorio" es "Boruta". ( enlace )
fuente