3. DESIGN AND METHODOLOGY
3.1. DOC MODEL
Para realizar el análisis de la complejidad temporal debemos tener en cuenta las siguientes variables:
A → número de árboles a crear en el algoritmo ByNet,
M → número de casos en la base de datos13, N → número de atributos del problema,
T → cantidad máxima de valores diferentes que pueden tomar los atributos, K → número máximo de padres por nodos de la RB,
N´→ variables significativas según la prueba Chi-cuadrado y que forman la ListaVariablesSign,
V → niveles o profundidad en los árboles para el algoritmo ByNet o camino mas largo en la RB y que relacionamos con la variable MaxDepth,
P → cantidad de partículas en el algoritmo BayesPSO,
I → cantidad de generaciones o iteraciones en el algoritmo BayesPSO, y C → número de clases diferentes.
2.3.1.1 Análisis de la Complejidad temporal del Algoritmo ByNet
El análisis de la complejidad temporal se hace sobre la base de la descripción por pasos del algoritmo descrito previamente en el epígrafe 2.1.1.2:
La complejidad temporal del Paso 1 de inicialización es un O (N), pues el tamaño de la lista de variables posibles coincide con la cantidad de atributos del problema.
La complejidad temporal del Paso 2 es un O(M * N) pues hay que recorrer todos los atributos y la función que determina la probabilidad del estadístico Chi-cuadrado tiene complejidad O(M). El Paso 3 que ordena la lista de variables significativas tiene orden de complejidad temporal O(N’LogN’), pues N’ es la cantidad de elementos de esta lista.
En el Paso 4 se entra en un ciclo donde se construyen los árboles; se sabe que la complejidad para construir los árboles es a lo sumo O(N * T 2) (Quinlan 1986), (Quinlan 1993).
En el peor caso se construye un árbol completo en el cual cada camino en el árbol prueba cada variable de la lista de variables significativas, se asumen N´ atributos y T valores diferentes que pueden tomar los atributos.
En cada nivel V, en el árbol, se debe examinar los T-V valores que quedan para cada atributo en ese nivel para calcular la probabilidad aplicando Chi-cuadrado, de donde se obtiene: ) * ' ( ' 2 1 T N O N V T V = ∗
∑
= (2.14)Si se llegan a construir todos los árboles, resulta finalmente una complejidad temporal máxima de: O(A * M * N´ * T 2), el cual puede ser aún menor, si se hace el análisis como (Ruiz 2006) que reporta un orden de complejidad temporal medio para árboles: O(M*N*log2M).
2.3.1.2 Análisis de la Complejidad temporal del Algoritmo BayesChaid
El análisis de la complejidad temporal del algoritmo BayesChaid se hace sobre la base de la descripción por pasos del algoritmo descrito previamente en el epígrafe 2.1.2.2.
La complejidad temporal del Paso 1 de inicialización es un O (N), pues el tamaño de la lista de variables posibles coincide con la cantidad de atributos del problema.
La complejidad temporal del Paso 2 es O (M * N) pues hay que recorrer todos los atributos y determinar la probabilidad del estadístico Chi-cuadrado.
Para el Paso 3 la complejidad es un O (N´ ).
En el Paso 4 se ordena la lista de variables significativas cuyo orden de complejidad temporal es O (N’LogN’) donde N’ es la cantidad de elementos de esta lista.
En el Paso 5 se evalúa la función que determina la probabilidad del estadístico Chi- cuadrado dentro de dos ciclos anidados, obteniéndose un O (N’ 2 * M), que coincide con el
orden de complejidad temporal del algoritmo BayesChaid.
2.3.1.3 Análisis de la Complejidad temporal del Algoritmo BayesPSO
Para el análisis de la complejidad temporal del algoritmo BayesPSO, descrito en el epígrafe 2.2.3 se debe conocer el orden de la métrica que mide la calidad de la red que se obtiene. La complejidad temporal es un O (I * P * max(N 2, O(métrica))).
La complejidad de las métricas se reportan en el capítulo cuatro de la tesis de Bouckaert (Bouckaert 1995), en el peor caso es un O(M.K.T).
Hasta aquí se demuestra que los tres algoritmos tienen una complejidad temporal polinomial si se hace una selección adecuada de los parámetros.
2.3.1.4 Comparación de los algoritmos
Si se toma el valor que pueden tomar los parámetros que se utilizan para realizar el análisis de complejidad temporal de los algoritmos, es posible hacer una comparación entre los tres algoritmos descritos en este capítulo, cuyo orden de complejidad temporal se muestra en la Tabla 2.1.
Si se parte de la definición de RB hay algunos parámetros a los que se le asignan valores suficientemente pequeños, de modo que la RB que se obtiene sea lo menos compleja posible, sin descuidar la calidad de los resultados que ofrece la misma.
Por ejemplo, en el algoritmo ByNet el parámetro que mide la cantidad de árboles a construir es importante, como ya se explicó previamente, pues para valores pequeños se logra evitar obtener modelos asimétricos, este parámetros está estrechamente relacionado con el número de padres en los algoritmos BayesChaid y BayesPSO.
Los valores que pueden tomar las variables resultan también significativos en el análisis de la complejidad.
Si se pretende establecer un orden en cuanto a la complejidad temporal de los algoritmos, el de menor complejidad resulta ByNet, le sigue BayesChaid y por último BayesPSO.
Tabla 2.1. Resultado del análisis de la complejidad temporal de los algoritmos propuestos en el trabajo.
Algoritmo Complejidad Temporal
ByNet O(A * M * N * T 2) BayesChaid O (N’ 2 * M)
BayesPSO O(I * P * max(N 2, O(métrica)))