Quiero aprender (deducir) los pesos de los atributos para mi medida de disimilitud que puedo usar para la agrupación.
Tengo algunos ejemplos de pares de objetos que son "similares" (deben estar en el mismo grupo), así como algunos ejemplos ( c i , d i ) de pares de objetos que "no son similares" "(no debe estar en el mismo clúster). Cada objeto tiene una serie de atributos: si lo desea, podemos pensar en cada objeto como un vector d- dimensional de características, donde cada característica es un número entero no negativo. ¿Existen técnicas para usar tales ejemplos de objetos similares / diferentes para estimar a partir de ellos los pesos de características óptimos para una medida de disimilitud?
Si ayuda, en mi aplicación, probablemente sería razonable concentrarse en aprender una medida de disimilitud que sea una norma ponderada de L2:
donde los pesos no se conocen y se deben aprender. (O, algún tipo de medida de similitud de coseno ponderada también podría ser razonable). ¿Existen buenos algoritmos para aprender los pesos α j para tal medida, dados los ejemplos? ¿O hay otros métodos para aprender una medida de similitud / medida de disimilitud que debería considerar?
Desafortunadamente, el número de dimensiones es muy grande (miles o más; se deriva de las características de la bolsa de palabras). Sin embargo, tengo muchas decenas de miles de ejemplos. Luego tengo cientos de miles de objetos que quiero agrupar, por lo que es importante generalizar a partir de los ejemplos para aprender una buena métrica de disimilitud.
Entiendo que esto cae en la rúbrica de la agrupación semi-supervisada, y parece que podría ser de la veta de "adaptación de similitud", pero no he podido encontrar descripciones claras de algoritmos para este propósito.
Respuestas:
Este es un gran problema en algunas áreas del aprendizaje automático. No estoy tan familiarizado con él como me gustaría, pero creo que esto debería ayudarlo a comenzar.
La reducción de la dimensionalidad mediante el aprendizaje de un mapeo invariante (DrLIM) parece funcionar muy bien en algunos conjuntos de datos.
El análisis de componentes de vecindario es un algoritmo lineal muy agradable, y también se han desarrollado versiones no lineales.
Hay toda una literatura que trata este tema desde la perspectiva de "aprender un núcleo". No sé mucho al respecto, pero este artículo es muy citado.
fuente
En otras palabras, está preguntando sobre el preprocesamiento y el escalado de datos. Esto es demasiado amplio para ser respondido bien en una sola pregunta. Buscar:
Hay una gran cantidad de literatura e incluso pistas de conferencias dedicadas a esto. Algunos métodos para comenzar:
fuente