Modelos de aprendizaje automático o de Machine Learning

Consultores estratégicos en Ciencia de Datos

Modelos de Machine Learning o aprendizaje automático

A lo largo de mi formación y en la experiencia adquirida durante los últimos años,  he querido hacer una recopilación de un conjunto “básico” de Modelos de aprendizaje automático o de Machine Learning dentro de una gran cantidad de ellos.

Estos  modelos y técnicas de análisis, han servido para en capacitar a mis estudiantes,  principalmente a los de la Universidad de Barcelona, en mi condición de profesor visitante.

Por ello,  con éste artículo quiero ayudar a responder  la pregunta:  ¿ Qué es un modelo de aprendizaje automático o de Machine Learning ?

A lo largo de este documento, podrán acceder a diferentes modelos en donde pretendo explicar, con ejemplos, estos conceptos.   Adjunto no solamente los modelos, sino además los accesos a los modelos interactivos. ( en la mayoría de los casos ).  La finalidad es que el lector pueda ver el funcionamiento de los mismos en un ambiente “en línea”, interactuando con sus propios datos.

Habría que comenzar diciendo, que un modelo de Machine Learning o aprendizaje automático es una expresión de un algoritmo que analiza enormes cantidades de datos, para encontrar patrones y posteriormente hacer predicciones y prospecciones.

Impulsados ​​por datos, los modelos de aprendizaje automático (ML) son los motores matemáticos de la inteligencia artificial.

Las redes neuronales, cada vez más populares (CNN y RNN)

Por ejemplo, un modelo de Machine Learning para la visión por computadora,  podría identificar automóviles y peatones en un video en tiempo real, o bien una neumonía en una Radiografía de Tórax o en una tomografía. Un modelo  para el procesamiento del lenguaje natural,  podría traducir palabras y oraciones.

En realidad un  modelo de aprendizaje automático,  es una representación matemática de los objetos y sus relaciones entre sí. Los objetos pueden ser cualquier cosa, desde un “me gusta” en una publicación de redes sociales,  hasta moléculas en un experimento de laboratorio.

Modelos de Machine Learning para cada propósito

Sin restricciones sobre los objetos,  que pueden convertirse en funciones en un modelo de ML, no hay límite para los usos de la IA. Las combinaciones son infinitas, pero  cómo podemos aplicar  los  modelos de aprendizaje automático o de Machine Learning. ?

Los científicos de datos,  hemos  creado familias completas de modelos de aprendizaje automático para diferentes usos, y hay más en proceso de creación.  A modo esquemático presento a continuación la clasificación primaria de los algoritmos que los divide en supervisados y no supervisados, dentro de una familia más tradicional, que he querido denominar ” Aprendizaje Automático Clasico”.

Aprendizaje automático clásico

Algoritmos básicos de aprendizaje automático

Esta es una taxonomía de varias fuentes que he consolidado y mejorado con el propósito de adoptarla  en mis lecciones y en mi actividad profesional. Esta taxonomía  coincide en términos generales con las otras clasificaciones existentes,  pero que en mi caso calvez que busqué darle un enfoque más académico.

Por ejemplo, los modelos lineales usan álgebra,  para predecir relaciones entre variables en proyecciones financieras.  Los modelos gráficos expresan con diagramas una probabilidad, y tratan de explicar cómo  un consumidor elegirá comprar un producto. Tomando prestada la metáfora de las ramas, algunos modelos de ML,  toman la forma de árboles, para clasificar decisiones y les llamamos arboles decisorios .  Cuando esos mismos árboles decisorios  se agrupan en varios cientos  de “arboles” les llamamos algoritmo del bosque aleatorio. (Random Forest)

Un modelo de aprendizaje automático para todos, el “Machine Learning Moderno” 

Cuando hablamos de los nuevos modelos de Machine Learning ,  vamos a incluir nuevos paradigmas que hemos dado por llamar el “Aprendizaje Automático Moderno”  compuesto por los métodos de ensamble (muchos algoritmos actuando e forma conjunta ) , el aprendizaje por refuerzo ( los que aprenden por el entorno y no por los datos)  y las redes Neuronales.  Par mas detalle puede ver mi pos conceptual sobre éste tema en el siguiente enlace

Recientemente,  las redes neuronales han evolucionado a lo que se conoce como el Deep learning o aprendizaje profundo,  el cual es un nivel más avanzado del perceptrón multicapa,  que originalmente dio origen a las redes neuronales.

El aprendizaje profundo (deep Learning) ,  tomó su nombre de la estructura de los s modelos de aprendizaje automático.

Apilan capa tras capa de características y sus relaciones, formándose  al estilo de un sistema multicapas,

Gracias a su asombrosa precisión en la búsqueda de patrones, dos tipos de modelos de aprendizaje profundo, empiezan a utilizarse cada día mas.

Dentro del mundo de la visión por computador,  se utilizan las redes neuronales convolucionales ( CNN ), las que actúan como los ojos en los vehículos autónomos y pueden ayudar a detectar enfermedades, en proyectos de imágenes médicas.

Por su parte están las redes neuronales recurrentes y las transformadoras ( RNN ), diseñadas para construir el lenguaje hablado y escrito, y que vemos incluídas en los motores de “Alexa” de Amazon, el Asistente de Google y el Siri de Apple, entre otros.

Diagrama que muestra cómo ve una red neuronal profunda.
Las redes neuronales de aprendizaje profundo obtuvieron su nombre de su estructura de varias capas.

Elija un modelo previamente entrenado

En el aprendizaje automático, los modelos se entrenan previamente, con el propósito de que identifiquen y aprendan de esos los patrones que vienen intrínsecos en los conjuntos de datos . Los conjuntos de  datos se subdividen a su vez en  datos de entrenamiento,  y datos de evaluación (que son similares a los datos de su caso de uso).   Las relaciones entre los datos, denominadas ponderaciones y sesgos, se optimizan a traves de cada algoritmo y un conjunto de iteraciones que sufren a lo largo de su proceso de aprendizaje.

Se necesita un enorme conjunto de datos, experiencia en estos campos,  y  capacidad informática para entrenar un modelo. Las grandes empresas compran modelos pre-entrenados,  y así ahorran  tiempo y dinero.

Modelos de Machine Learning

elaborados a lo largo de varios años.

Con ayuda de otros profesores, de materiales escritos como de cursos en línea, y de mi propia experiencia profesional,  presento  a continuación algunos modelos que han servido para las actividades de formación de los estudiantes,  que he tenido a cargo  en los cursos de Big-Data e inteligencia artificial, en los últimos años y que han ayudado a entender mejor los modelos de aprendizaje automático o de Machine Learning.

Veamos algunos ejemplos:

1.) Modelo para la selección de drogas  antihipertensivas

Este es un modelo supervisado,  compuesto por unos  50.000 casos,  con 14 variables.

El modelo  permitió crear un perfil del paciente para que el médico pueda seleccionar el medicamento más apropiado  para tratar la hipertensión arterial,  basado  en  esas 14 variables.  De alguna forma,  convierten la prescripción,  en una prospección ( selección entre varias opciones ) Esto resulta en un procedimiento mucho más “específica” o ” preciso”,  de ahí el nombre de medicina de precisión, y  ésto es porque en el análisis se incorporan 14 variables de manera simultánea, algo que para un cerebro humano sería difícil de lograr  por un tema de multidimensionalidad:  ( Usualmente podemos establecer algun tipo de relación entre  3 o 4 variables de manera simultánea pero no mas allá . )

En la Medicina de precisión, buscamos que los tratamientos no sean tratamientos de carácter general para todos los pacientes, sino que sean tratamientos  cada vez más personalizados.

El modelo que presento a continuación,  se desarrolló con la herramienta Júpiter notebook. Esta herramienta  viene incluida, dentro de la suite de datos conocida como Anaconda. Si está interesado en aprender , cómo instalar esta herramienta por favor siga el siguiente enlace

Adicionalmente incluyo un  modelo predictivo para ser utilizado “en línea”  y que fue  desarrollado utilizando la herramienta FLASK .

Estos  permiten de manera “interactiva” utilizar el algoritmo para efectos predictivos inmediatos,  sin mayores conocimientos para un “usuario final”

Acceso a la notebook:

Acceso al modelo en línea:

Nota:

Tómese en cuenta que éstos modelos,  son de corte académico y que se exponen con un fin puramente descriptivo. Dispongo de otros modelos relacionados  con este  ejemplo en particular, en los que empleo otros algoritmos mas complejos, y en los que se busca darle a la solución un enfoque  mas “completo y profesional” para otro tipo de organizaciones.  Me refiero a empresas de desarrollo de software o del sector salud propiamente.

El esquema comercial incluye un conjunto de  componentes tales como aprendizaje recurrente, modelos prescriptivos, dashboards, y otros .  Estos algoritmos buscan que el modelo de datos,  continúe aprendiendo de manera continua, logrando  aumentar su precisión progresivamente.

Este tipo de soluciones se puede implementar en un esquema de Software a service “SaaS”, o sea  como un servicio que es: consumible a demanda, etc.  Si tiene interés en este tipo de soluciones par su Organización escríbame a la siguiente dirección:  

 

2.) Modelo para la realizar una PCR- digital ( covid19 )

Este es un modelo del tipo “supervisado”, con un total de más de 65.000 casos. Se incluyen un conjunto de 53 variables divididas a su vez,  en variables que tiene relación con:

  • El perfil demográfico del paciente.
  • Los datos clínicos del paciente,
  • Variables de  orden epidemiológico.

Quisiéramos dejar claro que éste modelo,  de ninguna forma pretende suplantar o reemplazar la prueba PCR-covid  de laboratorio , es solamente un modelo matemático probabilístico que incorpora algoritmos de ensamble , y que puede aproximar al paciente a un diagnóstico, mas rápido y de menor coste.

Este modelo,  tiene la enorme ventaja, de que el proceso de aprendizaje que va adquiriendo nuevos conocimientos conforme van llegando nuevos pacientes,  éste conocimiento nuevo,  lo almacena sobre el aprendizaje previo,  lo que permite que la precisión final del algoritmo,  vayas aumentando y sea cada vez,  más elevada . El modelo tiene dos componentes:

  • Un primer componente que establece un puntaje o “score” con respecto a las respuestas del paciente. Este es el método convencional de puntaje , y
  • Un segundo abordaje que utiliza la inteligencia artificial.  Acá utilizamos  un algoritmo de aprendizaje que es la que “generaliza” el conocimiento adquirido y que “predice”,  si el paciente podría o no tener COVID.

Utilizando anaconda y Júpiter notebook como herramientas

Al igual que los otros modelos aquí expuestos,  para estos utilizamos Júpiter notebook.

Esta herramienta viene incluida dentro de la suite de datos conocida como Anaconda. Si está interesado,  en aprender cómo instalar esta herramienta por favor siga el siguiente enlace

El modelo predictivo,   fue desarrollado utilizando “Flask”.

Como lo mencionamos ésta  herramienta permite de manera interactiva,  utilizar el algoritmo “on line” .

Acceso a la notebook:

Acceso al modelo (version castellano):

Acceso al modelo (versión catalán)  

3.) Modelo de predicción para la fase de inconsciencia de pacientes con EPILEPSIA

Este es un modelo de pequeña escala,  que fue realizado en acompañamiento al trabajo de tesis de la doctora Susana Lara Meyer, en el año 2021.

El modelo pretende que,  con 46 variables,  las cuales se recolectaron de 189 pacientes,  se logre predecir,  el tiempo de inconsciencia que un paciente tendría luego de sufrir un ictus epiléptico.  ( es lo que en aprendizaje automático,  se conoce como capacidad de generalización del algoritmo).

Hemos utilizado las herramientas de Big Data, para hacer también una descripción estadística de los datos. De esta forma,   conocerlos  mejor y de alguna forma conocer el grado de importancia que tiene cada una de las variables, con respecto a las otras,  así como las asociaciones eventuales,  que existen entre las mismas.

Se aplicó un modelo de Machine learning, conocido como el Bosque aleatorio (Random Forest) , el cual es un algoritmo supervisado de clasificación de la categoría de métodos de ensamble ,  y que con una precisión aceptable,  a pesar del número tan pequeño de casos, nos permite conocer de manera predictiva el tiempo de inconsciencia posterior a un ictus para nuevos pacientes.

Aprendizaje no supervisado en epilepsia

También aplicamos,  para este conjunto de datos, un  modelo no supervisados de clusterizacion (  K-means )  el cual nos permitió clasificar la totalidad de los pacientes en cuatro grandes grupos, los cuales no siguen ninguna clasificación cultural tradicional, cómo por ejemplo:   no están divididos por sexo, ni por edad, ni por severidad del ictus, ni ninguna otra variable en particular, los métodos de agrupamiento  emplean todas las variables de manera simultánea para hacer esta clasificación.  Esta multidimensionalidad de características es la que está detrás de esta agrupación que nos parece un tanto “caótica”,  pero que sin duda es la que explica la conformación de los grupos.

Los modelos que presento a continuación,  fueron desarrollados utilizando la herramienta Júpiter notebook la cual viene incluida dentro de la suite de datos,  conocida como Anaconda. Si está interesado en aprender,  cómo instalar esta herramienta por favor siga el siguiente enlace

El modelo predictivo a su vez, fué desarrollado utilizando la herramienta flask ,  la cual permite de manera interactiva utilizar el algoritmo “on line” .

Acceso a la notebook

Acceso al modelo predictivo "on line"

4.) modelo para el seguimiento de pacientes en sala de operaciones.

(Tiempo quirúrgico – tracking sala de operaciones )

Este es un modelo ficticio,  basado en un conjunto de datos de prueba, el cual fue debidamente  anonimizado, Este modelo, lo utilizamos como herramienta de capacitación para los estudiantes de grado y postgrado en la Universidad de Barcelona.

La idea con los estudiantes,  es que puedan adquirir destrezas en el manejo de sistemas de bases de datos, pero que adicionalmente,  puedan incorporar a las bases de datos,  herramientas novedosas para la analítica avanzada de datos, lo cual hacemos con ayuda de  Python y de sus librerías Pandas, Mathlibpro, numpy, seaborn, entre otras.

Para el modelo de predicción, hemos utilizado algoritmos supervisados de ensamble, en este caso el conocido como bosque aleatorio (Random Forest).  Con el uso de este modelo queremos,  con una precisión aceptable,  dar   a conocer  a los familiares de los pacientes en cirugía,  así como al personal de los servicios médicos involucrados,  el tiempo esperado en quirófano y en salas de recuperación.

La precisión del algoritmo es bastante alta y utilizamos para medirla el R2.  (r cuadrado )

Los modelos que presento a continuación,  fueron desarrollados utilizando la herramienta Júpiter notebook,  la cual viene incluida dentro de la suite de datos conocida como Anaconda. Si está interesado en aprender,  cómo instalar esta herramienta por favor siga el siguiente enlace

El modelo predictivo “en línea”  fue desarrollado utilizando la herramienta flask ,  la cual permite de manera interactiva utilizar el algoritmo “on line” .

Acceso a la notebook


Acceso al modelo predictivo "on-line"

5.) Modelo para la predicción de estancia hospitalaria 

(Tiempo esperado en días)

Este es un modelo ficticio,  creado a partir de un conjunto de datos existente, y que fue debidamente  tratado con técnicas de anonimización.

Este modelo, lo utilizamos como herramienta de capacitación para los estudiantes de grado y postgrado en la Universidad de Barcelona.  Incluso en una ocasión ha servido de TFM  (trabajo final de un estudiante del Máster en Ingeniería Biomédica, lo que favoreció  su evaluación y mejora.)

La idea con este modelo de Machine Learning   es adquirir destrezas inicialmente en el manejo de sistemas de conjuntos de datos similar al usado en Hospitales como el CMBD . El CMBD es el Conjunto Mínimo Básico de Datos y está formado por las variables obtenidas durante la atención hospitalaria (Ingreso, cirugía mayor ambulatoria, urgencias, etc.).

A este conjunto de datos,  se le aplicaron un conjunto de  herramientas  para la analítica avanzada de datos, la cual suministra Python dentro de sus librerías Pandas, Mathlibpro, numpy, seaborn, entre otras.

Analisis descriptivo del conjunto de datos

Un ejemplo de dichos análisis lo constituyen entre muchas otras las siguientes gráficas y tablas:

Predicción de estancia hospitalaria. Distribución por sexos y edades de acuerdo a la estancia en días. Herramienta Pyplot

 

 

 

Para el modelo de predicción, hemos utilizado dos algoritmos diferentes:  a.) bosque aleatorio (Random Forest Regressor) y el  b.) XGBoost .  Ambos algoritmos son modelos ensamblados,  utilizados como algoritmos para tareas de clasificación supervisada.   El objetivo de obtener dicha predicción,  es la de apoyar al sistema sanitario con un indicador de estancia estimada,  que permita programar un  conjunto de servicios paralelos ligados a la estancia como tal, pero además contar con un indicador fiable,  que le permita a “la lista de espera”,  conocer con buena  precisión las fechas estimadas de egreso de los pacientes.

La precisión para los modelos de aprendizaje automático o Machine Learning cuando se trabaja con funciones regresoras se evalúa  gracias a las métricas:  R2 y RMSE. ( R al cuadrado y el error cuadrático medio)

Resultados del modelo:

A continuación se muestra una gráfica en donde luego de obtener un muestreo aleatorio de los casos reales, predecimos un conjunto paralelo  de datos obtenidos a través de machine learning lo que nos sirve de comparación visual entre los valores reales y los predichos.

 

Estimación de la estancia hospitalaria . Valores reales y predichos para un conjunto de 100 datos de prueba. Barcelona 2022. Algoritmo XGBoost Regressor

 

Estimación de la estancia hospitalaria . Valores reales y predichos para un conjunto de 100 datos de prueba. Barcelona 2022. Random Forest Regressor

Los modelos que presento a continuación,  fueron desarrollados utilizando la herramienta Júpiter notebook. Esta herramienta  viene incluida dentro de la suite de datos conocida como Anaconda. Si está interesado en aprender,  cómo instalar esta herramienta por favor siga el siguiente enlace

Si desea tener acceso al modelo predictivo “en línea” , el cual  fue desarrollado utilizando la herramienta flask ,  por favor envíeme un mensaje  y me pondré en contacto con usted para darle acceso .

6.) Dashboards de la situación del COVID 19 en Costa Rica

Los modelos de aprendizaje automático o machine Learning fueron empleados  para el  desarrollo en momentos de ocio  un conjunto de Dashboards basados en Machine Learning. La idea es la de  presentar  diariamente los datos con respecto al avance de la pandemia del COVID-19 en Costa Rica.

El modelo en realidad toma los datos de diversas fuentes, a través de las técnicas de “webscraping”, y a partir de ahí presenta los resultados en pantalla.

Con esto quiero decir que el modelo es totalmente autonomo , se actualiza de manera automática sin intervención humana.

Adicionalmente un conjunto de 12 modelos diferentes con base en la información capturada de fuentes oficiales , generan otra serie de gráficas y hacen las respectivas proyecciones.

El cálculo del número R, también conocido como número reproductivo básico

Posiblemente una de las estadísticas,  más consultadas y más utilizadas se refieren al cálculo del número R (tasa de contagio).

Este cálculo,  conlleva una serie de cálculos complejos basados en Ecuaciones Diferenciales. El mismo también se realiza para todos los cantones,  y todos los distritos de Costa Rica de forma diaria.

Recientemente,  hemos incorporado a este conjunto de análisis:   el cálculo diario de las tasas de incidencia acumulada de 14 días,  por cada 100000 habitantes, y la tasa de incidencia acumulada de 7 días.

Desde el punto de vista geográfico existen dentro de  Python,  un par de librerías conocidas como geo pandas y Bokeh, a traves de las cuales se calcula diariamente.

Con ellas se realizan los cálculos necesarios para alimentar con  los valores del número “R” y de las tasas de Incidencia por cantón de forma comparativa.

Muchas de las predicciones que se realizan en el dashboard con modelos de aprendizaje automático y Machine Learning, vienen alimentadas del algoritmo prophet de Facebook,  el cual fue liberado años atrás para la población. Los datos que alimentan todo este conjunto de modelos,  son suministrados por el proyecto geovisión, un proyecto impulsado por la UNED y el Ministerio de salud de Costa Rica. Por último las estadísticas referentes a la vacunación,  también generan otra serie de indicadores y de mapas.

El presente modelo de aprendizaje automático o de Machine Learning  puede ser consultado en este enlace.

Una de las notebooks que se han venido utilizando para generar estos modelos está visible en:

La presente página sobre modelos de aprendizaje automático o de Machine Learning,  fué escrita por el Dr. Juan Ignacio Barrios, quien es médico y cirujano especialista en informática médica con un máster en Business Intelligence y consultoría tecnológica.

El Dr. Barrios aplica modelos de aprendizaje automatico o Machine Learning junto con técnicas de Big Data e inteligencia artificial en su trabajo diario como consultor, y en sus lecciones a nivel internacional y como profesor visitante de la cátedra de informática médica de la Universidad de Barcelona. Adicionalmente el Dr. Barrios es miembro de la facultad de Ginecología y Obstetricia de la Universidad de Rochester New York.  Tambien es miembro del cuerpo docente internacional de Algoritmia, el Instituto europeo de formación tecnológica.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HTML Snippets Powered By : XYZScripts.com