0 / 0
Volver a la versión inglesa de la documentación
Operador modelo de SPSS

Guía de aprendizaje: Utilización de un modelo predictivo de Watson Machine Learning con datos secuenciales de pacientes

La atención médica en el entorno actual de salud pública incluye la prescripción de medicamentos para condiciones complejas. Si es proveedor de salud pública, puede tener una idea bastante precisa del medicamento más adecuado para cada paciente. Para ello tiene en cuenta la edad del paciente, los signos vitales y los resultados del laboratorio. Pero no debe fiarse de la intuición. Con IBM Watson Studio, puede saber con certeza cuál es el medicamento más adecuado en función de modelos predictivos que utilizan datos reales.

Objetivo de aprendizaje

En esta guía de aprendizaje, aprenderá a aprovechar la capacidad de los modelos predictivos con la capacidad de datos en secuencia para responder a la pregunta "Cuál es el medicamento más adecuado para este paciente".

En Flujos del modelador, puede crear y editar un flujo de modelo de SPSS de ejemplo. Con este modelador, puede crear un modelo predictivo sobre el medicamento más efectivo según distintas métricas médicas. El modelo también incluye el nivel de confianza de la probabilidad de que se recete el medicamento.

El flujo de secuencias ingiere métricas de pacientes en modalidad continua. Utilizando estas métricas, el modelo predictivo nos indica el medicamento que sería más efectivo para cada paciente y la probabilidad de que se recete el medicamento.

Para completar la guía de aprendizaje, siga estos pasos:

  1. Visión general rápida

  2. Vista previa

  3. Requisito previo

  4. Configurar un servicio Watson Machine Learning en un proyecto

  5. Utilice un flujo de SPSS Modeler de Watson Machine Learning para crear un modelo predictivo
    1. Cree un flujo de SPSS Modeler
    2. Cree un modelo predictivo
  6. Cree un flujo de secuencias que utilice el modelo predictivo

Visión general rápida

Un consultorio médico mantiene métricas sobre la salud de sus pacientes. Estas métricas incluyen sexo, edad, presión arterial (BP) y niveles de sodio (Na), potasio (K) y colesterol en sangre.

Watson Machine Learning puede ayudar a los profesionales a responder la pregunta sobre cuál es el medicamento más efectivo para el paciente.

Antes de examinar esta cuestión, veamos cómo se configuran y se integran los datos de Machine Learning y los datos de las secuencias:

En primer lugar, comprobamos que tenemos una instancia en ejecución de Watson Machine Learning y que tenemos acceso de escritura.

A continuación, utilizamos Flujos del modelador para entrenar a un modelador de aprendizaje máquina para que nos diga cuál de los medicamentos es el más eficaz según las métricas de salud de cada paciente. Utilizamos datos de un archivo CSV para entrenar nuestro modelo. Tomamos ese modelador y lo guardamos en un modelo predictivo.

Por último, creamos un flujo de secuencias. El flujo de secuencias ingiere datos de ejemplo de las métricas de salud que proporcionamos, lo incorpora en el modelo recién entrenado y luego proporciona como resultado el medicamento más eficaz al operador Depuración para que lo muestre.

Vista previa

Vea este vídeo para ver cómo configurar e integrar Watson Machine Learning y un flujo de secuencias.

Requisito previo

Una instancia del servicio Streaming Analytics debe estar asociada con el proyecto donde se ejecuta el flujo de aprendizaje máquina y el flujo de secuencias.

Procedimiento

Siga los pasos siguientes:

  1. Vaya a la página Proyectos del proyecto y, a continuación, pulse el separador Valores.

  2. En la sección Servicios asociados de la página, compruebe que se lista un servicio Streaming Analytics. Si el servicio no aparece en la lista, siga estos pasos:

    a. Pulse Añadir servicio y, continuación, seleccione Streaming Analytics en la lista.

    b. En la lista Instancia de servicio existente, seleccione el servicio para asociar con este proyecto.

  3. Si no se lista ningún servicio en la lista Instancia de servicio existente, debe suministrar una instancia en la cuenta en el panel de control de IBM Cloud. Siga los pasos siguientes:

    a. Vaya a la página Proyectos del proyecto y, a continuación, pulse el separador Valores.

    b. En la sección Servicios asociados de la página, compruebe que se lista un servicio Streaming Analytics. Si el servicio no aparece en la lista, siga estos pasos:

    c. Pulse Añadir servicio y, continuación, seleccione Streaming Analytics en la lista.

    d. En la lista Instancia de servicio existente, seleccione el servicio para asociar con este proyecto.

    e. Pulse Crear recurso.

    f. En el campo vacío, escriba Machine Learning.

    g. Pulse Machine Learning para abrir la página Machine Learning. Siga las indicaciones del sistema.

    h. Vuelva al separador Valores en el proyecto y, a continuación, asocie la instancia recién suministrada al proyecto.

    i. Pulse Crear recurso.

    j. En el campo Buscar, escriba Machine Learning.

    k. Pulse Machine Learning para abrir la página Machine Learning. Siga las indicaciones del sistema.

    l. Vuelva al separador Valores en el proyecto y, a continuación, asocie la instancia recién suministrada al proyecto.

Configurar un servicio Watson Machine Learning en un proyecto

Necesita un servicio de Watson Machine Learning asociado al proyecto. Debe tener acceso de grabador al servicio para poder crear y editar un modelo de aprendizaje máquina.

Para configurar un servicio, siga estos pasos:

  1. En IBM Watson Studio, pulse Proyectos y, a continuación, seleccione el proyecto para contener el flujo de modelador, el modelo y el flujo de secuencias.

  2. En la página Proyectos del proyecto, pulse Valores > Servicios asociados. Si no se lista un servicio de Machine Learning, pulse Añadir servicio y, a continuación, seleccione Watson. En la tarjeta Machine Learning, pulse Añadir. Siga las solicitudes para crear un nuevo servicio. Llamemos al nuevo servicio predictive-modeling-demo.

Utilización de un flujo de modelador de SPSS para crear un modelo predictivo

En Watson Machine Learning, se crea un modelo predictivo utilizando un flujo de modelador de ejemplo. El tipo del modelo predictivo es SPSS.

Suministramos los datos de entrenamiento, que incluyen métricas de salud como medicación, sexo, edad, presión arterial y niveles de Na, K y colesterol en sangre. Los datos de entrenamiento indican cuál es el medicamento más efectivo para determinadas métricas de salud. Por ejemplo, si la edad es X, la presión arterial es Y y el colesterol es Z, entonces el medicamento más adecuado es A.

El algoritmo de aprendizaje máquina que se utiliza es el algoritmo C5. En los datos de entrenamiento, el algoritmo C5 encuentra patrones que correlacionan las métricas de salud con el destino (el medicamento más efectivo) y crea un modelo predictivo. El nuevo modelo captura estos patrones en un árbol de decisiones.

Para crear el flujo de SPSS Modeler, siga los pasos siguientes:

  1. En Watson Studio, vuelva a la página Proyectos de su proyecto (a partir del paso 1 en Configurar un servicio Watson Machine Learning en un proyecto). Pulse Añadir un proyecto y, a continuación, seleccione Flujo de Modeler en la lista.
  2. En la página Modelador, pulse Del ejemplo > Modelador de Drug Study Example y pulse Crear. Se abre el lienzo.

    Este es el aspecto del flujo del modelador de Drug Study Example en el lienzo.

    Flujo del modelador en el lienzo

    Los nodos del flujo del modelador realizan las tareas siguientes.

    Número de nodo Qué hace el nodo
    1 Lee datos de entrenamiento de un archivo CSV.
    Por ejemplo, enseña el modelo de que cuando la edad es X, la BP es Y y el colesterol es Z, se debe elegir el medicamento A.
    2 Calcula la proporción entre Na y K, y añade la columna "Na_to_K" correspondiente a la proporción.
    3 Elimina las columnas “Na” y “K” de los datos de entrenamiento.
    4 Define los metadatos y los valores de los datos que faltan. La columna “Drug” (medicamento) se ha definido como destino.
    5 Lee los datos de entrenamiento y crea un árbol de decisiones predictivo utilizando el algoritmo C5 con cada división.

 


 

Para crear modelo predictivo a partir del flujo del modelador, siga los pasos siguientes:

  1. Pulse con el botón derecho en Drug (nodo 5) y seleccione Abrir para abrir su panel de propiedades. El nodo 5 crea un árbol de decisiones predictivo a partir de un conjunto de datos de entrenamiento mediante el algoritmo C5. Compruebe los diversos parámetros para ver detalles del árbol de decisiones y pulse Cancelar.

  2. Vuelva a pulsar con el botón derecho del ratón en Drug y seleccione Ejecutar para iniciar el flujo. Se crea el nodo 6, Drug. El nodo 6 contiene el modelo que ha creado el nodo 5. Se añaden dos columnas nuevas ($C-Drug y $CC-Drug). Observe el nuevo enlace entre el nodo 4 y el nodo 6. Los datos del nodo 4 pasan ahora al nuevo nodo Drug (nodo 6) en lugar de pasar a través del nodo Drug (nodo 5).

    Nuevo nodo del modelador en el lienzo

  3. Vamos a ver nuestro nuevo modelo. Siga los pasos siguientes:

    a. Pulse con el botón derecho del ratón en el nuevo nodo Drug (nodo 6) y seleccione Abrir.

    En el área Valores, verá que nuestro modelo calcula niveles de confianza. El nivel de confianza nos muestra la probabilidad de que los profesionales médicos seleccionen el medicamento como el más adecuado.

    b. Pulse Cancelar para volver al lienzo.

    c. Pulse con el botón derecho del ratón en el nuevo nodo Drug (nodo 6) y seleccione Ver modelo para examinar el modelo de árbol C5 que ha creado el modelador.

    • Pulse Importancia de predictor. Este gráfico de barras representa los predictores en orden descendente de importancia relativa para la predicción del objetivo, según lo determinado por un algoritmo de análisis de sensibilidad basado en varianzas. Los valores de cada predictor se escalan de modo que su suma sea uno.

      Se ve que la proporción Na_to_K es el predictor más importante para la efectividad del medicamento, seguido de BP y luego de la edad o del colesterol de los pacientes.

    • Pulse Diagrama de árbol y marque el recuadro de selección Mostrar etiquetas en ramas. El diagrama de árbol muestra el árbol de decisiones sobre el medicamento más eficaz.

      Árbol de decisiones

      La primera división se hace por la proporción Na_to_K. Si la proporción es mayor que 14,829, drugY es la mejor opción, y ninguna otra métrica de salud influye en esa decisión. De lo contrario, drugX es la mejor opción. En este caso, la presión arterial entra en juego y las opciones son ahora drugX y drugA.

      La segunda división es por BP, y esta división se encuentra en los datos en los que la proporción de Na_to_K es menor o igual que 14,829. Si la presión arterial es normal, drugX es el medicamento más eficaz, y ninguna otra métrica de salud afecta a esta decisión. De lo contrario, la edad y el colesterol afectan a la decisión sobre cuál es el medicamento más adecuado.

      Para ver detalles sobre una rama, pase el puntero del ratón sobre una rama para visualizar el campo de división y el valor de división. Por ejemplo, el campo de división podría ser BP con un valor de división de HIGH.

      Para ver detalles sobre un nodo, pase el puntero del ratón sobre el nodo. Se muestra el ID del nodo, la puntuación de los registros en ese nodo basándose en el modelo, la confianza y otros detalles.

  4. En la indicación de ruta anterior que hay sobre la página Modelo de árbol C5.0, pulse Drug Study Example para volver al lienzo de nuestro flujo de modelador.

  5. Pulse con el botón derecho del ratón en el nuevo nodo Drug (nodo 6) y seleccione Vista previa para ver el aspecto de nuestros datos.

    Observe que tiene dos columnas nuevas: "$C-Drug" y "$CC-Drug". El modelador ha creado estas variables cuando se seleccionó incluir niveles de confianza en el paso 3a y cuando se definió la columna "Drug" como destino. Observe que los valores de las columnas "Drug" y "$C-Drug" son idénticos.

    Estas variables nos proporcionarán el nombre del medicamento y el nivel de confianza en su eficacia para un conjunto de métricas de salud.

    Vista previa del modelo

  6. En la indicación de ruta anterior que hay sobre la página Modelo de árbol C5.0, pulse Drug Study Example para volver al lienzo de nuestro flujo de modelador.

  7. En el lienzo del flujo del modelador, arrastre el nodo Tabla (desde Salidas en la paleta del lienzo) al lienzo y luego enlácelo con el nuevo operador Drug.

    Flujo del modelo en el lienzo

  8. Pulse con el botón derecho del ratón en el nodo Tabla (nodo 7) y seleccione Ejecutar. En el separador Salidas, efectúe una doble pulsación en Tabla (8 campos, 200 registros). Parece que ahora los datos nos están dando la información que necesitamos. Volvamos a nuestro flujo de modelador para guardar este flujo como nuestro nuevo modelo.

  9. En la indicación de ruta anterior que hay sobre la página Modelo de árbol C5.0, pulse Drug Study Example para volver al lienzo de nuestro flujo de modelador.

  10. Pulse con el botón derecho del ratón en el nodo Tabla (nodo 7) y seleccione Guardar rama como un modelo. Cuando se guarda un modelo, se guardan todos los nodos de la ramificación de DRUG1n en la Tabla.

  11. Guarde el modelo con el nombre drug model. Si ha creado un servicio de Machine Learning en la parte Configuración de esta guía de aprendizaje, seleccione predictive-modeling-demo como servicio de Machine Learning. De lo contrario, seleccione el servicio de Machine Learning que está asignado al proyecto. Pulse Guardar.

    Ahora tiene un modelo predictivo que indica cuál es el mejor medicamento para cada paciente. Vamos a abrir nuestro nuevo modelo para comprobar su esquema de entrada. Debe conocer las columnas (o atributos) que espera el modelo, porque tiene que configurar el flujo de secuencias para enviar dichas columnas al modelo.

  12. En la página Proyectos del proyecto, pulse Activos > Modelos > Modelos de Watson Machine Learning > drug model. Nuestro nuevo modelo se abre y nos muestra información sobre el modelo en sí y su esquema de entrada.

  13. Desplácese hacia abajo hasta el área Esquema de entrada y compruebe los nombres de columna y los tipos de datos. Esta información nos indica lo que el modelo espera como entrada. El esquema se puede visualizar en formato de tabla y en formato JSON.

   

Ahora que ha creado un modelo predictivo y ha comprobado sus esquemas de entrada, vamos a dejar Watson Machine Learning y volveremos al flujo de secuencias.

Creación de un flujo de secuencias que utilice el modelo predictivo

Nuestro último paso consiste en crear un flujo de secuencias que ingiera los datos de los pacientes en modalidad continua en el formato de columna que espera nuestro operador Modelo de SPSS. El operador Modelo de SPSS utiliza el modelo que ha creado a partir de la rama del modelador.

Los datos de secuencias pasan por los mismos nodos de la rama del modelador.

Los datos del paciente se suministran por medio de un operador Código (en Orígenes). Desde el operador Código, los datos se envían al operador Modelo de SPSS para ejecutar el modelo predictivo que ha creado en Watson Machine Learning. El operador Modelo de SPSS aplica el análisis predictivo del modelo a los datos de entrada de los pacientes para determinar el mejor medicamento para cada paciente. La salida del operador Modelo de SPSS se envía al operador de depuración para que pueda ver los datos sin almacenarlos.

Para crear un flujo de secuencias que utilice el modelo predictivo, siga los pasos siguientes:

  1. Vaya a la página Proyecto, pulse Añadir a proyecto y luego pulse Flujo de secuencias.

  2. Crear un flujo de secuencias manualmente. Vamos a llamar al flujo de secuencias Drug Study Example.

  3. En la paleta del lienzo, arrastre los operadores Código (como Orígenes), Modelo de SPSS (como Proceso y análisis) y Depuración (como Destinos) en el lienzo. Conéctelos.

    Nuevo flujo de secuencias

  4. Pulse el operador Código para abrir su panel de propiedades y siga los pasos siguientes:

    a. En el campo Código, añada el código siguiente.

    #
    # DEBE EDITAR EL ESQUEMA y añadir todos los atributos que vaya a devolver como salida.
    #
    # Los paquetes de Python preinstalados se pueden ver desde el panel Valores.
    # En el panel Valores también puede instalar otros paquetes de Python. ​
    import time
    import pandas as pd ​
    # Se invoca la función init() cuando se inicializa la interconexión
    # @state un diccionario de Python para mantener el estado, El objeto state se pasa a la función produce
    def init(state):
        pass ​
    # Se llamará a la función de produce() cuando el trabajo empiece a ejecutarse.
    # Se llama en una hebra en segundo plano, y normalmente invocará la devolución de llamada 'submit ()'
    # siempre que haya una tupla de datos lista para su envío desde este operador.
    # Esto permite utilizar los servicios de datos asíncronos, así como la generación o recuperación síncrona de datos.
    # @submit una función de devolución de llamada de Python que toma un solo argumento: un diccionario que representa una sola tupla.
    # @state un objeto de diccionario de Python para conservar el estado
    # Debe declarar todos los atributos de salida en la ventana Editar esquema.
    def produce(submit, state):
        df = pd.read_csv('https://raw.githubusercontent.com/pmservice/drug-selection/master/data/drug_batch_data.csv', sep=',')
        while True:
             for i, AGE in enumerate(df.AGE):
                 event = { "Age" : df.AGE.iloc[i],
                       "Sex" : df.SEX.iloc[i],
                       "BP" : df.BP.iloc[i],
                       "Cholesterol" : df.CHOLESTEROL.iloc[i],
                       "Na" : df.NA.iloc[i],
                       "K": df.K.iloc[i]} ​
                 submit(event)
                 time.sleep(0.5)   # Simula un retardo de 0,5 segundos entre los sucesos emitidos
    

    b. Pulse Editar esquema de salida y luego añada los nombres de columna que ha visto en los esquemas de entrada de nuestro nuevo modelo (paso 13). Asegúrese de que las columnas y sus tipos de datos coinciden con lo que el modelo espera como entrada.

    Nota: Nuestros datos de secuencias de entrada no tienen una columna correspondiente a "Drug", por lo que tiene que añadirla. Nuestro modelo colocará el medicamento más eficaz previsto en esa columna.

  5. Pulse el Despliegue WML para abrir su panel de propiedades y siga los pasos siguientes:

    a. En la instancia de Machine Learning, seleccione la instancia y liste sus modelos. Si ha creado un servicio de Machine Learning en la parte Configuración de esta guía de aprendizaje, seleccione predictive-modeling-demo. De lo contrario, seleccione el servicio de Machine Learning que está asignado al proyecto.

    b. En Despliegue WML, seleccione el modelo drug.

    c. Abra la sección Esquema. Pulse Editar para abrir la ventana Esquema. Observe que los atributos del esquema de salida se correlacionan automáticamente con los atributos del modelo de SPSS drug. Observe también que los atributos de modelo $C-Drug y $CC-Drug también se correlacionan automáticamente con los nuevos nombres de atributo en el esquema de salida.

    La columna $C-Drug mantendrá el nombre del medicamento recomendado como el más eficaz. La columna $CC-Drug mantendrá la probabilidad de que se prescriba el medicamento.

No es necesario configurar el operador Depuración. Simplemente actúa como destino para que pueda ver las tuplas del operador Despliegue WML.

Este es el aspecto actual de nuestro flujo de secuencias:

Flujo de SPSS Streams en el lienzo

Todo parece correcto, así que vamos a ejecutar el flujo de secuencias. En la barra de tareas del lienzo, pulse Icono Ejecutar para guardar e iniciar el flujo de secuencias.

Observe la velocidad de ingestión en el flujo de secuencia y el flujo de sucesos entre el operador Código y el operador Modelo de SPSS. Puede ver los sucesos en formato de tabla o en formato JSON.

Importante

El operador Modelo de SPSS del flujo de secuencias ejecuta el modelo predictivo que ha creado en Watson Machine Learning. El modelo predictivo no se vuelve a entrenar cuando los datos pasan del operador Código al operador Modelo de SPSS. Debe renovar el modelo predictivo en Watson Machine Learning de vez en cuando y luego debe volver a ejecutar el flujo de secuencias con el modelo actualizado.

Resumen

Ha aprendido a aprovechar la capacidad del modelado predictivo de Watson Machine Learning con un flujo de datos de secuencias.

En Watson Machine Learning, ha creado y configurado un servicio de Watson Machine Learning y, a continuación, ha utilizado un flujo de SPSS Modeler para crear un modelo predictivo. Ha creado un flujo de secuencias que ingiere datos de métricas de pacientes, incorpora los datos en el modelo predictivo y genera resultados analíticos y los envía al operador Depuración para su visualización.

Más información

Búsqueda y respuesta de IA generativa
Estas respuestas las genera un modelo de lenguaje grande en watsonx.ai que se basa en el contenido de la documentación del producto. Más información