SciELO - Scientific Electronic Library Online

 
vol.16 issue33Power factor correction over single-phase rectifiers using a Boost converterMPLS and ATM as backbone technologies to carry videoconferencing author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


Tecnura

Print version ISSN 0123-921X

Tecnura vol.16 no.33 Bogotá July/Sept. 2012

 

Modelo hibrido para el diagnóstico de enfermedades cardiovasculares basado en inteligencia artificial

A hybrid model for the diagnosis of cardiovascular diseases based on artificial intelligence

Guillermo Roberto Salarte Martínez1, Yanci Viviana Castro Bermúdez2

1 Ingeniero de Sistemas, magister en Investigación de Operativa y Estadística, estudiante de Doctorado en Informática de la Universidad Pontificia de Salamanca. Docente investigador de la Universidad Tecnológica de Pereira. Pereira, Colombia. Contacto: roberto@utp.edu.co
2 Ingeniera de Sistemas y Computación. Investigadora de la Universidad Tecnológica de Pereira. Pereira, Colombia. Contacto: yanci_ca@hotmail.com

Fecha de recepción: 22 de julio de 2011 Fecha de aceptación: 14 de febrero de 2012


Resumen

La investigación presentada en el siguiente artículo está orientada hacia el área de la bioinformática, en el campo de minería de datos utilizando la técnica de redes bayesianas y arboles decisión; además de evaluar la utilidad de la metodología bayesiana en la predicción y el diagnóstico médico de enfermedades complejas (cardiovasculares), redes bayesianas se utilizan como representación grafica del conocimiento previo y métodos de razonamiento en los modelos probabilísticos y en la clasificación de los datos, pues desde la base datos todavía existen problemas; de esta manera, la estructura obtenida puede presentar un grado de complejidad innecesario que dificulta la representación e interpretación del conocimiento así como también la eficiencia del proceso de inferencia.

Palabras Clave: bases de datos, diagnóstico, enfermedades, redes Bayesianas.


Abstract

The present work pertains in the field of bioinformatics, particularly in the field data mining using Bayesian networks and decision trees. The study also assesses the usefulness of a Bayesian methodology when making medical predictions and diagnosis of non-trivial diseases (cardiovascular). Bayesian networks are used as graphic representations of previous knowledge, and also reasoning methods are applied to probabilistic models. When classifying the data from the database, problems still arise, thus the structure obtained might exhibit an unnecessary complexity degree which makes it difficult to represent and interpret knowledge as well as reducing efficiency in the inference process.

Key words: databases, diagnosis, disease, Bayesian networks.


1. Introducción

El aumento exponencial de información ha permitido que las organizaciones o empresas diseñen sus propios sistemas de información y estas sirvan de apoyo a la toma de decisiones, así entonces, su propósito es generar la información disponible y necesaria a los ejecutivos de alto nivel, además de brindar un acceso rápido y efectivo a la información critica del negocio, pero en la actualidad la demanda de la información va mas allá de una simple consulta de datos o de reportes consolidados. Como respuestas a dichas inquietudes, se han creado técnicas de almacenamiento y análisis de la información, logrando involucrar diversas áreas de conocimiento como la estadística, inteligencia artificial, computación grafica, [1] bases de datos y el procesamiento masivo, todas estas inquietudes han servido como fundamentos para nuevas técnicas de análisis como la minería de datos, que es el proceso de extraer información de los grandes volúmenes de datos, revelando conocimiento innovador a las organizaciones, permitiendo conocer de forma más detallada el comportamiento de variables.

El método de clasificación de las redes bayesianas se ve afectado, ya que a cada nodo de la estructura (grafo) le corresponde una variable que compone el dominio de aplicación aún cuando dicha variable no trascienda de manera directa sobre la tarea de clasificación, de esta manera, la estructura obtenida puede presentar un grado de complejidad innecesario que dificulta la representación e interpretación del conocimiento así como la eficiencia del proceso de inferencia. Por otro lado, las capacidades predictivas de las redes bayesianas están orientadas a pronosticar el valor de cualquiera de las variables pertenecientes al dominio de aplicación en lugar de intentar maximizar el poder clasificatorio. Para solucionar el problema de clasificación de la red bayesiana se utilizarán las ventajas que tienen los arboles de decisión en la clasificación de los datos y su representación grafica; lo que se pretende es hacer un método que combine las ventajas de las técnicas de inducción de los árboles de decisión (TDIDT – IDE.3) con las de las redes bayesianas. Este modelo de aprendizaje estará formado dos por etapas:

  • La primera etapa consiste en la preselección de nodos y construcción de la red, es decir que, a partir de los datos que se encuentran en una base de datos, esta se encarga de la selección y clasificación de un subconjunto de nodos para mejorar la capacidad predictiva de la red

  • La segunda etapa consiste en la construcción de la red bayesiana [2] a partir del subconjunto de variables seleccionadas en la etapa previa, aplicando el método de aprendizaje de redes bayesianas (algoritmo de probabilidades). De esta manera se tiene:

2. Redes Bayesianas

Una red bayesiana es una representación gráfica (grafos dirigidos acíclicos) que contienen información probabilística para realizar un razonamiento probabilístico. Esta red está compuesta por nodos y arcos, donde los nodos representan variables aleatorias que pueden ser continuas o discretas, los arcos interpretan influencias causales, el que un nodo sea padre de otro implica que es causa directa del mismo.

a) Conceptos claves de redes bayesianas

  • Probabilidad a priori: es la probabilidad de ausencia de evidencia que tiene una variable.

  • Probabilidad a posteriori: es la probabilidad de una variable condicionada a la existencia de una evidencia determinada

2.1 El aprendizaje en las redes Bayesianas

Se fundamenta en definir redes probabilísticas a partir de datos almacenados en bases de datos para la toma de decisiones, en lugar de utilizar la ayuda de un experto, por lo tanto, este tipo de almacenamiento ofrece la posibilidad de definir las estructuras graficas de la red a partir de los datos observados y permite definir las asociaciones entre los nodos o variables, teniendo en cuenta la información de cada nodo; según Pearl [3] existen dos fases de aprendizaje, a estas dos fases se les puede denominar respectivamente: aprendizaje estructural y aprendizaje paramétrico.

2.2 Aprendizaje estructural

Consiste en obtener la estructura de la red bayesiana [4] a partir de la base de datos, o sea, las relaciones de dependencia e independencia entre las variables involucradas. Las técnicas de aprendizaje estructural dependen del tipo de organización de la red (árboles, poliárboles o redes multiconectada). Se trabaja con los arboles decisión.

2.2.1 Árboles de clasificación

Los árboles de clasificación, también conocidos como árboles de decisión Quinlan [7] y [8], son una técnica muy sencilla de aplicar y se puede utilizar para diferentes áreas como: reconocimiento de caracteres, señales, sensores sistemas expertos, diagnostico medico, juegos, predicción meteorológica y control de calidad.

2.2.2 Propiedades de los árboles de decisión

Una de las propiedades de esta técnica es que permite una organización eficiente de un conjunto de datos, debido a que los arboles son construidos a partir de la evaluación del primer nodo (raíz) y de acuerdo a su evaluación, o valor tomado, se va descendiendo en las ramas hasta llegar al final del camino (hojas del árbol), donde las hojas representan clases y el nodo raíz representa todos los patrones de entrenamiento que se han de dividir en clases. Los sistemas que implementan arboles de decisión tales como ID3, son muy utilizados en lo que se refiere a la extracción de reglas de dominio. Este método ID3, se construyen a partir del método de Hunt [5]. La heurística de Hunt, consiste escoger la característica más discriminante del conjunto X, para luego realizar divisiones recursivas del conjunto X en varios subconjuntos disyuntos de acuerdo a un atributo seleccionado. Para decidir qué atributo es el más apropiado a usar en cada nodo del árbol, se utiliza una propiedad estadísticas llamada ganancia de información, que mide cómo clasificar ese atributo a los ejemplos, es decir, elije el nodo del árbol que tenga mayor ganancia de información y luego expande sus ramas y sigue igual, pero considerando la nueva partición formada por el subconjunto de ejemplos que tienen ese valor para el atributo elegido.

1. Metodologia

Si se tiene un grupo de datos S donde contenga valores positivos o negativos sobre un concepto dicotómico en el estudio, para calcular la entropía de S relativa, su clasificación booleana se debe definir Pn=1- Pp

Pp. es la probabilidad de que las respuestas sean positivas según el conjunto S.

Pn. es la probabilidad de que las respuestas sean negativas según el conjunto S.

Si X son los datos de ejemplo de administrar tratamiento a los pacientes (ver Tabla 1), se puede observar que de los 14 resultados, 9 tienen resultados positivos y 5 tienen resultados negativos, entonces, si se obtiene la probabilidad de cada resultado tenemos:

La entropía de X se define con base a las probabilidades anteriores, Ec.(1)

Según la Ec.(1), la entropía del conjunto de 14 datos respecto a la variable de administrar fármacos se calcularía de la siguiente manera:

Si la entropía toma un valor de cero es cuando todos los miembros pertenecen a una misma clase ya sea negativa o positiva debido que log(1)2=0

Por tal motivo, la entropía se encuentra siempre un intervalo de cero y uno para los demás casos, alcanzando a un máximo cuando esta proporción es de 0,5 es decir existe una máxima aleatoriedad.

3.1 Concepto de ganancia de información

Como se dijo anteriormente, la entropía es una medida de desorden e impureza en un conjunto de datos de entrenamiento, pero se puede utilizar una medida eficiente para la clasificación de los datos, para ello se utiliza una medida llamada ganancia de información [6], esta medida reduce la entropía obtenida al realizar la división de los datos de entrenamiento.

Donde S es un grupo de muestras clasificadas en C clases, A son los atributos y Sv es un subconjunto de S Valores (A) es una lista de posibles valores de A, la fórmula de ganancia de información se define como:G(S,A)=H(S)-H(S,A)

En la anterior expresión, el primer término corresponde a la entropía de la original de S, el segundo término corresponde al valor esperado de la entropía después de que S sea particionado de acuerdo al atributo A. Como se puede observar, el segundo término de la fórmula de ganancia no es más que la sumatoria de entropías de cada subconjunto Sv, ponderado por la fracción

3.1.1 Tabla de contingencia

Para facilitar los cálculos se usan tablas de contingencia, esta técnica es muy útil para realizar cálculos probabilístico y cuando sus datos son categóricos. La tabla de contingencia que se obtiene, según los datos de la Tabla 1, para la decisión de administrar medicamento, desde el punto de vista de presión arterial, seria: Tabla de contingencia presión arterial, Tabla 2.

Cálculo de entropía y ganancia de información con el atributo:

Presión Arterial

Se calcula la entropía de H(S)

Luego se procede a calcular la entropía de cada uno de los valores de A, es decir, la entropía de presión arterial (alta, media y baja), utilizando la tabla de contingencia de la misma.

Presión arterial alta

Presión arterial media

Presión arterial baja

Realizamos el cálculo de ganancia con el atributo.

De la misma manera, se realizan las tablas de contingencia para cada uno de los atributos de la Tabla 1, igualmente se deben realizar los cálculos de entropía y de ganancia de información. Los resultados de ganancia de información de los atributos son los mostrados en la Tabla 3:

3.1.2 Ensamblaje del árbol

Como se puede observar, el atributo que se debe seleccionar como nodo raíz es la presión arterial ya que, de acuerdo con la medida de ganancia de información, es el más adecuado para ser nodo inicial (raíz) creando así tres ramas.

A continuación se debe aplicar la misma técnica en cada uno de los nuevos nodos creados, pero en cada nodo creado sólo se usa un subconjunto de los datos como se observa en las siguientes tablas:

Datos de entrenamiento presión arterial normal

Datos de entrenamiento presión arterial baja

Si se observa el comportamiento de los datos en la tablas, se puede deducir que el atributo presión arterial = normal, la recursión tiende a terminar, ya que en el atributo decisión administrar fármacos la mayoría de las variables son positivas, por lo tanto este atributo queda apuntado a una hoja llamada normal con un valor de , ejemplo "normal = si", sin embargo, las otras dos ramas restantes quedarán en evaluación recursiva, dividiendo el espacio de búsqueda y reduciendo el número de datos de entrenamiento. Igualmente, se realiza el mismo procedimiento recursivo con los demás atributos hasta formar el árbol.

3.2 Aprendizaje paramétrico

Dada una estructura y las bases de datos, obtiene las probabilidades a priori y condicionales requeridas. Uno de los principales trabajos en el campo del aprendizaje de redes bayesianas es el de Herkovits y Copper [9].

El aprendizaje paramétrico se fundamenta en descubrir los parámetros asociados a una estructura dada de una red bayesiana ó árbol de decisión, de acuerdo con los parámetros, lo que se pretende es encontrar las probabilidades a priori de los nodos raíz y las probabilidades condiciónales de las demás variables debido a sus padres, si se conocen todas las variables es relativamente sencillo obtener las probabilidades requeridas, ya que las probabilidades previas corresponden a las marginales de los nodos raíz y las condicionales se obtienen del agrupamiento de cada nodo con su(s) padre(s). Para que se actualicen las probabilidades con cada caso observado, en el caso de un árbol las fórmulas de probabilidades previas son:

Las probabilidades condicionales

Donde:

  • s corresponde al número de casos totales

  • i, j los índices de las variables, y

  • k,l los índices de las variables observadas

3.3 Inferencia Bayesiana

Es un método de inferencia estadística que permite ingresar nuevas pruebas u observaciones para calcular las probabilidades que alcanzarán el resto de variables, por lo tanto, este método lo que hace es calcular las probabilidades a posteriori P|(X|Y=yi) de un conjunto de variables X después de obtener un conjunto de observaciones Y=yi donde Y es la lista de variables observadas e yi es la lista correspondiente a los valores observados, también se utiliza para actualizar su probabilidad basada en un cálculo previo.

  • Predicción

  • Si se tienen datos de un suceso anterior y este suceso se está representando en la red como un nodo padre, la red puede conjeturar cuáles serán sus efectos, para lograr esto se debe conservar esta hipótesis en el nodo correspondiente y difundir esta información hacia el resto de los nodos.

  • Interpretación de datos

Otra manera de predicción es a través de las mismas relaciones que se muestran en la red [8], donde, conociendo las consecuencias, se puede saber cuáles son sus posibles causas. El conocimiento es el mismo que en el caso anterior: "si a entonces b" pero ahora el hecho conocido es "b" y el hecho desconocido es "a". Las probabilidades a posteriori P|(X|Y=yi) se pueden conseguir desde la probabilidad marginal P|(X|Y), que a su vez puede obtenerse de la probabilidad conjunta P(x1, x2,…… xi) sumando los valores para todas las variables que no pertenezcan al conjunto X U Y

3.3.1 Algoritmos de propagación en árboles

Cada nodo corresponde a una variable discreta A(A1, A2,…… Ai) con su respectiva matriz de probabilidad condicional P(B|A)=P(Bj|Ai) dada cierta evidencia E (representada por la instanciación de ciertas variables) la probabilidad posterior de cualquier variable B es, por el teorema de Bayes:

Debido a que la tipología de la red es un árbol, el nodo B se divide en dos subárboles, de este modo se puede separar la evidencia en dos grupos:

  • E-: Datos en el árbol cuya raíz es B.

  • E+: Datos en el resto del árbol Interpretación de datos

Por lo tanto se tiene la Ec.(2)

Pero teniendo en cuenta las independencias de las dos variables, se aplica nuevamente el teorema de Bayes y se consigue

donde

es constante de normalización. De la anterior expresión se puede decir que ésta divide la evidencia para renovar la probabilidad de B, igualmente se observa que no se requiere de la probabilidad a priori, en caso de que el nodo no posea padres se obtiene que:

Para reducir el proceso se definen los siguientes términos que se ven en la Ec.(3).

Donde Ek pertenece a la evidencia que se origina del hijo k de B denotado por Sk. Condicionando cada término en la ecuación anterior, respecto de todos los posibles valores de cada nodo hijo, se obtiene que B es condicionalmente independiente de la evidencia bajo cada hijo por lo tanto se usa la siguiente expresión λ en la Ec.(4).

De la misma forma se puede tener una ecuación para π, primero se le condiciona sobre todos los posibles valores del padre, ecuación (5).

Luego se puede eliminar E+ del primer término, dada la independencia condicional. El segundo término representa la probabilidad posterior de A sin contar la evidencia del subárbol de B, por lo que se puede expresar usando la ecuación para P(BJ | E) y la descomposición de λ en la Ec.(6).

Donde k incluye a todos los hijos de A excepto B. Mediante estas ecuaciones se integra un algoritmo de propagación de probabilidades en árboles, donde cada nodo guarda los valores de los vectores expresión π y λ así como las matrices de probabilidad P, la propagación se hace por un mecanismo de paso de mensajes en donde cada nodo envía los mensajes correspondientes a su padre e hijos:

Mensaje al padre (nodo B a su padre A)

Mensaje a los hijos (nodo B a su hijo k S)

Al instanciarse ciertos nodos, estos envían mensajes a sus padres e hijos y se propagan hasta llegar a la raíz u hojas o hasta encontrar un nodo instanciado, así que la propagación se hace en un solo paso en un tiempo proporcional al diámetro de la red. Esto se puede hacer en forma iterativa instanciando ciertas variables, propagando su efecto y luego instanciando otras variables y propagando la nueva información combinando ambas evidencias.

3.3.2 Algoritmo de propagación de probabilidades

Se han desarrollado varios algoritmos para el cálculo de las probabilidades Neapolitan, Richard [10], de los cuales sólo se explicará en profundidad el algoritmo para redes con forma de árbol. El algoritmo consta de dos etapas:

  • Etapa de inicialización: : en esta etapa se consiguen las probabilidades a priori de todos los nodos de la red, obteniendo un estado inicial de la red que se denotará por So.

  • Etapa de actualización: cuando una variable adquiere un valor nuevo, se actualiza el estado de la red (árbol) obteniendo las probabilidades a posteriori de acorde a las variables del árbol basadas en la evidencia considerada, la red adopta un estado que se denotará por S1.

Este proceso se repite cada vez que una variable tome un valor nuevo, obteniendo así los estados sucesivos de la red.

La idea básica del algoritmo de propagación de probabilidades es enviar mensajes a toda la red (árbol), cada vez que existe un cambio en cada uno de los nodos (variables), además se debe modificar sus probabilidades.

3.4 Fórmulas

Para el cálculo de λ y π-mensajes, λ y π-valores y probabilidades P* (esto es la probabilidad a posteriori dada una evidencia observada, (P*(x) = P(x/e)), se tienen las siguientes ecuaciones.

1. Si B es un hijo de A, B tiene k valores posibles y A m valores posibles, entonces para j=1,2,...,m, el λ-mensaje de B y A viene dado por la Ec.(7).

2. Si B es hijo de A y A tiene m valores posibles, entonces para j=1,2,...,m, el p-mensaje de A y B viene dado por la Ec.(8).

Donde s(A) denota al conjunto de hijos de A. (*) esta fórmula es válida en todos los casos. Hay otra fórmula cuya aplicación resulta a veces más sencilla, pero que sólo es válida cuando todas las probabilidades P*(ai) son no nulas, que es: P(aj) / λB(aj). Esta fórmula da un p-mensaje distinto (pero proporcional al de la otra fórmula) e iguales probabilidades a posteriori.

3. Si B tiene k valores posibles y s(B) es el conjunto de los hijos de B, entonces para i=1,2,...,k, el λ-valor de B viene dado por la Ec.(9).

4. Si A es padre de B, B tiene k valores posibles y A tiene m valores posibles, entonces para i=1,2,...,k , el π-valor de B viene dado por la Ec.(10).

Si B es una variable con k posibles valores, entonces para i = 1,2,...,k la probabilidad a posteriori (P*) basada en las variables instanciadas se calcula como en la Ec.(11).

Algoritmo de cálculo de probabilidades public doublé [ ][ ] Probabilidad (double b[ ][ ])

{ int i,j;

for (i = 0; i < b.length; i++){

for ( j = 0; j < b.length; j++)

if (i==1) {b[i][j]=b[i][j]/ps;}

if (i==2) {b[i][j]=b[i][j]/pn;}

} } return b; }

Código 1: Calcula Probabilidades

4. RESULTADOS

En esta etapa se tomará como ejemplo la Tabla 1, Administración de tratamiento, esta tabla está formada por cinco variables médicas, además se tendrá en cuenta que sólo se trabaja con datos categóricos y discretos. Aplicación realizada en Wampserver 2.7 y N Netbeans 6.91.

A continuación se presenta la interface a la que el usuario accede para diagnosticar y realizar el tratamiento médico en pacientes con síntomas de enfermedad cardiovascular, mediante redes bayesianas. Ventana de inicio de la aplicación donde tiene como selección dos opciones: la primera, consulta general, la cual permite visualizar la base de datos completa; la segunda opción, salir de la base de datos, ver la Fig. 5.

Ventana de presentación inicial, muestra el esquema de trabajo de este proyecto de investigación. La siguiente es la pantalla de presentación de entrada del aplicativo.

A continuación se muestran algunos de los mensajes que se pueden presentar cuando se trabaja con la aplicación. Ventana de conexión a la base de datos, esta ventana permite conectar una base de datos MySQL desde java.

A continuación se presenta la ventana de trabajo y visualización. Esta ventana está compuesta por cuatro botones y un área de texto. El primer botón sirve para consultar en la base de datos, el segundo botón muestra el análisis de redes bayesianas, el tercero muestra la estructura de los datos y el último botón es para salir de la aplicación, ver la Fig. 9.

Esta ventana visualiza el árbol generado a partir de los datos que se encuentran en la base de datos, este caso está en Wapmserver Generación del árbol ID3. Ver la Fig. 11.

Resultados mostrados por aplicación Cálculo de ganancia de información

(S,) 0.6779157203693482

G(S,) 0.5117145300992023

G(S,) 0.0487145300992023

Se observa que los resultados de la Tabla 10 de ganancia de información, el atributo que se debe seleccionar como nodo raíz es la presión arterial ya que, de acuerdo con la medida de ganancia de información, es el más adecuado para ser nodo inicial (raíz) creando así tres ramas: Alta, Normal y Baja. A continuación se debe aplicar la misma técnica recursiva en cada uno de los nuevos nodos creados

Generación de la reglas

De acuerdo con la Fig. 12 se deduce que para administrar tratamiento a un paciente se deben tomar en cuenta las siguientes reglas generadas. Se puede administrar tratamiento un paciente

SI:

  • Si tiene presión alta y no tiene gota

  • Si tiene presión arterial normal

  • Si tiene presión baja y no tiene Hipotiroidismo

NO:

  • Si tiene presión alta y tiene gota

  • Si tiene presión baja y tiene Hipotiroidismo

A continuación se visualizan las probabilidades iníciales, generadas por la aplicación:

Probabilidad presión arterial

Tabla probabilidad de gota

Tabla probabilidad de Hipotiroidismo

Tabla probabilidad administrar tratamiento

A continuación, con el objeto de comparar los resultados obtenidos con el código Java arriba propuesto por el autor de este trabajo, se procesan los mismo datos con otra herramienta libre llamada la herramienta Elvira, esta herramientas tiene un conjunto de software open-source para investigación y desarrollo usando modelos gráficos de probabilidad. Para mayor información consultar en: http://www.ia.uned.es/~elvira/manual/manual.html.

Utilizando el algoritmo de propagación se calcula el estado inicial del árbol. Como los valores anteriores son los valores iniciales, ahora se van a recalcular los valores haciendo uso del algoritmo de propagación (Algoritmo de propagación hecho por el autor).

public void lamdaValor(nodoABB nodo){

if(nodo.instanciada){

nodo.lamda_valor[0] = nodo.probabilidad[0];

nodo.lamda_valor[1] = nodo.probabilidad[1];

}else{CalcLamdaValor(nodo,nodo.lamda_valor,0);}

}

public void CalcLamdaValor(nodoABB nodo,double []lamda_v,int flag){

if(nodo != null){

if(flag==0){lamda_v[0] = 1; lamda_v[1] = 1; flag++;

CalcLamdaValor(nodo.izq,lamda_v,flag);

CalcLamdaValor(nodo.der,lamda_v,flag);

} else{lamda_v[0] *= nodo.lamda_msg[0]; lamda_v[1] *=

nodo.lamda_msg[1];

CalcLamdaValor(nodo.izq,lamda_v,flag);

CalcLamdaValor(nodo.der,lamda_v,flag);

} } }

Código 3: Calcula el lambda valor del nodo si este no ha sido instanciado.

public void lamdaMsg(nodoABB nodo){

if(nodo.padre!= null){

nodo.lamda_msg[0]=nodo.matriz[0]*nodo.lamda_valor[0]+nodo.matriz[2]*

nodo.lamda_valor[1];

nodo.lamda_msg[1]=nodo.matriz[1]*nodo.lamda_valor[0]+nodo.matriz[3]*

nodo.lamda_valor[1];

} }

Código 4: Calcula el lamda-msg del nodo que le enviemos

public void piMsg(nodoABB nodo){

if(!nodo.instanciada){ CalcPiMsg(nodo,nodo.pi_msg,0);

}else{ nodo.pi_msg[0] = nodo.probabilidad[0]; nodo.pi_msg[1] = nodo.probabilidad[1];

} }

Código 5: Función recursiva que calcula el pi_msg del nodo

Función de control elimina marcas utilizadas en la recursión.

public void EliminarMarca(nodoABB p){

if (p!=null){ p.marca = false; EliminarMarca(p.izq); EliminarMarca(p.der);

} }

Código 6: control elimina marcas utilizadas en la recursión.

Resultados del algoritmo de propagación hecho por el autor, como podemos ver los resultados muy similares con los resultados hecho con la herramientas Elvira.

Nodo ("Administrar Tratamiento" id = 8){ Matriz: {0.71 | 0.0 | 0.29 | 0.0 |}

lamda_valor {1.0, 1.0} pi_valor {0.71, 0.29} lamda_msg {1.0, 1.0} pi_msg {0.69, 0.31}

Probabilidad: Verdad: 0.69 Falso: 0.31 }

Nodo ("Presión Arterial" id = 6){ Matriz: {0.4 | 0.1 | 0.6 | 0.9 | }

lamda_valor {1.0 ,1.0}pi_valor {0.38,0.62} lamda_msg {1.0 , 1.0}pi_msg {0.38,0.62}

Probabilidad: Verdad: 0.42 Falso: 0.58}

Nodo ("Hipotiroidismo " id = 4){ Matriz: {0.5 | 0.4 | 0.5 | 0.6 | }

lamda_valor {1.0,1.0}pi_valor {0.44, 0.56} lamda_msg {1.0, 1.0}pi_msg {0.44 , 0.56}

Probabilidad: Verdad: 0.38 Falso: 0.62}

Si se tiene una nueva evidencia de que un paciente tiene presión arterial alta y tiene gota, en este caso, se tomaría un valor de uno (1), las probabilidades se actualizan para contabilizar esta información.

A continuación se muestran los resultados obtenido con la aplicación hecha en java por el autor.

Nodo ("Administrar Tratamiento" id = 8){ Matriz: {0.69 | 0.0 | 0.31 | 0.0 |}

lamda_valor {0.63, 0.168} pi_valor {0.71, 0.29} lamda_msg {1.0, 1.0} pi_msg {0.428, 0.11}

Probabilidad: Verdad: 0.31 Falso: 0.69 }

Nodo ("Presión Arterial" id = 6){ Matriz: {0.4 | 0.1 | 0.6 | 0.9 | }

lamda_valor {0.6 ,0.4} pi_valor {1.0,0.0} lamda_msg {0.48 , 0.42000000000000004 } pi_msg {0.313,0.687}

Probabilidad: Verdad: 1.0 Falso: 0.0}

Nodo ("Gota" id = 5){ Matriz: {0.4 | 0.4 | 0.6 | 0.6 | }

lamda_valor {1.0 , 1.0} pi_valor {0.622, 0.38} lamda_msg {1.0 , 1.0} pi_msg {0.62, 0.38}

Probabilidad: Verdad: 0.68 Falso: 0.38}

Nodo ("Hipoitiroidismo" id = 5){ Matriz: {0.5 | 0.4 | 0.5 | 0.6 | }

lamda_valor {1.0 , 1.0} pi_valor {1.0,0.0} lamda_msg {1.0 , 1.0} pi_msg {0.24, 0.36}

Probabilidad: Verdad: 1.0 Falso: 0.0}

Ahora, las probabilidades de los nodos cambian de la red. Esto es así porque la evidencia disponible de presión arterial y gota aumentó en 1, por lo tanto la probabilidad de administrar tratamiento disminuye, a la vez cambia las probabilidades de Hipotiroidismo. En este caso, la probabilidad de administrar tratamiento es baja. De igual forma se puede realizar para cada uno de los nodos de red ya que el algoritmo recorre todos los nodos hacia abajo y hacia arriba.

4. CONCLUSIONES

Se demostró que es posible determinar la administración, o no, de un procedimiento clínico a un paciente con síntomas de enfermedad cardiovascular, usando las variables tales como: presión arterial, gota, Hipotiroidismo; mediante la utilización del modelo híbrido, utilizando las ventajas de los arboles de decisiones en la clasificación de los datos y las probabilidades en la redes bayesianas.

La propuesta del algoritmo de propagación (inferencia de los datos) con la aplicación que se creó, genera resultados coherente con otras herramientas (Bayesian Netword tool, Elvira)

5.1 Validación e impacto del desarrollo de la propuesta

Esta propuesta aporta una serie de algoritmos que se pueden utilizar y mejorar para posibles aplicaciones en minería de datos.

Este trabajo deja una aplicación que se puede usar como apoyo para el personal médico en la toma de decisiones médicas, pero para datos discretos y variables de decisiones dicotómicas.


Referencias

[1] M. Campell, Base IV Guía de Autoenseñanza. España: Editorial McGraw Hill Interamericana (4 Mar 2009). 1990. pp110/111,121/122, 16, 169, 179-191/192.         [ Links ]

[2] M. A. Torres Rios, "Analysis of Electrical Industrial Systems Using Probabilistic Networks", in G. A. Ramos, Member, IEEE, A. Torres, Senior Member, IEEE and M. A. Rios, Member, IEEE, Latin America Transactions, Vol. 8, No. 5, September 2010.         [ Links ]

[3] J. Pearl, Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. San Mateo, CA, USA: Morgan Kaufmann Publishers, 1998.         [ Links ]

[4] A.C. Pifer e L. A., "Guedes. Aprendizagem Estrutural de Redes Bayesianas Utilizando Métrica MDL Modificada", in A.C. Pifer e L.A. Guedes, IEEE Latin America Transactions, Vol. 5, No. 8, December 2007.         [ Links ]

[5] E.B. Hunt, J. Marin, P.J. Stone, Experiments in Induction. New York: Academic Press, 1966.         [ Links ]

[6] R. Arias Montoya, (octubre de 2010), Detección Temprana De Fallas En La Red De Internet Banda Ancha Aplicando Minería De Datos [Tesis]. Disponible e-mail: reinel.arias@gmail.com.         [ Links ]

[7] J.R. Quinlan, "Induction of Decision Trees", en Machine Learning, capítulo 1, 1990, p. 81-106. Morgan Kaufmann.         [ Links ]

[8] J.R. Quinlan, Generating Production Rules from Decision trees. Proceeding of the Tenth International Joint Conference on Artificial Intelligence, pp. 304-307. San Mateo: CA, Morgan Kaufmann, 1987.         [ Links ]

[9] G.F. Cooper and E. Herskovits, A Bayesian Method for the Induction of Probabilistic Networks, Volume 9, 1992, pages 309-47.         [ Links ]

[10] C. Carmona Márquez, G. Castillo Jordán y E. Millán Valldeperas, Modelo Bayesiano del Alumno basado en el Estilo de Aprendizaje y las Preferencias, IEEE-Rita Vol. 4, Núm. 2, May. 2009, p. 139.         [ Links ]

[11] R. E. Neapolitan, (1990), Probabilistic reasoning in expert systems: Theory and Algorithms. Available: http://www.getcited.org/pub/102782375.         [ Links ]