Modelo similar: ¿Cuál es el mejor algoritmo para usar en grandes conjuntos de datos?

Este es un problema interesante.

Hay muchas ideas y algoritmos para los vecinos más cercanos en grandes dimensiones, la mayoría de las veces si tiene muchos datos desea un algoritmo de aproximación para NN. Una posible solución es usar LSH (hashing sensible a la localidad) junto con la distancia de Hamming, esto puede ser muy rápido y hay muchas formas de ajustarlo, esto funciona bien en general cuando desea encontrar vectores que sean similares a otros, pero usted No son muy estrictos acerca de la similitud.

Existen otros enfoques para aproximar el problema, algunos construyen un gráfico, otros usan K-medias para comparar primero con k centroides y luego con los puntos asociados con los n centroides más cercanos, etc.

Si tomamos una vista desde fuera del problema de los vecinos más cercanos si sus datos son como los describe, creo que las máquinas de factorización pueden ser un algoritmo a considerar. En este caso, el algoritmo “aprenderá” las características para cada usuario en su problema y la similitud entre los usuarios será un producto interno entre estos vectores aprendidos, es posible que pueda usar FM para resolver su problema sin siquiera calcular similitudes.

Las máquinas de vectores de soporte (SVM) están diseñadas para manejar datos de alta dimensión. Puede ser un proceso lento, pero en general da muy buenos resultados debido al truco del núcleo (asigna datos a espacios dimensionales superiores donde es separable linealmente). Puede usar LIBSVM que es una biblioteca SVM de código abierto escrita en C (LIBSVM – Una biblioteca para máquinas de vectores de soporte). También puede usar algunas técnicas de selección de funciones para reducir la cantidad de funciones (como PCA) y reducir la complejidad de su problema.

Realmente depende del comportamiento que buscas y la forma exacta de los datos.

Los vecinos más cercanos también tienen varios tipos diferentes de implementaciones, varias de las cuales son aproximadas y pueden ser muy rápidas, como FLANN y ANNOY.

Si no está buscando vecinos cercanos, sino simplemente tratando de agrupar a los usuarios en una cantidad no demasiado grande de contenedores, (como 10s o 100s) el mini lote k significa que es ideal para agruparse con muchos usuarios.

Nuevamente, dependiendo de los datos y el caso de uso, siempre podría submuestras. Muchos algoritmos no necesitan cientos de millones de muestras para funcionar bien; a veces todo lo que necesitas es 10s de miles o 100s de miles.