Paso 5: Uso del modelo de ML para generar predicciones - Amazon Machine Learning

Ya no actualizamos el servicio Amazon Machine Learning ni aceptamos nuevos usuarios para él. Esta documentación está disponible para los usuarios actuales, pero ya no la actualizamos. Para obtener más información, consulte Qué es Amazon Machine Learning.

Paso 5: Uso del modelo de ML para generar predicciones

Amazon Machine Learning (Amazon ML) puede generar dos tipos de predicciones: por lotes y en tiempo real.

Una predicción en tiempo real es una predicción para una única observación que Amazon ML genera bajo demanda. Las predicciones en tiempo real son ideales para aplicaciones móviles, sitios web y otras aplicaciones que necesitan utilizar los resultados de forma interactiva.

Una predicción por lotes es un conjunto de predicciones para un grupo de observaciones. Amazon ML procesa los registros en una predicción por lotes conjuntamente, por lo que el procesamiento puede tardar un tiempo. Utilice las predicciones por lote para aplicaciones que requieren predicciones para un conjunto de observaciones o predicciones que no utilicen los resultados de forma interactiva.

En este tutorial, generará una predicción en tiempo real que prediga si un cliente potencial se suscribirá al nuevo producto. Asimismo, generará predicciones para un gran lote de clientes potenciales. Para la predicción por lotes, se utilizará el archivo banking-batch.csv que ha cargado en el Paso 1: prepare los datos.

Empecemos con una predicción en tiempo real.

nota

Para las aplicaciones que requieren predicciones en tiempo real, debe crear un punto de enlace en tiempo real para el modelo de ML. Se acumulan cargos mientras se encuentra disponible un punto de enlace en tiempo real. Antes de comprometerse a utilizar las predicciones en tiempo real y empezar a incurrir en el costo derivado de las mismas, puede probar a utilizar la característica de predicción en tiempo real en el navegador web, sin necesidad de crear un punto de enlace en tiempo real. Eso es lo que vamos a hacer para este tutorial.

Probar una predicción en tiempo real
  1. En el panel de navegación ML model report, seleccione Try real-time predictions.

    Navigation pane with "Try real-time predictions" option circled in red.
  2. Elija Paste a record.

    Button labeled "Paste a record" highlighted in a web interface form.
  3. En el cuadro de diálogo Paste a record, pegue la siguiente observación:

    32,services,divorced,basic.9y,no,unknown,yes,cellular,dec,mon,110,1,11,0,nonexistent,-1.8,94.465,-36.1,0.883,5228.1
  4. En el cuadro de diálogo Pegar un registro, elija Enviar para confirmar que desea generar una predicción para esta observación. Amazon ML rellena los valores en el formulario de predicciones en tiempo real.

    Table row showing 'age' attribute with Numeric type and Value of 32.0.
    nota

    También puede rellenar los campos Value (Valor) escribiendo los valores individuales. Independientemente del método que elija, debe proporcionar una observación que no se haya utilizado para formar el modelo.

  5. En la parte inferior de la página, elija Create prediction.

    La predicción aparece en el panel Prediction results a la derecha. Esta predicción tiene una Predicted label de 0, lo que significa que no es probable que este cliente potencial responda a la campaña. Una Predicted label (Etiqueta predicha) de 1 significaría que el cliente posiblemente responda a la campaña.

    Prediction results showing binary ML model with predicted label 0 and score 0.033486433.

Ahora, cree una predicción por lotes. Proporcionará a Amazon ML el nombre del modelo de ML que está usando, la ubicación de Amazon Simple Storage Service (Amazon S3) de los datos de entrada para los que desea generar predicciones (Amazon ML creará un origen de datos de predicciones por lotes a partir de estos datos) y la ubicación de Amazon S3 para almacenar los resultados.

Para crear una predicción por lotes
  1. Elija Amazon Machine Learning y, a continuación, elija Batch Predictions (Predicciones por lotes).

    Amazon Machine Learning dropdown menu with Batch Predictions option highlighted.
  2. Elija Create new batch prediction (Crear nueva predicción por lotes).

  3. En la página ML model for batch predictions (Modelo de ML para predicciones por lotes), elija ML model: Banking Data 1 (Modelo de ML: datos bancarios 1).

    Amazon ML muestra el nombre del modelo de ML, el ID, la hora de creación y el ID de la fuente de datos asociada.

  4. Elija Continue (Continuar).

  5. Para generar predicciones, debe proporcionar a Amazon ML los datos para los que necesita predicciones. Estos se denominan datos de entrada. En primer lugar, coloque los datos de entrada en una fuente de datos de forma que Amazon ML pueda acceder a ellos.

    Para Locate the input data (Localizar los datos de entrada), elija My data is in S3, and I need to create a datasource (Mis datos están en S3 y debo crear un origen de datos).

    Radio button options for locating input data, with the second option selected.
  6. En Datasource name (Nombre de origen de datos), escriba Banking Data 2.

  7. Para S3 Location (Ubicación de S3), escriba la ubicación completa del archivo banking-batch.csv: su-bucket/banking-batch.csv.

  8. En Does the first line in your CSV contain the column names? (¿La primera línea del CSV contiene los nombres de columna?), elija Yes (Sí).

  9. Elija Verify (Verificar).

    Amazon ML valida la ubicación de los datos.

  10. Elija Continue (Continuar).

  11. Para Destino S3, escriba el nombre de la ubicación de Amazon S3 donde ha cargado los archivos en el Paso 1: Preparación de sus datos. Amazon ML carga los resultados de la predicción ahí.

  12. Para el nombre de predicción por lotes, acepte el valor predeterminado, Batch prediction: ML model: Banking Data 1. Amazon ML elige el nombre predeterminado en función del modelo que utilizará para crear predicciones. En este tutorial, el modelo y las previsiones se nombran según la fuente de datos de formación, Banking Data 1.

  13. Elija Review.

  14. En el cuadro de diálogo S3 permissions (Permisos de S3), elija Yes (Sí).

    Dialog box asking to grant Amazon Machine Learning write permission on S3 location.
  15. En la página Review, elija Finish.

    La solicitud de predicciones por lote se envía a Amazon ML y se introduce en una cola. El tiempo que tarda Amazon ML en procesar una predicción por lotes depende del tamaño de la fuente de datos y de la complejidad de su modelo de ML. Aunque Amazon ML procesa la solicitud, notifica el estado En curso. Después de que haya finalizado la predicción por lotes, el estado de la solicitud cambia a Completed (Completado). Ahora puede ver los resultados.

Para ver las predicciones
  1. Elija Amazon Machine Learning y, a continuación, elija Batch Predictions (Predicciones por lotes).

    Amazon Machine Learning dropdown menu showing options including Batch Predictions.
  2. En la lista de predicciones, elija Batch prediction: ML model: Banking Data 1 (Predicciones por lotes: modelo de ML: datos bancarios 1). Aparece la página Batch prediction info (Información de predicción por lotes).

    Batch prediction details including name, ID, status, and associated data sources and models.
  3. Para ver los resultados de la predicción de lotes, vaya a la consola de Amazon S3 en https://console.aws.amazon.com/s3/ y vaya a la ubicación de Amazon S3 a la que se hace referencia en el campo URL de salida de S3. A partir de ahí, desplácese hasta la carpeta de resultados, que tendrá un nombre similar a s3://aml-data/batch-prediction/result.

    AWS S3 console showing a single file in the batch-prediction result folder.

    La predicción se almacena en un archivo comprimido .gzip con la extensión .gz.

  4. Descargue el archivo de predicción en el escritorio, descomprímalo y ábralo.

    Table showing bestAnswer scores with numerical values ranging from 0.00046 to 0.30811.

    El archivo tiene dos columnas, bestAnswer y score, y una fila para cada una de las observaciones del origen de datos. Los resultados de la columna bestAnswer se basan en el umbral de puntuación de 0,77 que estableció en el Paso 4: Revisar el desempeño predictivo del modelo de ML y establecer un umbral de puntuación. Un valor de score superior a 0,77 genera una bestAnswer de 1, que es una respuesta o una predicción positiva, y un valor de score inferior a 0,77 genera una bestAnswer de 0, que es una respuesta o una predicción negativa.

    Los siguientes ejemplos muestran predicciones positivas y negativas en función del umbral de puntuación de 0,77.

Predicción positiva:

Table showing bestAnswer score of 1 with a corresponding value of 0.822876.

En este ejemplo, el valor de bestAnswer es 1 y el valor de score es 0,8228876. El valor de bestAnswer es 1 porque el valor de score es mayor que el umbral de puntuación de 0,77. Un valor de bestAnswer de 1 indica que el cliente posiblemente adquiera el producto y, por lo tanto, se considera una predicción positiva.

Predicción negativa:

Table showing bestAnswer score of 0 and a numerical score of 0.7693356.

En este ejemplo, el valor de bestAnswer es 0 porque el valor de score es 0,7695356, que es menor que el umbral de puntuación 0,77. El valor de bestAnswer de 0 indica que no es probable que el cliente adquiera el producto y, por lo tanto, se considera una predicción negativa.

Cada fila del resultado por lotes se corresponde con una fila de su entrada por lotes (un comentario de su fuente de datos).

Después de analizar las predicciones, puede ejecutar su campaña de marketing dirigida; por ejemplo, puede enviar folletos a todas las personas con una puntuación de predicción de 1.

Ahora que ha creado, revisado y utilizado el modelo, limpie los datos y los recursos de AWS que ha creado para evitar incurrir en gastos innecesarios y a mantener su espacio de trabajo despejado.