Ambiente de aprendizaje de redes Bayesianas basado en Web
73
0
0
Texto completo
(2) Dictamen. El que suscribe Rafael Chávez Lemagne, hago constar que el trabajo titulado Ambiente de Aprendizaje de Redes bayesianas basado en Web fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de los estudios de la especialidad de Ciencias de la Computación, autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos ni publicado sin la autorización de la Universidad.. Firma del autor. Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. Firma del tutor. Firma del jefe del Laboratorio. Fecha.
(3) Exergo. Se alcanza el éxito convirtiendo cada paso en una meta y cada meta en un paso.. C.C. Cortez.
(4)
(5) Dedicatoria. A mi mamá … y a mí..
(6)
(7) Agradecimientos. A mi mamá por creer en mí… A mi hermano por apoyarme… A Maye, Tuta, Gloria, mis primos, mi familia… A Marta, Gladis… A mí querida Yudi por ser tan especial… A Yeni, Liset, Marcia… A Gerardo, Vladimir, Leaty, Osmel, Jose, Gianni, el Negrón, Andresito, Alexey…. A Janel, Yanela, Misladys, Merly, Yari… A Ily, Nicor, Dayesi, Idelsy… A mis tutores… A mis profesores….
(8)
(9) Resumen Las Redes Bayesianas constituyen un formalismo muy atractivo de representación del conocimiento, estas se han aplicado con éxito en muy diversos campos puesto que sus áreas de aplicación pueden ser cualquiera en la que se tiene información. incompleta e incierta. Hoy en día, la continua. evolución de los ordenadores y otros dispositivos, unida a las mejoras constantes que están presentando los distintos navegadores web han hecho casi indispensable la existencia de alguna herramienta que sirva como complemento para el uso de estas técnicas, eso pretende hacer el Ambiente de Aprendizaje de Redes Bayesianas basado en Web (BayesNetWeb), principal objetivo de este trabajo.. BayesNetWeb es una aplicación que combina el uso de los métodos de las Redes Bayesianas con la fácil y heterogénea interacción de las páginas web. En consecuencia posee varias funcionalidades; por ejemplo: su interfaz es amistosa y poco compleja, permite una fácil administración desde cualquier navegador web y además permite lograr un adecuado intercambio entre los investigadores y los algoritmos implementados. Esta plataforma fue creada usando el lenguaje de programación Java..
(10)
(11) Abstract Bayesian networks are an attractive formalism of knowledge representation, they have been successfully applied in many fields since their areas of application can be anything in which information is incomplete and uncertain. Today, the continuing evolution of computers and other devices, coupled with constant improvements that are presenting different web browsers have become almost essential to have a tool that serves as a complement to the use of these techniques, such is the aim of to make Web-based Bayesian networks Learning Environment, the main objective of this work.. BayesNetWeb is an application that combines the use of methods of Bayesian networks with the easy and heterogeneous interaction of web pages. Consequently it has several features, eg its interface is friendly and not very complex, allows easy management from any web browser and also allows to achieve an appropriate sharing between researchers and the algorithms implemented. This platform was created using the Java programming language..
(12)
(13) Índice. Introducción ......................................................................... 1 ANTECEDENTES ............................................................ 2 Organización de la Tesis ............................................... 4 Capítulo I ............................................................................. 5 1.1 Redes Bayesianas, definiciones. ........................... 6 1.2 Aprendizaje en Redes Bayesianas ......................... 6 1.2.1 Aprendizaje estructural. ........................................ 7 1.2.2 Aprendizaje paramétrico ..................................... 10 1.3 Las Redes Bayesianas como clasificadores ....... 11 1.4 Aplicaciones ........................................................... 13 1.5 ENTORNOS WEB .................................................... 15 1.5.1 Tipos de páginas web ......................................... 17 1.6 Herramientas y tecnologías ................................... 18 1.6.1 Herramientas ...................................................... 19 1.6.2 Tecnologías ........................................................ 19 Java como lenguaje de desarrollo. ............................. 20 GWT (Google Web Toolkit) para el entorno visual. ... 20 1.7 Conclusiones Parciales ......................................... 23.
(14) Índice Capítulo II .......................................................................... 24 2. Diseño e implementación del ambiente web. ........ 25 2.1 Ambiente de Aprendizaje de Redes Bayesianas basado en Web. ............................................................ 25 2.2 Desarrollo de la aplicación. ................................... 27 2.2.1 Arquitectura......................................................... 27 2.2.2 Interacción entre el usuario y el sistema ............ 29 2.2.3 Interfaz gráfica .................................................... 34 2.2.4 Estructura de las páginas ................................... 36 2.3 Conclusiones Parciales ......................................... 40 Capítulo III ......................................................................... 41 3. Manual de usuario ................................................... 42 3.1 Instalación y configuración del sistema. ............. 42 3.2 Manual de Navegación ........................................... 42 3.3 Manual de Usuario .................................................. 43 3.4 Conclusiones Parciales ......................................... 51 Conclusiones ..................................................................... 52 Recomendaciones ............................................................ 52 Bibliografía ........................................................................ 52.
(15) 1.
(16) Introducción En la actualidad los nuevos retos de la Bioinformática están relacionados con el problema técnico que representa el manejo de grandes volúmenes de datos, y con la forma en la que se puede extraer nuevo conocimiento de ellos. Los estudios bioinformáticos que se desarrollan en el mundo tienen mucho de experimental, de uso de métodos de prueba y error, de abuso de hipótesis “adhoc”, además de ser inmensamente costosos por los materiales y la información que requieren, tanto para la experimentación biológica como para el procesamiento computacional. Se han creado en el mundo, e incluso en la UCLV, algunos programas que ayudan a resolver automáticamente estos problemas, pero ellos resuelven parcialmente el problema y siempre requieren de un intenso trabajo manual y del uso de otros productos profesionales de software, todo lo cual limita su aplicación generalizada por personas que no son especialistas en el tema y censura además su posible comercialización. La plataforma inteligente para aprendizaje automatizado Weka (Waikato Environment for Knowledge Análisis)(Witten, 2005, WITTEN and FRANK, 2005) es un ambiente de trabajo para la prueba y validación de algoritmos de la Inteligencia Artificial, además es una aplicación de código abierto, y tiene incorporadas muchas técnicas estadísticas, entre muchas otras que nos brindan la posibilidad de experimentar con ellas para investigar con cuáles se obtienen mejores resultados. El grupo de Bioinformática de nuestra Universidad trabaja en el desarrollo de nuevos modelos en esta temática. ANTECEDENTES En el año 2002 se crea el Grupo de Bioinformática en la Universidad Central “Marta Abreu” de Las Villas (UCLV) con objetivos específicos, que emprenden el estudio, desde el punto de vista matemático puro y estadístico, de estructuras algebraicas en el código genético con pretensiones de ayudar a predecir estructura, funciones, evolución o mutaciones en general. Estas investigaciones básicas obtienen un rápido éxito. El grupo de IA y de Bioinformática han trabajado en el desarrollo de nuevos modelos y herramientas de software que permitiera editar redes bayesianas. 2.
(17) Introducción creadas previamente por el usuario, y se utilizará como una concha probabilística para realizar inferencias (Chávez et al., 2002), lo que conlleva una validación desde distintos conjuntos de datos y su comparación con otros como árboles de decisión, redes neuronales, etc. Ello es doblemente importante para el Grupo de Bioinformática y en general para los grupos de investigación del Centro de Estudios de Informática. De una parte, en el desarrollo de nuevos algoritmos y códigos, se amplían las posibilidades de divulgar y utilizar internacionalmente los resultados. De otra parte, el trabajo en una tal plataforma permite ayudarse de todas las herramientas ya implementadas en la misma. por los fabricantes o los. desarrolladores, por lo cual, el laboratorio de Bioinformática y el de Inteligencia Artificial ha implementado y agregado al Weka algunos de estos algoritmos. Además como la información es cada día más creciente, heterogénea, diversa y dinámica y constituye una fuente importante de conocimiento, gestionarla es un reto de la Bioinformática y enfrentarlo en este dominio es un desafío aún mayor, ya que es necesario el desarrollo de sistemas de manipulación que contribuyan a dicha gestión. Por lo cual crear un ambiente de aprendizaje basado en una interfaz web que logre una mayor y fácil interactividad entre el sujeto y los algoritmos sobre redes bayesianas ya implementados, constituye nuestro. PROBLEMA. DE. INVESTIGACIÓN .. El problema de investigación se formula entonces a través del siguiente objetivo general: El. OBJETIVO GENERAL. de esta investigación consiste en desarrollar una interfaz. web que facilite la interacción de los sujetos con los algoritmos desarrollados en esta rama. Para cumplir el objetivo general se proponen los. OBJETIVOS ESPECÍFICOS. siguientes: Lograr la extensión de una interfaz web para el uso de los algoritmos desarrollados en este grupo de investigación. Diseñar la interfaz web. 3.
(18) Introducción Implementar la interfaz web Se formulan las preguntas de investigación siguientes: ¿Cómo potenciar con el uso de la interfaz web que utilice estos algoritmos una comunicación adecuada con investigadores, profesores y estudiantes? ¿Cómo realizar un diseño flexible de la aplicación web que responda a los requerimientos de la misma? Se formuló la siguiente hipótesis de investigación: Al desarrollar la aplicación web se facilitará la interconexión con el CEI y la comunidad científica, por lo que se proporcionará a los usuarios una forma natural y efectiva de apoyo educacional y en la investigación, pues la interacción es muy eficaz y favorecerá el rápido y constante acceso. ORGANIZACIÓN DE LA TESIS La tesis está organizada en tres capítulos: Capítulo1 Marco Teórico. Referente a los principales conceptos utilizados durante el desarrollo de la tesis, tales como, conceptos de Redes Bayesianas, sus tipos de aprendizajes y sus aplicaciones, se aborda acerca los Ambientes de Aprendizaje, los entornos web y se brinda una breve panorámica de las herramientas y software que se utilizan en el desarrollo del trabajo. Capítulo2 Análisis y Diseño del Sistema. Descripción del Sistema mediante el Lenguaje Unificado de Modelado (UML), diferentes diagramas que permiten el análisis del sistema como son: Diagrama de Casos de Uso, Diagramas de Clases, Diagrama de Actividades, Diagrama de Componentes y Diagrama de Despliegue. Además incluye la descripción de la interfaz de la aplicación. Capitulo3 Manual de Usuarios. Describe las opciones del Sistema, su funcionamiento y el modo de interactuar con este.. 4.
(19) 5.
(20) Capítulo I: Marco Teórico 1.1. REDES B AYESIANAS , DEFINICIONES.. Las Redes Bayesianas constituyen un formalismo muy atractivo de representación del conocimiento, resultado de la sinergia entre métodos probabilísticos-estadísticos de análisis de datos y técnicas de IA. Una red bayesiana es un par (D,P), donde D es un grafo acíclico dirigido, P( ). ∏. ( |. ( )) un. conjunto. de. n. probabilidad condicionales, una por cada variable ( ) es el conjunto de padres del nodo. distribuciones. de. (nodos del grafo), y. en D.. Las redes bayesianas (RB) también son conocidas como redes de creencia bayesianas; según (Stuart and Norvig, 1996), (Stuart and Norvig, 2003), se definen como un grafo acíclico dirigido, también se pueden referenciar como redes causales(Spirtes, 1993), (Pearl, 1993), redes de creencia, modelos recursivos, redes probabilistas (Charles River Analytics, 2004), aunque se puede asumir el término RB (Bouckaert, 1995).(Stuart and Norvig, 1996). Múltiples trabajos se pueden referenciar con alusión a la temática, algunas referencias (Heckerman, 1996), (Jensen, 1996), (Qi, 1995), (Castillo, 1997), (Minka, 2001), (Buntine, 1996), (Grau et al., 2004).. 1.2 APRENDIZAJE EN REDES B AYESIANAS El obtener una red Bayesiana a partir de datos, es un proceso de aprendizaje que consta de dos partes fundamentales, determinar la parte estructural de la red (o sea, los enlaces entre los nodos que representan las variables) y la parte paramétrica (las tablas de probabilidades asociadas a cada nodo). Típicamente, este problema se divide en dos aspectos: Aprendizaje estructural (AE): obtener la estructura de la RB, es decir, las relaciones de dependencia e independencia condicional entre las variables involucradas (pueden existir tres tipos de estructura de red: árboles, poli árboles y redes múltiplemente conexas). Aprendizaje paramétrico (Neapolitan): dada una estructura de RB, obtener las probabilidades a priori y condicionales requeridas. 6.
(21) Capítulo I: Marco Teórico. 1.2.1 Aprendizaje estructural. Las técnicas de AE dependen del tipo de estructura de red: árboles, poli árboles y redes múltiplemente conexas. Otra alternativa es combinar conocimiento subjetivo del experto con aprendizaje. Para ello se parte de la estructura dada por el experto, la cual se valida y mejora utilizando datos. En el trabajo se describen algunos algoritmos, que son los que obtienen la estructura de red bayesiana, en forma general, existen diversas técnicas para este tipo de aprendizaje en redes bayesianas, en dependencia de los tipos de estructuras de la red. Algoritmos tales como el algoritmo para árboles el cual se basa en el algoritmo desarrollado por (Chow and Liu, 1968) para aproximar una distribución de probabilidad por un producto de probabilidades de segundo orden. El algoritmo para poli árboles(Rebane and Pearl, 1988) el cual es una extensión del algoritmo de Chow y Liu (Chow and Liu, 1968) para poli árboles, este se basa en probar las relaciones de dependencia entre todas las tripletas de variables en el esqueleto. En el trabajo se describen los algoritmos de aprendizaje de redes múltiplemente conexas que son los que se podrás acceder a través de la aplicación Web que se pretende desarrollar.. Algoritmos para redes múltiplemente conexas Existen dos clases de métodos para el aprendizaje genérico de RB, que incluyen redes múltiplemente conexas. Éstos son: 1.. Métodos basados en medidas de ajuste y búsqueda.. 2.. Métodos basados en pruebas de independencia o basados en restricciones.. Dentro de los métodos basados en ajuste y búsqueda, se generan diferentes estructuras y se evalúan respecto a los datos utilizando alguna medida de ajuste. Estos métodos tienen dos aspectos principales: una medida para evaluar que tan buena es cada estructura respecto a los datos y un método de búsqueda que genere diferentes estructuras hasta encontrar la óptima, de acuerdo a la medida seleccionada. 7.
(22) Capítulo I: Marco Teórico Esta es la ventaja esencial de estos métodos respecto a los basados en restricciones, pues estos últimos encuentran un único modelo basado en la información categórica de la independencia condicional entre las variables. Entre los algoritmos de búsqueda, los clásicos son:. K2 (Cooper and. Herskovits, 1992), que opera en el espacio de los GDA que son compatibles con un orden dado y el algoritmo B de (Buntine, 1994), el cual no tiene en cuenta el orden de las variables. Los algoritmos K2 y B, no garantizan encontrar la solución óptima. Por otra parte, es cierto que el algoritmo K2 es uno de los más rápidos para aprendizaje en RB y puede utilizarse para problemas supervisados y no supervisados, pero depende del orden que se establece entre las variables. El algoritmo B al igual que el algoritmo K2 inicializa el conjunto de padres de un nodo como vacío. En el caso del algoritmo K2 la no existencia de ciclos lo garantiza el orden preestablecido en las variables; el algoritmo B por su parte, chequea en cada paso que no se formen ciclos. Ambos algoritmos verifican además que al añadir un nuevo arco, este mejore la medida de calidad que se emplea. El algoritmo K2 termina cuando al añadir un padre a una variable no incrementa la medida de calidad que se utiliza y ya no quedan más variables. Este algoritmo no garantiza obtener la red con mayor valor de probabilidad. Los algoritmos K2 y B, también tienen limitaciones, pues son algoritmos de búsqueda golosa con todas las limitaciones de la misma. El algoritmo K2 además está limitado por el orden que se debe establecer entre las variables. El algoritmo B está limitado también por las pruebas para la no existencia de ciclos. La complejidad computacional reportada para ambos algoritmos está basada en la complejidad por nodo y las veces que se aplica la métrica de calidad. A diferencia del enfoque basado en una medida global, se puede aplicar un enfoque basado en pruebas de independencia que usa medidas de dependencia local entre subconjuntos de variables. Entre los algoritmos más populares para el aprendizaje de RB basado en pruebas de independencias se encuentra el algoritmo PC (Power Constructor, Constructor eficiente) de (Spirtes and Meek, 1995). Estas pruebas de. 8.
(23) Capítulo I: Marco Teórico independencia resultan costosas y es obvio que se convierte en un problema sobre todo cuando se analizan problemas con muchas variables relacionadas. Como se ha mencionado, las posibilidades del uso de las RB se amplían si es posible realizar el aprendizaje de las mejores estructuras y parámetros. Ello es especialmente útil si se logra mejorar el aprendizaje estructural acorde con el dominio del campo de aplicación, en este caso la Bioinformática. Los enfoques propuestos hasta el momento para la primera tarea demuestran insatisfacción aún con las soluciones. Existen cuatro algoritmos que han sido publicados en detalles en diversas formas y resumidos en (Chávez et al., 2008a). Dos de ellos están basados en pruebas de independencia según el estadístico Chi-cuadrado y los otros dos en medidas de ajuste y búsqueda. Los cuatro algoritmos que se describen obtienen la estructura de una RB desde datos. En los dos primero se utiliza la prueba Chi-cuadrado para buscar las variables más significativamente relacionadas con la variable dependiente. El algoritmo ByNet, obtiene árboles de decisión basados en la técnica CHAID. El usuario es quién decide cuántos árboles obtener. Una vez que se construye el primer árbol se descarta el conjunto de variables que forman parte de él, lo cual contribuye a la reducción de variables. Este algoritmo tiene la limitante de que puede obtenerse un modelo asimétrico. Basados en las limitaciones del algoritmo anterior, surgió la idea del algoritmo BayesChaid, también para el aprendizaje estructural en RB, el cual obtiene dependencias entre las variables, no mediante los árboles de decisión completos, sino que se busca selectivamente a lo ancho y en profundidad en el árbol de todas las interacciones posibles(Chávez et al., 2008b). El tercer algoritmo BayesPSO es PSO binario, este difiere de manera notable con respecto a los otros dos. Es más complejo desde el punto de vista espacial, pues parte de estructuras de redes seleccionadas al azar y después de un proceso iterativo, se llega a la estructura final de la red. Además se obtienen. redes. múltiplemente. conexas. más. complejas,. esto. influye. directamente en la complejidad en la propagación de evidencias. Se ha demostrado que si el problema no tiene demasiados atributos (digamos, menos de 100) o se hace una selección previa de estos, el movimiento sobre el espacio de búsqueda garantiza obtener las mejores propiedades sobre la red 9.
(24) Capítulo I: Marco Teórico resultante. El cuarto algoritmo se basa en la optimización de colonias de hormigas. En general ninguno de los algoritmos para obtener la estructura de RB se considera mejor que otro, se debe decidir cuál es más conveniente usar. Esto depende del problema que se quiere resolver.. 1.2.2 Aprendizaje paramétrico El AP consiste en encontrar los parámetros asociados a una estructura dada de una RB. Dichos parámetros consisten en las probabilidades a priori de los nodos raíz y las probabilidades condicionales de las demás variables, dados sus padres. Si se conocen datos con todas las variables, es fácil obtener las probabilidades requeridas. Las probabilidades previas corresponden a las marginales de los nodos raíz, y las condicionales se obtienen de las conjuntas de cada nodo con su(s) padre(s). El aprendizaje paramétrico depende de las características de los datos que se utilicen, si se tiene en cuenta que estos pueden ser completos o no. Un obstáculo para la aplicación de las redes bayesianas es construir las redes cuando las bases de casos no están completas o cuando existe carencia de conocimiento que dificulta la construcción con ayuda de expertos humanos. Otra limitación consiste en la dificultad para explicar el razonamiento, pues los métodos y modelos que utiliza están aún lejos de ofrecer explicaciones comprensibles y satisfactorias para los expertos que pudieran utilizar las redes desarrolladas actualmente.. Aprendizaje paramétrico con datos completos El aprendizaje de los parámetros es simple cuando todas las variables son completamente observables en el conjunto de entrenamiento. El método más común es el llamado estimador de máxima verosimilitud, que consiste esencialmente en estimar las probabilidades deseadas a partir de la frecuencia de los valores de los datos de entrenamiento. La calidad de estas estimaciones dependerá de que exista un número suficiente de datos en la muestra. Cuando esto no es posible se puede 10.
(25) Capítulo I: Marco Teórico cuantificar la incertidumbre existente representándola mediante una distribución de probabilidad a priori, para así considerarla explícitamente en la definición de las probabilidades. Habitualmente se emplean distribuciones Beta (Saucier, 2000) en el caso de variables binarias, y distribuciones Dirichlet (Neapolitan, 1990) para variables multievaluadas. Esta aproximación es además útil cuando se cuenta con el apoyo de expertos en el dominio de aplicación para concretar los valores de los parámetros de las distribuciones. Si existen variables de tipo continuo la estrategia más habitual es discretizarlas antes de construir el modelo estructural. Existen algunos modelos de RB con variables continuas, pero están limitados a variables gaussianas relacionadas linealmente (Kenley, 1986). La mayoría de los modelos ya establecidos suponen variables discretas.. Aprendizaje paramétrico con datos incompletos Aparecen mayores dificultades cuando los datos de entrenamiento no están completos, por lo que existen varias alternativas para tratarlos. El primer caso es cuando existen valores faltantes, por lo cual se puede: 1. Eliminar los ejemplos con valores ausentes. 2. Considerar un nuevo valor adicional para la variable: ‘desconocido’. 3. Considerar el valor más probable a partir de los datos de la misma en las demás instancias. 4. Considerar el valor más probable en base a las demás variables (supone cierto estudio de correlación). El segundo tipo de información incompleta seria la aparición de nodos ocultos la cual requiere un tratamiento más complejo(Stuart and Norvig, 1996).. 1.3 LAS REDES B AYESIANAS COMO CLASIFICADORES Una RB puede ser utilizada como un clasificador en el caso particular en el que el nodo no evidenciado y a inferir es precisamente el que representa la variable clase o variable dependiente; en este caso se habla de un clasificador bayesiano.. 11.
(26) Capítulo I: Marco Teórico Cuando las RB se usan como clasificadores, se está en presencia de problemas de clasificación supervisada, pues la clase forma parte del conjunto de entrenamiento, o sea se conoce para cada objeto o ejemplo, la clase a la que pertenece (Larrañaga, 2000). Existen varios modelos de clasificadores bayesianos, tales como el algoritmo TAN (Tree Augmented Naïve Bayes), el cual es una red bayesiana en la que la variable a clasificar no tiene padres, mientras que el conjunto de variables padres de cada una de las variables predictoras, Xi, contiene necesariamente a la variable a clasificar, y a lo sumo otra variable. Este algoritmo propuesto por (Friedman et al., 1997) es una adaptación del algoritmo de (Chow and Liu, 1968) y calcula la información mutua entre cada par de variables dada la clase. El mismo garantiza. que la estructura obtenida tiene asociada la máxima. verosimilitud entre todas las estructuras TAN posibles. El modelo TAN está limitado por el número de padres de las variables predictivas. Otro es el k Dependence Bayesian classifier (kDB, clasificador bayesiano con k dependencias) (Sahami, 1996) el cual evita esta restricción pues una variable predictiva puede tener hasta k padres además de la clase. En (Pazani, 1996) se presenta un modelo en el que se reduce el número de probabilidades a considerar, para ello proponen usar dos algoritmos voraces, que se basan en la teoría de modelización hacia delante y hacia atrás (Larrañaga, 2000). Hay que tener en cuenta que cuando las RB se utilizan como un modelo clasificador, se hace necesario evaluar su desempeño. Para ello se utilizan criterios1 tales como: porciento de clasificaciones correctas, diferentes medidas del error, el índice de Kappa (Brender et al., 1994), medida F (Van Rijsbergen, 1979), y funcionales de calidad y error (Ruiz-Shulcloper, 2000), (Donald et al., 1994). Otra forma de evaluar el rendimiento de un clasificador es por las curvas ROC (Receiver Operator Curve, Curva de operación del receptor) (Fawcett, 2004).. 1. Indistintamente se utilizan los términos criterio o medida para hacer referencia. a los aspectos cuantitativos o cualitativos a considerar en la evaluación. 12.
(27) Capítulo I: Marco Teórico No existe un modelo clasificador mejor que otro de manera general; para cada problema nuevo es necesario determinar con cuál se pueden obtener mejores resultados.. 1.4 APLICACIONES Como se ha argumentado, las RB constituyen un formalismo muy atractivo de representación del conocimiento, resultado de la sinergia entre métodos probabilísticos-estadísticos de análisis de datos y técnicas de IA. Ellas se han aplicado con éxito en muy diversos campos, para modelar la incertidumbre en sistemas expertos, para resolver problemas de clasificación, predicción, inferencia, sistemas de toma de decisiones, entre otros. Las áreas de aplicación pueden ser cualquiera en la que se tiene información incompleta e incierta. La Bioinformática no se exceptúa como campo de aplicación. Siempre que surge la necesidad de extraer información desde datos, en presencia de incertidumbre, datos ruidosos o sujetos a errores, los métodos bayesianos son ampliamente utilizados por las ventajas que ofrece sobre las técnicas estadísticas convencionales (Jeroen et al., 2008), (Silva and Muñoz, 2000). Por tanto, no resulta ninguna sorpresa que las RB se apliquen ampliamente en la actualidad a los campos de la genética, la genómica, sistemas biológicos, etc. donde este tipo de datos complejos es una norma. Se mencionarán sólo algunos ejemplos. En (Pe’er et al., 2001) se presenta una RB de interacciones entre genes (interacciones de causalidad, mediación, activación, e inhibición). También han sido ampliamente utilizadas en (Wu et al., 2006) para redes de interacciones de proteínas en hongos utilizando solamente anotaciones de genes ontólogos. En humanos hay resultados muy interesantes con RB en (Scott and Barton, 2007) y en (Troyanskaya et al., 2003) se usan las RB para predicción de función de genes desde distintas fuentes de datos en la levadura (Saccharomyces cerevisiae).En general se han logrado buenos resultados. También debido al desarrollo que han alcanzado estos métodos bayesianos se ha hecho preciso la creación de múltiples productos de software para el uso de las técnicas brindadas por las RB.. 13.
(28) Capítulo I: Marco Teórico Los primeros resultaron costosos, pues fueron el resultado de grandes proyectos de investigación como por ejemplo: Netica, Elvira2, Hugin (Madsen et al., 2005). En (Murphy, 2005) se hace una comparación detallada de 46 productos de software de RB, en (KDnuggets, 2008) se hace una descripción de otros productos discretizados en software propietario y software libre. En (Charles River Analytics, 2004) se describe el software BNet: familia de herramientas para construir y usar redes de creencia (se utiliza como ayuda en la predicción y visualización del pronóstico del tiempo). Incluye dos productos: BNet.Builder: Para crear RB, entrar información y obtener resultados. BNet.EngineKit: Para incluir la tecnología de las RB en nuestras aplicaciones. En el grupo de Bioinformática se utiliza el software libre Weka al que se le han hecho extensiones de algoritmos presentados de RB, (Moya, 2007). Como se había referenciado anteriormente, se han creado diversos software para la utilización de las técnicas desarrolladas en redes bayesianas; pero como la información es cada día más creciente, heterogénea, diversa y dinámica; y constituye una fuente importante de conocimiento, gestionarla es un reto de la Bioinformática por lo que enfrentarlo en este dominio es un desafío aún mayor, ya que es necesario el desarrollo de sistemas de manipulación que contribuyan a dicha gestión. En este trabajo se trata de resolver este problema mediante un ambiente de aprendizaje basado en una interfaz Web. Es necesaria la actualización de nuevos ambientes utilizando la tecnología ya que las nuevas generaciones exigen más este sistema. Los nuevos ambientes permiten alcanzar un gran desarrollo investigativo por medio de herramientas tecnológicas. Los avances en la definición de la Web permitirán proporcionar significado a la información sobre la red, tanto para la máquina como para el usuario. Un. 2. Elvira es fruto de un proyecto de investigación, en el que participan investigadores de varias universidades españolas y de otros centros. Está destinado a la edición y evaluación de modelos gráficos probabilistas, concretamente RB y diagramas de influencia. Está escrito y compilado en Java, lo cual permite que funcione en diferentes plataformas y sistemas operativos (MS-DOS/Windows, Linux, Solaris, etc.). 14.
(29) Capítulo I: Marco Teórico subconjunto importante de esa información lo representan los Ambientes de Web. El aprendizaje basado en la Web introduce nuevas variaciones en los modelos o supuestos de la educación y la investigación formal.. 1.5 ENTORNOS WEB La gran cantidad de información disponible, su complejidad, junto con las distintas características de los usuarios que acceden a dicha información, así como la gran competencia existente hoy en día, hacen que el desarrollo de aplicaciones basadas en Web, contemple aspectos de funcionalidad y usabilidad con profesionalismo. Las interfaces Web incorporan. retos distintos. al del software tradicional, ya que su naturaleza es más dispersa y heterogénea. La tecnología Web ha sido ampliamente difundida en todo el mundo en los últimos años. Los protocolos, interfaces y servicios que proporciona han sido establecidos como estándares para el intercambio de información. Gracias a la vinculación. entre. sí. de. documentos. afines,. esta. tecnología. facilita. enormemente la interacción con la información por parte de sus usuarios. La versatilidad de una Web y la rapidez con que ha sido adoptada esta tecnología, radica en lo difícil que fue para los usuarios compartir documentos complejos en el pasado, sobre todo si se trabajaba en un ambiente donde prevalecía la heterogeneidad en hardware y software. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios Web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Estos servicios pueden ser usados internamente por una aplicación o ser publicado en Internet. Además permiten la ejecución de sus funcionalidades sin importar la plataforma, sistema operativo, o lenguaje en el cual estén implementados. Gracias a ello podemos hacer que sistemas heterogéneos trabajen conjuntamente como una sola aplicación computacional y también constituyen una potente herramienta para el desarrollo de aplicaciones distribuidas. 15.
(30) Capítulo I: Marco Teórico Una aplicación con una capa de presentación elaborada para ser consumida desde un navegador Web, permite ser usada en cualquier sistema operativo, convirtiéndose en una aplicación multiplataforma que puede ser visualizada por cualquier número de computadoras a la vez y de forma independiente. Trae consigo además, facilidad de uso, versatilidad y velocidad de interfaz (Yuen and Lau, 2003). Una página de Internet o página Web es un documento electrónico adaptado particularmente para el uso en internet, estas contienen información específica de un tema en particular y que es almacenado en algún sistema de cómputo que se encuentre conectado a la red mundial de información denominada Internet, de tal forma que este documento pueda ser consultado por cualquier persona que se conecte a esta a internet. Una página Web tiene la característica peculiar de que el texto se combina con imágenes para hacer que el documento sea dinámico y permita la ejecución de diferentes acciones, una tras otra, a través de la selección de texto remarcado o de las imágenes, acción que nos puede conducir a otra sección dentro del documento, abrir otra página Web Las páginas web son sistema de documentos enlazados y accesibles a través de Internet, que pueden contener texto, imágenes, vídeos, etc. Un sitio Web es un grupo de páginas Web, generalmente comunes a un dominio de Internet. Estas son accedidas desde una URL (del inglés Uniform Resource Locutor) raíz común llamada portada, que es una secuencia de caracteres, de acuerdo a un formato estándar, usada. para nombrar recursos, como documentos e. imágenes, por su localización. Esa dirección es única para cada uno de los recursos de información disponibles en Internet. Una página web es una herramienta ofrecida por internet para la presentación y construcción de datos, cuyo objetivo es proveer acceso uniforme y fácil a cualquier tipo de información. Es un cuerpo de referencia, un espacio de común conocimiento. La capacidad para actualizar y mantener aplicaciones Web sin distribuir ni instalar software en las computadoras de los clientes es la razón clave de su popularidad que provoca a su vez, que la mayoría de los clientes no necesiten 16.
(31) Capítulo I: Marco Teórico entrenamiento adicional para manipular la interfaz de la aplicación. Además, alojando la aplicación en un servidor Web, se logra una disponibilidad total del producto. El éxito de un sitio depende de varias características tales como: navegación, estética, búsqueda, contenido, facilidad de aprender, eficiencia en el uso y fácil de recordar. La facilidad de uso de un entorno Web está completamente relacionada con el diseño del mismo. El sitio debe estar construido de forma tal que los usuarios sepan qué hacer en cualquier momento y cómo hacerlo, facilitándoles el aprendizaje de sus características en el menor tiempo posible. Los entornos Web ofrecen muchas facilidades ya que han permitido un flujo de comunicación global a una escala sin precedentes en la historia humana, pues personas separadas en el tiempo y el espacio, pueden intercambiar, incluso desarrollar mutuamente, sus pensamientos, o alternativamente sus actitudes y deseos cotidianos. Gracias a su carácter virtual, la información en la Web puede ser buscada más fácil y eficientemente que en cualquier medio físico, y mucho más rápido de lo que una persona podría recabar por sí misma a través de un viaje, correo, teléfono, telégrafo, o cualquier otro medio de comunicación. Como se ha comentado, la Web consiste en millones de documentos conectados entre sí. Para asegurar que todos los usuarios puedan leer y visualizar el contenido de cada documento, los diseñadores de las páginas Web crean los documentos usando un lenguaje de formateo especial llamado HTML. El lenguaje HTML (Hyper Text Mark-up Language, por sus siglas en inglés) (Servati, 1996:20) es el lenguaje del World Wide Web. Todos los sitios Web lo usan para desplegar su información.. 1.5.1 Tipos de páginas web Según el tipo o grado de interactividad son: Páginas estáticas (Solo nos sirven para informar de forma estática, es decir muy simple sin movimiento alguno). 17.
(32) Capítulo I: Marco Teórico Páginas dinámicas ( Estas páginas son interactivas contienen videos, archivos de flash y varias aplicaciones ) Páginas de ABMC (son páginas transaccionales que sirven para cargar datos, editarlos o borrarlos, y también para efectuar operaciones simples o complejas: eje: login de usuarios) Las páginas web generadas dinámicamente, generalmente son páginas de resultados de búsqueda (donde. el. visitante. "filtra". datos. o. información. que. desea. recibir/encontrar) Se han desarrollado varios lenguajes que permiten darle una mayor funcionalidad al HTML debido a su desventaja principal de ser usado primordialmente para generar. documentos o páginas Web estáticos. Estos lenguajes se pueden. clasificar en “guiones” (o scripts) que se ejecutan localmente en el navegador dependiendo de sus capacidades, como son Javascript y VBscript; y otros que se ejecutan en el servidor Web en donde residen las páginas. Entre estos últimos podemos mencionar Java, ASP, PERL, controles ActiveX y otros más. Además, existen interfaces que se ejecutan en el servidor y que sirven para intercambio de información entre las páginas Web y alguna otra aplicación, principalmente de bases de datos, como son las CGI (Common Interface Gateway, por sus siglas en inglés). Seleccionar la tecnología adecuada es determinante para lograr implementar y luego mantener un sitio Web exitoso.. 1.6 HERRAMIENTAS Y TECNOLOGÍAS Como. se. mencionaba. anteriormente. existen. diversas. tecnologías. y. herramientas para alcanzar un eficiente desarrollo y una mayor funcionalidad en una aplicación web. En nuestro trabajo se han utilizado diversas tecnologías y herramientas, las cuales algunas han sido propuestas por los directores del proyecto y otras han sido incorporadas durante la realización de este para solucionar los problemas que surgían en la realización del mismo. El IDE de desarrollo utilizado para este proyecto ha sido el entorno Eclipse. Eclipse tiene una fácil integración (mediante plugins) con las tecnologías y herramientas que a priori se iban a utilizar en la realización de este Proyecto.. 18.
(33) Capítulo I: Marco Teórico Se ha utilizado la herramienta Weka como entorno para manipular y modificar la aplicación. Gracias a esta herramienta se han podido utilizar algunas clases de la ontología para adecuarlas al proyecto. Al tratarse de una aplicación web, se ha utilizado Smart GWT durante las fases del desarrollo. Esta aplicación, que se puede integrar dentro de Eclipse permite al desarrollador crear los módulos de la aplicación de forma rápida y cómoda.. 1.6.1 Herramientas Eclipse es una comunidad de código abierto cuyos proyectos se enfocan hacia la creación de una plataforma de desarrollo extensible, tiempos de ejecución y los entornos de aplicación para crear, desplegar y gestionar software durante todo su ciclo de vida. Eclipse es normalmente conocido como un Java IDE, pero es mucho más que un IDE para Java.. Para desarrollar el código del proyecto se ha usado el IDE Eclipse Galileo con los plugins de JEE. También se ha instalado un plugin para poder tener subversión integrada en el IDE. La elección de esta versión de eclipse se debió a que si bien existían otras versiones del IDE esta nos permitía de una manera satisfactoria integrarse con las tecnologías que se iban a usar para el desarrollo del proyecto.. 1.6.2 Tecnologías Para la implementación de la aplicación web se han utilizado diferentes tecnologías y lenguajes de programación para implementar la parte gráfica y la lógica del portal web. A continuación se van a comentar las diferentes tecnologías usadas en la implementación de este Proyecto.. Para el diseño de la interface de nivel de presentación se ha utilizado Smart GWT.. 19.
(34) Capítulo I: Marco Teórico Java como lenguaje de desarrollo. Java es un lenguaje de programación orientado a objetos, multiplataforma y muy fácil de aprender para aquellos que se inician en él, liberado bajo licencia GPL.. Ventajas . Es una fuente abierta, así que los usuarios no tienen que luchar con los impuestos sobre patente pesados cada año. . Independiente de la plataforma. . El poder de Java API se alcanza fácilmente por los reveladores. . Java realiza la colección de basura de las ayudas, así que la gerencia de memoria es automática. . Java asigna siempre objetos en el apilado. . Java abrazó el concepto de especificaciones de la excepción. . lengua de la ayuda de la Multi-plataforma y ayuda para los tela-servicios. . Usando Java podemos desarrollar aplicaciones web dinámicas. . Permite que usted cree programas modulares y códigos reutilizables. GWT (Google Web Toolkit) para el entorno visual. Google Web Toolkit (GWT) es un framework creado por Google bajo Licencia Apache v2.0 que permite crear aplicaciones AJAX en el lenguaje de programación Java que son compiladas posteriormente por GWT en código JavaScript ejecutable optimizado que funciona automáticamente en los principales navegadores. En GWT sólo se utiliza un lenguaje de programación, lo que hace que los programadores puedan dominar el trabajo de todas las capas y moverse por las mismas sin necesidad de especializarse en una determinada, algo muy útil cuando el equipo de desarrollo es pequeño. Permite que el desarrollo pueda dividirse en módulos de trabajo, según las funcionalidades que se agrupen, en lugar de capas como presentación y negocio. Todo ofrece la ventaja de que el conocimiento se encuentre compartido en el equipo, base necesaria para la utilización de una metodología de desarrollo ágil.. 20.
(35) Capítulo I: Marco Teórico GWT es capaz de emular en Javascript los paquetes más básicos de Java java.lang o, en parte, java.util para llevar a cabo la parte no visual de las aplicaciones. Para la parte visual, GWT ofrece un completo soporte capaz de realizar prácticamente cualquier tipo de aplicación, ofreciéndose un completo conjunto de widgets, como botones, tablas o árboles, que son organizados mediante un amplio abanico de paneles( R. Hanson y A. Tacy, 2007). A partir de ese código, se genera el código Javascript equivalente para poder mostrar la aplicación en el navegador. Con GWT se puede depurar el código que se ejecuta en el navegador en el propio entorno de desarrollo, como si de código Java nativo se tratara.. GWT ofrece distintas maneras de crear widgets personalizados. La forma más fácil es crear widgets compuestos por grupos existentes widgets básicos y añadiendo una lógica de interacción con ellos. También es posible desarrollar widgets utilizando las interfaces Java de bajo nivel de utilizadas por los propios componentes GWT estándar o las interfaces de muy bajo nivel de JavaScript. Al crear un widget personalizado es necesario encontrar su lugar en la jerarquía de clases de GWT.. GWT también da la posibilidad de hacer que las aplicaciones diseñadas tengan acceso a una parte externa alojada en un servidor. GWT ofrece dos maneras diferentes para comunicarse con un servidor vía HTTP. Utilizar el framework GWT RPC para hacer transparente las llamadas a los servlets Java y dejar que GWT se ocupe de detalles de bajo nivel como la serialización de objetos. Alternativamente, se pueden utilizar las clases GWT HTTP client para construir y enviar peticiones HTTP personalizadas.. La arquitectura de GWT está basada en cuatro componentes principales. Compilador GWT Java-a-JavaScript: El Compilador GWT Java-aJavaScript traduce del lenguaje de programación Java a JavaScript. El compilador se utiliza cuando necesites correr tu aplicación en modo web.. 21.
(36) Capítulo I: Marco Teórico Navegador web hosted de GWT: El Navegador web hosted de GWT permite correr y ejecutar GWT aplicaciones en modo hosted, donde lo que estás corriendo son bytecodes de Java sobre una máquina virtual sin compilarlos a JavaScript. Para lograr esto, el navegador GWT incrusta un controlador de browser especial (un control del Internet Explorer sobre Windows o un control de Gecko/Mozilla sobre Linux) con hooks dentro de la máquina virtual de Java. Emulación de librerías JRE: GWT contiene implementaciones en JavaScript de las librerías de clases más usadas en Java, incluyendo la mayoría de las clases del paquete java.lang y un subconjunto de clases del paquete java.util. El resto del estándar de librerías de Java no es soportado nativamente con GWT. Librería de clases de interfaz de usuario de GWT: Las librerías de clases de interfaz de usuario de GWT son un conjunto de interfaces y clases personalizadas que te permiten crear widgets para el navegador, como botones, cajas de texto, imágenes, y texto. Éste es el núcleo de las librerías de interfaz de usuario para crear aplicaciones GWT.. Las principales ventajas de GWT son: No se necesitan mucho conocimiento de otros lenguajes( Javascript) . Se utiliza el lenguaje de programación java.. . Esto permite tener todas las ventajas de dicho lenguaje y utilizar una gran cantidad de herramientas disponibles para el mismo.. Los errores comunes de JavaScript son capturados por el programador durante compilación en vez de por los usuarios durante ejecución. No se necesita trabajar con las incompatibilidades de los navegadores. No se necesitan mucho conocimiento del DOM API. . Se utiliza Java API.. Compatible con varias herramientas para desarrollar, depurar y probar las aplicaciones. 22.
(37) Capítulo I: Marco Teórico Integración con JUnit. Internacionalización. Depuración en tiempo real.. Desventajas de GWT. No es un enfoque estándar de HTML y JavaScript. . La generación automática de HTML podría hacer más difícil uso de herramientas estándares de HTML y CSS.. . No se utiliza directamente código JavaScript en el HTML. Solo para desarrolladores Java. . Muchos entornos Ajax permiten utilizar JavaScript en el cliente y luego elegir el lenguaje en el servidor. GWT se encuentra basado enteramente en Java.. Enfoque Inusual. . Lo cual hace que la evaluación y administración sea más difícil.. 1.7 CONCLUSIONES PARCIALES En el presente capítulo se presentaron los fundamentos teóricos relacionados con el concepto de Redes Bayesianas, se analizaron los problemas actuales que existe hoy con la información y el uso de las aplicaciones en RB. Se mostró la posible utilización de los ambientes de aprendizajes basados en Web y las ventajas que esto presenta como solución a esta problemática. Además se estudiaron las técnicas, herramientas y tecnologías principales que contribuirán con el desarrollo de la interfaz Web de la aplicación. En el siguiente capítulo se describe el diseño y la implementación de la interfaz.. 23.
(38) 24.
(39) Capítulo II: Marco Metodológico 2. DISEÑO E IMPLEMENTACIÓN DEL AMBIENTE WEB. Los. ambientes de aprendizajes permiten alcanzar un gran desarrollo. investigativo por medio de herramientas tecnológicas, por tanto los nuevos ambientes basados en la Web introducen nuevas variaciones en los modelos o supuestos de la educación y la investigación formal. Pero estas páginas web implican una metodología específica para su diseño y desarrollo. Existen una serie de elementos a incluir en una Web y una sucesión de técnicas para colocarlos en esta. Sin embargo, la tarea de crear un sitio web (Gonzales y Cordero, 2001), no consiste en recopilar texto, imágenes y sonido e irlos insertando con el editor de portal web favorito; es fácil inferir que un buen diseño deberá ser comprensible, fácil de usar, amigable, claro, intuitivo y de fácil aprendizaje para el usuario. Para poder asegurar que un diseño cumple con estos requisitos no basta simplemente con una actitud empática del diseñador durante el desarrollo de la aplicación; es imprescindible la adopción por parte de éste de técnicas, procedimientos y métodos que aseguren empíricamente la adecuación del diseño a las necesidades, habilidades y objetivos del usuario. Diseñar implica, definir los objetivos del sitio, definir la estructura de las páginas, diseñar la interacción con el usuario y diseñar la interfaz gráfica. En este capítulo se exponen mediante el uso del lenguaje UML los procesos para el diseño de nuestro ambiente web. Se tocan además conceptos básicos relacionados con el tema.. 2.1 AMBIENTE. DE. APRENDIZAJE. DE. REDES B AYESIANAS. BASADO EN. WEB. Todo proyecto comienza con una planificación. En esta fase de definición de requerimientos se deben especificar los objetivos del producto a desarrollar, necesidades de los usuarios, cómo el producto va a satisfacer estas necesidades, y cuáles son los requerimientos técnicos para este fin (Olshavsky,. 25.
(40) Capítulo II: Marco Metodológico 2002). Por lo tanto, en esta etapa se deben identificar los objetivos y necesidades, que accederán al producto. El Ambiente. de. Aprendizaje. de. redes bayesianas basado. en. web. (BayesNetWeb) fue concebido con el fin de apoyar a los sujeto o investigadores en el uso de algoritmos sobre redes bayesianas. El hecho de ser implementado para la web permite ser accedida simultáneamente y en tiempo real desde cualquier lugar, reflejando los cambios automáticamente. El sistema tiene como antecedentes varias aplicaciones para el uso de los algoritmos antes referenciados, contando así con una actualización de estos algoritmos al software Weka desarrolladas en el grupo de investigación de Bioinformática de la UCLV, por lo que fue necesario implementarlo para una web cumpliendo el objetivo de ser utilizado sin la necesidad de tener la aplicación en su dominio. BayesNetWeb cuenta con dos aplicaciones que de forma íntegra cumplen con la ejecución de los algoritmos de redes bayesianas implementados: la interfaz de la aplicación la cual interactúa con el investigador y el software Weka en el que se encuentran los algoritmos desarrollados. Esta aplicación tiene como objetivos principales proporcionar la facilidad de que el usuario pueda a ella desde cualquier lugar, y así poder este sujeto preparar y utilizar los algoritmos implementados en la misma. Confrontando esta información se definen los requerimientos de nuestro sitio web. Se necesita un entorno Web que soporte java, el cual permita la ejecución de los algoritmos a utilizar en la aplicación. El sistema debe permitir también un fácil manejo de la información. Por otra parte, el diseño visual debe ser sobrio y atractivo y de fácil interacción. De forma más específica, el sistema debe: Facilitar la gestión de los datos que se relacionen con la aplicación.. 26.
(41) Capítulo II: Marco Metodológico Propiciar la utilización de los algoritmos implementados. Poseer un diseño visual acorde con la función que desempeñará.. 2.2 DESARROLLO DE LA APLICACIÓN. Para la mayoría de los usuarios "la interfaz es la aplicación" es la parte que ven y a través de la cual interactúan (Hartson, 1998) , debemos entender que la usabilidad de la aplicación depende no sólo del diseño del interfaz, sino también de su arquitectura, estructura y organización, en otras palabras, del componente no visible del diseño. El desarrollo de un sistema con gran cantidad de software requiere que este sea visto desde diferentes perspectivas. Diferentes usuarios siguen disímiles actividades en distintos momentos del ciclo de vida del proyecto, lo que da lugar a las diferentes vistas del proyecto, dependiendo de qué interese más en cada instante de tiempo.. 2.2.1 Arquitectura La arquitectura es el conjunto de decisiones significativas sobre: La organización del sistema Selección de elementos estructurales y sus interfaces a través de los cuales se constituye el sistema. El Comportamiento, como se especifica las colaboraciones entre esos componentes. Composición de los elementos estructurales y de comportamiento en subsistemas progresivamente más grandes. El estilo arquitectónico que guía esta organización: elementos estáticos y dinámicos y sus interfaces, sus colaboraciones y su composición. La arquitectura no debe centrarse únicamente en la estructura y en el comportamiento, sino que abarque temas como el uso, funcionalidad, rendimiento, capacidad de adaptación, reutilización, capacidad 27. para ser.
(42) Capítulo II: Marco Metodológico comprendida, restricciones, compromisos entre alternativas, así como aspectos estéticos. Para ello se sugiere una arquitectura que permita describir mejor los sistemas desde diferentes vistas, donde cada una de ellas es una proyección de la organización y la estructura centrada en un aspecto particular del sistema. El desarrollo de la aplicación BayesNetWeb se basa en una arquitectura cliente/servidor y su funcionamiento básico se muestra a continuación.. Figura 1 Estructura general del sistema. Cliente web: Permite el acceso a los módulos de la aplicación BayesNetWeb. El primer módulo (de izquierda a derecha) incluye la visualización del pre procesamiento de la información a utilizar en la aplicación. El segundo módulo se dedicada al control y gestión de los algoritmos de redes bayesianas brindados implementados en el Weka. Al acceder a la aplicación el cliente puede realizar la preparación de la información, para luego en el segundo módulo hacer la petición del algoritmo a 28.
(43) Capítulo II: Marco Metodológico utilizar en el cliente. Esta petición ya formal, se reenvían al servidor el cual envía la respuesta de forma dinámica. Las peticiones del cliente se envían a través del servicio RPC. Servidor de Aplicaciones: Permite el acceso a los módulos de la aplicación Weka. Cuando las peticiones del algoritmo a utilizar se envían al servidor, este se comunica con el paquete del Weka para manipular las herramientas de Redes Bayesianas implementadas en este. A continuación se describe cada uno de los elementos que participan en la implementación de la aplicación: Plataforma de desarrollo: JDK 1.7.0 Lenguaje de desarrollo: Java IDE de desarrollo: Eclipse Galileo Bibliotecas utilizadas: Smart GWT y Weka. 2.2.2 Interacción entre el usuario y el sistema La vista de casos de uso comprende la descripción del comportamiento del sistema tal y como es percibido por los usuarios finales, analistas y encargados de las pruebas, estos muestran la relación entre los actores y los casos de uso del sistema. Un diagrama de casos de uso consta de los siguientes elementos: Actor, Casos de Uso y Relaciones. Cuando el usuario accede al ambiente Web, hace la solicitud para cargar la base de datos obteniendo la información básica para el sistema. Luego tiene la posibilidad de escoger el algoritmo deseado para así aplicarlo a los datos obtenidos y poder interpretar las soluciones devueltas. En este ambiente estos casos de uso se encargan de gestionar la información necesaria para el sistema, además de poder seleccionar el algoritmo deseado a ejecutar y así llegar a la solución deseada.. Los casos de uso son: Cargar los datos necesarios. 29.
(44) Capítulo II: Marco Metodológico Definir el algoritmo a emplear. Ejecutar el algoritmo optado. Analizar los resultados.. Figura 2 Diagrama de casos de usos. El actor que interactúa con el sistema es el sujeto o investigador que necesita la información devuelta por la aplicación. La vista de los estados comprende la descripción de una máquina de estados compuesta por los estados, transiciones, eventos y actividades de la aplicación. Estos diagramas muestran la secuencia de estados por los que pasa bien un caso de uso, bien un objeto a lo largo de su vida, o bien todo el sistema. En él se indican qué eventos hacen que se pase de un estado a otro y cuáles son las respuestas y acciones que genera. El estado en el que se encuentra un objeto determina su comportamiento, en general cubren la vista dinámica del sistema. Cuando el usuario inicia la aplicación inicialmente tiene que cargar el archivo con la base de datos, obtenida la información de los datos puede o no escoger. 30.
(45) Capítulo II: Marco Metodológico por el algoritmo que desee utilizar en su proyecto para luego ejecutado este, analizar los resultados y así tener una conclusión parcial o final de su objetivo.. Figura 3 Diagrama de estados. La vista de las actividades se centra en mostrar el flujo de actividades dentro de un sistema, son un tipo especial de diagramas de estados. Los diagramas de actividades cubren también la parte dinámica de un sistema. Cuando el usuario necesita utilizar la aplicación para analizar los resultados del algoritmo deseado, primeramente debe gestionar la información a utilizar, lo que conlleva a la acción de ingresar la base de datos, en ese momento el sistema se encarga de preparar la información, al estar disponible o preparada la información el sujeto puede seleccionar o no el algoritmo a emplear. Al iniciar la ejecución el sistema activa y ejecuta el algoritmo, cuando termina la ejecución se muestran los resultados devueltos por el mismo finalizando así esta actividad. 31.
(46) Capítulo II: Marco Metodológico. Figura 4 Diagrama de Actividades. La Vista de implementación comprende los componentes y los archivos que un sistema utiliza para ensamblar y hacer disponible el sistema físico. Se ocupa principalmente de la gestión de configuraciones de las distintas versiones del sistema, los aspectos estáticos se capturan con los diagramas de componentes. Los diagramas de componentes representan cómo un sistema de software es dividido en componentes y muestra las dependencias lógicas entre estos componentes. Los diagramas de componentes describen los elementos físicos del sistema (incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes.) y sus relaciones muestran las opciones de realización incluyendo código fuente, binario y ejecutable. En general, muestran la organización y las dependencias entre un conjunto de componentes. El sistema está compuesto por diferentes componentes como se abordaba anteriormente: BayesNetWeb que es la interfaz gráfica del ambiente de aprendizaje basado en web, donde el usuario podrá intercambiar información 32.
(47) Capítulo II: Marco Metodológico con la aplicación y weka que ha sido concebido como un software libre de código abierto, bajo la licencia GPL. Esta característica influye potencialmente en su manipulación, reusabilidad y extensión gracias a que no solo se dispone de él como software, sino que se cuenta con los códigos fuentes originales así como del permiso para modificarlo según la conveniencia del usuario. Ello facilita que los programas de estos hagan uso de sus herramientas, algoritmos y funcionalidades, además de poder hacerle variaciones o ajustes según sus necesidades. Sus paquetes de clases están bien organizados lo que hace muy fácil la utilización de sus funcionalidades y esta aplicación contiene todas las clases necesarias para la interacción con los algoritmos a utilizar en la aplicación.. Figura 5 Diagrama de componentes. La vista de despliegue de un sistema contiene los nodos que forman la topología hardware sobre la que se ejecuta el sistema. Se preocupa principalmente de la distribución, entrega e instalación de las partes que constituyen el sistema. Los diagramas aquí utilizados se encargan de modelar el hardware utilizado en las implementaciones de sistemas y las relaciones entre sus componentes. Los elementos usados por este tipo de diagrama son nodos, componentes o artefactos y asociaciones. En general, representan la configuración de los nodos de procesamiento en tiempo de ejecución y los componentes que residen en ellos. Muestran la vista de despliegue estática de 33.
(48) Capítulo II: Marco Metodológico una arquitectura y se relacionan con los componentes ya que, por lo común, los nodos contienen uno o más componentes.. Figura 6 Diagrama de despliegue. 2.2.3 Interfaz gráfica En esta fase se especifica el aspecto visual del sitio web: composición de cada tipo de página, aspecto y comportamiento de los elementos de interacción. El sistema tiene un diseño muy interactivo y fácil para el usuario. El diseño de BayesNetWeb está formado por una vista principal la cual tiene en su estructura un panel de navegación en el cual se tiene un acceso más directo y preciso a las diferentes subpáginas de la aplicación. El diseño de la aplicación fue desarrollada en la plataforma Eclipse el cual proporciona una serie de utilidades que permite de una manera satisfactoria la integración con las tecnologías usadas en el proyecto. Las tecnologías utilizadas para el diseño de la interface de nivel de presentación fueron las. 34.
(49) Capítulo II: Marco Metodológico brindadas por Smart GWT que junto con el lenguaje de programación Java desarrolla. un. código. JavaScript. ejecutable. optimizado. que. funciona. automáticamente en los principales navegadores. La vista de diseño comprende las clases, interfaces y colaboraciones que forman el vocabulario del problema y de la solución. Esta vista soporta principalmente los requisitos funcionales del sistema, o sea, los servicios que el sistema debe proporcionar. El grupo de clase y objetos están distribuidas por paquetes de forma tal que fuese sencillo en un futuro una actualización del software. La clase principal index distribuye el cuerpo general de la aplicación. Las demás clases cada una cumpliendo con su objetivo en particular son las que le dan vida al sistema. Entre las clases más importantes se encuentran body, la cual contiene las subpáginas de la aplicación, la principal y la de la ayuda. También existe una clase llamada SideNavTree la cual contiene el diseño del panel de navegación y sus componentes. El cuerpo de la aplicación se desarrolla en la clase explorador y las especificaciones en el diseño de esta interfaz se crean en las subclases preprocess y classify para así darle el formato completo y dinámico a la aplicación. En estas clases se desarrolla toda la vista de la información, es decir, en la primera clase se crean todos los componentes para el pre procesamiento de los datos y luego en la segunda se desarrollan los módulos que se encargan de preparar y utilizar el algoritmo. algoritmos utilizamos el software Weka.. Entre. Para. el uso de los. sus clases utilizadas. encontramos Instances, Eval, BayesNet las cuales nos proporcionan la interacción con los algoritmos a utilizar. Se desarrollaron otras clases pero solo con el fin de perfeccionar el diseño del ambiente. En general la aplicación está distribuida por un grupo de clases heterogéneas y de fácil uso.. 35.
(50) Capítulo II: Marco Metodológico. Figura 7 Vista de clases. 2.2.4 Estructura de las páginas Como se declaró anteriormente el sistema está formado por la página principal, la cual contiene un grupo de subpáginas cada una con un objetivo. La primera página es la de inicio o presentación de la aplicación donde tendremos una pequeña información acerca del software y el uso de los algoritmos previstos en él. Luego tendremos la página de la aplicación y después una página de 36.
(51) Capítulo II: Marco Metodológico ayuda o guía para la aplicación donde encontraremos un manual de ayuda de usuario. La página de la aplicación en la cual el usuario podrá realizar todos los objetivos propuestos en este sistema, está dividida en dos partes, la primera en la cual condicionas los requisitos para la utilización de la información y la otra parte donde ya inicialmente con la información adquirida puedes seleccionar o no el algoritmo a utilizar y una vez ejecutado este analizar la información resultante en este proceso. La página donde se condiciona la información a utilizar, previa para acceder a los algoritmos tiene en su cuerpo un botón que permite la subida de la información al sistema, al ser presionado este muestra una ventana donde podrás pasar el archivo .arff que deseas tener como base de datos, también se tiene un campo de texto para mostrar el nombre de la base de datos y varias zonas, una donde se muestran los atributos de la instancia del archivo cargado y otra zona donde para cada atributo seleccionado se muestran detalladamente las particularidades de su información, tales como, su nombre, el tipo, los campos de este y los valores asociados a ellos.. Figura 8 Ventana de cargar archivo. 37.
(52) Capítulo II: Marco Metodológico. Figura 9 Ventana del pre procesamiento. En cambio la página de ejecución está distribuida por un botón en el cual puedes elegir el clasificador a utilizar, en este caso, uno de Redes Bayesianas y un campo que muestra el algoritmo a utilizar y sus opciones, además en este campo se pueden cambiar las opciones del algoritmo a utilizar, opciones tales como el estimador o el tipo de algoritmo de búsqueda que desea que aplique el clasificador, también se brindan los botones para iniciar o detener la ejecución. Luego se muestran dos campos, el primero o más pequeño el cual brindará la información de que clasificador se está usando comenzada la ejecución y un segundo campo en el cual analizaran finalmente los resultados devueltos, terminada la ejecución.. 38.
(53) Capítulo II: Marco Metodológico. Figura 10 Panel del clasificador. Figura 11 Ventana de opciones del clasificador. 39.
(54) Capítulo II: Marco Metodológico. Figura 12 Ventana para seleccionar algoritmo del botón Clasificador. 2.3 CONCLUSIONES PARCIALES. En el capítulo se realizó una descripción de la arquitectura de BayesNetWeb. Se describieron las diferentes capas que la componen y la relación entre ellas, además de las funcionalidades definidas para la aplicación lo que posibilita una mejor comprensión de. la solución dada al problema durante el diseño y la. implementación. Se muestra el diseño del sistema a través de diagramas de clase, los. casos. de. uso, las clases que. compondrían. el. sitio, etc.,. teniendo en cuenta las actividades de diseño definidas para BayesNetWeb. Mediante el uso del. lenguaje. UML fue. diseñado. el. entorno. Web. tema de este trabajo, atendiendo siempre a los requerimientos de los usuarios potenciales. A partir del diseño e implementación de BayesNetWeb desarrollado en esta investigación se puede arribar a varias conclusiones: se creó una interfaz de desarrollo para el cliente usando tecnologías de desarrollo web, la cual permite un uso fácil y heterogéneo de la aplicación.. 40.
(55) 41.
Documento similar