Hay bastante trabajo publicado sobre clasificación de datos con un gran número de clases, 700 es ciertamente posible. Por ejemplo, Deng et al. (2010) encuentran que KNN supera a los SVM cuando el número de clases distintas es grande, 7000+.
El tiempo de ejecución de KNN es independiente del número de clases, por lo que existe una ventaja computacional de usarlo cuando hay cientos, miles o millones de clases *.
*¿Por qué? Supongamos que tiene clases C y está utilizando K vecinos más cercanos: puede encontrar la clase mayoritaria de los K puntos de datos más cercanos en el tiempo O (K) manteniendo una matriz de longitud C que contenga los recuentos de histogramas para cada clase. llámelo A y mantenga un recuento máximo a medida que se completa este histograma.
- ¿Debo aprender a desarrollar backend si quiero ser ingeniero de aprendizaje automático?
- ¿Quién es la estrella en ascenso de la IA fuera del aprendizaje profundo?
- Cómo construir una consulta a partir de una pregunta de lenguaje natural en Python
- ¿Cómo pudo Mark Zuckerberg implementar algoritmos de aprendizaje automático a la edad de 14 años?
- ¿Por qué los CNN se usan más para tareas de visión por computadora que otras tareas?
Si llamamos al conjunto de vecinos más cercanos KNN y denotamos x_i, y_i como el valor respectivo y la clase del punto de datos i, entonces el siguiente código realiza la clasificación.
A = zero_array_of_length (C)
max_count = -inf
max_class = 0
para x_i, y_i en KNN:
A [y_i] + = 1
si A [y_i]> max_count:
max_count = A [y_i]
max_class = y_i
return max_class
Supongo que podemos inicializar una matriz en O (1) tiempo, lo cual es posible en la arquitectura moderna.