Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO TECNOLÓGICO DE LA PAZ DIVISIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN MAESTRÍA EN SISTEMAS COMPUTACIONALES IDENTIFICACIÓN DE PATRONES EN ANTIBIOGRAMAS MEDIANTE TÉCNICAS DE APRENDIZAJE AUTOMÁTICO QUE PARA OBTENER EL GRADO DE MAESTRO EN SISTEMAS COMPUTACIONALES PRESENTA: LIC. CARLOS ARTURO GONZÁLEZ RUBIO GAVARAIN DIRECTORES DE TESIS: DR. MARCO ANTONIO CASTRO LIERA MSC. JOEL ARTEMIO MORALES VISCAYA MATI. ARMANDO CÁRDENAS FLORIDO LA PAZ, BAJA CALIFORNIA SUR, MÉXICO, AGOSTO 2019. Dedicatoria No importa cuales sean nuestros logros alguien nos ayudó a llegar allí y no puedo agradecer lo suficiente a todas las personas que han creído en mí, en primer lugar mis padres y hermanos que han estado allí desde el principio motivándome a dar lo mejor de mí con sus vidas ejemplares. A mi esposa, la persona que me sigue eligiendo todos los días para pasar el resto de sus días a pesar de mis defectos, te amo por ser fuente inagotable de comprensión, compasión, sonrisas y locura. A mi hijo que se ha convertido en mi mayor motivación para dar la mejor versión de mi todos los días, con tu amor das tanto que todos los sacrificios valen la pena para hacerte feliz. iv Agradecimientos Se agradece al Tecnológico Nacional de México, a la División de Estudios de Posgrado e Investigación del Instituto Tecnológico de La Paz y al Consejo Nacional de Ciencia y Tecnología (CONACyT), por el apoyo recibido y las facilidades otorgadas para el desarrollo de este trabajo. Se agradece al comité tutorial por todas sus valiosas observaciones y aportaciones para que este trabajo fuera posible. Se agradece al Benemérito Hospital General con Especialidades Juan María de Salvatierra que mediante el área de Enseñanza e Investigación a través del conducto de su titular el Dr. Gustavo Farías Noyola se otorgó el permiso para el uso de una base de datos de antibiogramas hospitalarios. Se agradece a la Unidad de Vigilancia Epidemiológica Hospitalaria y al Laboratorio de Análisis Clínicos del Hospital Salvatierra por haber fomentado en mí la investigación en salud y la conciencia sobre la importancia de la farmacorresistencia. v Resumen Se detalla la creación de una solución informática para facilitar la descripción y visualización de los patrones subyacentes en los datos mixtos multidimensionales de los antibiogramas. El enfoque de desarrollo utilizado es conocido como descubrimiento de conocimiento en bases de datos, cuyo objetivo es identificar patrones válidos y novedosos a partir de datos existentes, mismos que son suministrados en forma de ejemplos entrenantes al algoritmo de mapa auto-organizado generalizado, utilizado durante la etapa de minado de datos para obtener un modelo que mapea datos de alta dimensión en una malla bidimensional que preserva las propiedades topológicas de los datos originales. vi Abstract The creation of a computer solution to facilitate the description and visualization of the underlying patterns in the multidimensional mixed data of the antibiograms is detailed. The development approach used is known as knowledge discovery in databases, whose objective is to identify valid and novel patterns from existing data, which are supplied in the form of training examples to the generalized self-organized map algorithm, used during the data mining stage to obtain a model that maps high-dimensional data in a two-dimensional grid that preserves the topological properties of the original data. vii Índice general 1. Introducción 1 1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1.1. Epidemiología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3.1. General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3.2. Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5. Alcance y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.1. Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.2. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2. Marco teórico 11 2.1. Descubrimiento de conocimiento en Bases de datos . . . . . . . . . . . . . . . . 11 2.1.1. Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.2. Preprocesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.3. Transformación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.4. Minado de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.5. Interpretación y evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2. Aprendizaje automático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.1. Aprendizaje supervisado . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.2. Aprendizaje no supervisado . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3. La neurona artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4. Redes Neuronales Artificiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5. Mapas Auto-Organizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5.1. Inspiración biológica de los mapas auto-organizados . . . . . . . . . . . . 20 2.5.2. Los mapas auto-organizados como una red neuronal artificial . . . . . . . 20 2.6. Mapas Auto-Organizados Generalizados . . . . . . . . . . . . . . . . . . . . . . 25 2.7. Distancia Jerárquica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.7.1. Distancia Jerárquica Categórica . . . . . . . . . . . . . . . . . . . . . . . 27 2.7.2. Distancia Jerárquica Simple . . . . . . . . . . . . . . . . . . . . . . . . . 28 ix 2.7.3. Distancia Jerárquica Numérica . . . . . . . . . . . . . . . . . . . . . . . 29 2.7.4. Fase de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3. Metodología 33 3.1. Creación de una base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2. Arquitectura del software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.1. La clase nodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.2. La clase punto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.2.3. La clase distancia jerárquica . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.4. La clase neurona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2.5. La clase GSOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4. Pruebas y resultados 41 4.1. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5. Conclusiones y Trabajo futuro 45 5.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Bibliografía 49 Glosario de términos 51 Siglas 53 Índice de figuras 1.1. Triada epidemilógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1. El proceso de KDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2. Neurona biológica vs artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3. Red Neuronal Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4. Córtex cerebral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5. Mapa Auto-Organizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.6. Parámetros delos Mapas Auto-Organizados . . . . . . . . . . . . . . . . . . . . 23 2.7. Overall caption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.8. Primer caso de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.9. Segundo caso de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.10. Tercer caso de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.11. Tercer caso de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.1. Clase nodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2. Diagrama de la clase Punto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.3. Nodo raíz y Jerarquía de distancia . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4. Clase neurona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.5. La clase GSOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.1. Hit Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 xi Capítulo 1 Introducción El hardware y software como los sistemas gestores de bases de datos SGBD actuales permiten acceder, recopilar y almacenar datos de forma confiable, sin embargo, el valor de almacenar volúmenes masivos de datos depende de la capacidad de extraer información útil de ellos. Por lo tanto, es necesario desarrollar sistemas que nos permitan aumentar la capacidad para extraer, analizar y comprender la información subyacente en los datos. Las unidades hospitalarias generan una gran cantidad de datos sobre la atención prestada a los pacientes, debido a que en el cuerpo humano están contenidas bacterias benéficas que ayudan a la absorción de nutrientes o en la síntesis de determinados compuestos, como la vitamina K y algunas del complejo B, sin embargo, existen algunas bacterias que son nocivas para la salud y ocasionan infecciones, estas son conocidas como patógenos, que son aislados por medio de cultivos microbiológicos en distintos momentos, por ejemplo, al ingreso de los pacientes a la unidad para verificar que no tenga o esté incubando algún microorganismo, a los cinco días después de su ingreso o si presenta picos febriles. Si el cultivo es positivo (se ha aislado algún microorganismo patógeno) se realiza un informe por parte del laboratorio llamado antibiograma para conocer la susceptibilidad del microorganismo a una batería de antibióticos, catalogando cada prueba según sea el caso como sensible, intermedio o resistente. 1 2 CAPÍTULO 1. INTRODUCCIÓN Los antibiogramas son utilizados por los médicos para brindar opciones terapéuticas a los pacientes, ya que una vez conocido el resultado del mismo pueden decidir que fármaco utilizar para lograr la remisión de alguna posible infección. Las bacterias tienen la capacidad de resistir la acción antibiótica de los medicamentos (también conocida como farmacorresistencia) mediante la selección natural, a través de mutaciones producidas por azar, sin embargo, cuando los antibióticos entran en contacto con la población bacteriana generan presión selectiva, debido a que matan tanto a las buenas que protegen el cuerpo, como a las malas. Solo las bacterias que cuentan con alguna mutación que las hace más resistentes al tratamiento sobreviven, y se reproducen creando generaciones más difíciles de tratar, además, una vez disponible esta información genética las bacterias son capaces transmitir a otras los nuevos génes, a través de diversos mecanismos. Cuando una bacteria porta varios génes de resistencia se le denomina multirresistente. Las Infecciones Asociadas a la Atención de la Salud (IAAS), también denominadas infecciones nosocomiales u hospitalarias, son un evento adverso durante la prestación de atención sanitaria que se presenta cuando el paciente contrae una infección durante su tratamiento en un hospital u otro centro sanitario. Las IAAS causan estancias más prolongadas en los hospitales, lo cual también es un factor de riesgo ya que aumenta la posibilidad de ser infectado por otros microorganismos, de infectar a otros pacientes o al personal de salud. Las IAAS dañan la salud del paciente y también impactan negativamente la economía de las unidades hospitalarias al ocasionar diferimiento en los servicios hospitalarios. La farmacorresistencia en unidades hospitalarias es un tema que ya ha sido investigado adoptando enfoques estadísticos, sin embargo, la falta de consenso y estructura hacen que se trate de un tópico poco formalizado, por lo que se abordó esta investigación utilizando un enfoque distinto, el Descubrimiento de Conocimiento en Bases de datos (KDD por las siglas de 3 Knowledge Discovery in Databases) mediante una técnica de aprendizaje no supervisado para analizar los datos que no se encuentran previamente etiquetados y generar un modelo de distribución y densidad. Una vez que un problema ha sido identificado es necesario tomar decisiones dirigidas a solucionarlo, estas intervenciones deben de estar diseñadas para maximizar la eficiencia, es decir la correcta utilización de los recursos disponibles y la eficacia que se cumplan los objetivos, para alcanzar estos fines es necesario conocer el tamaño y distribución del problema, por lo que se desarrollo un software para analizar automáticamente la información de los antibiogramas con la finalidad de encontrar patrones que puedan ser útiles en el posterior análisis epidemiológico. El minado de datos es un paso importante en el proceso de KDD donde se selecciona el algoritmo y la tarea a realizar, que en este caso es el agrupamiento de datos por similaridad, se utilizó el algoritmo de aprendizaje no supervisado llamado Mapa Auto-Organizado SOM debido a su capacidad para generar una representación discreta de baja dimensión (típicamente R2) del espacio de las muestras de entrada de alta dimensión (Rn), llamado mapa, que es creado durante la fase de entrenamiento. Los SOM utilizan una función de vecindad para preservar las propiedades topológicas de los datos originales [1], sin embargo, debido a que los datos de las observaciones contienen en su mayoría variables categóricas el SOM falla en preservar la topología de los datos originales. Encontramos que el problema no puede ser resuelto por los algoritmos más comunes para esta tarea, ya que que la similaridad entre dos patrones está dada por la distancia que existre entre las observaciones (por ejemplo la distancia Euclidiana) dando como resultado un valor numérico que no está definido para variables categóricas, por lo que el algoritmo seleccionado es una variante del SOM llamado Mapa Auto-Organizado Generalizado (GSOM por las siglas en inglés de Generalized Self-Organizing Map) donde se utiliza una métrica de distancia llamada distancia jerárquica 4 CAPÍTULO 1. INTRODUCCIÓN capaz de asignar un valor numérico a la distancia de variables categóricas y numéricas. Esta generalización preserva la topología de los datos originales aún cuando las observaciones contienen datos mixtos [2]. 1.1. ANTECEDENTES 5 1.1. Antecedentes 1.1.1. Epidemiología La Epidemiología es el área de la medicina que estudia la distribución, frecuencia, determinantes, predicciones y control de los factores relacionados con la salud y las enfermedades existentes en poblaciones humanas definidas [3]. Los estudios epidemiológicos se utilizan para estimar la magnitud con la que dos fenómenos se relacionan entre sí, al establecer medidas de asociación, como se muestra en la figura 1.1, según las variables epidemiológicas de tiempo, lugar y persona con la finalidad de utilizar dichos estudios en el control sanitario de enfermedades. Huésped Agente Ambiente Figura 1.1: La triada epidemilógica. La vigilancia epidemilógica es de observancia obligatoria en los establecimientos de salud dentro del territorio nacional y está reglamentada en el Diario Oficial de laFederación en las normas: “Para la Vigilancia Epidemiológica”[4] y “Prevención y Control de las Infecciones Nosocomiales”[5]. 6 CAPÍTULO 1. INTRODUCCIÓN En materia de investigación en salud pública existen diversos estudios de farmacorresistencia en enfermedades como la Tuberculosis o el VIH, entre otras. El Instituto Nacional de Salud Pública (INSP) cuenta con una línea de investigación en Medicamentos en salud pública: acceso, uso y resistencia antimicrobiana, sin embargo, a pesar de la importancia de establecer mecanismos para la vigilancia de la farmacorresistencia en las unidades hospitalarias la falta de consenso y estructura en el tema hacen que se trate de un tópico poco formalizado. 1.2. PLANTEAMIENTO DEL PROBLEMA 7 1.2. Planteamiento del problema El problema consiste en encontrar una manera de correlacionar las observaciones de los aislamientos de los microorganismos, para generar un modelo de magnitud y distribución de la resistencia de los microorganismos en las unidades hospitalarias. Los campos de los antibiogramas pueden ser utilizados para establecer relaciones entre las observaciones, sin embargo, esto presenta algunas dificultades al utilizar los métodos estadísticos tradicionales por la cantidad, la dimensión y el tipo de datos contenidos en los registros. La cantidad de registros en una base de datos puede dificultar su análisis utilizando medios tradicionales, sobre todo si esta es de rápido crecimiento, se encuentra distribuida o proviene de fuentes heterogéneas. Si dos observaciones son cercanas en el espacio se dice que son similares, los problemas como la clasificación se basan en la detección de las áreas donde los registros forman grupos con propiedades similares, sin embargo, en los registros con muchos campos (alta dimensionalidad) se produce el efecto Hughes [6] (coloquialmente llamado maldición de dimensión) debido a que con cada dimensión agregada al problema se produce un aumento exponencial en el espacio haciendo que los datos disponibles se vuelvan dispersos, lo que impide que las estrategias de organización de datos comunes sean eficientes. A pesar de que existen diversos algoritmos de agrupamiento, estos se basan en el concepto de distancia (tradicionalmente la euclidiana) lo cual funciona correctamente cuando los datos son cuantitativos (como peso o estatura), pero no funcionan cuando dichos datos son categóricos (como antibiótico o microorganimo) como es el caso de los antibiogramas donde los datos son mixtos (los registros de la base de datos tienen componentes tanto numéricos como 8 CAPÍTULO 1. INTRODUCCIÓN categóricos). El análisis de grupos es una de las principales tareas en la minería de datos, consiste en agrupar las observaciones en clases, donde las observaciones que pertenecen a una clase son similares, mientras que las clases son distintas entre sí, dicho agrupamiento se puede dividir en tres problemas (i) definir una medida de similitud (o distancia) entre observaciones diferentes (ii) implementar un algoritmo eficiente para descubrir los grupos de elementos más similares de una manera no supervisada y (iii) derivar una descripción que pueda caracterizar los elementos de un grupo de manera concisa. Para el análisis exploratorio de los datos se debe encontrar una forma de visualizar las relaciones entre ellos, por lo cual es necesario crear un modelo que nos permita representar correctamente la densidad y distribución de los mismos. 1.3. Objetivos 1.3.1. General Crear un software que use técnicas de aprendizaje automático no supervisado para identificar los patrones de ocurrencia en los antibiogramas. 1.3.2. Específicos Identificar los campos necesarios para llevar a cabo la investigación. Crear una base de datos normalizada. Encontrar una medida de distancia para los datos categóricos. 1.4. JUSTIFICACIÓN 9 Implementar un algoritmo eficiente para agrupar las observaciones. Generar un modelo de distribución y densidad a partir de los patrones de entrada. Mostrar los resultados obtenidos para su análisis. 1.4. Justificación El desarrollo de este software abonará al fortalecimiento de los sistemas de salud, con metodologías y herramientas que permitan conocer el comportamiento de los microorganismos dentro de las unidades hospitalarias. Contar con un software para analizar automáticamente la información de los antibiogramas que permitirá encontrar patrones que puedan ser útiles en el posterior análisis epidemiológico. 1.5. Alcance y limitaciones 1.5.1. Alcance Se analizarán 3,373 antibiogramas realizados en el laboratorio de análisis clínico del Hospital Juan María de Salvatierra de La Paz Baja California Sur, durante el periodo comprendido entre los años 2012 a 2015 (correspondientes a 10,465 observaciones de 7 características). 1.5.2. Limitaciones El sistema generará información de soporte para la toma de decisiones de casos epidemiológicos, la interpretación final deberá realizarse por un experto en la rama. 10 CAPÍTULO 1. INTRODUCCIÓN Capítulo 2 Marco teórico Cuando la escala de manipulación de datos, exploración e inferencia crece más allá de las capacidades humanas, las personas recurren a la tecnología informática para automatizar su análisis. Aunque el problema de extraer el conocimiento de los datos (u observaciones) no es nuevo, la automatización en el contexto de grandes bases de datos abre muchos problemas nuevos no resueltos. 2.1. Descubrimiento de conocimiento en Bases de datos Figura 2.1: Descripción general de los pasos que constituyen el proceso de KDD 11 12 CAPÍTULO 2. MARCO TEÓRICO El problema de la extracción de conocimientos de grandes bases de datos implica muchos pasos, desde la manipulación, recuperación de datos hasta la inferencia matemática, estadística, la búsqueda y el razonamiento. El hardware actual y la tecnología de base de datos permiten un acceso y almacenamiento de datos confiable, eficiente y económico. Sin embargo, ya sea que el contexto sea negocio, medicina, ciencia o gobierno, los conjuntos de datos en sí (en forma cruda) tienen poco valor directo. Lo que tiene valor es el conocimiento que se puede inferir de los datos y ponerlo en uso. Actualmente la capacidad para analizar y comprender conjuntos de datos masivos está muy por detrás de nuestra habilidad para recopilar y almacenar datos. El valor de almacenar volúmenes de datos depende de nuestra capacidad para extraer informes útiles, detectar eventos y tendencias interesantes, apoyar decisiones y políticas basadas en análisis estadísticos e inferencias, y explotar los datos para lograr objetivos comerciales, operativos o científicos. Se requieren nuevas generaciones de técnicas y herramientas computacionales para respaldar la extracción de conocimientos utilizables de volúmenes de datos en rápido crecimiento [7]. 2.1.1. Selección Se selecciona la información más importante, si esta se encuentra disponible solamente en medios físicos debe de ser digitalizada, previo a iniciar las actividades de KDD 2.1. DESCUBRIMIENTO DE CONOCIMIENTO EN BASES DE DATOS 13 En este paso es cuando reconocemos las fuentes de información más importantes y quienes tienen control sobre ellas. También es relevante incluir todos los metadatos relacionados, dimensionar la cantidad de datos, y formatos. 2.1.2. Preprocesamiento Se integran los datos objetivo provenientes de fuentes múltiples y heterogéneas y se crea una fuente homogénea para que los datos sean más fáciles de procesar y analizar. 2.1.3. Transformación Esta etapa involucra los siguientes pasos: Eliminación de ruido y datos aislados u outliers. Uso del conocimiento previo para eliminar las inconsistencias y los duplicados. Uso de estrategias para manejar la información faltante en los datasets. 2.1.4. Minado de datos Es una de las partes más importantes en el proceso KDD e involucra la elección de la tarea que se pretende realizar así como la selección y ejecución del algoritmo a utilizarpara buscar patrones de interés en una forma de representación particular o un conjunto de tales representaciones. Entre las tareas del minado de datos se encuentran: Predictivas 14 CAPÍTULO 2. MARCO TEÓRICO • Clasificación • Regresión Descriptivas • Agrupamiento • Asociación • Correlación Existen gran variedad de algoritmos que se pueden utilizar para cada una de estas tareas que resultan en un modelo de los datos originales. 2.1.5. Interpretación y evaluación El modelo generado sirve para interpretar los resultados y mejorar la calidad de las decisiones al diseñar intervenciones que maximicen la eficiencia (la correcta utilización de los recursos disponibles) y la eficacia (que se cumplan los objetivos). 2.2. Aprendizaje automático El aprendizaje automático es una rama de la inteligencia artificial, mediante la cual se crean programas que mediante técnicas algorítmicas son capaces de generalizar comportamientos a partir de información suministrada en forma de ejemplos entrenantes. Se puede definir al aprendizaje como el proceso de utilizar la experiencia para adquirir habilidad, los problemas basados en experiencia son tratados utilizando diversos paradigmas de aprendizaje, dos de los más utilizados son los tipos: supervisado y el no supervisado. 2.3. LA NEURONA ARTIFICIAL 15 2.2.1. Aprendizaje supervisado En este tipo de aprendizaje el algoritmo es entrenado utilizando un conjunto de datos, donde cada observación incluye la salida deseada o target, por lo que se dice que el conjunto está etiquetado. El algoritmo generaliza la salida a partir del conjunto de datos para responder correctamente a todas las posibles entradas[8]. 2.2.2. Aprendizaje no supervisado A diferencia del aprendizaje supervisado, en este caso, no se proporcionan las salidas deseadas o target, en su lugar, el algoritmo intenta identificar semejanzas entre las entradas para que las similares sean clasificadas juntas. El enfoque estadístico del aprendizaje no supervisado se conoce como estimación de densidad[8]. 2.3. La neurona artificial En los seres vivos la neuronas biológicas son células especializadas del sistema nervioso, su principal función es recibir, procesar y transmitir información, se caracterizan por poseer una cantidad indefinida de canales de entrada llamados dendritas y un canal de salida llamado axón (ver figura 2.2a). Las dendritas operan como sensores que recogen información de la región donde se hallan y la derivan hacia el cuerpo de la neurona, que reacciona mediante una sinapsis que envía una respuesta hacia el cerebro. La neuroplasticidad es la forma como el cerebro adecúa su estructura a los cambios del entorno, esto ocurre debido a que cuando las sinapsis son disparadas se refuerzan. La contraparte de la neuroplasticidad es conocida como poda cerebral que ocurre cuando las sinapsis no son utilizadas de forma repetida u ocurre de forma insuficiente. 16 CAPÍTULO 2. MARCO TEÓRICO Dendritas Soma Núcleo Axón Axón Terminal (a) x2 w2 Σ f Activate function y Output x1 w1 x3 w3 Weights Bias b (b) Figura 2.2: (a) Partes de la neurona biológica. (b) Partes de la neurona artificial. Neurona Biológica Neurona Artificial Dendritas Vector de entrada Soma Sumatoria ponderada Axón Función de activación Axón Terminal Salida Tabla 2.1: Comparación entre la neurona biológica y la artificial La neurona artificial (ver fig 2.2b) es un modelo matemático simplificado (2.1) de su homónima biológica, que funciona como un discriminador lineal, las acciones llevadas a cabo por esta última se corresponden como se puede observar en la tabla 2.1. En este caso la neurona artificial recibe un patrón de entrada n-dimensional que se multiplica por un vector de pesos sinápticos denominado w que representa la intensidad de la conexión y por tanto tiene la misma dimensión que el patrón de entrada, opcionalmente se añade a la suma un término bias denominado b (tendencia o sesgo) que le permite a la neurona mover la frontera de decisión de la función de activación hacia la derecha o izquierda y que también es ajustado con el paso del tiempo como una conexión extra a la neurona, posteriormente se realiza una suma ponderada que es la entrada de la función de activación que deforma la salida para que no sea completamente lineal y finalmente se obtiene la salida de la neurona. 2.3. LA NEURONA ARTIFICIAL 17 y = f ( b+ n∑ i=1 (wi · xi) ) (2.1) Los pesos sinápticos son adaptables (2.2) estos se van adecuando según los patrones de entrada que actúan como estímulos, la función de activación define si la respuesta de la neurona es excitatoria o inhibitoria y a partir de estas reglas genera un criterio para seleccionar un subgrupo a partir de un grupo de componentes más grande. wt+1 = wt + α(o− y) (2.2) Donde t es la época actual, α es la tasa de aprendizaje (una constante real positiva) y o es la salida deseada. La principal desventaja de las neuronas artificiales como el perceptrón simple, es que no pueden resolver problemas que no sean linealmente separables. 18 CAPÍTULO 2. MARCO TEÓRICO 2.4. Redes Neuronales Artificiales Una red neuronal se puede definir como un procesador masivamente paralelo y distribuido, creado con unidades de procesamiento simple, que tienen una propensión natural para almacenar el conocimiento adquirido mediante experiencia y ponerlo a disposición para su uso. El conocimiento es adquirido por la red proveniente del entorno a partir de un proceso de aprendizaje, donde las conexiones entre las neuronas conocidas como pesos sinápticos son utilizadas para guardar el conocimiento adquirido. [9] En la arquitectura de la red neuronal (ver fig 2.3), las neuronas se encuentran alineadas en columnas llamadas capas. Existen tres tipos de capas, El primer tipo es denominado capa de entrada que recibe los estímulos externos en forma de vectores de entrada denominados patrones, la última capa es la capa de salida que puede tener una o más neuronas de salida y las capas ocultas que se son las que se encuentran entre ellas. 2.4. REDES NEURONALES ARTIFICIALES 19 Capa de entrada Capa oculta Capa de salida x1 x2 x3 x4 x5 y Figura 2.3: Arquitectura de una Red Neuronal Artificial Para obtener la salida de la red neuronal se presenta un patrón de entrada y se propaga por la red utilizando un mecanismo denominado forward propagation donde cada neurona recibe como estímulos de entrada la salida resultante de los cálculos de la capa anterior y los cálculos realizados por la capa actual son enviados a la siguiente capa hasta la capa de salida. Una vez obtenida la salida de la red neuronal se realiza un proceso de aprendizaje donde se busca minimizar el error de clasificación ajustando los pesos sinápticos de la red. 20 CAPÍTULO 2. MARCO TEÓRICO 2.5. Mapas Auto-Organizados 2.5.1. Inspiración biológica de los mapas auto-organizados Los mapas auto-organizados son un tipo de red neuronal artificial que está inspirada en la forma que el cerebro procesa la información, específicamente en la formación de respuestas localizadas por la retroalimentación lateral existente entre las sinapsis neuronales. La representación simplificada de los datos con todas sus interrelaciones es uno de los problemas centrales en las ciencias de la información. El cerebro humano posee la capacidad para operar con grandes conjuntos de datos, creando representaciones simplificadas de hechos relevantes sin que ello implique pérdida de información en los datos y sus relaciones. [10] Se sabe que las diversas áreas del cerebro, especialmente de la corteza cerebral, están organizadas de acuerdo a diferentes modalidades sensoriales (ver fig 2.4), también hay áreas que realizan tareas especializadas, por ejemplo, control del habla y análisis de señales sensoriales (visual, auditivo, somatosensorial, etc.). El propósito del procesamiento inteligente de la información parece ser, en general, la creación de imágenes simplificadas del mundoobservable en varios niveles de abstracción, en relación con un subconjunto particular de datos recibidos. 2.5.2. Los mapas auto-organizados como una red neuronal artificial Son un tipo red neuronal monocapa que utiliza el aprendizaje competitivo no supervisado que proyecta datos de una alta dimensionalidad en una cuadrícula de baja dimensionalidad (típicamente de dos dimensiones) que visualmente revela el orden topológico de los datos originales (ver fig 2.5). 2.5. MAPAS AUTO-ORGANIZADOS 21 Lóbulo frontal Motor, Creatividad, Reacciones Emocionales Lóbulo temporal Oı́do, Música, Entendi- mento del lenguaje, Memoria para eventos no verbales Lóbulo parietal Orientación, Percepción Espacial, Percepción Vi- sual Lóbulo occipital Visión Área de LenguajeÁrea de Lenguaje Juicio Abstacción Habla Lectura Escritura Números Figura 2.4: Relación de las regiones del córtex cerebral con las experiencias sensoriales. ... ... x1 x2 xi−1 xi Figura 2.5: Mapa Auto-Organizado representado por un grid hexagonal en la capa de salida. 22 CAPÍTULO 2. MARCO TEÓRICO En el proceso de auto-organización, apuntamos a mapeos que transforman un patrón de señal de dimensionalidad arbitraria en una matriz de una o dos dimensiones, al obtener en las neuronas de salida una disposición geométrica que representa un mapa topológico de las características en los datos de entrada, de tal forma que si se presentan a la red patrones similares, siempre serán afectadas neuronas de salidas próximas entre sí, en la misma zona del mapa. Cada neurona de la capa de salida tiene su propio vector de pesos sinápticos, que se adapta mediante entrenamiento e implementa la auto-organización, utilizando una función de vecindad (ver fig 2.6b), de esta forma se dice que el mapeo está ordenado si las relaciones topológicas de los patrones y la imagen son similares. Para implementar la auto-organización el SOM recibe dos parámetros de entrada, σ que es el radio de vecindad inicial y α que representa la tasa de aprendizaje inicial, ambos parámetros son decrementados mediante funciones monótonas decrecientes. 2.5. MAPAS AUTO-ORGANIZADOS 23 (a) (b) Figura 2.6: (a) Distancia topológica d(n5, n11) = 4.47, que es obtenida mediante la distancia euclidiana. (b) Radio de vecidad σ = 5 denotado por el círculo punteado (imágenes tomadas de [11]). 24 CAPÍTULO 2. MARCO TEÓRICO Algorithm 1 Algoritmo de entrenamiento de Mapa auto-organizado Require: D, σ0, α0 Ensure: Mapa topológico con pesos adaptados 1: Hacer un mapa de neuronas con vectores de pesos aleatorios 2: for s← 1 to λ do 3: for t← 1 to size(D) do 4: u ← bmu(neurons,D(t)) 5: for v ← 1 to size(neurons) do 6: d ← distance(neuronu, neuronv) 7: if d ≤ σt then 8: Wv(s+ 1) = Wv(s) + Θ(d, σs)αs(D(t)−Wv) 9: end if 10: end for 11: end for 12: σs ← radiusDecayFunction(σ0, s, λ) 13: αs ← learningRateDecayFunction(α0, s, λ) 14: end for Donde s es la iteración actual, λ es la cantidad total de iteraciones, D(t) es un vector de entrada de índice t del conjunto de datos de entrada D, v es el índice de una neurona en el mapa, u es el índice del BMU en el mapa, Wv es el vector de pesos de la neurona v, d es la distancia de la neuronau a la neuronav, σs es el radio de vecindad en la iteración s, αs es un restrictor de aprendizaje debido al progreso de las iteraciones y Θ(d, σs) es la función de vecindad. Cuando los vectores de entrada contienen datos mixtos (es decir categóricos y numéricos), el cómputo de la función de distancia que se hace entre el vector de entrada y las neuronas se hace por medio de una definición de distancia numérica (como la distancia euclidiana), como 2.6. MAPAS AUTO-ORGANIZADOS GENERALIZADOS 25 esto no es aplicable para los datos cualitativos el SOM falla en preservar correctamente la topología de los datos originales [2]. 2.6. Mapas Auto-Organizados Generalizados Al utilizar datos categóricos SOM falla en preservar correctamente la topología de los datos originales, por lo que en 2006 un nuevo algoritmo GSOM [2] utiliza una nueva métrica de distancia llamada distancia jerárquica, compuesta por árboles de jerarquías donde las aristas contienen un valor o peso y los nodos representan conceptos ordenados de lo más general en la raíz, hasta los más particulares en los nodos hojas. Estas estructuras jerárquicas permiten manejar los distintos tipos de datos: categóricos, numéricos e incluso codificación binaria para coincidencias simples de forma unificada. Utilizando la distancia jerárquica es posible preservar la topología original de los datos, cuando las variables son cualitativas pero también cuando son cuantitativos haciendo posible representarlos correctamente en un mapa auto-organizado [2]. El uso de la distancia jerárquica para calcular la similaridad entre las observaciones agrega mayor carga de procesamiento computacional, debido a que en la versión original del algoritmo SOM el cálculo de la distancia se realiza mediante operaciones aritméticas, mientras que por otro lado, la distancia jerárquica agrega operaciones de búsqueda y selección sobre estructuras dinámicas tipo árbol. 26 CAPÍTULO 2. MARCO TEÓRICO 2.7. Distancia Jerárquica Cada punto está compuesto por un ancla (un nodo hoja) y una ganancia (un valor real que representa la distancia desde el punto a la raíz) por ejemplo los puntos S = (S. aureus, 0.3), M = (S. hemolyticus, 0.3), T = (S. hemolyticus, 1.3) y X = (S. aureus, 2), Bacteria Firmicutes S. aureus X 1 S. hemolyticus 1 T S M 1 Proteobacteria E. coli 1 K. pneomoniae 1 1 (a) Servicio G/O. 0.5 Pediatría 0.5 Med. Interna 0.5 Cirugía 0.5 (b) MIN MAX M X w (c) Figura 2.7: Overall caption El mapeo consiste en convertir un patrón de entrada en un vector de puntos en la distancia jerárquica, por ejemplo: dado el patrón de entrada “S.aureus, 7” y teniendo los árboles de jerarquías mostrados en la Fig2.7(a) y Fig2.7(c) darán como resultado un vector de puntos llamado mapa: m = [(S.aureus, 2), (MAX, 7)], estos sustituyen los patrones de entrada y los pesos de las neuronas del algoritmo de SOM original. La distancia entre dos mapas x e y es calculada utilizando la siguiente fórmula: d (x, y) = ( n∑ i=1 wi |dhi(xi)− dhi(yi)|L )1/L (2.3) Donde L es una constante entera, cuando es establecida en 1, la distancia resultante es similar a la distancia Manahatan, cuando L ≥ 2 la distancia es similar a la distancia Euclidiana [2] 2.7. DISTANCIA JERÁRQUICA 27 De esta forma cada componente del patrón de entrada es mapeado y asociado a un árbol de distancia jerárquica dh correspondiente. En la implementación se crean tres operaciones polimórficas para delegar la responsabilidad de mapear, calcular la distancia y ajustar los pesos a sus respectivas estructuras. 2.7.1. Distancia Jerárquica Categórica Para poder operar con la distancia jerárquica del tipo categórico se deben de establecer algunos axiomas: Dos puntos en distancia jerárquica son equivalentes si se encuentran en la misma posición aunque no tengan la misma ancla, por ejemplo, en la figura 2.7a los puntos M y S son equivalentes. Un nodo X es ancestro de otro Y si X se encuentra en el camino de Y a la raíz. El ancestro menos común de dos nodos X e Y denotado como LCA(X,Y ) por las siglas en inglés de Least Common Ancester es el nodo del árbol más profundo que es ancestro de X e Y. LCA(X,Y ) = Nodo más profundo ancestro de X e Y (2.4) El punto menos común de dos nodos X e Y denotado como LCP (X,Y ) por las siglas en 28 CAPÍTULO 2. MARCO TEÓRICO inglés de Least Common Point se define según las siguientes condiciones: LCP (X,Y ) = X o Y, si X ≡ Y Y, si Y es ancestro de X X, si X es ancestro de Y LCA(X,Y ), de otro modo (2.5) La distancia entre dos puntos es calculada de acuerdo a (2.6): |X − Y | = dx + dy − 2LCP (X,Y ) (2.6) Por ejemplo en la figura 2.7a sean los puntos: M = (S. aureus, 0.3) S = (S. hemolyticus, 0.3) T = (S. hemolyticus,1.3) X = (S. aureus, 2.0) La distancia entre los puntos M y S es cero ya que son equivalentes. La distancia entre los puntos T y M es (1.3 + 0.3− 2 ∗ 0.3) = 1. La distancia entre los puntos X y T es (2.0 + 1.3 − 2 ∗ 1.0) = 1.3, ya que el LCP (X,T ) es Firmicutes que tiene una distancia de 1. 2.7.2. Distancia Jerárquica Simple Este tipo de distancia jerárquica (ver fig 2.7b) opera de forma similar a la homónima categórica, pero difiere en dos aspectos: no necesita la operación Least Common Point y el 2.7. DISTANCIA JERÁRQUICA 29 calculo de la distancia es 1 si tienen las misma ancla y 0 en caso contrario. 2.7.3. Distancia Jerárquica Numérica En esta distancia el mapeo del patrón siempre retorna un punto donde el ancla siempre es MAX y el valor del offset es la distancia de X a la raíz MIN (ver fig 2.7c) entonces la distancia entre dos puntos es calculada restando los dos valores de offset. 2.7.4. Fase de ajuste Dado un valor real δ de ajuste, un punto A es ajustado utilizando como ancla otro punto B situado en algún nodo hoja del árbol de distancia jerárquica categórica, se selecciona un caso según la localización del punto A respecto al punto N , el ancestro menos común de los puntos A y B según el caso que corresponda: Primer caso de ajuste de la distancia jerárquica categórica Si M es ancestro de N y M no cruza el punto N después del ajuste entonces dM = dM + δ Bacteria Firmicutes S. aureus X 1 S. hemolyticus 1 M 1 Proteobacteria E. coli 1 K. pneomoniae 1 1 (a) Bacteria Firmicutes S. aureus X 1 S. hemolyticus 1 M Proteobacteria E. coli 1 K. pneomoniae 1 1 (b) Figura 2.8: Primer caso de ajuste 30 CAPÍTULO 2. MARCO TEÓRICO Ejemplo: Si δ = 0.2, M = [S.hemolyticus, 0.3], X = [S.aureus, 2.0] ∴ N = LCA(M,X) = [Firmicutes, 1] y se verifican las dos condiciones 1) M es ancestro de N y 2) M no cruza N despues del ajuste ya que (dM + δ) < dN = 0.5 < 1.0 quedando M = [S.hemolyticus, 0.5] después del ajuste. Segundo caso de ajuste de la distancia jerárquica categórica Si M es ancestro de N y M cruza N después del ajuste entonces anchorM = anchorX y dM = dM + δ Bacteria Firmicutes S. aureus X 1 S. hemolyticus 1 M 1 Proteobacteria E. coli 1 K. pneomoniae 1 1 (a) Bacteria Firmicutes S. aureus M X 1 S. hemolyticus 1 1 Proteobacteria E. coli 1 K. pneomoniae 1 1 (b) Figura 2.9: Segundo caso de ajuste Ejemplo: Si δ = 0.9, M = [S.hemolyticus, 0.3], X = [S.aureus, 2.0] ∴ N = LCA(M,X) = [Firmicutes, 1] y se verifican las dos condiciones 1) M es ancestro de N y 2) M si cruza N después del ajuste ya que (dM + δ) > dN = 1.2 > 1.0, por lo tanto cambia el ancla de M por la de X quedando M = [S.aureus, 1.2] después del ajuste. Tercer caso de ajuste de la distancia jerárquica categórica Si N es ancestro de M y cruza N después del ajuste entonces dM = dM − δ 2.7. DISTANCIA JERÁRQUICA 31 Bacteria Firmicutes S. aureus X 1 S. hemolyticus 1 T 1 Proteobacteria E. coli 1 K. pneomoniae 1 1 (a) Bacteria Firmicutes S. aureus X 1 S. hemolyticus 1 T 1 Proteobacteria E. coli 1 K. pneomoniae 1 1 (b) Figura 2.10: Tercer caso de ajuste Ejemplo: Si δ = 0.2, T = [S.hemolyticus, 1.3], X = [S.aureus, 2.0] ∴ N = LCA(M,T ) = [Firmicutes, 1] y se verifican las dos condiciones 1) N es ancestro de T y 2) T no cruza N despues del ajuste ya que (dT − δ) > dN = 1.1 > 1.0 por lo tanto T = [S.hemolyticus, 1.1] despues del ajuste. Cuarto caso de ajuste de la distancia jerárquica categórica Si N es ancestro de M y cruza N después del ajuste entonces anchorM = anchorX y dM = 2dNLCA − dM + δ Bacteria Firmicutes S. aureus X 1 S. hemolyticus 1 T 1 Proteobacteria E. coli 1 K. pneomoniae 1 1 (a) Bacteria Firmicutes S. aureus X T 1 S. hemolyticus 1 1 Proteobacteria E. coli 1 K. pneomoniae 1 1 (b) Figura 2.11: Tercer caso de ajuste Ejemplo: Si δ = 0.9, T = [S.hemolyticus, 1.3], X = [S.aureus, 2.0] ∴ N = LCA(M,T ) = [Firmicutes, 1] y se verifican las dos condiciones 1) N es ancestro de T y 2) T si cruza N después 32 CAPÍTULO 2. MARCO TEÓRICO del ajuste ya que (dT − δ) < dN = 0.3 < 1.0 por lo tanto T es ajustado utilizando 2dNLCA−dT+δ quedando T = [S.aureus, 1.6] después del ajuste. Capítulo 3 Metodología La solución se desarrollo utilizando análisis y diseño orientado a objetos, un paradigma de programación ampliamente utilizado por su habilidad de adaptación a los cambios en los requerimientos de software, por este motivo se seleccionó C++, un lenguaje multiparadigma de nivel intermedio en la codifación de la solución. Se utilizó el marco de desarrollo Qt para realizar la conexión al Sistema Gestor de Base de Datos (SGBD) del sistema, misma que se implemento utilizando MariaDB. 3.1. Creación de una base de datos Con la finalidad de crear una fuente homogénea para procesar y analizar los antibiogramas, se diseño y creó una base de datos relacional utilizando el sistema gestor de base de datos MariaDB, se sometió al proceso de normalización para evitar la redundancia en los datos y se capturaron 3,373 cultivos de laboratorio a los cuales se les realizó la prueba de antibiograma. 33 34 CAPÍTULO 3. METODOLOGÍA 3.2. Arquitectura del software 3.2.1. La clase nodo La clase nodo representa un vertice en los grafos de tipo árbol de los distintos tipos de distancias jerárquicas, su modelo es representado mediante una clase contenedora autorreferenciada, llamada así por que mantiene una referencia a un miembro de datos de su mismo tipo, en este caso la clase nodo mantiene una referencia al nodo padre (ver fig. 3.1) y a la vez tiene un vector de referencias a sus nodos hijos. A diferencia de los árboles binarios cuyo factor de ramificación es dos, en este caso particular dicho factor es arbitrario. Node - id - level - children + Node() + ~Node() + isLeaf() + getId() + getLevel() + getParent() + getChildren() + setId() + toQString() -parent Figura 3.1: Diagrama de la clase nodo Una vez creados los árboles jerárquicos los nodos son estáticos y no se modifican durante la ejecución del programa. 3.2. ARQUITECTURA DEL SOFTWARE 35 3.2.2. La clase punto La clase point representa un punto en la distancia jerárquica, por lo tanto está compuesto por una referncia al nodo ancla (ver fig.3.2) denominado anchor y la distancia del punto a la raíz denotado por un valor real llamado offset. Point - offset + Point() + Point() + Point() + toQString() + getAnchor() + getOffset() + setAnchor() + setOffset() + ~Point() Node - id - level - children + Node() + ~Node() + isLeaf() + getId() + getLevel() + getParent() + getChildren() + setId() + toQString() -anchor -parent Figura 3.2: Diagrama de la clase Punto 36 CAPÍTULO 3. METODOLOGÍA Los puntos son creados de forma aleatoria (tanto su ancla como el offset) y se van ajustando sus valores en tiempo de ejecución, la cantidad de puntos creados es el resultado de multiplicar el número de neuronas creadas por el número de árboles jerárquicos. 3.2.3. La clase distancia jerárquica La clase DistanceHierarchy es una clase abstracta (ver fig. 3.3a) es decir, una clase que no puede ser instanciada, su principal función es proveer una interfaz que heredan las clases hijas, pero que debe de implementar cada una de forma distinta para permitir utilizar los mecanismos polimórficos. Las clases Numerical y Simple heredan esta interfaz y a su vez, Categorical es una especialización de la clase simple que también la hereda (ver fig. 3.3b). Existen cuatro funciones implementadas de forma polimórfica: getRandomPoint, distance, map y adjust que son utilizadas durante el entrenamiento del GSOM y permiten utilizar la misma llamada a la función, pero implementarla según sea el tipo de árbol de distancia jerárquica. 3.2. ARQUITECTURA DEL SOFTWARE 37 DistanceHierarchy # leaves - min - max + DistanceHierarchy() + ~DistanceHierarchy() + distance() + map() + adjust() + getRandomPoint() + findNode() + makeLeavesVector() + findLeaf()+ getMin() + getMax() + getRoot() - trim() Node - id - level - children + Node() + ~Node() + isLeaf() + getId() + getLevel() + getParent() + getChildren() + setId() + toQString() -root -parent (a) DistanceHierarchy # leaves - root - min - max + DistanceHierarchy() + ~DistanceHierarchy() + distance() + map() + adjust() + getRandomPoint() + findNode() + makeLeavesVector() + findLeaf() + getMin() + getMax() + getRoot() - trim() Numerical + Numerical() + ~Numerical() + distance() + map() + adjust() + getRandomPoint() Simple + Simple() + ~Simple() + distance() + map() + LCA() + isEquivalent() + isAncestor() + adjust() + getRandomPoint() Categorical + Categorical() + ~Categorical() + LCP() + distance() + map() + getRandomPoint() (b) Figura 3.3: (a) La clase Distancia Jerárquica, tiene un nodos especial llamado raíz. (b) Jerarquía de clase Distancia Jerárquica. 3.2.4. La clase neurona Típicamente los mapas auto-organizados son representados utilizando una malla bidimensional donde cada vértice corresponde a una neurona, por lo tanto cada neurona tiene 38 CAPÍTULO 3. METODOLOGÍA una posición (x, y) en el plano que nos ayuda a identificarla. A diferencia de un SOM el GSOM no tiene un vector de pesos asociado a un valor numérico, en su lugar tiene un vector de puntos de distancia jerárquica asociado al árbol correspondiente al que llamamos map. Neuron - x - y - map + Neuron() + Neuron() + ~Neuron() + getX() + getY() + getMap() + setMap() + toQString() Figura 3.4: La clase neurona 3.2.5. La clase GSOM El funcionamiento del GSOM es muy similar al de un SOM normal, la principal diferencia es que no depende de la relación numérica de la distancia entre dos vectores, en su lugar generaliza este concepto al incluir distancias jerárquicas, binarias y numéricas para preservar las propiedades topológicas del conjunto original, para lograrlo añade un vector de distancias jerárquicas llamado dh (por las siglas de Distance Hierarchy) que se corresponde con la dimensión del espacio de entrada, también se utilizó una función de normalización para 3.2. ARQUITECTURA DEL SOFTWARE 39 retornar los valores de distancia en el intervalo [0, 1], la funcion de vecindad elegida fue gaussiana, el radio inicial es la diagonal de la matriz de neuronas y un valor de 0.9 para la tasa de aprendizaje. 40 CAPÍTULO 3. METODOLOGÍA GSOM + neurons - dh - sigma_zero - eta_zero - t_max - t - width - height - normalized - w + GSOM() + ~GSOM() + GSOM() + GSOM() + getTMAX() + setT() + setTMAX() + setSigmaZero() + setEtaZero() + setNormalization() + setAttributesWeights() + map() + distance() + isNeighbor() + findBMU() + getNeurons() + distance() + updateNeuron() + step() + initialize() + train() + displayDistanceMatrix() + neigboursDistanceMatrix() - eta() - sigma() - h() Figura 3.5: La clase GSOM Capítulo 4 Pruebas y resultados 4.1. Pruebas Las pruebas se realizaron en una Laptop DELL Inspiron 5559 con 8GB de memoria RAM con sistema operativo Arch Linux x86_64 Kernel: 5.0.0-arch1-1-ARCH Se creó un mapa auto-organizado generalizado de 10 filas por 10 columnas que se entrenó durante 100 épocas con 608 patrones de pares microorganismo-antibiótico sin duplicados, se utilizó una tasa de aprendizaje inicial de 0.9, la función de vecindad utilizada fue gaussiana con un radio inicial de 15. Se crearon dos árboles jerárquicos del tipo categórico uno de microorganismos con un tamaño de profundidad de 7 y una anchura de 46 y otro árbol para los antbióticos con una profundidadad de 3 y un ancho de 48. 4.2. Resultados El tiempo de entrenamiento y ejecución fue de 47.18 segundos, los resultados se muestran en 41 42 CAPÍTULO 4. PRUEBAS Y RESULTADOS la figura 4.1, utilizando una representación conocida como Hit map, donde los números dentro de las casillas representan el número de patrones coincidentes con la neurona en la posición x, y y el color es asignado de acuerdo a dicho número. -2 0 2 4 6 8 10 -2 0 2 4 6 8 10 7 2 20 13 31 3 6 17 4 9 9 7 11 14 10 2 20 4 18 12 9 11 7 16 11 9 19 14 14 12 13 8 11 21 10 17 12 11 11 6 7 8 3 12 1 6 16 11 23 12 16 2 12 7 9 2 Figura 4.1: Hit Map de GSOM Para verificar la preservación topológica de los datos veremos en detalle el grupo formado por las neuronas (6, 0), (7, 0), (8, 0), (9, 0), (7, 1) y (8, 1). La neurona (6, 0) tiene 31 coincidencias y su vector prototipo es: { Acinetobacter iwoffii, 6.00452 }, { Levofloxacina, 2.00839 } La neurona (7, 0) tiene 3 coincidencias y su vector prototipo es: { Acinetobacter iwoffii, 6.00498 }, { Levofloxacina, 0.768032 } La neurona (8, 0) tiene 6 coincidencias y su vector prototipo es: { Acinetobacter haemolyticus, 6.01374 }, { Ampicilina, 1.05609 } La neurona (9, 0) tiene 17 coincidencias y su vector prototipo es: { Acinetobacter haemolyticus, 6.00209 }, { Ampicilina, 1.99333 } 4.2. RESULTADOS 43 La neurona (7, 1) tiene 7 coincidencias y su vector prototipo es: { Acinetobacter baumannii, 6.02939 }, { Cefotaxima, 2.00268 } La neurona (8, 1) tiene 11 coincidencias y su vector prototipo es: { Acinetobacter baumannii, 6.00723 }, { Cefotaxima, 1.99926 } Estas seis neuronas agrupan 75 de las 608 observaciones, todas estas corresponden a microorganismos del género Acinetobacter en contraposición por ejemplo con la neurona (0, 6) en donde las 21 observaciones corresponden al género de los Enterococos. En el caso de las neuronas (7, 0) y (8, 0) las observaciones coincidentes son las siguientes: Neurona(7, 0): 1. Acinetobacter baumannii, Moxifloxacino 2. Acinetobacter calcoaceticus, Moxifloxacino 3. Acinetobacter haemolyticus, Moxifloxacino Neurona(8, 0): 1. Acinetobacter baumannii, Imipenem y Cilastatina 2. Acinetobacter baumannii, Meropenem 3. Acinetobacter calcoaceticus, Imipenem y Cilastatina 4. Acinetobacter haemolyticus, Meropenem 5. Acinetobacter iwoffii, Imipenem y Cilastatina 6. Acinetobacter iwoffii, Meropenem En estos casos Moxifloxacino pertenece al subgrupo de los Monobactamicos mientras que Imipenem y Cilastatina y Meropenem pertenecen al subgrupo de las Quinolonas. 44 CAPÍTULO 4. PRUEBAS Y RESULTADOS Capítulo 5 Conclusiones y Trabajo futuro 5.1. Conclusiones Con la metodología utilizada es posible agregar campos en los patrones de entrada, siempre y cuando se cree su respectivo árbol de distancia jerárquica según sea el caso que corresponda: categórico, numérico o simple. La distancia jerárquica es una opción viable para tratar con bases de datos que contienen datos mixtos El remplazo en la métrica de la distancia numérica del SOM por una distancia generalizada resulta en el algoritmo llamado GSOM que permite agrupar datos mixtos. Como resultado de la ejecución del GSOM, se obtiene un modelo de los datos que son representados en un mapa que preserva las propiedades topológicas de los datos originales, de tal forma que agrupa las observaciones por la similaridad que existe entre ellas al extraeyendo los patrones de similiaridad a partir de los datos subministrados en forma de ejemplos entrenantes. 45 46 CAPÍTULO 5. CONCLUSIONES Y TRABAJO FUTURO Para poder visualizar el resultado del sistema se optó por utilizar un Hit-Map y una tabla con los resultado coincidentes en cada neurona así como el vector de pesos asociado al patron de la neurona. En las pruebas realizadas la implementación preserva correctamente la topología de los datos aún cuando se incluyen campos categóricos. La metodología empleada es dinámica ya que permite incluir más campos en los vectores de entrada para el análisis posterior al entrenamiento del GSOM. El parámetro w en (2.3) permite asignar una prioridad a los campos de entrada permitendo asignar un mayor peso a un determinado campo, esto puede ser útil al investigador al dar mayor importancia a alguna relación determinada. 5.2. Trabajo futuro En el presente trabajo se utilizaron 608 patrones correspondientes a los campos categóricos de Microorganismos y Antibióticos, para probar la implementaciónde los algoritmos con la distancia jerárquica, sin embargo, la base de datos está compuesta por 10,465 observaciones donde cada vector está compuesto por los campos de Fecha, Género, Servicio, Cultivo, Microorganismo, Antibiótico y Susceptibilidad por lo que se implementará una solución que incluya dichos campos. Se está trabajando en una interfaz gráfica de usuario para poder variar los parámetros de entrenamiento y mostrar los resultados de forma que proporcionen mayor información y significancia. Los mapas auto-organizados también pueden ser representados utilizando “matrices U” (matrices de distancia unificada), que son creadas utilizando la distancia promedio entre la neurona y sus vecinos más cercanos. 48 CAPÍTULO 5. CONCLUSIONES Y TRABAJO FUTURO Bibliografía [1] T. Kohonen, “Self-organized formation of topologically correct feature maps,” Biological Cybernetics, vol. 43, no. 1, pp. 59–69, 1982. [2] C.-C. Hsu, “Generalizing Self-Organizing Map for Categorical Data,” IEEE Transactions on Neural Networks, vol. 17, pp. 294–304, mar 2006. [3] L. Gordis, Epidemiología. Barselona, España: Elsevier, 5 ed., 2015. [4] D. O. de la Federación, “Norma oficial mexicana nom-017-ssa2-2012, para la vigilancia epidemiológica,” México: Diario Oficial de la Federación, 2013. [5] D. O. de la Federación, “Norma oficial mexicana nom-045-ssa2-2005, para la vigilancia epidemiológica, prevención y control de las infecciones nosocomiales [actualizado 20 nov 2009; consultado 01 mar 2013],” México: Diario Oficial de la Federación, 2013. [6] T. Oommen, D. Misra, N. K. C. Twarakavi, A. Prakash, B. Sahoo, and S. Bandopadhyay, “An Objective Analysis of Support Vector Machine Based Classification for Remote Sensing,” Mathematical Geosciences, vol. 40, pp. 409–424, may 2008. [7] U. Fayyad, G. Piatetsky-Shapiro, and P. Smyth, “The KDD process for extracting useful knowledge from volumes of data,” Communications of the ACM, vol. 39, no. 11, pp. 27–34, 1996. [8] S. Marsland, MACHINE LEARNING An Algorithmic Perspective Second Edition. 2015. 49 50 BIBLIOGRAFÍA [9] S. Haykin, Neural networks: a comprehensive foundation by Simon Haykin, Macmillan, 1994, ISBN 0-02-352781-7., vol. 13. 1999. [10] T. Kohonen, Self-Organization and Associative Memory, vol. 8. 1988. [11] C. Brauer, “An Introduction to Self-Organizing Maps,” Proseminar Artificial Intelligence, no. 6280610, 2012. Glosario de términos A antibiograma Prueba microbiológica para saber la susceptibilidad de un microorganimo a los antibióticos plural. 1, 2 D dataset Conjunto de datos que corresponde a los contenidos de una tabla de base de datos o una única matriz de datos, donde cada columna de la tabla representa una variable en particular, y cada fila representa a un miembro determinado del conjunto de datos en cuestión. plural. 13 F farmacorresistencia Resistencia de los microorganismos a la acción antibiótica de los medicamentos plural. 2 M MariaDB Sistema de Gestión de Bases de Datos derivado de MySQL con licencia GPL (General Public License).. 33 O 51 52 Glosario de términos outlier Un valor más extremo (outlier) es un valor en un conjunto de datos que es muy diferente de los otros valores plural. 13 P patógeno que puedan producir enfermedades o dañar al paciente plural. 1 Siglas I IAAS Infecciones Asociadas a la Atención de la Salud. 2 INSP Instituto Nacional de Salud Pública. 6 K KDD Knowledge Discovery in Databases. 2, 3, 12, 13 S SGBD Sistema Gestor de Base de Datos. 1, 33 SOM Self Organizing Map. 3, 22, 25, 26 53 Introducción Antecedentes Epidemiología Planteamiento del problema Objetivos General Específicos Justificación Alcance y limitaciones Alcance Limitaciones Marco teórico Descubrimiento de conocimiento en Bases de datos Selección Preprocesamiento Transformación Minado de datos Interpretación y evaluación Aprendizaje automático Aprendizaje supervisado Aprendizaje no supervisado La neurona artificial Redes Neuronales Artificiales Mapas Auto-Organizados Inspiración biológica de los mapas auto-organizados Los mapas auto-organizados como una red neuronal artificial Mapas Auto-Organizados Generalizados Distancia Jerárquica Distancia Jerárquica Categórica Distancia Jerárquica Simple Distancia Jerárquica Numérica Fase de ajuste Metodología Creación de una base de datos Arquitectura del software La clase nodo La clase punto La clase distancia jerárquica La clase neurona La clase GSOM Pruebas y resultados Pruebas Resultados Conclusiones y Trabajo futuro Conclusiones Trabajo futuro Bibliografía Glosario de términos Siglas
Compartir