Se encontraron 4 coincidencias

por Luis.Rodriguez
15 Ene 2021, 02:30
Foros: Inteligencia Artificial
Tema: Clustering de Población receptora de Bonos COVID-19 en 2020, MIDIS
Respuestas: 0
Vistas: 299

Clustering de Población receptora de Bonos COVID-19 en 2020, MIDIS

Clustering de Población receptora de Bonos COVID-19 en 2020, MIDIS

1. Resumen del trabajo
El dataset empleado para su análisis de clúster es un conjunto de datos anonimizados sobre el subsidio monetario de 380 soles para los hogares en condición de pobreza o pobreza extrema, de acuerdo al Sistema de Focalización de Hogares, que se encuentren en los ámbitos urbanos con mayor vulnerabilidad sanitaria. Para realizar el análisis de clúster de las personas receptoras del Subsidio ofrecido por el estado debido al contexto del Covid19, se utilizará el algoritmo de Kmeans. Se mostrarán los resultados del procesamiento del dataset y el análisis de Clúster obtenidos con el Software Weka.

2. Descripción del Dataset
El dataset original, como se puede ver a continuación, consta de un total de 9 columnas: No. (índice), CO_HOGAR (Código de hogar), UBIGEO (código de lugar de nacimiento), DE_DEPARTAMENTO, DE_PROVINCIA, DE_DISTRITO, DE_GENERO, FLAG_PADRON_OLD (Indica si se encuentra en pobreza/pobreza extrema o no), FLAG_DISCAP_SEVERA (si la persona tiene o no discapacidad severa), FLAG_MAYEDAD (Si la persona es o no mayor de edad).

Imagen

Luego fueron eliminados los dos primeros atributos (CO_HOGAR Y UBIGEO Además de DE_DISTRITO y DE_PROVINCIA) pues no aportan al modelo que se busca realizar.

El dataset original se puede obtener del portal del Gobierno Peruano:
https://www.datosabiertos.gob.pe/dataset/bonos-covid-19-ministerio-de-desarrollo-inclusi%C3%B3n-social-midis

3. Descripción de los resultados obtenidos

No se recurrió a aplicar algún filtro como Principal Components o Smote para el balanceo puesto que el dataset empleado es bastante pequeño y manejable.
Imagen

Se aplicó el modelo de Kmeans para realizar el proceso de clustering, obteniendo los siguientes resultados:
Imagen

Se puede observar que se han definido solo dos clústers, en base a un total de 175 instancias. El clúster 0 se caracteriza por las personas de Amazonas sin pobreza extrema, sin discapacidad física y que no son mayores de edad, mientras que el segundo Clúster es bastante similar con la diferencia de que lo componen personas que sí son mayores de edad.

4. Conclusiones
En el caso del modelo Kmeans para el clustering propuesto es bastante difícil saber si es el mejor modelo para este caso en particular, puesto que solo se disponen de muy pocas instancias en el dataset trabajado. Sin embargo, se puede mencionar que es muy probable que estos clústers considerados se diferencien en el atributo FLAG_MAYEDAD el cual puede separar a un grupo de adultos mayores que fueron acreedores del subsidio de 380, así como de los que no son adultos mayores. El modelo además podría indicar que la mayoría de receptores del bono son personas NO adultos mayores (130 de 175) como lo muestra el clúster 0.

5. Ruta GitHub del dataset (original y procesado)

El dataset empleado está disponible en el repositorio de GitHub:
https://github.com/lblackrc/Fallecidos-COVID-19/tree/master/Clustering
por Luis.Rodriguez
15 Ene 2021, 02:19
Foros: Inteligencia Artificial
Tema: Modelo de regresión para fallecidos por COVID-19 - MINSA
Respuestas: 0
Vistas: 316

Modelo de regresión para fallecidos por COVID-19 - MINSA

Modelo de regresión para fallecidos por COVID-19 - MINSA


1. Resumen del trabajo
En el presente trabajo se buscará determinar los mejores modelos de Machine Learning para la predicción de algunos atributos comunes a las personas fallecida por COVID-19, tales como el sexo de los fallecidos, el día de la semana de fallecimiento, el mes de fallecimiento, y el departamento de fallecimiento, haciendo uso del conjunto de datos publicado por el Ministerio de Salud de Perú a la fecha 14-01-2021. Los modelos de predicción abordados fueron los de Árboles de decisión (J48 y RandomForest), LibSVM y BayesNet.

2. Descripción del Dataset
El dataset original está compuesto por un total de 39044 instancias, y presenta los siguientes atributos que corresponden a Fecha de Corte, Fecha de Nacimiento, UUID (Identificador único del fallecido), Fecha de Fallecimiento, Sexo, Departamento, Provincia y Distrito, tal como se puede observar a continuación:
Imagen

Para poder trabajar adecuadamente con el dataset brindado por el MINSA, es necesario realizar un preprocesamiento y formateo adecuado de los datos. Para ello se hizo uso del programa Excel de forma que se hicieron los siguientes cambios:
  • Se eliminaron los espacios en blanco en los valores de cada uno de los atributos, reemplazandolos por el carácter “guión bajo” ( _ ). Por ejemplo, “LA LIBERTAD” fue reemplazada por “LA_LIBERTAD”.
  • Las fechas en el dataset se encontraban como números continuos sin separación. Por ejemplo la fecha “19/03/2020” estaba escrita como 20200319. Se corrigieron estos valores al formato de fecha “dd-mm-aaaa”.
  • Se crearon nuevos campos en el dataset extraídos de la fecha de fallecimiento (campo FECHA_FALLECIMIENTO): DIA_FALLECIMIENTO y MES_FALLECIMIENTO, para realizar predicciones sobre estos campos.
  • Se eliminaron los campos innecesarios, tales como FECHA_CORTE (Fecha en la que se hizo el corte de la información publicada, puesto que todos los valores en este campo eran iguales), el identificador del fallecido (UUID), y los campos de PROVINCIA y DISTRITO, pues solo se consideró realizar predicciones sobre el DEPARTAMENTO, que es un campo mucho más general que los dos anteriores.
Una vez realizado el preprocesamiento, estamos listos para trabajar con el dataset. Una muestra del resultado final del dataset preprocesado se observa a continuación:

Imagen

A continuación, se convirtió el dataset a .csv para poder cargarlo a Weka, quedando de la siguiente manera:

Imagen

Disponemos de 6 atributos, y un total de 39.044 instancias en el dataset procesado.

Dado que los atributos son pocos, como se puede observar son un total de 6, no es necesario aplicar la técnica de Principal Components para reducir el tiempo de procesamiento. Sin embargo, el dataset es grande en cuanto a instancias para el entrenamiento de los modelos y las pruebas correspondientes.

PREDICCIÓN DEL DÍA DE FALLECIMIENTO
En esta sección buscaremos encontrar el mejor modelo para la predicción del día de fallecimiento (cualquier día de la semana de Lunes a Domingo).

Para este primer caso no es necesario balancear los datos, puesto que estos se encuentran aproximadamente balanceados (cada una de las 7 clases - días de la semana - tienen similares cantidades de incidencias) como podemos observar a continuación:

Imagen

Luego del preprocesamiento, el dataset se sometió a los siguientes modelos:
Árbol de decisión
J48
Imagen

Imagen

Random Forest
Imagen

Imagen

SVM
Imagen

Imagen

Redes Bayesianas
Imagen

PREDICCIÓN DEL MES DE FALLECIMIENTO
Para este caso fue necesario aplicar el filtro SMOTE para balancear ligeramente las clases (los meses en los que las personas fallecieron por COVID). Se obtuvo un total de 44253 instancias.

Imagen


Para este caso se consideraron los modelos J48, RandomForest y BayesNet.
J48


Imagen

Imagen

BayesNet

Imagen


PREDICCIÓN DEL SEXO DE LOS FALLECIDOS
Puede observarse que hay un desbalance significativo entre las clases Masculino y Femenino, por lo que se tuvo que aplicar el filtro SMOTE para el balanceo de estas clases.

Imagen

Luego del balanceo, se obtuvieron un total 51.469 instancias.

Imagen


Ahora probaremos distintos modelos para determinar cuál de ellos predice mejor el SEXO de los fallecidos por COVID.

J48


Imagen

Random Forest
Imagen

LibSVM

Imagen

BayesNet

Imagen


4. Conclusiones
  • Predicción del día de fallecimiento en una semana
    Para este caso, se obtuvo que los mejores modelos para la predicción fueron los de J48, Random Forest y BayesNet, todos ellos con una precisión de 99,9829% (solo 2 instancias incorrectamente clasificadas en cada caso) y valores de TP Rate cercanos a 1, con lo cual se puede concluir que son óptimos para la predicción del día de fallecimiento. En cuanto al modelo de Lib SVM, este es deficiente pues presenta una precisión del 41,2106%. En los casos anteriores se observó una ligera diferencia al probar con la Técnica de Cross Validation, donde los árboles de decisión (J48 y RandomForest) fueron ligeramente mejores que Bayes para la predicción.
  • Predicción del mes de fallecimiento
    Los mejores modelos obtenidos fueron el de árboles de decisión (J48 y RandomForest) ligeramente superiores a BayesNet. Los primeros obtuvieron una precisión del 100% mientras que BayesNet, 99,9548%.
  • Predicción del sexo del fallecido
    Para este caso tenemos que el mejor modelo de predicción de la clase SEXO es el Random Forest, con una precisión del 66,725% y una tasa de TP Rate superior al 0.66 para cada clase.
5. Ruta GitHub del dataset (original y procesado)

El dataset empleado está disponible en el repositorio de GitHub:
https://github.com/lblackrc/Fallecidos-COVID-19/tree/master/Clasificaci%C3%B3n
por Luis.Rodriguez
15 Dic 2020, 21:25
Foros: Inteligencia Artificial
Tema: Aplicaciones del Deep Learning y la IoT para diagnósticos de estado cardiaco
Respuestas: 0
Vistas: 313

Aplicaciones del Deep Learning y la IoT para diagnósticos de estado cardiaco

  1. Descripción
    Imagen

    Existen diversas enfermedades que impiden a las personas disfrutar de una buena calidad de vida, siendo algunas de ellas mucho más difíciles de controlar o monitorear, desembocando en que un cambio repentino en el estado de las mismas pueda causar la muerte de una persona. Las enfermedades del corazón son un ejemplo claro de ello, ya que existen muchas situaciones que pueden agravar el estado de esta parte del cuerpo humano. Es por ello que se han realizado investigaciones que permitan monitorear mejor el estado del corazón, como por ejemplo, midiendo los altos niveles de estrés que una persona puede padecer, o intentando predecir la probabilidad de que ocurra una arritmia cardiaca, todo ello a través del procesamiento de señales de la lectura de un electrocardiograma (ECG). En las investigaciones que se describirán a continuación, se propone hacer uso del Machine Learning o Aprendizaje Automático para diagnosticar el nivel de estrés y arritmias cardiacas y el uso de IoT para transmitir esta información al paciente y un médico correspondiente para el posterior análisis de la información obtenida.
  2. Herramientas
    • Arquitectura de la solución
      En las investigaciones a tratar, se propone usar dispositivos IoT para la lectura de la frecuencia de latidos del corazón que se recopila de forma local y luego se envía a servidores como el de DigitalOcean, que es donde se realizan los cálculos necesarios. Además se utilizan placas Node MCU Wifi ESP8266 (con un microprocesador de de 32 bits Tensilica Xtensa LX106 Y 160KB de RAM) para el desarrollo de los programas necesarios para establecer la comunicación y teniendo como lenguaje de programación a micro-python, que se ejecuta sobre un intérprete REPL. Además se hace uso de un sensor de pulso con el que se recopila la información necesaria. La recopilación de la frecuencia cardiaca es importante pues, por ejemplo, cuando una persona está sufriendo un ataque cardiaco, tiene un nivel elevado de estrés, o se encuentra nerviosa, suceden los picos más elevados en la frecuencia de latidos del corazón. Estas investigaciones también han propuesto una forma de recopilar información de frecuencias cardiacas de las personas para la creación de datasets para el entrenamiento de los modelos de Machine Learning, ya que los existentes solo poseen información de alrededor 200 personas, lo cual no es suficiente para estas tareas.

      El mecanismo de funcionamiento del sistema está basado en la información de la edad de la persona y la medida de su frecuencia cardiaca, en latidos por minuto (lpm). Lo que se busca a continuación es determinar si la persona se encuentra “en forma” o no, y si es que está en forma, determinar si está realizando sobreesfuerzo en el caso de ser un atleta. Por ejemplo, cuando una persona realiza ejercicio, esta debería tener una frecuencia cardiaca en el rango del 50% al 70% de (220 - su edad), de no ser así, puede deducirse que la persona no está en un adecuado estado físico.

      Imagen


      Además en la arquitectura presentada, el sensor de pulso es un pequeño dispositivo cuyas lecturas oscilan entre 525 y 610, valores que pueden transformarse mediante cálculos matemáticos a frecuencia cardiaca, contando la cantidad de pulsos de la persona durante un minuto. El servidor que procesa la data es un sistema Ubuntu 16.04 LTS alojado en DigitalOcean. La placa NodeMCU contiene un servidor Flask sobre WSGI Gunicorn NginX para manejar solicitudes asíncronas, desarrollado en Python a modo de API Restful basada en la arquitectura MVC (Modelo Vista-Controlador).
      Imagen
    • Procesamiento de las señales:
      El procesamiento de señales se realiza a partir de la lectura de frecuencia cardiaca en tiempo real. Los cálculos hacen uso de algoritmos de procesamiento de señales, tales como Pan Tompkins, junto con trasnformadas de Wavelet y HIlbert. Se hace el cálculo de funciones de variabilidad de frecuencias cardiacas para posteriormente ser usadas por un modelo clasificador que permitirá predecir la presencia de elevados niveles de estrés en el paciente, o la presencia de situaciones riesgosas como una arritmia cardiaca. En el caso de la segunda investigación, se hace uso de un controlador Arduino en vez de un Node MCU y un sensor de Electrocardiograma (EGC). Para el caso de la detección de arritmias, el modelo empleado está basado en una clasificación por Support Vector Machine (SVM) implementada en Matlab y haciendo uso del dataset perteneciente a la base de datos Physionet ATM. El sistema final presenta la ventaja de notificar al médico correspondiente vía SMS en caso de que el paciente presente riesgos elevados de padecer una arritmia cardiaca.
  3. Resultados
    1) La primera investigación relacionada con determinar si la persona presenta altos niveles de estrés fue testeada con dos modelos: un modelo de regresión logística y otro basado en SVM. Los resultados muestran que la SVM es ligeramente más precisa que el modelo de regresión, con una puntuación de 68% sobre 66% de precisión. También se probaron modelos de VF-15 y un clasificador Bayesiano, pero ambos con grados de precisión mucho menores.
    2) La segunda investigación muestra unos resultados de precisión mayores en comparación con la anterior, y además se usaron distintos algoritmos basados en SVM, alcanzando grados de precisión que varían entre los 86-92,2%.
    Imagen
  4. Conclusiones
    Las investigaciones han demostrado que para el caso de procesamiento de señales de frecuencia cardiaca, una buena opción es el uso de SVM (Máquinas de vectores de soporte) para la construcción de modelos de clasificación de señales. Es así que estos modelos permiten mejorar el monitoreo de frecuencia cardiaca de los pacientes que puedan sufrir enfermedades relacionadas al corazón, y además tienen la ventaja de poder hacer cálculos lo suficientemente precisos para poder alertar diversos estados críticos que puedan poner en riesgo la vida del paciente en cuestión, aplicando el actualmente conocido Machine Learning, y el IoT para entablar una adecuada transferencia de información y una buena comunicación entre los distintos componentes de la arquitectura de la solución propuesta por las investigaciones tratadas.
  5. Referencias
por Luis.Rodriguez
15 Dic 2020, 20:58
Foros: Inteligencia Artificial
Tema: Sistema de detección de objetos basado en Android para personas con discapacidad visual
Respuestas: 0
Vistas: 327

Sistema de detección de objetos basado en Android para personas con discapacidad visual

  1. Descripción
    Imagen

    Los seres humanos hacemos uso de nuestros sentidos para poder percibir e interactuar con nuestro medio exterior, siendo uno de ellos el sentido de la visión. Es así que las personas que tienen discapacidades visuales (personas ciegas o “cortas de vista”) presentan muchísimas dificultades para poder desplazarse libremente sin ayuda alguna por las calles e incluso interactuar con cualquier persona o cosa. Debido a ello, se ha realizado investigaciones en el campo de la Inteligencia Artificial que proponen diversas soluciones a este problema, tal como lo muestran los siguientes artículos publicados en la IEEE, proponiendo una solución basada en Smartphones Android, de modo que las personas con discapacidad visual puedan hacer uso de sus teléfonos inteligentes para poder percibir a través de sus celulares los distintos objetos a su alrededor, incluyendo sus nombres, direcciones y distancias a las que se encuentran, haciendo uso de las cámaras que estos poseen, y siendo alertados mediante auriculares o altavoces de dichos dispositivos. Estas investigaciones presentan un enfoque que puede funcionar de manera autónoma, o con conexión a internet, pero ambas orientadas a la aplicación del Deep Learning, también conocido como Aprendizaje profundo.
  2. Herramientas
    • Arquitectura de la solución
      La solución propuesta por una de las investigaciones está compuesta de tres módulos: un módulo de detección de objetos (I), un módulo de cálculo de distancia de los objetos respecto del usuario (II), y un módulo de determinación de la dirección en la que se encuentra el objeto (III), módulos cuyas salidas (output) se enviarán a una salida por audio para que el usuario pueda recibir la información.
      Imagen


      El módulo I (de detección) se encargará de realizar la clasificación (indicar que tipo de objetos son los que se está captando a través de la cámara) y localización del objeto (encerrar en un rectángulo -bounding box- a los objetos que se quiere captar para aislarlos dentro de la imagen captada por la cámara). Este módulo usará como base la API de detección de objetos de Tensor Flow que contiene 80 objetos detectables por defecto, pero que puede ser re-entrenada para detectar más objetos. Además, solo se indicará al usuario aquellos objetos que tengan mayor prioridad (como un camión o vehículo que puede ser peligroso para el usuario con discapacidad visual), y que además cumplan con un umbral de nivel de confianza por encima del 70%. El módulo II (determinar la distancia) y el III (determinar dirección), se realizará mediante la librería OpenCV para realizar los cálculos respectivos, también se hace uso de un algoritmo basado en conceptos geométricos de semejanza de triángulos. Para la dirección, se toma solo tres direcciones: izquierda, centro (al frente) y derecha. Por ejemplo, una posible alerta podría ser “Hay un camión 10 metros a la izquierda”.
      Imagen
    • Tipo de arquitectura
      En contraste con la primera investigación, que tiene implementado el modelo de detección dentro de la aplicación Android, la segunda nos propone un cambio en el sentido de que además de utilizar un smartphone, se haga uso de un servidor externo de alta gama para realizar las tareas de clasificación de los objetos captados por la cámara, por lo que para acceder a este servidor, otro requisito necesario es disponer de una conexión a internet estable en el celular. Se propone hacer uso de un servidor Intel Xeon E5 v3 de 2,3GHz y 7,5 GB de RAM, con una unidad GPU Nvidia Tesla K80 para hacer más rápido los cálculos necesarios. La similitud con la investigación anterior recae en que también se utilizará la librería Text To Speech (TTS) de Android para convertir la salida de la detección y ubicación de objetos a voz para que pueda notificarse al usuario con discapacidad. Respecto al dataset utilizado para el entrenamiento del modelo (de redes neuronales convolucionales - CNN), se utilizó un total de 35.000 imágenes, de las cuales el 70% se reservó para el entrenamiento, y el 30% para las pruebas respectivas.
  3. Resultados
    1) La primera investigación muestra que es capaz de detectar objetos alrededor del usuario con una precisión del 87%. Se indica también que el sistema puede ser re-entrenado para obtener una gama mayor de objetos para su detección.
    2) La segunda investigación nos muestra mayor detalle en cuanto a los resultados:
    Dado que el sistema a tratar debe ser lo suficientemente seguro para el usuario (no se puede jugar a lanzar un sistema con elevadas deficiencias pues se pone en riesgo la vida del usuario), se hizo pruebas con diferentes modelos de CNN, entre los cuales tenemos a ResNet50, InceptionV3 y VGG19, siendo el que mejor precisión alcanzó el modelo InceptionV3, con una precisión del 96.4%. Todos estos modelos fueron testeados con distintos optimizadores para conseguir mejores resultados en la detección.
    Imagen
  4. Conclusiones
    Podemos concluir que una mejor arquitectura de solución para el tema de reconocimiento de objetos y cálculo de distancia y dirección, está en el uso de un servidor externo para realizar el procesamiento de cada uno de los frames del video captado por la cámara. La precisión que se consigue con esta arquitectura y además usando redes neuronales convolucionales (CNN) es mucho mayor que implementando todo el modelo de manera local en un smartphone Android. Este último tiene la desventaja de que el usuario requiera de datos móviles, lo cual implica mayores costos, pero con el beneficio de obtener una mayor precisión en los resultados que el modelo de solución autónomo propuesto. Han de realizarse mayores investigaciones respecto al tema para incorporar más funcionalidades de detección, como la de billetes, monedas, e incluso reconocimiento de rostros humanos, todo ello con el fin de mejorar la accesibilidad de las personas con discapacidad visual a los distintos servicios proveídos por una comunidad.
  5. Referencias