Predictor de Diabetes que usa Machine Learning
DISCLAIMER: Este programa está hecho con fines demostrativos
y de entretenimiento, NO es un predictor real
médico de diabetes.
Preview Video:
He implementado un pequeño predictor de diabetes a partir de datos de más de 768 pacientes mujeres, los datos los he sacado de la web:
https://www.kaggle.com/uciml/pima-indians-diabetes-database/data
Es una base de datos de pacientes de diabetes de la India.
El algoritmo que he implementado utiliza Machine Learning, en concreto la técnica de K-Neighbors.
En el momento de escribir estas líneas, hay un conjunto de datos de 768 mujeres pacientes, este es el resumen de los datos:
Pregnancies | Glucose | BloodPressure | SkinThickness | Insulin | BMI | DiabetesPedigreeFunction | Age | Outcome | |
---|---|---|---|---|---|---|---|---|---|
count | 768.000000 | 768.000000 | 768.000000 | 768.000000 | 768.000000 | 768.000000 | 768.000000 | 768.000000 | 768.000000 |
mean | 3.845052 | 120.894531 | 69.105469 | 20.536458 | 79.799479 | 31.992578 | 0.471876 | 33.240885 | 0.348958 |
std | 3.369578 | 31.972618 | 19.355807 | 15.952218 | 115.244002 | 7.884160 | 0.331329 | 11.760232 | 0.476951 |
min | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.078000 | 21.000000 | 0.000000 |
max | 17.000000 | 199.000000 | 122.000000 | 99.000000 | 846.000000 | 67.100000 | 2.420000 | 81.000000 | 1.000000 |
- Accuracy: 0.7083333333333334
- Train size: 576
- Test size: 192
Instrucciones
Funciona como sigue, he hecho un formulario web en el cual hay que rellenar los siguientes datos:

- Pregnancies: Número de veces que una paciente ha quedado embarazada, en la base de datos hay pacientes mujeres que han quedado embarazadas hasta 17 veces (no significa que hayan tenido 17 hijos).
- Glucose: Nivel de glucosa en sangre, se han encontrado pacientes con niveles de hasta 199 mg/dL (miligramos por decilitro).
- BloodPressure: Presión arterial, medido en mm Hg, se han encontrado pacientes con niveles de hasta 122 mm Hg.
- SkinThickness: Grosor de la piel (capa de grasa debajo de la piel), se mide utilizando ultrasonidos o calibradores, se han encontrado pacientes con niveles de hasta 99 mm.
- Insulin: Nivel de insulina en sangre, los niveles normales están por debajo de los 100 mg/dL (miligramos por decilitro), por encima de los 126 mg/dL se considera diabetes, se han encontrado pacientes con niveles de hasta 846 mg/dL.
- BMI: Body mass index, también llamado índice de masa corporal, los niveles normales están entre 18.5 y 25 kg/m². Se han encontrado pacientes de hasta 67.1 kg/m².
- DiabetesPedigreeFunction: es una función que mide la probabilidad de tener diabetes basado en los antecedentes familiares. Esta función recibe varios parámetros y devuelve cero si no tienes probabilidad o uno si si que la tienes. Se han encontrado pacientes con probabilidad de hasta 2.42.
- Age: La edad del paciente, comprendido entre recién nacidos (0 años) y ancianos (81 o más años).
Una vez rellenos, pulsa Submit y el algoritmo de machine learning calculará
una predicción, de esta forma indicará si el paciente es propenso a tener diabetes
o no.
Puedes ver que en la siguiente imagen aparece que el paciente no es
propenso a tener diabetes.

DISCLAIMER: Este programa está hecho con fines demostrativos
y de entretenimiento, NO es un predictor real
médico de diabetes.
Nos vemos en el próximo post!
Referencias:
- https://www.kaggle.com/uciml/pima-indians-diabetes-database/data
-
Python Machine Learning for Beginners
BN ID: 2940161229385
Publisher: AI SCIENCES LLC
Publication date: 01/05/2019
Jorge Gascon Perez