• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

2.26 – Proyecto Final: Predicción del Riesgo de Diabetes con Redes Neuronales

Lección 26 del módulo “Redes Neuronales” del curso Fundamentos de Deep Learning con Python.

En la lección anterior vimos varios aspectos prácticos a tener en cuenta en la implementación de Redes Neuronales, y con esto ya tenemos todos los elementos para resolver un problema real de forma práctica usando esta arquitectura.

Así que en esta lección veremos cómo crear y entrenar una Red Neuronal en con ayuda de Python y Keras para predecir la probabilidad de aparición de diabetes en una población determinada.

Comencemos entonces entendiendo en detalle el problema a resolver:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Muy bien, como acabamos de ver la idea es entrenar, validar y poner a prueba una Red Neuronal que sea capaz de detectar la presencia o ausencia de diabetes haciendo uso de variables como la concentración de glucosa en plasma, la presión sanguínea y los niveles de insulina, entre otras.

También vimos cómo leer el set de datos y algunas características del mismo. En particular, este dataset fue obtenido de una población de 768 indígenas, todas mujeres y con edades de 21 años en adelante.

Cada dato corresponde a un sujeto y contiene un total de ocho (8) características (features), así como la variable Outcome indicando si el sujeto tiene (1) o no (0) la enfermedad.

Como el set contiene muy pocos datos, al hacer la división convencional entre entrenamiento/prueba/validación, se tendrán muy pocos datos de prueba y validación. Al final veremos qué alternativa se puede usar para validar correctamente el modelo.

Veamos ahora cómo realizar el análisis exploratorio de nuestro set de datos y cómo realizar el manejo de los datos faltantes:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Bien, acabamos de llevar a cabo el primer paso en un proyecto de Deep Learning: el análisis exploratorio de los datos.

Este análisis incluye comprender las distribuciones, los rangos de valores y la presencia de datos faltantes en nuestro set de datos. Y esto nos permite revelar problemas como diferentes escalas entre variables, desequilibrios en el set (más sujetos sanos que enfermos) y datos “sospechosos” (valores fisiológicamente imposibles). Estos datos sospechosos suelen ser datos faltantes, que pueden imputarse o eliminarse usando la librería Pandas.

Veamos ahora cómo realizar el pre-procesamiento de los datos, es decir su preparación antes de llevarlos a la Red Neuronal:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Perfecto, acabamos de ver cómo realizar la estandarización de los datos para garantizar que tienen el mismo rango de valores, una fase esencial para garantizar el éxito en el entrenamiento de la Red Neuronal.

De igual forma vimos cómo crear los sets de entrenamiento, prueba y validación generando particiones del 80%, 10% y 10% respectivamente.

Así que ya estamos listos para construir la Red Neuronal y realizar su entrenamiento y validación preliminar:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Bien, en el video anterior vimos cómo crear dos modelos base para definir un desempeño de referencia.

El primer modelo es una Red Neuronal con 1 capa oculta y 4 neuronas, mientras que el segundo es una Red con 2 capas ocultas con 5 y 2 neuronas respectivamente.

Estos dos modelos base nos permiten tener una idea preliminar del desempeño al momento de la clasificación, aunque tendremos que refinarlos posteriormente utilizando un enfoque similar al implementado con Keras en prácticas anteriores.

Sin embargo, en este proyecto otro de los desafíos radica en el hecho de que el set de datos está desbalanceado y de que además tenemos relativamente pocos datos.

Lo anterior afecta la validación que hemos hecho hasta el momento, ya que las proporciones en los sets de entrenamiento y prueba son similares, pero en validación son diferentes (tenemos más sujetos «enfermos» que «sanos»).

Esto implica que el desempeño depende más de los datos limitados que del modelo. Una alternativa para una validación más robusta es la validación cruzada, que proporciona una evaluación más equilibrada y confiable del rendimiento del modelo.

Veamos entonces cómo realizar esta validación cruzada:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Bien acabamos de ver cómo usar la técnica de k-fold cross-validation (o validación cruzada de «k» iteraciones) para realizar una validación más robusta de nuestras Redes Neuronales.

Tras esta validación pudimos comprobar que el primer modelo demostró ser ligeramente mejor que el modelo 2 en términos del desempeño al momento de la clasificación.

Así que con todo esto acabamos de poner en práctica varios de los conceptos desarrollados en este módulo para la implementación de un modelo que responde a un problema real. Con esto hemos podido no sólo reforzar las herramientas aprendidas previamente sobre la implementación de modelos usando Python y la librería Keras, sino también nos enfrentamos a diferentes fases de toma de decisiones que se deben tomar en un proyecto real de Deep Learning.

Así que con esto concluimos este segundo módulo del curso en donde aprendimos todo lo relacionado con las Redes Neuronales, con lo cual estamos listos para comenzar el tercer módulo, en donde hablaremos de las Redes Convolucionales, una de las arquitecturas más usadas actualmente para el procesamiento de imágenes y para tareas de visión por computador.

En particular en la próxima lección veremos una introducción a esta arquitectura, y hablaremos específicamente del sistema de visión humano y su relación con las Redes Convolucionales.

Todas las lecciones del curso Fundamentos de Deep Learning con Python.

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }