Previsión meteorológica mediante el uso de datos de un sensor del centro de IoT en Machine Learning Studio (clásico)

Diagrama integral

Nota

Antes de empezar este tutorial, complete el tutorial Simulador en línea de Raspberry Pi o uno de los tutoriales del dispositivo. Por ejemplo, puede ir a Raspberry Pi con node.js o a uno de los inicios rápidos de envío de telemetría. En estos artículos, se configura el dispositivo de Azure IoT y la instancia de IoT Hub, y se implementa una aplicación de ejemplo para ejecutarse en el dispositivo. La aplicación envía los datos recopilados del sensor a su centro de IoT.

El aprendizaje automático es una técnica de ciencia de datos que ayuda a los equipos a aprender de los datos existentes para prever tendencias, resultados y comportamientos futuros. ML Studio (clásico) es un servicio de análisis predictivo en la nube que permite crear e implementar rápidamente modelos predictivos como soluciones de análisis. En este artículo, aprenderá a usar ML Studio (clásico) para hacer previsiones meteorológicas (como la probabilidad de que llueva) usando los datos de temperatura y humedad del centro de IoT de Azure. La posibilidad de lluvia es el resultado de un modelo de pronóstico meteorológico preparado. El modelo se basa en datos históricos para predecir la posibilidad de lluvia en función de la temperatura y la humedad.

Requisitos previos

Nota

En este artículo se usa Azure Stream Analytics y otros servicios de pago. Recuerde que se aplican cargos adicionales en Azure Stream Analytics cuando los datos se deben transferir entre regiones de Azure. Por esta razón, es recomendable asegurarse de que el grupo de recursos, IoT Hub y la cuenta de Azure Storage, así como el área de trabajo de Machine Learning Studio (clásico) y el trabajo de Azure Stream Analytics que se agregarán más adelante en este tutorial, se encuentran en la misma región de Azure. En la página de productos disponibles por región de Azure puede comprobar la compatibilidad regional de ML Studio (clásico) y de otros servicios de Azure.

Implementación del modelo de pronóstico meteorológico como un servicio web

En esta sección obtendrá el modelo de predicción meteorológica de la biblioteca de Azure AI. A continuación, agregará un módulo de script de R al modelo para limpiar los datos de temperatura y humedad. Por último, implementará el modelo como un servicio web predictivo.

Obtención del modelo de predicción meteorológica

En esta sección obtendrá el modelo de predicción meteorológica de Azure AI Gallery y lo abrirá en ML Studio (clásico).

  1. Vaya a la página del modelo de pronóstico meteorológico.

    Apertura de la página del modelo de predicción meteorológica en Azure AI Gallery

  2. Haga clic en Open in Studio (classic) (Abrir en Studio [clásico]) para abrir el modelo en Microsoft ML Studio (clásico). Seleccione una región cerca de su centro de IoT y el área de trabajo correcta en la ventana emergente Copy experiment from Gallery (Copiar experimento de la galería).

    Abrir el modelo de predicción meteorológica en ML Studio (clásico)

Incorporación de un módulo de script de R para limpiar los datos de temperatura y humedad

Para que el modelo se comporte correctamente, los datos de temperatura y humedad deben poder convertirse en datos numéricos. En esta sección, agregará un módulo de script de R al modelo de predicción meteorológica que quita las filas que tienen valores de datos de temperatura o humedad que no se pueden convertir en valores numéricos.

  1. En el lado izquierdo de la ventana de ML Studio (clásico), haga clic en la flecha para expandir el panel de herramientas. Escriba "ejecutar" en el cuadro de búsqueda. Seleccione el módulo Execute R Script (Ejecutar script de R).

    Selección del módulo Execute R Script (Ejecutar script de R)

  2. Arrastre el módulo Execute R Script (Ejecutar script de R) cerca del módulo Clean Missing Data (Limpiar datos que faltan) y el módulo Execute R Script (Ejecutar script de R) en el diagrama. Elimine la conexión entre los módulos Clean Missing Data (Limpiar datos que faltan) y Execute R Script (Ejecutar script de R) y, luego, conecte las entradas y salidas del nuevo módulo tal y como se muestra.

    Incorporación del módulo Execute R Script (Ejecutar script de R)

  3. Seleccione el nuevo módulo Execute R Script (Ejecutar script de R) para abrir su ventana de propiedades. Copie y pegue el código siguiente en el cuadro R Script (Script de R).

    # Map 1-based optional input ports to variables
    data <- maml.mapInputPort(1) # class: data.frame
    
    data$temperature <- as.numeric(as.character(data$temperature))
    data$humidity <- as.numeric(as.character(data$humidity))
    
    completedata <- data[complete.cases(data), ]
    
    maml.mapOutputPort('completedata')
    
    

    Cuando haya terminado, la ventana de propiedades debería tener un aspecto similar al siguiente:

    Incorporación de código al módulo Execute R Script (Ejecutar script de R)

Implementación de un servicio web predictivo

En esta sección, validará el modelo, configurará un servicio web predictivo basado en este y, luego, implementará el servicio web.

  1. Haga clic en Ejecutar para validar los pasos del modelo. Este paso puede tardar unos minutos.

    Ejecución del experimento para validar los pasos

  2. Haga clic en CONFIGURAR SERVICIO WEB > Predictive Web Service (Servicio web predictivo). Se abre el diagrama del experimento predictivo.

    Implementar el modelo de predicción meteorológica en ML Studio (clásico)

  3. En el diagrama del experimento predictivo, elimine la conexión entre el módulo Web service input (Entrada de servicio web) y Select Columns in Dataset (Seleccionar columnas en el conjunto de datos) que se encuentra en la parte superior. Luego, arrastre el módulo Web service input (Entrada de servicio web) cerca del módulo Score Model (Puntuar modelo) y conéctelo como se muestra:

    Conexión de dos módulos en ML Studio (clásico)

  4. Haga clic en EJECUTAR para validar los pasos del modelo.

  5. Haga clic en IMPLEMENTAR SERVICIO WEB para implementar el modelo como un servicio web.

  6. En el panel del modelo, descargue Excel 2010 o el libro anterior para SOLICITUD/RESPUESTA.

    Nota

    Asegúrese de descargar el libro de Excel 2010 o anterior aunque vaya a ejecutar una versión posterior de Excel en el equipo.

    Descargar Excel para el punto de conexión SOLICITUD/RESPUESTA

  7. Abra el libro de Excel, tome nota de la DIRECCIÓN URL DEL SERVICIO WEB y de la CLAVE DE ACCESO.

Adición de un grupo de consumidores a IoT Hub

Los grupos de consumidores proporcionan vistas independientes en la secuencia de eventos que permiten a las aplicaciones y a los servicios de Azure consumir datos de forma independiente desde el mismo punto de conexión del centro de eventos. En esta sección, agregará un grupo de consumidores al punto de conexión integrado de su instancia de IoT Hub que se usará posteriormente en este tutorial para extraer datos del punto de conexión.

Para agregar un grupo de consumidores a su centro de IoT, siga estos pasos:

  1. En Azure Portal, abra su centro de IoT.

  2. En el panel izquierdo, seleccione Puntos de conexión integrados. Escriba un nombre para el nuevo grupo de consumidores en el cuadro de texto de Grupos de consumidores.

    Captura de pantalla que muestra cómo crear un grupo de consumidores en el centro de IoT.

  3. Haga clic en cualquier lugar fuera del cuadro de texto para guardar el grupo de consumidores.

Creación, configuración y ejecución de un trabajo de Stream Analytics

Creación de un trabajo de Stream Analytics

  1. En Azure Portal, haga clic en Crear un recurso. Escriba "trabajo de Stream Analytics" en el cuadro de búsqueda y seleccione trabajo de Stream Analytics en la lista desplegable de resultados. Cuando se abra el panel del trabajo de Stream Analytics, seleccione Crear.

  2. Escriba la siguiente información para el trabajo.

    Nombre del trabajo: Nombre del trabajo. El nombre debe ser único globalmente.

    Suscripción: seleccione su suscripción si es diferente de la predeterminada.

    Grupo de recursos: use el mismo grupo de recursos que usa el centro de IoT.

    Ubicación: use la misma ubicación que el grupo de recursos.

    Deje todos los demás campos con sus valores predeterminados.

    Creación de un trabajo de Stream Analytics en Azure

  3. Seleccione Crear.

Adición de una entrada al trabajo de Stream Analytics

  1. Abra el trabajo de Stream Analytics.

  2. En Topología de trabajo, seleccione Entradas.

  3. En el panel Entradas, seleccione Agregar entrada de flujo y, a continuación, seleccione IoT Hub en la lista desplegable. En el panel de Nueva entrada, elija Seleccionar IoT Hub de las suscripciones y escriba la siguiente información:

    Alias de entrada: el alias único para la entrada.

    Suscripción: seleccione su suscripción si es diferente de la predeterminada.

    IoT Hub: seleccionar el centro de IoT de la suscripción

    Nombre de directiva de acceso compartido: seleccione el servicio. (También puede usar iothubowner).

    Grupo de consumidores: seleccione el grupo de consumidores que ha creado.

    Deje todos los demás campos con sus valores predeterminados.

    Adición de una entrada al trabajo de Stream Analytics en Azure

  4. Seleccione Guardar.

Adición de una salida al trabajo de Stream Analytics

  1. En Topología de trabajo, seleccione Salidas.

  2. En el panel de salidas, seleccione Agregar y, a continuación, seleccione Blob storage/Data Lake Storage en la lista desplegable. En el panel de Nueva entrada, elija Seleccionar almacenamiento de las suscripciones y escriba la siguiente información:

    Alias de salida: el alias único para la salida.

    Suscripción: seleccione su suscripción si es diferente de la predeterminada.

    Cuenta de almacenamiento: la cuenta de almacenamiento para Blob Storage. Puede crear una cuenta de almacenamiento o usar una existente.

    Contenedor: el contenedor donde se guarda el blob. Puede crear un contenedor o usar uno existente.

    Formato de serialización de eventos: seleccione CSV.

    Adición de una salida al trabajo de Stream Analytics en Azure

  3. Seleccione Guardar.

Adición de una función al trabajo de Stream Analytics para llamar al servicio web implementado

  1. En la Topología de trabajo, seleccione Funciones.

  2. En el panel de Funciones, seleccione Agregar y, a continuación, seleccione Azure ML Studio en la lista desplegable. (Asegúrese de seleccionar Azure ML Studio, no el Azure ML Service). En el panel Nueva función, seleccione Proporcionar la configuración de la función de Azure Machine Learning manualmente y escriba la siguiente información:

    Alias de función: escriba machinelearning.

    Dirección URL: escriba la DIRECCIÓN URL DEL SERVICIO WEB que anotó del libro de Excel.

    Clave: escriba la CLAVE DE ACCESO que anotó del libro de Excel.

    Adición de una función al trabajo de Stream Analytics en Azure

  3. Seleccione Guardar.

Configuración de la consulta del trabajo de Stream Analytics

  1. En Topología de trabajo, seleccione Consulta.

  2. Reemplace el código existente con el siguiente:

    WITH machinelearning AS (
       SELECT EventEnqueuedUtcTime, temperature, humidity, machinelearning(temperature, humidity) as result from [YourInputAlias]
    )
    Select System.Timestamp time, CAST (result.[temperature] AS FLOAT) AS temperature, CAST (result.[humidity] AS FLOAT) AS humidity, CAST (result.[scored probabilities] AS FLOAT ) AS 'probabalities of rain'
    Into [YourOutputAlias]
    From machinelearning
    

    Reemplace [YourInputAlias] por el alias de entrada del trabajo.

    Reemplace [YourOutputAlias] por el alias de salida del trabajo.

  3. Seleccione Guardar consulta.

Nota

Si selecciona Probar consulta, aparecerá el siguiente mensaje: No se admiten las pruebas de consulta con las funciones de Machine Learning. Modifique la consulta y vuelva a intentarlo. Puede omitir este mensaje sin ningún riesgo y seleccionar Aceptar para cerrar el cuadro del mensaje. Asegúrese de guardar la consulta antes de continuar con la siguiente sección.

Ejecución del trabajo de Stream Analytics

En el trabajo de Stream Analytics, seleccione Información general en el panel izquierdo. A continuación, seleccione Inicio > Ahora > Iniciar. Una vez que el trabajo se inicia correctamente, su estado cambia de Detenido a En ejecución.

Ejecución del trabajo de Stream Analytics

Uso del Explorador de Microsoft Azure Storage para consultar el pronóstico meteorológico

Ejecute la aplicación cliente para empezar a recopilar y enviar datos de temperatura y humedad a IoT Hub. Por cada mensaje que IoT Hub recibe, el trabajo de Stream Analytics llama al servicio web de pronóstico meteorológico para producir la posibilidad de lluvia. El resultado se guarda luego en Azure Blob Storage. El Explorador de Azure Storage es una herramienta que puede usar para consultar el resultado.

  1. Descargue e instale el Explorador de Microsoft Azure Storage.

  2. Abra el Explorador de Azure Storage.

  3. Inicie sesión en la cuenta de Azure.

  4. Seleccione su suscripción.

  5. Haga clic en la suscripción > Cuentas de almacenamiento > su cuenta de almacenamiento > Contenedores de blob > su contenedor.

  6. Abra un archivo .csv para ver el resultado. La última columna registra la posibilidad de lluvia.

    Obtención del resultado del pronóstico meteorológico con ML Studio (clásico)

Resumen

Ha usado ML Studio (clásico) correctamente para predecir la posibilidad de lluvia en función de los datos de temperatura y humedad que IoT Hub recibe.

Para continuar la introducción a Azure IoT Hub y explorar todos los escenarios de IoT con mayor detalle, consulte lo siguiente: