Bueno, depende principalmente de su implementación particular y conjunto de datos.
Un árbol mal balanceado significa que tendrá que buscar mucho más información de la que necesita. Asegúrate de que la construcción de tu árbol sea sensata.
También podría depender de cómo encuentre los k vecinos. Si su algoritmo busca en el árbol el vecino más cercano y lo almacena, luego busca el segundo más cercano y lo almacena, etc., entonces no está haciendo la búsqueda de manera muy eficiente. En su lugar, mantenga una lista de los k vecinos más cercanos y los puntos de mayor rendimiento fuera de la lista a medida que encuentre más cercanos atravesando el árbol. De esta forma, busca una vez, en vez de k veces.
De cualquier manera, parece que estás haciendo esto para un curso. Intente hablar con su profesor, TA o compañeros de clase para ver si sus resultados son típicos.
árbol mal equilibrado fue la razón. Revisé el método de construcción de mi árbol y elegí las dimensiones divididas incorrectas. Gracias por la pista :) – Andraz