Table of Contents |
---|
Introducción
...
Interfaz de usuario: 5.3.2-Ultimate
Introducción
Se va a generar un modelo de predicción a partir de datos sobre diabetes, modelo que va a permitir predecir una medida cuantitativa de la progresión de la enfermedad , un año después de la línea base. Vas
Para ello se van a utilizar los siguientes módulos de Onesait Platform:
File Repository sobre MinIO para guardar Entidades: para generar una Entidad histórica donde cargar los datos.
File Repository sobre MinIO: para guardar el conjunto de datos original. Cargarás el archivo utilizando el módulo Create Entity in Historical Database.
Notebooks:para tener utilizar un proceso paramétrico para obtener los datos de MinIO, entrenar y generar el modelo, y registrar todo en el módulo de MLFlow.
Gestor de Modelos (MLFlow) MLFlow: como gestor de modelos para registrar todos los experimentos del cuaderno Notebook, y guardar el modelo y otros archivos para el entrenamiento.
Módulo Serverless:para crear una función Python escalable que, usando el modelo generado, pueda predecir la progresión de la enfermedad.
Dataset
La información del conjunto de datos sobre diabetes es la siguiente.
Se obtuvieron diez variables de base, edad, sexo, índice de masa corporal, presión y seis mediciones de suero sanguíneo para cada uno de los 442 pacientes diabéticos, así como la respuesta de interés, una medida cuantitativa de la progresión de la enfermedad un año después de la línea de base.
Características del dataset:
Número de instancias: 44.
Número de atributos: Las 10 primeras columnas son valores predictivos numéricos.
Target: La columna 11 es una medida cuantitativa de la progresión de la enfermedad un año después de la línea de base.
Información sobre atributos (en inglés):
age age in years
sex
bmi body mass index
bp average blood pressure
s1 tc, total serum cholesterol
s2 ldl, low-density lipoproteins
s3 hdl, high-density lipoproteins
s4 tch, total cholesterol / HDL
s5 ltg, possibly log of serum triglycerides level
s6 glu, blood sugar level
...
Info |
---|
Sólo usuarios con rol de tipo «analista» o «administrador» podrán llevar a cabo este tutorial. |
Datos
Para llevar a cabo este modelo predictivo se van a utilizar datos de diabetes obtenidos de la Universidad de Standford y cedidos por Bradley Efron, Trevor Hastie, Iain Johnstone y Robert Tibshirani. Concretamente, el dataset de datos a utilizar se puede descargar desde este enlace, y tiene el siguiente aspecto:
...
Este conjunto de datos, completamente anonimizado, se compone de diez variables con información de 442 pacientes diabéticos. Dichas variables hacen referencia a:
AGE: la edad del paciente, en años.
SEX: el sexo del paciente.
BMI: el índice de masa corporal.
BP: la presión sanguínea media.
S1: tc; colesterol sérico total.
S2: ldl; lipoproteínas de baja densidad.
S3: hdl; lipoproteínas de alta densidad.
S4: tch; colesterol total / HDL.
S5: ltg; logaritmo del nivel de triglicéridos séricos.
S6: glu; nivel de glucosa en sangre.
Info |
---|
Cada una de estas diez variables de características se ha centrado en la media y se ha escalado por la desviación estándar multiplicada por |
URL de la fuente:
https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html
Para más información, véase:
Bradley Efron, Trevor Hastie, Iain Johnstone and Robert Tibshirani (2004) "Least Angle Regression," Annals of Statistics (with discussion), 407-499.
(https://web.stanford.edu/~hastie/Papers/LARS/LeastAngle_2002.pdf)'
Paso 1: Cargar datos en la plataforma MinIO
Desde el enlace, vas a obtener el archivo de esta fuente: https://www4.stat.ncsu.edu/~boos/var.select/diabetes.tab.txt
Vas a crear una "Entidad en Base de Datos Histórica" a partir de este archivo así que debes ir a esta opción:
...
Rellena la información principal:
...
Y pulsa “Continuar”. A continuación, tendrás que rellenar todas las columnas del archivo con el formato de cadena (Esto es porque el archivo CSV necesita ser cargado con este tipo de columna).
...
Finalmente, pulsa el botón “Crear” y se creará tu nueva entidad:
...
También puedes consultar esta entidad en SQL a través de Presto con el Query Tool.
Paso 2: Crear libreta para obtener datos, entrenar y registrar el experimento
En primer lugar, vas a crear un nuevo notebook. Dirígete a la opción Analytics Tools y pulsa en el botón nuevo notebook (+) y después escríbele un nombre.
...
Además, se cuenta con una medida cuantitativa de la progresión de la enfermedad un año después de la línea de base, denominada como «Y».
Referencia: Bradley Efron. Trevor Hastie. Iain Johnstone. Robert Tibshirani. "Least angle regression." Ann. Statist. 32 (2) 407 - 499, April 2004. https://doi.org/10.1214/009053604000000067
Ejecución del demostrador
A continuación se explican los diferentes pasos a llevar a cabo.
Paso 1.- Crear la Entidad
Una vez que se tienen los datos de diabetes descargados en el local, el primer paso consistirá en crear una Entidad para almacenarlos en Onesait Platform y poder trabajar con ellos.
En este caso, se va a crear una Entidad en una base de datos histórica. Para ello, se navegará desde Control Panel al menú de Conceptos principales > Mis Entidades.
Se mostrará entonces el listado de Entidades del usuario. Se pulsará en el botón de «+» para crear una nueva Entidad.
...
De entre las distintas opciones, se seleccionará la de «Creación Entidad en BD Histórica»:
...
Se cuenta con dos opciones de Entidad histórica. De ambas, se seleccionará la primera opción, la de «Creación Entidad en BD Histórica»:
...
Seguidamente se mostrará el asistente de creación de la Entidad en donde, al igual que en el resto de Entidades, se tendrá que introducir una información básica:
...
Identificación: el nombre único con el que identificar a la Entidad. En este caso se introducirá «diabetes_raw».
Meta-Información: etiquetas con las que caracterizar la Entidad, que servirán para su filtrado a la hora de hacer búsquedas. Se pueden añadir algunas etiquetas referidas al tema, como pueden ser «diabetes», «dataset» o «ml».
Descripción: texto descriptivo extendido de la Entidad, como su uso, propiedades, características, etc. Por simplificar, se añadirá «Diabetes raw dataset».
Además, contamos con dos opciones de caracterización de la Entidad:
Entidad activa: para que la Entidad funcione o se encuentre bloqueada.
Entidad pública: si se quiere que la Entidad sea pública, o si se quiere privada.
Una vez definida la información general y las opciones de la Entidad, pulsaremos en el botón de «Continuar» para acceder a la definición del esquema de la Entidad.
...
A continuación, se tendrá que crear los campos correspondientes a la cabecera de la tabla. Todos estos campos serán de tipo «string», y no será necesario indicar la descripción del campo.
...
Una vez creados los campos, se procederá a indicar las opciones del archivo original de los datos. Aquí se indicarán las siguientes opciones:
...
Formato: el formato del archivo de datos. En este caso se trata de un archivo separado por comas (CSV).
Carácter de escape: ninguno.
Carácter de citación: ninguno.
Carácter de separación: en este caso, los datos están separados por tabulaciones, por lo que se añadirá «/t» para indicar este tipo de carácter.
Seguidamente están las opciones de particiones, pero no aplican para este tutorial, por lo que se omiten.
Por último se tendrá que actualizar la consulta SQL de la Entidad. Para ello se pulsará en el botón de «Actualizar SQL», y al momento se mostrará la nueva consulta SQL:
...
Hecho esto, se terminará pulsando en el botón de «Crear», situado en la parte superior derecha de la pantalla, para crear la nueva Entidad.
<IMG>
Tras la Entidad, aparecerá un aviso indicando si se quiere añadir datos a la Entidad. Esto se realizará en el siguiente paso, por lo que se puede omitir.
<IMG>
Creada la Entidad, se regresará al listado de Entidades del usuario, en donde se podrá comprobar que aparece correctamente.
...
Paso 2.- Cargar datos
Aunque en el paso anterior era posible cargar los datos directamente, se quiere mostrar cómo subir el archivo de datos a un bucket de MinIO.
Para ello, desde Control Panel se navegará a Conceptos principales > Mis Ficheros.
...
De entre las diversas opciones disponibles, se escogerá la de «MinIO».
...
Se mostrará entonces el navegador de contenidos del Bucket de MinIO.
...
Además, en la parte inferior se visualizarán los archivos, propios y compartidos por otros usuarios, disponibles.
...
Se puede subir un archivo tanto usando el Bucket superior como desde el listado de archivos disponibles. Como la segunda opción es similar a otros recursos de la Plataforma, como las Entidades, se usará la primera opción para mostrar su funcionamiento.
Para ello, desde el navegador de contenidos, se pulsará en la carpeta de «datalake» y se navegará hasta el destino donde se quiera subir el archivo. Por ejemplo: «analyticsbucket/datalake/diabetes_raw».
...
Una vez en la ruta seleccionada, se pulsará en el botón de «Upload» y se seleccionará la opción de «Upload File» para subir el archivo desde el local:
...
Hecho esto, el archivo CSV con los datos de diabetes aparecerá en el listado del Bucket:
...
Puesto que más adelante será necesario, es recomendable apuntar la ruta del archivo subido. Esto se puede ver en el listado de archivos inferior, que para este caso sería «analyticsbucket/datalake/diabetes_raw/select_diabetes.tab_20230927170218.csv».
...
Paso 3.- Crear el Notebook
Para crear un nuevo Notebook, desde Control Panel se navegará hasta el menú de Procesamiento > Mis Notebooks.
...
Se mostrará entonces el listado de Notebooks del usuario, así como aquellos públicos. Se pulsará en el botón de «+» para crear un nuevo Notebook.
...
Aparecerá entonces una ventana pidiendo que se introduzca el nombre del Notebook a crear. Aquí se indicará el nombre que interese, que para este ejemplo será «notebook_diabetes».
...
También podemos importar este archivo que contiene el cuaderno completo para este ejemplo (sólo tienes que establecer el parámetro token).
...