Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4 Es
4 Es
El NB-Tree proporciona un medio simple y compacto para indexar puntos de datos de alta
dimensión. Utilizamos una eficiente estructura de datos 1D, el B+-Tree, para indexar los puntos
ordenados por su norma euclidiana (Norm+ B+-Tree=NB-Tree). Para lograr flexibilidad utilizamos la
reducción de dimensiones: los puntos multidimensionales son mapeados a una línea recta 1D
computando su Norma Euclidiana. El segundo paso es clasificarlos por norma euclidiana, usando
un B+-Árbol. De esta manera, todas las operaciones se realizan en el B+-Árbol. Como esta es la
estructura 1D más eficiente, el Árbol-NB hereda su buen rendimiento, específicamente para
consultas puntuales. 4.1.1. Creando un NB-Tree Para crear un NB-Tree, comenzamos computando
la norma euclidiana de cada punto N-dimensional del conjunto de datos, usando la fórmula
4.1.2. Buscando en
Comenzamos la búsqueda de KNN haciendo una consulta de la bola (bola pequeña en la Fig. 8).
Después de esta consulta de la bola, comprobamos si tenemos suficientes puntos dentro de la
bola para satisfacer la consulta. Si no es así, comenzamos un proceso iterativo, en el que el
tamaño de la bola aumenta gradualmente hasta que obtenemos todos los puntos especificados
por la consulta. La Fig. 8 ilustra la búsqueda de KNN (en 2D), mientras que la Fig. 9 presenta el
seudo-código del algoritmo KNN.
Para mejorar el rendimiento de nuestro algoritmo, asumimos que los vecinos más cercanos no
estarán más lejos que una distancia dada del punto de consulta (bola más grande en la Fig. 8). De
esta manera almacenamos menos resultados intermedios, acelerando el proceso de búsqueda. La
distancia utilizada para podar los resultados intermedios depende del número de puntos de la
estructura y crece logarítmicamente con la dimensión de los puntos de datos.
Mientras que nuestro enfoque parece producir tiempos conmensurables a otras estructuras
probadas, tuvimos dificultades para compararlo con otros enfoques, a saber, el Árbol del CI. De
hecho, las implementaciones disponibles no proporcionaron los resultados correctos y por lo tanto
es difícil comparar los tiempos de ejecución que parecen ser conmensurables. Se disponía de
implementaciones de otros enfoques populares, pero algunas de ellas se estrellaron en conjuntos
de datos de tamaño significativo, lo que impidió la comparación. Elegimos la Técnica del Árbol y la
Pirámide como punto de referencia porque hay implementaciones fiables y estables, que
proporcionan resultados correctos y se escalan a los tamaños de los datos de prueba previstos.
En esta sección, describimos la evaluación experimental realizada para comparar nuestro Árbol NB
con el Árbol SRT y la Técnica de la Pirámide. Realizamos un conjunto de experimentos para
analizar los tiempos de creación y de consulta en función de la dimensión y el tamaño del conjunto
de datos. Todos los experimentos se realizaron en un PC Pentium II a 233 MHz con Linux 2.4.8, con
384 MB de RAM y 15 GB de disco. Evaluamos las tres estructuras utilizando conjuntos de datos de
puntos de datos distribuidos uniformemente generados al azar de tamaño fijo (100.000) y
dimensión variable (10, 20, 30, 40, 60, 80 y 100). También creamos conjuntos de datos de
dimensión fija (20) y de tamaño variable (250.000, 500.000, 750.000 y 1.000.000). Además,
generamos aleatoriamente un conjunto de 100 consultas para cada dimensión, que luego
utilizamos para evaluar el rendimiento de la búsqueda de cada enfoque. Seleccionamos que el
número de vecinos más cercanos a buscar fuera siempre 10. Sin embargo, estos conjuntos de
datos, al ser generados a partir de coordenadas uniformemente distribuidas, no parecen ser
exactamente representativos de los datos del "problema real". Planeamos realizar otra evaluación
experimental tan pronto como tengamos acceso a los conjuntos de datos reales. Sin embargo,
podemos considerar que la distribución uniforme de los puntos es un caso peor que los datos
reales, porque los ''datos reales'' tienden a concentrarse en grupos, por lo que se requieren bolas
más pequeñas para capturar a los vecinos más cercanos.
4.2.1. Creación
La mayoría de los trabajos publicados tienden a ignorar los tiempos de inserción. Esto se debe a
que los escenarios convencionales se centran en grandes bases de datos estáticas que se
consultan con mucha más frecuencia que se actualizan. Sin embargo, hay muchas aplicaciones que
requieren una actualización frecuente de los conjuntos de datos. Para éstas, los tiempos de
inserción bajos son un factor importante de utilidad.
Hemos comparado los tiempos de creación con los del Árbol SR y de la Técnica de la Pirámide. La
Fig. 10 muestra el tiempo empleado en crear cada estructura cuando la dimensión de los datos
cambia. Como podemos ver, el NBTree supera en gran medida al SR-Tree y a la Técnica de las
Pirámides. Mientras que la Técnica de la Pirámide tarda 6 s en insertar 100.000 puntos de la
dimensión 10, el NB-Tree tarda 24 s y el SR-Tree 23 min. Si ahora consideramos dimensiones más
altas, como la 80, la diferencia aumenta aún más con la Técnica de la Pirámide que tarda 31 s, el
Árbol del NB que tarda 2 min. y el Árbol SR que tarda 40 min.
En la Fig. 11, podemos ver el tiempo para la misma acción, ahora con el cambio de tamaño del
conjunto de datos. Aunque todas las estructuras presentan un crecimiento lineal con el tamaño
del conjunto de datos, los tiempos de creación de la TERRA crecen más rápido que los de las otras
estructuras. Mientras que la Técnica de Pirámide no requiere más de 2 min para crear un árbol con
un millón de puntos de datos, el Árbol del NB requiere 15 min y el Árbol-SR tarda alrededor de 6 h.
De esta observación se desprende claramente que el Árbol del NB y la Técnica de Pirámide son
más adecuados para grandes conjuntos de datos que el Árbol-SR.
En resumen, y mirando las Figs. 10 y 11, podemos decir que la Técnica de la Pirámide y el Árbol NB
tienen tiempos de creación muy similares mientras que superan ampliamente al Árbol SR.
No pudimos crear el árbol SR para el conjunto de datos de la dimensión 100, en nuestro sistema,
debido a las necesidades de memoria. Por lo tanto, en los siguientes gráficos de rendimiento no
mostramos los valores de la dimensión 100 correspondientes al SR-Tree.
Las consultas del vecino más cercano son útiles cuando queremos ver el punto del conjunto de
datos que más se aproxima a la consulta.
La Fig. 12 muestra el rendimiento de las búsquedas del vecino más cercano cuando la dimensión
aumenta. Podemos ver que el NB-Tree supera a la Técnica de la Pirámide y al SR-Tree para
cualquier dimensión del conjunto de datos. Nuestro enfoque calcula los 10 vecinos más cercanos
en menos de 1 s para dimensiones de hasta 40 y menos de 2 s para dimensiones de hasta 100.
Además, podemos observar que el Árbol NB parece presentar un comportamiento asintótico con
la dimensión mientras que el Árbol SR parece exhibir al menos un crecimiento cuadrático.
Como podemos ver en la Fig. 13, nuestro enfoque también supera tanto a la Técnica de la
Pirámide como al Árbol-SR para un tamaño de conjunto de datos variable. El Árbol NB exhibe un
crecimiento lineal con el tamaño del conjunto de datos, mientras que las otras estructuras crecen
más rápido cuando el tamaño del conjunto de datos aumenta
En resumen, el Árbol NB presenta un buen equilibrio entre los tiempos de creación y de búsqueda,
superando claramente algunas de las mejores estructuras de indexación disponibles, para datos
distribuidos uniformemente. Se puede argumentar que representan un caso peor que, digamos,
los datos (hiper)distribuidos normalmente, en el sentido de que necesitamos utilizar bolas más
grandes para garantizar estadísticamente que capturamos suficientes puntos para satisfacer la
consulta inicial del KNN.