kNN tiende a ser exponencial porque el espacio de búsqueda aumenta con . Imagine que divide el espacio alrededor de su punto de búsqueda en cuadrantes. Para k = 1 solo tiene que buscar dos 'cuadrantes' (valores más altos y más bajos), para k = 2 son 4 cuadrantes, para k = 3 son 8 cuadrantes, es decir, crecimiento exponencial del espacio de búsqueda. De eso sufre el árbol kD, porque tiene que buscar sub-ramas.2k2k
Otros árboles funcionan mucho mejor, por ejemplo el CoverTree . También descubrí que el PH-Tree funciona bastante bien, parece que siempre toma el doble de tiempo que el CoverTree para conjuntos de datos entre k = 8 yk = 27 (no tenía conjuntos de datos con k más alto).
k
efectivamente es la dimensión del problema y por eso sufre la "maldición de la dimensionalidad".