Inteligencia Artificial y salud… un caso práctico–

Consultores estratégicos en Ciencia de Datos

Inteligencia Artificial y salud… un caso práctico–

Inteligencia Artificial y salud

Con el propósito de entender mejor los temas relativos a algoritmos de decisión ID3 y de La Inteligencia artificial ,  he preparado este documento que hace un repaso global  y  situa al lector en contexto.

 

En Medicina se utiliza la estadística tradicional con mucha frecuencia.  Se Utilizan  porcentajes, tasas, proporciones, y algunas otras medidas de tendencia central como mediana moda promedio hasta llegar a desviaciones estándar, etc.  En algunos casos más complejos podemosutilizar estinmadores inerenciales.

La estadística inferencial emplea usualmente mecanismos que le permiten llevar a cabo  deducciones, tales como pruebas de estimación puntual (o de intervalos de confianza), pruebas de hipótesis, pruebas paramétricas (como de media, de diferencia de medias, proporciones, etc.) y no paramétricas (como la prueba del chi-cuadrado, etc.). También le son útiles los análisis de correlación y de regresión, las series cronológicas, y el análisis de varianza, entre otros.

El contìnuo avance de las  ciencias computacionales ha provocado que nuevas tendencias favorezcan sumamente innovadoras incursionen  en el campo de la salud.  Entre estas nuevas tendencias destacan el “machine learning”, y el “Deep learning” todas ellas ramas de la “Inteligencia Artificial”

Lo que esta permitiendo pasar de un modelo actual mas descriptivo e inferencial a un modelo eminentemente  predictivo e inteligente.

COMPARACION DEL MODELO DE DATOS TRADICIONAL Y EL CONTEMPORANEO

 

 

 

 

 

 

 

Definiciones:

La inteligencia artificial (IA), es la inteligencia llevada  a cabo por máquinas. En ciencias de la computación, una máquina «inteligente» ideal es un agente flexible que percibe su entorno.  Lleva a cabo acciones que maximizan  sus posibilidades de éxito en algún objetivo o tarea.

Coloquial mente, el término inteligencia artificial se aplica cuando una máquina imita las funciones «cognitivas», quelos humanos asocian con la mente humanas, como por ejemplo: «aprender» y «resolver problemas».

La Inteligencia Artificial (IA) aplicada al campo de la salud, se basa en la utilización de algoritmos y técnicas de software para predecir la cognición humana a través del análisis de conjuntos de datos médicos.

En concreto, la Inteligencia Artificial es la habilidad que dota a algoritmos computacionales de la capacidad para aproximar conclusiones sin la intervención directa del razonamiento humano.

—————

* Los algoritmos  son un conjunto  prescrito de instrucciones o reglas bien definidas, ordenadas y finitas. Permiten llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución.


Inteligencia Artificial  y Machine learning

Lo que diferencia a las nuevas  tecnologías basadas Inteligencia Artificial,  de las tecnologías tradicionales empleadas en el campo de la salud. Es la habilidad de conseguir información, procesarla y proporcionar al usuario final un diagnóstico bien definido. La Inteligencia Artificial consigue este objetivo por medio de algoritmos de aprendizaje automático (machine learning). que son capaces de reconocer patrones de comportamiento y extraer su propia lógica. Para reducir el margen de error, los algoritmos basados en Inteligencia Artificial necesitan someterse a continuas evaluaciones. Los algoritmos basados en Inteligencia Artificial se comportan de manera diferente a los seres humanos en cuanto a los dos siguientes factores:

(1) los algoritmos son literales: cuando se establece un objetivo, el algoritmo no puede auto ajustarse y solamente comprenderá aquello que se le ha ordenado de forma explícita,

(2)  los algoritmos son cajas negras; o sea que pueden predecir de forma extremadamente precisa, pero no explicar el porqué de su predicción.

La inteligencia artificial NO es un concepto nuevo, en realidad viene desde el año 1950.

 

 

a.) El Machine Learning:

El aprendizaje automático o aprendizaje automatizado o aprendizaje de máquinas es el subcampo de las ciencias de la computación y una rama de la inteligencia artificial. Cuyo objetivo es desarrollar técnicas que permitan que las computadoras “aprendan” a través de procesos que se conocen procesos de entrenamiento.

De forma más concreta, se trata de crear programas capaces de generalizar comportamientos a partir de una información suministrada en forma de ejemplos.

Es, por lo tanto, un proceso de inducción del conocimiento. En muchas ocasiones el campo de actuación del aprendizaje automático se solapa con el de la estadística computacional, ya que las dos disciplinas se basan en el análisis de datos. Sin embargo, el aprendizaje automático también se centra en el estudio de la complejidad computacional de los problemas. Muchos problemas son de clase NP-hard, por lo que gran parte de la investigación realizada en aprendizaje automático está enfocada al diseño de soluciones factibles a esos problemas. El aprendizaje automático puede ser visto como un intento de automatizar algunas partes del método científico mediante métodos matemáticos.

b.) El Deep learning

 Aprendizaje profundo (en inglés, deep learning) por su parte es un conjunto de algoritmos de la clase del aprendizaje automático que modela abstracciones de alto nivel en datos usando arquitecturas compuestas de transformaciones no lineales múltiples.

El aprendizaje profundo es parte de un conjunto más amplio de métodos de aprendizaje automático basados en asimilar representaciones de datos. Una observación (por ejemplo, una imagen) puede ser representada en muchas formas (por ejemplo, un vector de píxeles), pero algunas representaciones hacen más fácil aprender tareas de interés (por ejemplo, “¿es esta imagen una cara humana?”) sobre la base de ejemplos, y la investigación en esta área intenta definir qué representaciones son mejores y cómo crear modelos para reconocer estas representaciones.

Varias arquitecturas de aprendizaje profundo, como redes neuronales profundas, redes neuronales profundas convolucionales, y redes de creencia profundas, han sido aplicadas a campos como visión por computador, reconocimiento automático del habla, y reconocimiento de señales de audio y música, y han mostrado producir resultados de vanguardia en varias tareas.

 

Recientemente con la masificación del uso de computadores y del INTERNET los datos tambien tienen un comportamiento  exponencial.   Los datos se utilizan en las Organizaciones para tomar decisiones, pero por el volumen de los mismos,  cada dia se requieren de mas y mejores herramietas .  Idealmente los datos deberían tambien ayudarnos no sólo a gestionar las Organizaciones sino que tambien a predecir  fenómenos a futuro.   Hablemos entonces de lo  que se conoce como el  “BIG DATA”:

El termino de BIG DATA tiene una serie de características inherentes que han ido evolucionando con el pasar del tiempo,

y que pasaron de ser las 4 “V”  hasta llegar a las 8  “V” en la actualidad.

 

Ahora bien, Nuestros datos deben poder generar información y eventualmente conocimiento según se establece en la conocida pirámide de la  información:  (Datos, información , conocimiento y sabiduría)   Estos datos dentro de las Organizaciones irán siguiendo un proceso que inicialmente podría ser menos automatizado y que sigue un ciclo similar a este :

No hace muchos años que en este marco conceptual de información , conocimiento y sabiduría surge el concepto de Business Intelligence, el cual se define como “El conjunto de estrategias, aplicaciones, datos, productos, tecnologías y arquitectura técnicas, los cuales están enfocados a la administración y creación de conocimiento sobre el medio, a través del análisis de los datos existentes en una organización o empresa.

LA PIRAMIDE DE LA INFORMACION Y EL CONOCIMIENTO

Pero conforme se han ido desarrollando digitalmente las Organizaciones, el BIG DATA también ha venido evolucionando  y es ahí donde vemos como el BIG DATA par ese procesamiento masivo de información utiliza las técnicas del “machine Learning” para dejar de ser un repositorio de datos históricos sin valor,  para convertirse en una herramienta  poderosa de investigación :  Veamos entonces las etapas en donde el BIG DATA empieza a valerse del aprendizaje automático ( Machine learning) para ir generando ya no sólo comportamientos y estadisticas sino “conocimiento”

 

LOS ALGORITMOS DE MACHINE LEARNING

Los algoritmos que utilizamos en esas etapas de entrenamiento y validación del machine learning se dividen en supervisados, y no supervisados, a su ves los supervisados se dividen en algoritmos de clasificación y de regresión, lo no supervisados son principalmente algoritmos de agrupamiento.

El machine Learning utiliza algoritmos supervisados como no supervisados par descubrir comportamientos y tebndencias de los datos, gracias a un proceso de entrenamiento, muy similar al usado por el cerebro humano:  ( veamos los conceptos de entrenamiento y los tipos de algoritmos )

En primer termino vamos a mencionar los tipos de Machine Learning  (Aprendizaje automatico que existen ) De acuerdo a una clasificación que me gusta mucho y que aclaro no es mía

Tipos de Machine Learning – Tipos de Aprendizaje automatico –

Ahora veremos los tipos de Aprendizaje automatico Clásico

 

Tipos de Machine Learning – Tipos de Aprendizaje automatico – Algoritmos de machine Learning – Algoritmos de aprendizaje automatico

Ahora, dentro del Aprenduizaje auitomático Clásico, veamos los tipos de algoritmos existentes con algunos ejemplos

Tipos de Machine Learning – Tipos de Aprendizaje automatico – Algoritmos de machine Learning – Algoritmos de aprendizaje automatico

 

Ahora siguiendo con nuestro ejercicio vamos a seleccionar un algoritmo en este caso:  Supervisado de clasificación para nuestro ejercicio…

 

Algoritmos de Machine Learning y Salud

 

a.) El modelo de inducción de árboles de decisión conocido tambien como algoritmo ID3

lgoritmos de machine Learning – Algoritmos de aprendizaje automatico- Arboles decisorios

 

Un experimento práctico (FICTICIO)

Ahora bien, hagamos este  experimento con casos que hemos construido a través de técnicas de webscraping sobre repositorios públicos.

y que luego utilizando  herramientas de Machine Learning de código abierto (como Anaconda Navigator con Python y Jupyter Notebooks) utilizamos  para su respectivo análisis

En el siguiente  paso procedemos a examinar un conjunto de variables (  solamente 7)  y las transformamos a variables categóricas.

Aunque  resulte ridiculo y totalmente desaconsejable utilizar un numero de casos tan bajo  (80 ) vamos a realizar nuestro experimento con este modelo

Este es un grupo de 80 pacientes con características demográficas variadas ( Sexo, Edad, Presencia de Hipertensión Arterial , Diabetes , Alcoholismo, tabaquismo y Obesidad ) los pacientes habían sido clasificados de previo por haber sufrido o no isquemias del miocardio o bien Infartos. Este desbalance es totalmente desaconsejable porque el algoritmo terminaría teniendo un sesgo hacia los pacientes “sanos”  Ese desbalance de clases en la variable predictiva debe corregirse .

Ejemplo

Veamos como se realizo la transformación de los datos a variables categoricas ( por ejemplo la edad no es en años sino en grupos de edad, etc.  )

Definicion de variables categoricas

 

Nuestro caso ficticio NO muestra ese debalance tan marcado , pero aun asi presenta una desproporción entre clases de 1:1.633 la cual es sano que la consideremos en el conjunto de parámetros del algoritmo

Vamos entonces al ejercicio y vayamos viendo poco a poco los distintos bloques del programa que hemos hecho utilizando Jupyter Notebooks.

Importando librerias de Python, Ejercicio de Jupyter Notebooks

Ahora de seguido procedemos a leer nuestro set de datos

Leyendo el archivo de datos, Python Jupyter Notebooks, csv

Tipos de atributos, transformación, conversion Python Jupyter Notebooks

tipos de variables , ejercicio Python Jupyter Notebooks

Siempre debe utilizarse al menos dos algoritmos par de manera comparativa comparar  el rendimiendo y los resultados .  En este caso tratándose de que es un ejercicio de clasificación usaremos el algoritmo de Regresión logistica.

 

 

Regresion Logistica , ejercicio Python Jupyter Notebooks

Como se puede observar el rendimiento es malo y esperemnos que en el próximo algoritmo no nos pase lo mismo.

Algoritmo de Arboles decisorios , ejercicio Python Jupyter Notebooks

Acontinuación se presentas el codigo del algoritmo de arboles decisorios

Tome notsa de 3 parametros s que sera necesario “ajustar”

min_samples _split:  Es el numero de muestras antes de dividirse el arbol enuna nueva rama

min_samples _leaf:  Es el número de muestras minimo que debe tener cada hoja al final = 5 par este caso tratandose de que son muy pocos casos

max_depth:  Es el número de niveles que tendrá nuestro  el arbol = 2 par este caso, tratandose de que son muy pocos casos

class_weight  se refiere al desbalance que hubiese que corregir por desbalanceentre las clases en nuestro caso 1:1.6333 ( como se habia observado antes)

Algoritmo de Arboles decisorios , ejercicio Python Jupyter Notebooks

 

Si hemos hecho todo bien el resultado que tendremos sera similar a este:

Veamos como el primer punto de división lo constituye la edad (a la izquierda iran los jovenes y a la derecha los mayores) recordemos que hemos recodificado la variable edad

 

Algoritmo de Arboles decisorios , ejercicio Python Jupyter Notebooks

Hay varias metricas que es importabte conocer despues de visto el resultado: el score y la matriz de confusión (en este enlace hay bastante informacion sobnre este tema)

 

Matriz de confusión, calculo de score , algoritmo de arboles decisorios Python Jupyter Notebooks

Predicción con algoritmos de machine learning Python Jupyter Notebooks

 

 

 

 

 

 

 

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *