Hay muchas formas Aunque depende en cierta medida de lo que se entiende exactamente por “puntajes” y de lo que está buscando por grupos de “puntajes altos”, es decir, el objetivo deseado específico no está completamente claro aquí.
Puedo pensar en 2 enfoques con los que podría comenzar:
1. Grafique los puntos (con tamaños proporcionales a las proporciones de puntaje) y explore los puntos en el espacio 3D para identificar visualmente los grupos densos y de alto puntaje, ya que es solo en el espacio 3D, podría ser bastante fácil seleccionarlos a simple vista.
- Cómo entrenar un modelo de Keras con un gran conjunto de datos y luego ajustarlo con un conjunto de datos más pequeño de interés
- ¿Cómo se conecta la regresión lineal a los filtros de Kalman?
- ¿Cómo deben normalizarse los datos de entrada al entrenar un SVM con un algoritmo en línea?
- ¿Cuál es la relación entre la teoría de la Gestalt y el aprendizaje profundo?
- ¿Quiénes son algunos de los principales profesores que enseñan Machine Learning en Europa?
Por ejemplo, esto es muy fácil de hacer en MATLAB con la función scatter3:
Diagrama de dispersión en 3-D – MATLAB scatter3
Simplemente pasa las coordenadas X, Y y Z de los puntos como los primeros 3 argumentos, y sus tamaños como último argumento.
2. Conviértalo en una tarea de agrupación estándar y agrupe los puntos utilizando algún paquete o código de agrupación existente. Luego obtenga estadísticas resumidas sobre los grupos como la densidad de cada grupo, el número de puntos en cada grupo, etc., y seleccione los grupos con la densidad más alta (masa sobre volumen) donde la masa está dada por puntajes (relativos).
Convertir a tarea de agrupamiento estándar
Puede limitar los puntajes para considerar solo los puntos con puntajes suficientemente altos, o bien usar los puntajes como pesos, posiblemente después de la normalización. Es decir, si un puntaje para un punto es dos veces más alto que un puntaje para otro punto, esencialmente tendría el doble de peso en los datos y el doble de influencia en la inferencia del modelo; se podría pensar que hay un segundo , punto duplicado en la misma ubicación.
Muchos métodos y paquetes de agrupación le permiten incluir pesos para los puntos que se agrupan, o de lo contrario podrían ampliarse fácilmente para hacerlo. Incluso si no puede extender fácilmente un paquete deseado, una alternativa simple es agregar (o muestrear) puntos adicionales para acercarse a la misma proporción de # puntos en cada ubicación como proporción del puntaje total en cada ubicación, y luego simplemente agrupe el conjunto de puntos no ponderados.
Por ejemplo, digamos que tiene p1, p2 y p3, con puntajes (pesos) 3, 5 y 7. La proporción de puntaje de p1 es 3/15, p2 5/15, p3 7/15. Entonces, ahora puede simplemente muestrear mil puntos donde el punto muestreado es la misma ubicación que p1 con probabilidad 3/15, p2 con probabilidad 5/15, etc. La proporción de puntos tendrá aproximadamente la misma proporción que los puntajes, o Es posible que pueda asignar de manera determinista cierto número de puntos duplicados a cada posición.
Aplicar métodos de agrupamiento existentes
Ahora que tiene su conjunto de puntos para la agrupación y puede usarlos con cualquier algoritmo de agrupación, es decir, puede probar algunos paquetes o códigos de agrupación existentes para agrupar los datos y ver qué tan bien funcionan, si satisfacen sus necesidades.
Por ejemplo, dado que es posible que no tenga una buena idea sobre cuántos grupos hay de antemano, puede probar un modelo de mezcla de proceso de dirichlet (por ejemplo, consulte:
https://en.wikipedia.org/wiki/Di…
y
http://www.cse.buffalo.edu/~jcor…).
Aquí hay un par de implementaciones que encontré en una búsqueda rápida:
https://github.com/datumbox/datu…
https://github.com/jacobeisenste…