34
Universidad Técnica Federico Santa María Departamento de Informática Magíster en Tecnologías de la Información 1 Optimización del Agendamiento de Horas Médicas, con Algoritmos de Redes Neuronales Artificiales Pablo Andrés Figueroa Plaza 1 IntegraMédica S.A. Avenida Libertador Bernardo O’Higgins 654, Santiago, Región Metropolitana [email protected] Resumen: En la actualidad para agendar una hora médica o un examen, solo se requiere que el paciente reserve el cupo sin mediar ningún tipo de compromiso. Esta realidad reduce la productividad de los profesionales y del equipamiento, dado la no asistencia de los clientes a las horas reservadas, que alcanza aproximadamente un 17%. Para solucionar esta problemática, se desarrolló un algoritmo en redes neuronales que logra predecir, con un 95% de certeza, si un determinado paciente asiste a un determinado agendamiento, con esta predicción es posible tomar medidas a priori para optimizar la utilización de los recursos. Para desarrollar este algoritmo, se utilizó la metodología CRISP-DM (Cross Industry Standard Process for Data Mining), un modelo de proceso de minería de datos que describe los enfoques comunes que utilizan los expertos del área. Palabras Clave: Optimización, Algoritmo, Redes Neuronales Artificiales, Agendamiento. 1 Introducción 1.1 Contexto, motivación y problemática La falta de profesionales en el sector salud, genera que en la actualidad un mercado donde retener un profesional del área sea cada vez más difícil, dada la proliferación de distintos actores en este mercado. En esta situación, IntegraMédica ofrece a los profesionales una oferta flexible, donde el profesional puede elegir ciertas condiciones y horarios de forma dinámica. A su vez, garantiza una gran ocupación de su oferta médica, logrando así una remuneración promedio médico, transmitiendo está situación al cliente, construyendo así una amplia oferta de especialidades, de fácil acceso y atractiva para el cliente. En este contexto, nace la motivación de realizar este estudio, dado que IntegraMédica pierde la oportunidad de ganar dinero y retener profesionales del sector salud por inasistencia del paciente, más en un mercado donde la oferta médica es reducida y limita el negocio. La inasistencia del paciente no se puede controlar, dada la dinámica de los pacientes al momento de agendar, sumado a que es un compromiso que no tiene ningún medio de presión sobre él mismo, más que su propia intención de asistir. 1.2 Definición del problema Actualmente, en IntegraMédica existe en promedio un 17% de inasistencia de los servicios agendados, impactando negativamente al negocio por los siguientes motivos: Alta pérdida en la posibilidad de generar ventas, por presencia de equipamiento y personal ocioso. No cumplimiento de la propuesta de valor al profesional médico. Pérdida de otros posibles clientes, por no tener más oferta médica disponible. 1 Ingeniero matemático, licenciado en matemáticas y licenciado en ciencias de la ingeniería matemática.

Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

1

Optimización del Agendamiento de Horas Médicas, con Algoritmos de Redes Neuronales Artificiales

Pablo Andrés Figueroa Plaza1

IntegraMédica S.A. Avenida Libertador Bernardo O’Higgins 654, Santiago, Región Metropolitana

[email protected]

Resumen: En la actualidad para agendar una hora médica o un examen, solo se requiere que el paciente reserve el cupo sin mediar ningún tipo de compromiso. Esta realidad reduce la productividad de los profesionales y del equipamiento, dado la no asistencia de los clientes a las horas reservadas, que alcanza aproximadamente un 17%. Para solucionar esta problemática, se desarrolló un algoritmo en redes neuronales que logra predecir, con un 95% de certeza, si un determinado paciente asiste a un determinado agendamiento, con esta predicción es posible tomar medidas a priori para optimizar la utilización de los recursos. Para desarrollar este algoritmo, se utilizó la metodología CRISP-DM (Cross Industry Standard Process for Data Mining), un modelo de proceso de minería de datos que describe los enfoques comunes que utilizan los expertos del área. Palabras Clave: Optimización, Algoritmo, Redes Neuronales Artificiales, Agendamiento.

1 Introducción

1.1 Contexto, motivación y problemática

La falta de profesionales en el sector salud, genera que en la actualidad un mercado donde retener un profesional del área sea cada vez más difícil, dada la proliferación de distintos actores en este mercado. En esta situación, IntegraMédica ofrece a los profesionales una oferta flexible, donde el profesional puede elegir ciertas condiciones y horarios de forma dinámica. A su vez, garantiza una gran ocupación de su oferta médica, logrando así una remuneración promedio médico, transmitiendo está situación al cliente, construyendo así una amplia oferta de especialidades, de fácil acceso y atractiva para el cliente. En este contexto, nace la motivación de realizar este estudio, dado que IntegraMédica pierde la oportunidad de ganar dinero y retener profesionales del sector salud por inasistencia del paciente, más en un mercado donde la oferta médica es reducida y limita el negocio. La inasistencia del paciente no se puede controlar, dada la dinámica de los pacientes al momento de agendar, sumado a que es un compromiso que no tiene ningún medio de presión sobre él mismo, más que su propia intención de asistir.

1.2 Definición del problema

Actualmente, en IntegraMédica existe en promedio un 17% de inasistencia de los servicios agendados, impactando negativamente al negocio por los siguientes motivos: • Alta pérdida en la posibilidad de generar ventas, por presencia de equipamiento y personal ocioso. • No cumplimiento de la propuesta de valor al profesional médico. • Pérdida de otros posibles clientes, por no tener más oferta médica disponible.

1Ingeniero matemático, licenciado en matemáticas y licenciado en ciencias de la ingeniería matemática.

Page 2: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

2

Siendo éste un grave problema para la organización, pero a su vez una gran oportunidad de mejora para la empresa, es que se busca una forma de mitigar esta situación y reducir la inasistencia de los pacientes a los servicios agendados.

1.3 Propuesta de solución y objetivos planteados

Dada la problemática, la solución propuesta y a validar en la presente tesina, se basa en implementar un algoritmo de redes neuronales que prediga la inasistencia del paciente. Se considera posible, dado que los algoritmos de redes neuronales son adaptativos, los cuales, con los suficientes datos, son capaces de encontrar patrones presentes en los mismos. Basado en esto, si existe algún patrón (por más oculto que esté), estos algoritmos generarán una predicción acorde al objetivo. Por lo expuesto con anterioridad, que es de mucha utilidad implementar un algoritmo que logre predecir, oportunamente, el comportamiento del cliente, para así poder modelar los puntos donde probablemente se presentará un aumento en la inasistencia, para suplir ésta con sobrecupos agendados e impactar favorablemente sobre este indicador. Con ello se desea optimizar la agenda de horas médicas por especialidad, aumentando la probabilidad de que un bloque de hora agendado sea utilizado por algún paciente. Para esto se realizará un estudio de esta situación por cada especialidad en cada centro médico y se implementará un algoritmo que tome la decisión de revender una hora, en caso de existir una alta probabilidad de inasistencia o abrir la venta de sobrecupos agendados. Para desarrollar este trabajo, se utilizará un modelo llamado CRISP-DM (Cross Industry Standard Process for Data Mining), que describe los enfoques comunes que utilizan los expertos del área, el cual divide el proyecto de minería de datos en 6 fases principales, detalladas más adelante en el marco teórico.

1.4 Hipótesis

Para el desarrollo de la solución, se poseen diversos datos que permiten modelar la situación y tal vez encontrar un modelo que permita simular una oferta futura, para así tomar medidas al respecto. Dado que no se conoce cómo podrían impactar estas variables en las diversas estratificaciones del problema por centro médico, especialidad, etc., se busca desarrollar un algoritmo de redes neuronales artificiales (RNA), dada la naturaleza adaptativa de éstos y su fortaleza para aproximarse a problemas no lineales. En base a lo expuesto con anterioridad, la hipótesis del trabajo es: “Es posible obtener una solución basada en algoritmos de RNA, la cual permita predecir que un paciente no asistirá a la consulta médica agendada con un grado de precisión de al menos un 95%”.

1.5 Metodología de validación

Para probar la hipótesis, se utilizará validación cruzada, técnica aplicada para evaluar los resultados y garantizar que son independientes de la partición entre los datos de entrenamiento y prueba. Esta técnica es muy utilizada en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y calcular la media aritmética obtenida sobre las evaluaciones de diferentes particiones, se divide los datos en conjuntos complementarios de la muestra, para luego realizar el análisis con un subconjunto denominado datos de entrenamiento y validar el análisis en el otro subconjunto, denominado datos de prueba. 1.6 Estructura del informe

El informe está compuesto por una primera parte, donde se exponen la problemática, hipótesis, metodología de validación y como ésta será abordada en adelante. En el capítulo 2 se aborda un marco teórico con los conceptos

Page 3: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

3

más relevantes a comprender para este trabajo y se genera una discusión de trabajos relacionados, que intentan resolver una problemática similar con redes neuronales. Durante el capítulo 3, se abordan las fases del CRISP-DM, desde el punto de vista del problema planteado, iniciando con la comprensión del negocio y de los datos, para luego preparar los mismos para así realizar el proceso de modelado y evaluación del algoritmo que permita validar la hipótesis generada. Posteriormente en el capítulo 4, se concluye el trabajo realizado, repasando lo ejecutado, agregando observaciones, consideraciones y conclusiones relevantes del proceso. Al final hay una sección de anexo, donde se adjuntan los códigos desarrollados para la tesina.

2 Marco Teórico

Con el objetivo de desarrollar el proyecto de minería de datos es importante contar con una metodología que permita realizar un trabajo adecuado, por ello en una primera instancia se detallas las principales metodologías que se aplican en proyecto de esta índole. Por otro lado, dado que se posee una gran cantidad de parámetros, es importante acotar los mismos, para así no requerir una cantidad exponencial de datos para entrenar el algoritmo, basado en esto se introduce una técnica ampliamente utilizada para la reducción de variables. Dado que es requerido un algoritmo adaptable, se discute en el presente capítulo los principales algoritmos de aprendizaje supervisado utilizados en la actualidad. Finalmente, se genera una discusión en base a otros trabajos realizados, en relación a la posibilidad de generar un algoritmo que permita predecir la inasistencia del paciente.

2.1 Metodologías para Proyectos de Minería de Datos

En esta sección se exponen las principales metodologías para desarrollar proyectos de minería de datos.

2.1.1 CRISP-DM (Cross Industry Standard Process for Data Mining)

Consiste en un modelo de procesos [6], el cual consta de cuatro niveles de abstracción, organizados de forma jerárquica en tareas que van desde el nivel más general hasta los casos más específicos.

A nivel más general, como se ilustra en la Figura 1, el proceso está organizado en fases, estando cada fase a su vez estructurada en varias tareas genéricas de segundo nivel. Las tareas genéricas se proyectan a tareas específicas, donde se describen las acciones que deben ser desarrolladas para situaciones específicas. Así, si en el segundo nivel se tiene la tarea genérica “limpieza de datos”, en el tercer nivel se indican las tareas que tienen que desarrollarse para un caso específico, como, por ejemplo, “limpieza de datos numéricos” o “limpieza de datos categóricos”. El cuarto nivel recoge el conjunto de acciones, decisiones y resultados sobre el proyecto de minería de datos específico. La metodología CRISP-DM entrega dos

documentos distintos como herramienta de ayuda en el desarrollo del proyecto de minería de datos: el modelo de referencia y la guía del usuario. El documento del modelo de referencia describe de forma general las fases, tareas generales y salidas de un proyecto de minería de datos en general. La guía del usuario dispone información más detallada sobre la aplicación práctica del modelo de referencia a proyectos de minería de datos específicos, proporcionando consejos y listas de comprobación sobre las tareas correspondientes a cada fase. Las fases de la metodología, como se ilustra en la figura 2, son:

Figura 1: Mapa de procesos CRISP-DM

Page 4: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

4

• Comprensión del negocio: esta fase se centra en la comprensión de los objetivos del proyecto y los requisitos desde una perspectiva de negocio para luego convertir este conocimiento en una definición del problema de minería de datos y un plan preliminar diseñado para lograr los objetivos.

• Comprensión de los datos: la fase de comprensión de los datos comienza con una recopilación inicial de datos y prosigue con las actividades para familiarizarse con los datos.

• Preparación de los datos: la fase de preparación de los datos abarca todas las actividades necesarias para construir el conjunto de datos final a partir de los datos brutos iniciales.

• Modelado: en esta fase, se seleccionan y aplican diversas técnicas de modelado y se calibran sus parámetros a valores óptimos.

• Evaluación: antes de proceder al despliegue del modelo final, es importante evaluar el modelo más exhaustivamente y revisar los pasos que se han tomado para construirlo, para asegurarse de que cumple adecuadamente los objetivos de negocio.

• Implementación: el conocimiento adquirido tendrá que ser organizado y presentado de manera que el cliente pueda usarlo.

2.1.2 KDD (Knowledge Discovery in Databases)

Es una metodología propuesta por Fayyad en 1996 [8]. Surge con la necesidad de manejar grandes cantidades de datos y es definido como el proceso no trivial de identificar patrones válidos, novedosos y potencialmente útiles y en última instancia, comprensible a partir de los datos. La extracción del conocimiento, que se refiere al proceso no trivial de descubrir el conocimiento e información potencialmente útil dentro de los datos contenidos en algún repositorio de información, no es un proceso automático. Es un proceso iterativo que exhaustivamente explora volúmenes muy grandes de datos para determinar relaciones, el cual extrae información de calidad que puede usarse para dibujar conclusiones basadas en relaciones o modelos dentro de los datos. Las etapas del KDD, como se ilustra en la Figura 3, son:

Figura 2: Fases CRISP-DM

Figura 2: Fases del CRISP-DM

Figura 3: Fases del KDD

Page 5: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

5

• Selección: en esta fase se reconocen las fuentes de información más importantes y tipo de información a utilizar. Se extraen los datos desde las fuentes seleccionadas.

• Exploración: esta etapa consiste en la preparación y limpieza de los datos extraídos desde las distintas fuentes de datos, en una forma manejable para las fases posteriores.

• Modificación: consiste en el tratamiento preliminar de los datos, transformación y generación de nuevas variables a partir de las ya existentes con una estructura de datos apropiada.

• Modelización: es la fase de modelado propiamente tal, en donde métodos inteligentes son aplicados con el objetivo de extraer patrones previamente desconocidos, válidos, nuevos, potencialmente útiles, comprensibles y que estén contenidos u ocultos en los datos.

• Valoración: se identifican los patrones obtenidos que sean realmente interesantes; basándose en algunas medidas se realiza una evaluación de los resultados conseguidos.

2.1.3 SEMMA ( Sample-Explore-Modify-Model-Assess)

SEMMA es el acrónimo de cinco fases de una metodología propuesta por SAS Institute Inc, la que se define como: “proceso de selección, exploración y modelado de grandes cantidades de datos para descubrir patrones de negocio desconocidos”. Está compuesta por 5 fases, las cuales son:

• Muestreo (Sample): en esta primera fase de la metodología, se realiza la extracción de un conjunto de datos que sean una buena representación de la población a analizar.

• Exploración (Explore): en esta fase se realiza un recorrido a través de los datos extraídos para detectar, identificar y eliminar datos anómalos.

• Modificación (Modify): corresponde a la modificación de los datos, generando así, variables nuevas a partir de la modificación, transformación y creación de variables.

• Modelado (Model): las herramientas de software se encargan de realizar una búsqueda completa de combinaciones de datos que en conjunto predecirán de manera confiable el resultado buscado.

• Evaluar (Assess): se buscan indicadores de calidad del modelo obtenido en la fase anterior.

2.2 Técnicas para la Reducción de Factores

Si bien muchas veces en proyectos de minería de datos, la intuición juega un factor muy importante, es necesario apoyarse en técnicas que entreguen información relevante de la relación de las variables, reduciendo el sesgo que genera el investigador. Por otro lado, es importante reducir la redundancia de variables que expliquen la misma situación, debido a que entre más variables se posean en el proyecto, más datos serán requeridos para el entrenamiento, generando un crecimiento exponencial de los mismos. Por esto surge el análisis factorial, el cual posee múltiples algoritmos que permiten encontrar factores que agrupan variables y a su vez distintos métodos de rotación para interpretar los resultados.

2.2.1 Análisis Factorial

El análisis factorial [2] es una técnica utilizada para descubrir agrupaciones de variables, de tal forma que las mismas están altamente correlacionados a un factor y éstos están relativamente no correlacionados. De este modo se consigue reducir el número de parámetros que describen la situación, dada la asociación de las mismas a factores no correlacionados, que permiten explicar la mayor cantidad de varianza presente en el escenario, basado en las variables presentes en el problema. Esta técnica forma parte de un conjunto de técnicas multivariadas denominadas de “interdependencia”, ya que analizan la relación mutua entre un conjunto de parámetros. Su finalidad principal no es el análisis de relaciones causales, sino la agrupación de variables en función de la variabilidad que cada parámetro comparte con otras (varianza o covarianza). En síntesis, se busca la información proporcionada por cierto grupo de datos observados, en un número inferior de información no observada (factores comunes o componentes principales,

Page 6: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

6

depende de la variabilidad analítica que se realice), con la menor pérdida de información posible. Dichas variables no observadas (o latentes), darían cuenta de conceptos no observados directamente, que engloban lo que tienen en común los parámetros observados. La técnica es útil para una serie de objetivos: • Reducir la información de una matriz de correlaciones a partir de la construcción de funciones lineales. • Descifrar patrones de dependencia a partir del análisis de correlaciones múltiples. • Identificar dimensiones que representan esquemas conceptuales de análisis. • Validar la construcción de instrumentos de medida, particularmente escalas.

El análisis factorial [3] se caracteriza por estudiar la varianza total del conjunto de datos observados. El propósito es maximizar la proporción total de la varianza explicada, mediante las dimensiones básicas (o componentes) que la definen. Este método detalla el máximo porcentaje de varianza explicada en cada ítem a partir de un número menor de componentes que resumen la información. La representación algebraica del modelo de componentes principales tiene como ecuación:

��� = ��� ∗ �� + �� ∗ � +⋯+��� ∗ �� ….

��� = ��� ∗ �� + �� ∗ � +⋯+ ��� ∗ �� Donde, CP�i ∈ �1,m� corresponde a la componente, X�j ∈ �1, p� hace referencia a la variable, m: el número de componentes principales, p: el número de variables observadas y w��: el peso elegido para la j-ésima variable observada para maximizar la razón de varianza de la i-ésima componente respecto de la varianza total. Los principales pasos a seguir son [4]: • Elaboración de la matriz de correlaciones: es recomendable realizar una serie de pruebas conexas, para

evaluar la continuidad del análisis factorial, tales como: a) Determinante de la matriz de correlaciones, debe ser muy bajo, distinto de cero. b) Test de esfericidad de Bartlett, prueba si la matriz de correlaciones es identidad, � ≤ 0.05. c) Índice Kaiser-Meyer-Olkin, mide la adecuación de la muestra, ≥ 0.5 para continuar. d) Coeficiente de correlación parcial, indicador que muestra la fuerza de las relaciones, eliminando la

influencia de otros. Estos coeficientes deben ser cercano a 0. e) Coeficiente de correlación anti-imagen, se deben observar pocos valores absolutos elevados. f) Diagonal de la matriz de correlación anti-imagen, los valores deben ser altos, ≥ 0.5.

• Extracción de los componentes principales: busca los componentes que expliquen la mayor varianza posible. • Rotación de los factores iniciales: para facilitar la interpretación los resultados, se utilizan métodos de

rotación ortogonal o no ortogonales, para este estudio utilizaremos el método ortogonal Varimax. • Denominación a los factores encontrados: debe adjudicarse a los componentes encontrados.

2.3 Algoritmos Adaptativos de Aprendizaje Supervisado

Conforme a que la variabilidad de situaciones y comportamiento por los múltiples factores que inciden en el modelo, puede generar “n” modelos para explicar una situación, los algoritmos adaptativos de aprendizaje supervisado son capaces de ajustarse a los diferentes escenarios, reduciendo la complejidad de forma exponencial. En esta sección se explican los principales algoritmos de aprendizaje supervisado.

2.3.1 Redes Neuronales Artificiales

Las redes neuronales artificiales (RNA) se basan en la analogía que existe en el comportamiento y función del cerebro humano, en particular del sistema nervioso, el cual está compuesto por redes de neuronas biológicas, que poseen bajas capacidades de procesamiento. Sin embargo, toda su capacidad cognitiva se sustenta en la conectividad de éstas.

Page 7: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

7

Una RNA es un esquema de computación distribuido, inspirado en la estructura del sistema nervioso de los seres humanos. La arquitectura de una RNA se forma conectando múltiples procesadores elementales, siendo ésta un sistema adaptivo que posee un algoritmo para ajustar sus pesos (parámetros libres), para alcanzar los requerimientos de desempeño del problema basado en muestras representativas [9]. Por lo tanto, es posible señalar que una RNA es un sistema de computación distribuida caracterizada por: • Un conjunto de unidades elementales, cada una de las cuales posee bajas capacidades de procesamiento. • Una densa estructura interconectada usando enlaces ponderados. • Pesos o parámetros libres que deben ser ajustados para satisfacer los requerimientos de desempeño. • Un alto grado de paralelismo.

Es importante señalar que la propiedad más importante de las RNA, es su capacidad de aprender a partir de un conjunto de patrones de entrenamiento, es decir, es capaz de encontrar un modelo que ajuste los datos. El proceso de aprendizaje, conocido como entrenamiento de la red, puede ser supervisado o no supervisado. El aprendizaje supervisado consiste en entrenar la red a partir de un conjunto de datos o patrones de entrenamiento compuesto por patrones de entrada y salida. El objetivo del algoritmo de aprendizaje, es ajustar los pesos de la red “W” de manera tal que la salida generada por la RNA sea lo más cercanamente posible a la verdadera salida, dada una cierta entrada y entrenamiento. Es decir, la red neuronal trata de encontrar un modelo al proceso desconocido que generó la salida “y” . Este aprendizaje se llama supervisado, dado que se conoce el patrón de salida, el cual hace el papel de supervisor de la red. En cambio, en el aprendizaje no supervisado, se presenta sólo un conjunto de patrones a la RNA y el objetivo del algoritmo de aprendizaje es ajustar los pesos de la red, de manera tal que la red encuentre alguna estructura o configuración presente en los datos. En la última década las RNAs han recibido un interés particular como una tecnología para la minería de datos, puesto que ofrecen los medios para modelar de maneras efectiva y eficiente problemas grandes y complejos. Los modelos de RNA [10] son dirigidos a partir de los datos, es decir, son capaces de encontrar relaciones (patrones) de forma inductiva por medio de los algoritmos de aprendizaje, basados en los datos existentes más que requerir la ayuda de un modelador para especificar la forma funcional y sus interacciones. Las RNA son un método de resolver problemas de forma individual o combinadas con otros métodos, para aquellas tareas de clasificación, identificación, diagnóstico, optimización o predicción, en las que el balance datos/conocimiento se inclina hacia los datos y donde adicionalmente, puede haber la necesidad de aprendizaje en tiempo de ejecución y de cierta tolerancia a fallos. En estos casos se adaptan dinámicamente, reajustando constantemente los pesos de sus interconexiones. La unidad de una RNA, es un procesador elemental llamado neurona que posee la capacidad limitada de calcular, en general, una suma ponderada de sus entradas y luego aplicar una función de activación para obtener una señal, que será transmitida a la próxima neurona. Estas neuronas artificiales se agrupan en capas o niveles y poseen un alto grado de conectividad entre ellas, conectividad que es ponderada por los pesos. A través de un algoritmo de aprendizaje supervisado o no supervisado, las RNA ajustan su arquitectura y parámetros de manera de poder minimizar alguna función de error que indique el grado de ajuste a los datos y la capacidad de generalización de las RNA. Una vez definida el tipo de neurona que se utilizará en un modelo de RNA es necesario definir la topología de la misma. La organización y disposición de las neuronas dentro de una red neuronal se denomina topología, y viene dada por el número de capas, la cantidad de neuronas por capa, el grado de conectividad y el tipo de conexión entre ellas. Las neuronas suelen agruparse en unidades funcionales denominadas capas. Se denomina capa de entrada a aquélla que está compuesta por neuronas de entradas y por lo tanto recibe información procedente desde el exterior. Análogamente, se denomina capa oculta y capa de salida a aquellas capas que están compuestas por neuronas ocultas y de salida, respectivamente. Una RNA está compuesta por una o más capas, las cuales se encuentran interconectadas entre sí. Entre un par de neuronas de la RNA pueden existir conexiones que son las

Page 8: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

8

sinapsis, que tienen asociadas un peso sináptico y son direccionales. Cuando la conexión se establece entre dos neuronas de una misma capa se habla de conexiones laterales o conexiones intra-capa. Por el contrario, si la conexión se establece entre neuronas de distintas capas se la denomina conexión inter-capa. Si la conexión se produce en el sentido inverso al de entrada-salida la conexión se llama realimentada. Una red puede estar formada por una única capa de neuronas. En este caso se refiere a redes monocapa, y las neuronas que conforman dicha capa cumplen la función de neuronas de entrada y salida simultáneamente. Cuando la red está compuesta por dos o más capas es una red multicapa. A su vez, una red con conexión hacia delante (red feedforward [11]), hacen referencia a las conexiones entre las distintas neuronas de la red siguen un único sentido, desde la entrada de la red hacia la salida de la misma. Cuando las conexiones pueden ser tanto hacia delante como hacia atrás se habla de redes recurrentes (redes feedback).

2.3.2 Máquinas de Soporte Vectorial

Las máquinas de soporte vectorial [7] (SVM, del inglés Support Vector Machines) tienen su origen en los trabajos sobre la teoría del aprendizaje estadístico y fueron introducidas en los años 90 por Vapnik [13][14] y sus colaboradores. Aunque originariamente las SVMs fueron pensadas para resolver problemas de clasificación binaria, actualmente se utilizan para resolver otros tipos de problemas (regresión, agrupamiento, multi-clasificación). También son diversos los campos en los que han sido utilizadas con éxito, tales como visión artificial, reconocimiento de caracteres, categorización de texto e hipertexto, clasificación de proteínas, procesamiento de lenguaje natural y análisis de series temporales. De hecho, desde su introducción, han ido ganando un merecido reconocimiento gracias a sus sólidos fundamentos teóricos. Dentro de la tarea de clasificación, las SVMs pertenecen a la categoría de los clasificadores lineales, puesto que inducen separadores lineales o hiperplanos, ya sea en el espacio original de los ejemplos de entrada, si éstos son separables o cuasi-separables (ruido), o en un espacio transformado (espacio de características), si los ejemplos no son separables linealmente en el espacio original. La búsqueda del hiperplano de separación lineal en estos espacios transformados, normalmente de muy alta dimensión, se hará de forma implícita utilizando las denominadas funciones kernel (por ejemplo: polinomial homogénea, perceptron, función de base radial Gaussiana, Sigmoid, etc…). Mientras la mayoría de los métodos de aprendizaje se centran en minimizar los errores cometidos por el modelo generado a partir de los ejemplos de entrenamiento (error empírico), el sesgo inductivo asociado a las SVMs radica en la minimización del denominado riesgo estructural. La idea es seleccionar un hiperplano de separación que equidista de los ejemplos más cercanos de cada clase y de esta forma conseguir lo que se denomina un margen máximo a cada lado del hiperplano. Además, a la hora de definir el hiperplano, sólo se consideran los ejemplos de entrenamiento de cada clase que caen justo en la frontera de dichos márgenes, las que reciben el nombre de vectores de soporte. Desde un punto de vista práctico, el hiperplano separador de margen máximo ha demostrado tener una buena capacidad de generalización, evitando en gran medida el problema del sobreajuste a los ejemplos de entrenamiento. Desde un punto de vista algorítmico, el problema de optimización del margen geométrico representa un problema de optimización cuadrático con restricciones lineales que puede ser resuelto mediante técnicas estándar de programación cuadrática. La propiedad de convexidad exigida para su resolución garantiza una solución única, en contraste con la no unicidad de la solución producida por una RNA entrenada con un mismo conjunto de ejemplos.

2.4 Trabajos Relacionados

Encontrar una solución al ausentismo de pacientes a las consultas médicas, no es solo un problema particular de IntegraMédica, de hecho, existen datos públicos que incentivan a entusiastas a resolver si una persona faltará o no a su cita médica, como se puede observar en Kaggle2, dentro de las soluciones obtenidas destaca la de 2 https://www.kaggle.com/joniarroba/noshowappointments

Page 9: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

9

Somrik Banerjee3, el cual propone un predictor basado en clasificador bayesiano ingenuo multinomial, realizando una selección de características basado en la varianza, obteniendo un modelo de 7 entradas con una precisión de un 71%. Otro resultado que destaca es el de Luis Broncha4, el cual modela la situación mediante árboles de decisión y regresión logística, generando una estimación de 56,2%. Basado en lo anterior y en la búsqueda de un algoritmo de mayor precisión que permita obtener mejores resultados, se observa que las RNA han sido muy eficientes para entender el comportamiento del ser humano; por su naturaleza ajustable y de aprendizaje supervisado, han dado respuesta a muchas problemáticas donde está relacionado el ser humano. Generando respuestas a temas tales como: • Predicciones de audiencias de televisión [15]: aplicación de RNA en la predicción del comportamiento

humano en la selección de elementos complejos, como por ejemplo los programas de televisión, donde tras ser entrenada con cientos de ejemplos de audiencia anteriores la RNA realiza una predicción de la semana siguiente.

• Sistema de detección de ironía basado en palabras y caracteres para textos cortos en español [16]: permite mediante un algoritmo de aprendizaje supervisado, como SVM y Random Forest, y usando n-gramas clasificar correctamente con un 70% frases irónicas, capacidad hasta ahora solo del ser humano.

• El procesamiento del lenguaje natural [17] [18]: mediante los desarrollos de Google en RNA, se obtiene una forma de clasificar el lenguaje y comprender el contenido.

• Predicción del comportamiento humano a través de la escritura [19]: utilizar RNA para detectar los rasgos de personalidad revelados por la línea base, la presión del bolígrafo y la letra. Si bien generan un primer acercamiento en la predicción del comportamiento humano mediante la escritura manuscrita, es bastante limitado, es una certeza que estos algoritmos logran detectar patrones con mayor precisión que el ser humano, generando incluso mejores diagnósticos que expertos en grafología.

• Deserción de estudiantes [20]: la cual tiene una premisa muy similar a la de este proyecto de tesis, basado en generar un modelo que logre estimar la decisión de una persona de asistir o no a sus estudios; se intenta emular la decisión de una persona de asistir o no a una consulta médica.

• Pronosticar la demanda de Pacientes Ambulatorios [22]: donde se concluye un algoritmo RNA con 3 capas ocultas para realizar esta tarea, si bien también considera un algoritmo genético para la selección de variables, basado en la complejidad que presentaba el caso, se muestra que una adecuada estimación de la demanda de pacientes ambulatorios se desarrolla mediante algoritmos de RNA, a su vez destaca lo precisa que son las funciones de activación tangente hiperbólica en las capas ocultas, consideraciones bastante relevantes que se considerarán al establecer la arquitectura de este trabajo.

Basado en lo anterior, se puede suponer que un algoritmo de RNA puede predecir eficientemente el ausentismo de los pacientes.

3 Agendamiento de Horas Médicas

En este capítulo se analiza la información disponible y se establece una codificación útil para que el algoritmo pueda interpretarla. Una vez comprendidos los datos, se procede con la fase de preparación de los datos, donde se ejecutará la codificación y se efectuará un análisis factorial, con el objetivo de reducir variables redundantes y escoger los mejores candidatos para la fase de modelado, obteniéndose un conjunto de datos disponibles para el entrenamiento. En la fase de modelado se comenzarán a evaluar diferentes arquitecturas de RNA con la finalidad de buscar la que mejor estime el problema planteado. Una vez definido el modelo, se evaluará mediante la técnica de validación cruzada, con el objetivo de probar la hipótesis propuesta en el capítulo 1.

3 https://www.kaggle.com/somrikbanerjee/predicting-show-up-no-show 4 https://www.kaggle.com/lbronchal/eda-medical-appointment-no-show

Page 10: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

10

3.1 Comprensión del negocio

IntegraMédica es el principal prestador de salud ambulatoria del país; busca acercar la salud a las personas a través de centros médicos en sectores de alta densidad poblacional, una oferta médica en todas las especialidades y equipamiento de alta calidad. A la fecha IntegraMédica cuenta con 24 centros médicos, distribuidos por todo Chile, posee diversos canales como IntegraMédica Centros Médicos y Sonorad. Dado que IntegraMédica pierde la oportunidad de ganar dinero y retener profesionales del sector salud por inasistencia del paciente, más en un mercado donde la oferta médica es reducida y limita el negocio, es necesario poder estimar eficientemente, si un paciente va asistir o no a una consulta médica, para así construir una oferta futura y tener la oportunidad de tomar decisiones sobre la misma. Por ello, el objetivo de este análisis es construir un modelo que sea lo suficientemente certero para predecir la asistencia o inasistencia del paciente. Para lograr este objetivo se utilizarán algoritmos de RNA, por su naturaleza adaptativa para acercarse a problemas no lineales.

3.2 Comprensión de los datos

Los datos disponibles para realizar el análisis son: • Fecha del agendamiento (f_agenda): fecha en la cual se programó la consulta médica. • Hora del agendamiento (h_agenda): hora en la cual se programó la consulta médica. • Unidad organizativa (uo): centro médico en la cual se realizó se programó la consulta médica y la sub

especialidad de la misma. • Unidad de enfermería (asignenf): unidad organizativa, hace referencia al centro médico, piso y caja de la

atención. • Especialidad (especialidad): especialidad en la cual se realizó el agendamiento, está codificado de forma

numérica. • Médico (medico): médico con el cual se programó la consulta médica. • Duración (duracion): de la atención en minutos, en acuerdo con el médico o según el equipo asignado. • Fecha de creación (f_creacion): fecha en la cual se generó el agendamiento por parte del paciente. • Usuario de creación (u_creacion): origen de creación de la consulta médica, si esta fue realizada por

internet o por algún usuario del call center o centro médico. • Fecha de modificación (f_modificacion): fecha en la cual se realizó algún tipo de modificación en el

agendamiento. • Usuario de modificación (u_modificacion): usuario que genero una modificación al agendamiento, esto

se gatilla ya sea cuando anula, modifica o ingresa a la atención médica. • Episodio (episodio): episodio asignado a la atención, este se genera cuando un paciente realiza un proceso

de facturación. • Anulación (anulado): anulación previa de la atención. • Motivo de anulación (mot_anul): motivo por el cual el paciente anulo. • Fecha de anulación (f_anul): fecha con la cual el paciente genera la anulación. • Hora de anulación (h_anul): hora con la cual el paciente genera la anulación. • Población (poblacion): población donde vive el paciente, registrado en el sistema. • Distrito (distrito): distrito donde vive el paciente. • Dirección (dirección): dirección del paciente. • Sexo (sexo): sexo del paciente • Fecha de nacimiento (f_nacimiento): fecha de nacimiento del paciente. • Código de paciente (paciente): código numérico interno de integramédica, identificador de paciente. • Rut de paciente (rut): rut del paciente. • Aseguradora (aseguradora): aseguradora a la cual pertenece el paciente.

Ahora se procede a analizar los datos disponibles, para determinar los campos que considerará en el modelo final y los datos que se utilizarán para generar la oferta futura.

Page 11: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

11

Es importante señalar que para que el modelo converja, y no tener que utilizar una cantidad excesiva de datos para el entrenamiento de la red neuronal, se necesita agrupar la mayor variabilidad en características acotadas que resuman la información.

Variable Objetivo

La variable objetivo corresponde a si el paciente asiste o no asiste, lo que se refleja cuando se crea un episodio o sea que el paciente llega a facturar la atención. Dado que se busca predecir la inasistencia, la variable codificada será 1 si el paciente no asiste y 0 si el paciente asiste.

Fecha y hora del agendamiento

Estos campos entregan información, en relación a factores de estacionalidad que pueden impactar en el modelo, bajo los siguientes campos: • Mes del agendamiento, codificado de 1 (enero) a 12 (diciembre), variable cualitativa nominal. • Día de la semana, codificado de 0 (domingo) a 6 (sábado), variable cualitativa nominal, figura 4. • Hora del agendamiento, codificado 1 a 24 horas, redondeando la atención, ya que construir un modelo por

minutos requiere muchos datos de entrenamiento, variable cuantitativa discreta, figura 4.

Unidad organizativa, unidad de enfermería y especialidad

Al analizar estos campos, es posible obtener desde el centro médico hasta la caja del agendamiento, para el análisis se considerará: • Centro Médico: codificado de 0 a 30, variable cualitativa nominal. • Unidad Organizativa: codificado de 0 a 142, variable cualitativa nominal. • Especialidad: codificado de 0 a 36, variable cualitativa nominal. • Línea de Negocio: codificado de 0 a 4, variable cualitativa nominal.

Figura 4: Distribución de la cantidad de agendamientos por horas o día de la semana.

Page 12: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

12

Médico y Duración de la Atención

Dado que se tiene alrededor de 2.780 médicos, para entrenar una red neuronal que se adapte a esta variabilidad de datos, es requerida una gran cantidad de datos sin garantizar convergencia. Pero se construirá otra variable que permita ayudar a no perder información: • Duración: se reclasificará la duración de la consulta en 10, 15, 20, 30 y mayor a 30 minutos, codificado de

0 a 4, variable cualitativa ordinal.

Fecha y usuario de creación/modificación

Con la fecha de creación, es posible obtener información importante respecto de la anticipación con la cual se agendó la atención. • Días previos de agendamiento: este rango fue restringido de 0 a 200 días y luego transformado en

percentiles, para acotarlo entre 0 y 1, dado su naturaleza, no perder la variabilidad de los datos.

Al analizar el usuario de creación, se observa que existen 2.332 usuarios distintos, así que se recodificarán en una nueva variable con las siguientes condiciones: • AGENDATI, AGENDASF = 1, realizados automáticamente por usuario en el sistema. • Usuarios con frecuencia > 1.000 agendamientos = 2, usuarios del Call center. • Usuarios con frecuencia ]1.000,100] agendamientos = 3, usuarios de los Centros Médicos. • Usuarios con frecuencia < 100 agendamientos = 4, usuarios médicos.

Respecto a la fecha de modificación, está se transforma en una variable que toma el valor 1 fue modificada antes de la fecha de atención y 0 en el resto de los casos. Para el usuario de modificación, se realizará una codificación por frecuencia, para observar si aporta información al modelo.

Figura 5: Distribución de la cantidad de atenciones por especialidad, centro médico y líneas de negocio.

Page 13: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

13

Anulación, motivo de anulación y fecha de anulación

Con esta información, se construyen tres variables: • Id anulado: codificado entre 0 y 2, donde 0 es no anulado, 1 es anulado sin motivo y 2 corresponde al resto

de los anulados. • Diferencia días de anulación: corresponde la cantidad de días entre la fecha de agendamiento y la

correspondiente a la de anulación. • Id días anulación: este campo es una codificación del anterior entre 0 y 3, donde:

o (0 = 0 días), (1 = [1, 3] días), (2 = [4, 10] días) y (3 > 10 días).

Paciente (código paciente, rut, fecha de nacimiento, sexo, dirección, población y distrito)

Con esta información es posible generar varios campos interesantes, que puedan resumir su información en características importantes para el análisis: • Sobre-Agendamiento: codificado entre 0 y 1, destaca los usuarios que poseen más de 30 agendamientos

mensuales. • Edad: cálculo de la edad del paciente, con respecto a la fecha de agendamiento. • Agrupación de edades: para observar en los análisis la posibilidad de reemplazar la variable edad, por una

de agrupación, se crearon 12 agrupaciones. • Sexo: esta variable se encuentra bien codificada entre 1 y 3. • Puntuación Paciente: se calcula una variable basado en el comportamiento del paciente, para poder calificar

su comportamiento con la siguiente fórmula: $%&'()&*+,-./0120 = 345'567%(')5 + 4%89)('*%75 − $%)5'567%(')5; 4<7%&)='7%6*5⁄

En relación a los campos dirección, población y distrito no se consideran ya que son de tipo texto y digitados manualmente, por lo cual no hay una codificación aparente a primera vista:

• Población: 13.066 valores únicos de tipo string. • Distrito: 2.871 valores únicos de tipo string. • Dirección: 231.284 valores únicos de tipo string.

3.3 Preparación de los datos

En esta etapa se codifican los datos, conforme a lo analizado con anterioridad, y se realiza un análisis factorial para determinar las variables más apropiadas que expliquen la mayor cantidad de varianza, utilizando la menor cantidad de variables, dado que es importante para utilizar una cantidad acotada de información en el entrenamiento del modelo, ya que cada variable que se considera genera un efecto exponencial en los datos necesarios para que el algoritmo converja.

3.3.2 Construcción y codificación de datos

La preparación de los datos, para la construcción del modelo, se realizará con las bibliotecas: • Matplotlib, es una biblioteca que permite hacer gráficos que pueden ser guardados en ficheros (png, svg,

pdf, etc) o ser utilizados interactivamente. • Numpy, es una biblioteca en la que se define un tipo de dato que representa matrices multidimensionales,

equivalente a las matrices en R. • Pandas, es una biblioteca de Python que proporciona estructuras de datos similares a los dataframes de R.

Los principales datos que se pueden representar en pandas son: o Datos tabulares con columnas de tipo heterogéneo con etiquetas en columnas y filas. o Series de tiempo.

Siendo estas algunas de las bibliotecas utilizadas para ciencia de datos con Python [1], el script se adjunta en el anexo 1.

Page 14: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

14

3.3.3 Análisis Factorial

Una vez construidas las variables, con las consideraciones del análisis de los datos, se procede a realizar un mejor ajuste de las variables para el modelo, para lo cual se realiza un análisis factorial para determinar agrupaciones de variables que estén altamente correlacionadas. De este modo se consigue reducir el número de variables interrelacionadas a un número de factores no correlacionados, logrando así explicar la mayor cantidad de varianza. Al ejecutar el análisis por primera vez explica un 67,5% de varianza; si bien se cumplen las pruebas básicas para el análisis de datos, se observa que en la matriz de comunalidades (Tabla 1), existen variables que presentan una extracción menor a 0.45, por lo que es recomendable sacarlas del análisis, para así poder aumentar el poder explicativo del modelo. Este análisis se desarrolla en SPSS, utilizando el método de “Componentes Principales”, el cual busca un factor principal que explique la mayor cantidad de varianza; luego ésta se resta de la matriz principal y se extrae otro factor. Los factores extraídos no se correlacionan entre ellos, por esta razón se dice que los factores son ortogonales. A continuación, se observa el resultado: • Determinante de la matriz de correlaciones = 7.005E-5, dado que este valor es muy bajo, significa que

existen variables con intercorrelaciones muy altas, por lo que es factible continuar con el análisis factorial. • Test de Esfericidad de Barlett, sig. = 0.000, se utiliza para

probar la hipótesis nula que afirma que las variables no están correlacionadas en la población. En este caso se rechaza la hipótesis nula y se continúa con el análisis (Tabla2).

• Índice Kayser-Meyer-Olkin = 0.661, mide la adecuación de la muestra. Indica qué tan apropiado es el análisis factorial, los valores entre 0.5 y 1 indican que es apropiado aplicarlo (Tabla 2).

• Coeficiente de correlación anti-imagen, se observan valores pequeños en términos absolutos y no se evidencia la presencia excesiva de valores 0, por esto es factible continuar con el Análisis Factorial (Tabla 3).

• Diagonal de la matriz de correlación anti-imagen, se observan valores altos en la diagonal, por ello cuanto mayor sea el valor del MSA es mejor para continuar con el análisis; dado que se cumple esta condición, es factible continuar con el análisis factorial (Tabla 3).

Tabla 1: Tabla de Comunalidades.

Tabla 2: Test de KMO y Barlett.

Tabla 3: Matriz de Correlación anti-Imagen.

Page 15: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

15

Los factores extraídos del análisis factorial explican un 73.12% de la varianza, como se ilustra al final de la última columna de la Tabla 4 y el gráfico de sedimentación del análisis que ilustra cuanta capacidad explicativa va aportando cada componente a medida que se van incorporando al modelo (Figura 6).

Dado que el resultado del análisis factorial es difícil de interpretar, se efectúa una rotación de factores mediante el método de rotación ortogonal Varimax, que es un ajuste de rotación de los factores que máximiza la varianza explicada por cada uno de ellos, equilibrando así las diferencias entre autovalores (Tabla 5). Dado el resultado obtenido del análisis factorial, se buscan las mejores variables para el modelo; a continuación, se detallan los motivos de selección:

• Num_anul e id_anulado: estas variables representan la misma situación, pero con una diferente codificación. Se observa que incide de mayor forma num_anul, siendo una variable más sencilla y por ende requerir menos datos de entrenamiento para el modelo.

• Id_ceco, id_un_org e id_grupo: se selecciona la variable que más impacta en la componente 2 (Figura 11), osea id_ceco, además posee una variabilidad intermedia y es una agrupación muy usada en IntegraMédica.

• Edad y g_edad: según el análisis estas variables son idénticas, pero g_edad posee una variabilidad mucho menor, por ello es la seleccionada ya que implica menos datos de entrenamiento.

• Diff_anul yid_dias_anul: estas variables impactan en la tercera componente, pero para el modelo seleccionamos id_dias_anul, ya que es una variable ordinal de menor rango, que impacta también en la primera componente, donde hay información de la variable objetivo.

Tabla 4: Varianza total explicada en el modelo.

Figura 6: Gráfico de sedimentación.

Tabla 5: Matriz de componentes rotados, método Varimax.

Page 16: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

16

• Diff_agend y prc_diff, para este caso seleccionamos diff_agend, ya que es la que variable que más explica en la tercera componente.

• Cod_umod y diff_mod, corresponden a variables que hacer referencia a si el episodio fue modificado en algún momento. Si bien ninguna de las variables es líder en alguna componente, aportan en diferentes componentes. Dado que entregan una información distinta, se escoge la variable diff_mod, que aporta más correlación en varias componentes y es dicotómica a diferencia de cod_umod.

Las variables elegidas marcadas en amarillo (Tabla 5), corresponden a las seleccionadas para un primer modelo; se puede construir un segundo modelo extendiendo con las variables en verde claro (Tabla 5), para observar si aportan a la certeza del mismo. Basado en lo señalado, se definen dos conjuntos de datos: • Conjunto de Datos A: corresponde a los campos en amarillo de la Tabla 5; posee un total de 9 variables.

o Num_Anul, Id_dias_anul, Diff_mod, Id_ceco, N_diff_agend, G_edad, Ind_pac, D_semana.

• Conjunto de Datos B: corresponde a los datos del conjunto A, extendido con los campos en verde de la

Tabla 5; posee un total de 12 variables.

o Num_Anul, Id_dias_anul, Diff_mod, Id_ceco, N_diff_agend, G_edad, Ind_pac, D_semana, Cod_umod, Hora y Cod_ucrear.

3.3.4 Conjunto de análisis y normalización de valores

Para la construcción de RNAs es recomendable que las variables cuantitativas sean normalizadas o tipificadas, según convenga para el entrenamiento del modelo. Dado que se considera una variable discreta para el modelo, es importante normalizar o tipificar el mismo. • Tipificados: se resta la media y se divide por la desviación típica.

�?/�/@/.-AB =� − �C

5

• Normalizados: se resta el mínimo y se divide por el rango. Los valores normalizados quedan comprendidos

entre 0 y 1.

�DBE�-F/G-AB =� − ��í1

��áJ − ��í1

• Normalizados corregidos: versión corregida de restar el mínimo y dividir por el rango. Los valores

normalizados corregidos quedan comprendidos entre −1 y 1.

�DBE�K.BEE =2 ∗ 3� − ��í1;

��áJ − ��í1

− 1

3.4 Modelado y Evaluación

La construcción del algoritmo fue realizada con la biblioteca “keras”, ampliamente utilizada para desarrollar modelos de RNA; para este caso se ejecuta sobre “Tensorflow”, la cual es una biblioteca de código abierto para aprendizaje automático de un rengo de tareas y desarrollado por Google. Para lograr el objetivo y poseer diversas visiones, se seleccionan dos escenarios de datos, y así construir un modelo con menos variables de entradas y otro con todas las concluidas en el análisis factorial.

Page 17: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

17

Para realizar el análisis y entrenamiento se considera un mes de información, mayo 2016, que posee 597.985 registros, pero se debe considerar que la información no se distribuye uniforme por especialidad y centros médicos, como se ilustra en las Tablas 6 y 7.

Por ello para el análisis se utilizarán los centros médicos que posean más de 20.000 registros (Por ejemplo, IBA “IntegraMédica Barcelona”) y especialidades con más de 10.000 registros, para así acotar el modelo y garantizar la presencia de información y generación de un modelo no sesgado. Dados estos filtros, los datos para construir el modelo se reducen a 411.870 registros; para entrenar y validar los modelos, se considerará un 90% para realizar el entrenamiento, quedando 370.683 registros para esta parte y el 10% restante para testear el algoritmo, que corresponde a 41.187 registros. Para ejecutar esta partición de información, se utiliza la función “train_test_split” de la biblioteca “sklearn.model_selection”, usada en minería de datos para generar estas agrupaciones de información.

3.4.1 Definición de la Arquitectura

Las funciones de costo5 disponible en “keras” son: 1. Error cuadrático medio (mean_squared_error). 2. Error absoluto medio (mean_absolute_error). 3. Error porcentaje absolute medio (mean_absolute_percentage_error).

5 https://keras.io/losses/

Tabla 6: Distribución de agendamiento por Especialidad. Tabla 7: Distribución de agendamiento por Centro Médico.

Page 18: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

18

4. Error cuadrático medio logarítmico (mean_squared_logarithmic_error). 5. Bisagra cuadrada (squared_hinge). 6. Bisagra (hinge). 7. Entropía binaria cruzada (binary_crossentropy). 8. Entropía cruzada categórica (categorical_crossentropy). 9. Entropía cruzada categórica escasa (sparse_categorical_crossentropy). 10. Divergencia Kullback-Leibler (kullback_leibler_divergence). 11. Distribución de Poisson (poisson). 12. Proximidad del coseno (cosine_proximity).

Se selecciona entropía binaria cruzada, ampliamente utilizada en el área y que posee una buena convergencia para problemas de clasificación, se puede encontrar más información de la utilización de cada una en la documentación de “keras”. Los optimizadores6 disponibles se pueden observar en la documentación de “keras”, para el caso se utiliza ADAM (Automated Discovery and Analysis Machine), que es un algoritmo capaz de limpiar, analizar y modelar un conjunto de datos proporcionado, de manera automática y extrayendo tanta información como sea posible. Como se discute en el capítulo 2.4, para la generación de modelos con RNA en problemas de esta categoría, la función de activación tangente hiperbólica otorga muy buenos resultados y permite una buena convergencia, motivo por el cual es la utilizada para en esta tesina. En la documentación de “keras” se puede encontrar información de las funciones de activación7 disponibles. En caso de poseer una baja convergencia se variará la arquitectura, para aproximar la mejor solución. Con respecto a la cantidad de neuronas y de capas, entre más profundo sea el aprendizaje mejor aproximación se obtendrá a problemas no lineales, a su vez, entre más neuronas posean estas capas es posible contar con una gran cantidad de parámetros. Para determinar la cantidad de capas y neuronas es importante que la cantidad de casos de entrenamiento sea mayor a la multiplicación de la cantidad de neuronas por capa [21]; para el caso en desarrollo, donde se considera 5 capas en una primera instancia, la primera capa tiene que poseer un número de neuronas mayor o igual a la cantidad de datos de entrada, dado que en el caso extendido se tiene 12 inputs, se selecciona esta cantidad en la primera capa y en la última capa como se tiene una salida, dejaremos una neurona, a las capas ocultas se le puede asignar valores aleatorios, siempre y cuando se cumpla con lo señalado anteriormente, para el caso se considera en las capas ocultas 40, 80 y 8:

%� ∗ % ∗ %M ∗ %N ∗ %O = 12 ∗ 40 ∗ 80 ∗ 8 ∗ 1 = 307.200 < 370.683 Si se agrega una capa más o se aumenta la cantidad de neuronas, se excede la cantidad de registros disponibles para el entrenamiento, por otro lado, no es recomendable acercarse mucho a la cantidad de registros disponibles, ya que aumenta el riesgo de la no convergencia. Dado esto si el algoritmo no presenta buenos resultados, una opción es aumentar la cantidad de registros para el entrenamiento, para luego incrementar la cantidad de capas y neuronas, sin perder consistencia teórica [21].

3.4.2 Entrenamiento y Validación del Conjunto de datos A

Entrenamiento

Este conjunto considera las siguientes variables de entrada, señaladas en la sección 3.3.3, con valores ejemplificados en la tabla 8.

6 https://keras.io/optimizers/ 7 https://keras.io/activations/

Page 19: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

19

• Num_Anul: anulación. • Id_dias_anul: rango días de anulación. • Diff_mod: indicador de modificación. • Id_ceco: especialidad. • N_diff_agend: días de agendamiento. • G_edad: grupo de edad. • Ind_pac: indicador paciente. • D_semana: día de la semana. • Id_ccmm: centro médico.

La variable objetivo (señalada con anterioridad en la sección 3.2) identifica si un paciente asiste o no. Para este modelo se utilizará la siguiente arquitectura: • Número de Capas: 5 capas. • Número de Neuronas por capa: se considera 12, 40, 80, 8 y 1 neuronas por cada capa. • Función de Activación: para cada capa se utiliza Tangente Hiperbólica. • Función de Costo: se utiliza Entropía Binaria Cruzada “binary_crossentropy”. • Optimizador: ADAM (Automated Discovery and Analysis Machine). • Número de Iteraciones: 20.

Validación

El entrenamiento se ilustra en el Anexo 3; al evaluar el conjunto de prueba, se obtiene una 95,05% de acierto, como se muestra en la Figura 7.

Figura 7: Aciertos del conjunto de datos A.

Por lo que es posible inferir, de los 41.187 registros considerados en la validación, que no se realizó una predicción correcta en 2.039 casos, como se observa la matriz de confusión (Figura 8).

Figura 8: Matriz de confusión, desempeño del algoritmo.

Tabla 8: Ejemplos de los datos de las variables de entrada del conjunto A.

Page 20: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

20

Analizando un poco más en detalle la información se obtiene que: • De los 16.833 casos de inasistencia, el algoritmo predijo asistencia en 1.775 casos, correspondientes a un

10,54%; lo cual no es un problema ya que se garantizaría el cupo de la persona agendada. • De los 24.354 casos de asistencia, el algoritmo predijo inasistencia en 264 casos, correspondientes a 1,08%;

dado que el paciente asistió, para el caso son predicciones erróneas con impacto en el negocio. • Para la validación de 41.187 el algoritmo erró en 264 casos, que impactarán negativamente en el negocio,

sin embargo, un 0,64% de riesgo de obtener una predicción que afecte negativamente al negocio a cambio de recuperar un 89,46% de la inasistencia, es un buen indicador del modelo.

Validación Cruzada

Para validar mejor el modelo, se ejecuta la validación cruzada del modelo: • Iteraciones Validación Cruzada: 3 grupos de datos. • Cantidad de registros considerados: 370.683. • Entrenamiento validación Cruzada: 247.121 registros. • Conjunto de prueba validación Cruzada: 122.464 registros. • Iteraciones de Entrenamiento Modelo: 10. • Modelo señalado con anterioridad, pero con menos iteraciones de entrenamiento.

Como se ilustra en la Figura 9, el acierto promedio fue de 95,15%, generando los modelos con menos iteraciones y grupos más grandes de validación, mediante la técnica de validación cruzada. Las iteraciones de la validación cruzada se pueden observar en el Anexo 4.

3.4.3 Pruebas de Arquitectura para el Conjunto A

Al mantener la arquitectura y variar la función de costo se obtiene que mean_squared_error, mean_absolute_error, mean_squarred_logarithmic_error y binary_crossentropy son buenas funciones de costo para el algoritmo dado que poseen un gran porcentaje de acierto y es posible minimizarlas, generando así la convergencia del modelo como se ilustra en la Tabla 9.

Tabla 9: Tasa de Acierto y valor de las funciones de costos al final del entrenamiento.

Figura 9: Validación cruzada del conjunto de datos A – 3 Iteraciones.

Page 21: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

21

Realizando el mismo ejercicio anterior, pero solo variando la función de optimización, se observa que prácticamente todas generan una buena estimación, siendo Nadam la más débil en este punto como se observa en la Tabla 10.

Tabla 10: Tasa de Acierto y valor de la función de costo al final del entrenamiento.

Se repite el ejercicio, ahora se varían las funciones de activación, donde se refleja que las funciones que mejor aproximan la situación son tanh, sigmoid y hard_sigmoid, como se ilustra en la Tabla 11.

Tabla 11: Tasa de Acierto y valor de la función de costo al final del entrenamiento.

3.4.4 Entrenamiento y Validación del Conjunto de datos B

Este conjunto considera las siguientes variables de entrada, señalada en la sección 3.3.3, con valores ejemplificados en la tabla 12. • Num_Anul: anulación. • Id_dias_anul: rango días de anulación. • Diff_mod: indicador de modificación. • Id_ceco: especialidad. • N_diff_agend: días de agendamiento. • G_edad: grupo de edad.

• Ind_pac: indicador paciente. • D_semana: día de la semana. • Id_ccmm: centro médico. • Cod_umod: origen de modificación. • Hora: hora del agendamiento. • Cod_ucrear: origen de agendamiento.

Tabla 12: Ejemplos de los datos de las variables de entrada del conjunto B.

Page 22: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

22

La variable objetivo (señalada con anterioridad en la sección 3.2) identifica si un paciente asiste o no. Para este modelo se utilizará la siguiente arquitectura: • Número de Capas: 5 capas. • Número de Neuronas por capa: se considera 12, 40, 80, 8 y 1 neuronas por cada capa. • Función de Activación: para cada capa se utiliza Tangente Hiperbólica. • Función de Costo: se utiliza Entropía Binaria Cruzada “binary_crossentropy”. • Optimizador: ADAM (Automated Discovery and Analysis Machine). • Número de Iteraciones: 20.

Validación

El entrenamiento se ilustra en el Anexo 5; al evaluar el conjunto de prueba, se obtiene una 96,6% de acierto, como se muestra en la Figura 10.

Figura 10: Aciertos del conjunto de datos B.

Por lo que es posible inferir, de los 41.187 registros considerados en la validación, que no se realizó una predicción correcta en 1.417 casos, como se observa la matriz de confusión (Figura 11).

Figura 11: Matriz de confusión, desempeño del algoritmo.

Analizando un poco más en detalle la información se obtiene que: • De los 16.833 casos de inasistencia, el algoritmo predijo asistencia en 1.216 casos correspondientes a un

7,22%; lo cual no es un problema ya que se garantizaría el cupo de la persona agendada. • De los 24.354 casos de asistencia, el algoritmo predijo inasistencia 201 casos correspondientes a 0,83%;

dado que el paciente asistió, para el caso son predicciones erróneas con impacto en el negocio. • Para la validación de 41.187 el algoritmo erro en 201 casos, que impactarán negativamente en el negocio,

esto corresponde a un 0,48% de riesgo de obtener una predicción que afecte negativamente al negocio a cambio de recuperar un 92,78% de la inasistencia, es un buen indicador del modelo.

Validación Cruzada

Para validar mejor el modelo, se ejecuta la validación cruzada del modelo: • Iteraciones Validación Cruzada: 3 grupos de datos. • Cantidad de registros considerados: 370.683. • Entrenamiento validación Cruzada: 247.121 registros. • Conjunto de prueba validación Cruzada: 122.464 registros. • Iteraciones de Entrenamiento Modelo: 10. • Modelo señalado con anterioridad, pero con menos iteraciones de entrenamiento.

Page 23: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

23

Como se ilustra en la Figura 12, el acierto promedio fue de 91,39%, generando los modelos con menos iteraciones y grupos más grandes de validación, mediante la técnica de validación cruzada. Las iteraciones de la validación cruzada se pueden observar en el Anexo 6.

3.4.5 Conclusiones del Análisis de Resultados

Se observa mediante el análisis, la comprobación de la hipótesis:

“Es posible obtener una solución, basada en algoritmos de RNA, la cual permita predecir que un paciente no asista a la consulta médica agendada con un grado de precisión de al menos un 95%”.

De los dos modelos evaluados, se concluye para este proyecto utilizar el desarrollado con el conjunto de datos A, dado que: • Posee una alta asertividad comprobada mediante validación cruzada, obteniendo una precisión de 95,15%,

versus 91,39% del otro conjunto de datos. • El error de predicción, que puede generar problemas en el negocio es de 0,64%; si bien el del otro conjunto

de datos es menor, basado en la validación cruzada, es más confiable la del conjunto de datos A. • Necesita menos variables para obtener un algoritmo confiable, 9 versus 12 del otro conjunto. • No difiere mayormente con el otro modelo de mayor complejidad, dado que en la primera evaluación de los

datos de prueba su variación es de 1,5%. • Requiere menos datos para ser entrenado, dado que en la validación cruzada mantiene el nivel de asertividad

reflejado respecto al conjunto de prueba, en cambio el conjunto de datos B reduce su precisión en un 5%. Se puede inferir que se debe a que requiere más información para converger confiablemente, ya que no se debe a cantidad de iteraciones, dado que la validación cruzada del segundo conjunto se realizó con el doble de iteraciones que las del conjunto A, a pesar de aquello, el conjunto A entrega mejores resultados.

3.5 Despliegue

Mediante la aplicación de este algoritmo en la operación de IntegraMédica, es posible reducir el ausentismo de pacientes mediante acciones que puede tomar el negocio, por ejemplo: • Insistir con los pacientes que tienen alta probabilidad de inasistencia, generando medidas de confirmación

de asistencia más agresivas y volviendo a disponer de ciertos cupos al público en general. • Generar sobreagendamiento en los puntos de mayor inasistencia de pacientes (sobrecupos agendados),

disponiendo un cupo de atención al cliente que desea asistir de forma inmediata a una consulta. Considerando que IntegraMédica pierde un 17% por la oportunidad de vender y la venta promedio diaria es de 700 MM CLP, si con las medidas se podría mitigar un 5% del ausentismo, impactando directamente en la venta y el EBITDA de la organización, aumentando en 35 MM en la venta diaria, y generando un aumento en la venta mensual de 787,5 MM CLP. Siendo éste un crecimiento considerable del indicador sin necesidad de contratar más personal médico o incurrir en inversiones de mayor impacto, ya que se cuenta con la oportunidad de optimizar este indicador.

Figura 12: Validación cruzada del conjunto de datos B – 3 Iteraciones.

Page 24: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

24

4 Conclusiones

Del análisis se infiere que es posible obtener un modelo confiable, que logre predecir muy certeramente la inasistencia del paciente, permitiendo así, generar acciones de mitigación para reducir el ausentismo de los clientes. Por otro lado, se observa que existen varios factores de los que depende el mismo como el centro médico, la especialidad, periodo de agendamiento, edad del paciente, día de la semana y su comportamiento histórico. En la ejecución de este trabajo se refleja la confiabilidad de la metodología CRISP-DM, para el desarrollo de proyectos de minería de datos, mediante el modelo de referencia del mismo que permite construir modelos confiables basado en la correcta aplicación de sus fases, generando algoritmos confiables con el adecuado sustento teórico y una visión completa del problema, facilitando entrar a la fase de modelado con datos teóricamente sustentables y un adecuado razonamiento efectuado por el investigador. En el futuro, este trabajo en una primera instancia, puede ser extendido a las especialidades y centros médicos no considerado en el desarrollo del algoritmo; en una segunda instancia puede ser promovido en el grupo Bupa, con presencia en Perú, España, Inglaterra, etc … ya que se extiende por 190 países. Por otro lado, este trabajo puede ser extendido: • Para optimizar las listas de espera y priorizar pacientes con riesgo vital, basado en parámetros que permitan

estimar la necesidad de los mismos. • Mediante la aplicación de otras técnicas de aprendizaje supervisado como las máquinas de soporte vectorial,

árboles de decisión o redes bayesianas. Es importante considerar la optimización del sector salud, tanto pública como privada, dado la escasa oferta disponible y lo importante que es el acceso a la misma, en una realidad donde los sistemas de salud se encuentran saturados; el ausentismo es un lujo que la sociedad no se puede permitir, generando así un mayor acceso a la misma sin necesidad de requerir grandes inversiones. Gracias al MTI y el curso de “Almacenes y Minería de Datos”, fue posible conocer metodologías que permiten generar el descubrimiento de la información, que han sido la columna vertebral de este trabajo y desarrollo del modelo. Mediante esta tesina, fue posible desarrollar algoritmos de RNA utilizando el lenguaje de programación Python y la biblioteca “Keras”, en donde se evidencia la revolucionara aplicación de estos modelos adaptativos de aprendizaje supervisado y como éstos influirán en negocios y la vida de las personas. Agradecimientos. En primer lugar, agradecer a mi esposa Estrella por su incondicional apoyo en este proceso y mi hija Lia, quien ilumino mi vida durante este Magister y me dio fuerzas para terminar el mismo cuando me faltaba la energía para finalizarlo, dado lo complejo que se vuelve estudiar y trabajar. A ellas les dedico este trabajo, ya que son quienes me alientan a ser un mejor profesional todos los días. Por otro lado, este trabajo no hubiera sido posible sin la guía y apoyo del profesor Jose Luis Martí, él cual con su infinita paciencia, excelente conocimiento de la materia y una gran vocación para revisar este trabajo, ha sido parte de la calidad en su contenido. A su vez es imposible dejar de lado a todos los docentes y administrativos del Magister en Tecnología de la Información, quienes me han motivado con sus conocimientos a seguir creciendo como profesional, entregando contenidos cercanos y actuales, necesarios para los desafíos de estos tiempos.

Page 25: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

25

Referencias

[1] McKinney, W., “Python for Data Analysis”. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.ISBN: 978-1-449-31979-3.

[2] Omar, M.S., “Aplicación de Análisis Factorial a la investigación de Mercados. Caso de estudio”. Scientia et Technica Año XIII, No 35, agust de 2007. Universidad Tecnológica de Pereira. ISSN 0122-1701.

[3] Dolores, F.N., Marcos, P.S., “Exploratory Factor Analysis (EFA) in consumer behavior and marketing research”. Suma Psicológica, Vol. 19 No 1, june 2012, 47-58, ISSN 0121-4381, ISSN-E 2145-9797.

[4] Susana, L.S., Adoración, F.T., Ana, H.B., Inés, T.M., “El análisis factorial exploratorio de los ítems: una guía práctica, revisada y actualizada”. Anales de psicología, 2014, vol. 30, nº 3 (octubre), 1151-1169.

[5] Stone, M., “Cross-validatory choice and assessment of statistical predictions”. Journal of the Royal Statistical Society, 1974, vol. B36, pp. 111-133.

[6] Marbán, O., Marical, G.J., Segovia, “Data Mining and Knowledge Discovery in Real Life Applications”. I-Tech Education and publishing, february 2009, pp 438-453, ISBN 978-3-902613-53-0.

[7] Enrique, C.S., “Tutorial sobre Máquina de Vectores Soporte (SVM)”. Dpto. de Inteligencia Artificial, ETS de Ingeniería Informática, Universidad Nacional de Educación a Distancia (UNED), C/Juan del Rosal, 16, 28040-Madrid (Spain).

[8] Usama, F., Gregory, P.S., Padharic, S., “Knowledge Discovery and Data Mining: Towards a Unifying Framework”. KDD-96 Proceedings. 1996, AAAI.

[9] Mehra, P., B., Wah, “Artificial Neural Networks”. IEEE Computer Society Press, Piscataway, USA (1997). [10] Maeda, Y., R.J.P., De Figueiredo, “Learning Rules for Neuro-Controller via Simultaneus Perturbation”. IEEE Trans.

On Neural Networks 8 (6), 1119-1130, noviembre (1997). [11] Aleksander, Igor, “Neural Computing Architecture”. MIT Press, Cambridge, MA, 1989. [12] W.S., McCulloch, W., Pitts, “A logical calculus of ideas immanent in nervous activity”. Bulletin of Mathematical

Biophysis, 5: 115-133, 1943. [13] Boser, B.E., Guyon, I.M., Vapnik, V.N., “A training algorithm for optimal margin classifiers”. In proceeding of the

Fifth Annual Workshop on Computational Learning Theory, COLT 1992, pp. 144-152. New York, NY, USA: ACM. [14] Cortes, C., Vapnik, V., “Support-vector networks”. Machine Learning, 20 (3), 273-297. [15] Eloy, P.B., “Predicción de audiencia de television mediante redes neuronales”. Universidad de Malaga, 1994. [16] G., Jasso, I., Meza, “Character and Word Baselines for Irony Detection in Spanish Short Texts”. Instituto de

Investigaciones Matemáticas Aplicadas y en Sistemas, Universidad Nacional Autónoma de México, 2016. [17] T., Mikolov, I., Sutskever, K., Chen, G., Corrado, J., Dean “Distributed Representations of Words and Phrases and

their Compositionality”. Google, 2014. [18] T., Mikolov, K., Chen, G., Corrado, J., Dean, “Efficient Estimation of Word Representations in Vector Space”. Google,

2014. [19] Champa, H.N., K.R., Anandakumar, “Redes neuronales artificiales para la predicción del comportamiento humano a

través del análisis de la escritura manuscrita”. Universidad Tecnológica de Visveswaraya e Instituto de tecnología SBJ, India, 2015.

[20] Erwin, F., “Modelo para la automatización del proceso de determinación de riesgo de deserción en estudiantes universitarios”. Universidad de Chile, 2012.

[21] Swingler, K., “Applying Neural Networks, A Practical Guide”. Academic Press, 1996. [22] Shancheng, J., Kwai-Sang, C., Long, W., Gang, Q., Kwok, L.T., “Modified genetic algorithm-based feature selection

combined with pre-trained deep neural network for demand forecasting in outpatient department”. Expert Systems With Applications 82 (2017) 216–230.

Page 26: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

26

Anexos

Anexo 1: Codificación de los Datos

Page 27: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

27

Page 28: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

28

Page 29: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

29

Anexo 2: Red Neuronal

Page 30: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

30

Anexo 3: Entrenamiento Conjunto de Datos A

Page 31: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

31

Anexo 4: Validación Cruzada Conjunto de Datos A – 3 Iteraciones Iteración 1

Iteración 2

Iteración 3

Page 32: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

32

Anexo 5: Entrenamiento Conjunto de Datos B

Page 33: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

33

Anexo 6: Validación Cruzada Conjunto de Datos B – 3 Iteraciones Iteración 1

Iteración 2

Page 34: Optimización del Agendamiento de Horas Médicas, con ...€¦ · en proyectos de inteligencia artificial para comprobar la validez de los modelos generados. Consiste en repetir y

Universidad Técnica Federico Santa María

Departamento de Informática

Magíster en Tecnologías de la Información

34

Iteración 3