arrow_back

Detecta fraudes en transacciones financieras usando aprendizaje automático en Google Cloud

Acceder Unirse
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Detecta fraudes en transacciones financieras usando aprendizaje automático en Google Cloud

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Intermedio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

GSP774

Labs de autoaprendizaje de Google Cloud

Descripción general

En este lab, explorarás datos de transacciones financieras para realizar análisis de fraudes y aplicarás técnicas de ingeniería de atributos y aprendizaje automático para detectar actividades fraudulentas usando BigQuery ML.

Se usarán datos públicos de transacciones financieras, que incluyen las siguientes columnas:

  • Tipo de transacción
  • Importe transferido
  • ID de cuenta de origen y destino
  • Saldos antiguos y nuevos
  • Tiempo relativo de la transacción (cantidad de horas desde el comienzo del período de 30 días)
  • Marca isfraud

La columna de destino isfraud incluye las etiquetas de las transacciones fraudulentas, con las que entrenarás modelos supervisados para detectar fraudes y aplicarás modelos no supervisados para detectar anomalías.

The data for this lab is from the Kaggle site. If you do not have a Kaggle account, it's free to create one.

Aprendizajes esperados

  • Cargar datos en BigQuery y explorarlos
  • Crear atributos nuevos en BigQuery
  • Crear un modelo no supervisado para detectar anomalías
  • Crear modelos supervisados (con regresión logística y árbol con boosting) para detectar fraudes
  • Evaluar y comparar los modelos, y seleccionar el mejor
  • Usar los modelos seleccionados para predecir la probabilidad de fraude en datos de prueba

En este lab, usarás la interfaz de BigQuery para realizar ingeniería de atributos, y desarrollo, evaluación y predicción de modelos.

Participants that prefer Notebooks as the model development interface may choose to build models in AI Platform Notebooks instead of BigQuery ML. Then at the end of the lab, you can also complete the optional section. You can import open source libraries and create custom models or you can call BigQuery ML models within Notebooks using BigQuery magic commands.

If you want to train models in an automated way without any coding, you can use Google Cloud AutoML which builds models using state-of-the-art algorithms. The training process for AutoML would take almost 2 hours, that's why it is recommended to initiate it at the beginning of the lab, as soon as the data is prepared, so that you can see the results at the end. Check for the "Attention" phrase at the end of the data preparation step.

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón Abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales.
  7. Haga clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda. Ícono del menú de navegación

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Tarea 1: Descarga el archivo de datos del lab

  1. Ejecuta el siguiente comando para descargar el archivo de datos en tu proyecto:
gsutil cp gs://spls/gsp774/archive.zip .
  1. Si se te solicita, haz clic en Autorizar.
  1. Después de cargar el archivo ZIP, ejecuta el comando unzip:
unzip archive.zip

Verás que se descomprimió 1 archivo.

  1. Para que sea más fácil hacer referencia al archivo más adelante, crea una variable de entorno para su nombre.
export DATA_FILE=PS_20174392719_1491204439457_log.csv
  1. Ejecuta lo siguiente para encontrar el ID del proyecto del lab y copia el ID del proyecto:
gcloud config list project
  1. Crea una variable de entorno para el ID del proyecto y reemplaza <project_id> por el ID del proyecto copiado:
export PROJECT_ID=<project_id>
  1. Ejecuta lo siguiente para crear un conjunto de datos de BigQuery para almacenar tablas y modelos de este lab denominado finance en Cloud Shell:
bq mk --dataset $PROJECT_ID:finance

Si el comando anterior se ejecuta correctamente, verás este resultado:

Dataset `$PROJECT_ID:finance` successfully created.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un conjunto de datos

Tarea 2: Copia el conjunto de datos en Cloud Storage

  1. Ejecuta lo siguiente para crear un bucket de Cloud Storage usando tu ID del proyecto único como el nombre:
gsutil mb gs://$PROJECT_ID
  1. Copia el archivo CSV en el bucket que creaste recientemente:
gsutil cp $DATA_FILE gs://$PROJECT_ID

Tarea 3: Carga datos en tablas de BigQuery

Para cargar los datos en BigQuery, puedes usar la interfaz de usuario de BigQuery o la terminal de comandos de Cloud Shell. Elige una de las opciones incluidas a continuación para cargar los datos.

Opción 1: Línea de comandos

  • Carga datos en la tabla finance.fraud_data ejecutando el siguiente comando:
bq load --autodetect --source_format=CSV --max_bad_records=100000 finance.fraud_data gs://$PROJECT_ID/$DATA_FILE

La opción --autodetect leerá automáticamente el esquema de la tabla (los nombres de variables, tipos, etc.).

Opción 2: Interfaz de usuario de BigQuery

Puedes subir datos de tu bucket de Cloud Storage abriendo BigQuery en la consola de Cloud.

  1. Haz clic en Expandir nodo junto al ID del proyecto en la sección Explorador.
  2. Haz clic en Ver acciones junto al conjunto de datos de finance y, luego, en Crear tabla (Create table).

Botón CREAR TABLA destacado

  1. En la ventana emergente Crear tabla, establece la Fuente como Google Cloud Storage y selecciona el archivo CSV sin procesar en tu bucket de Cloud Storage.

  2. Ingresa fraud_data como el nombre de la tabla y selecciona la opción Detección automática en Esquema para que los nombres de las variables se lean automáticamente de la primera línea del archivo sin procesar.

  3. Haz clic en Crear tabla.

El proceso de carga puede tardar uno o dos minutos.

  1. Una vez completado, en la vista del panel Explorador en BigQuery, haz clic en el conjunto de datos finance y busca la tabla fraud_data para ver los metadatos y una vista previa de los datos de la tabla.

Haz clic en Revisar mi progreso para verificar el objetivo. Cargar datos en tablas de BigQuery

Tarea 4: Explora e investiga los datos con BigQuery

Si aún no lo has hecho, abre BigQuery en la consola de Cloud.

  1. Haz clic en el menú de navegación > BigQuery.

Luego, empieza a explorar los datos para comprenderlos mejor y prepararlos para los modelos de aprendizaje automático.

  1. Agrega las siguientes consultas al EDITOR de consultas, haz clic en EJECUTAR y, luego, explora los datos.

  2. Haz clic en REDACTAR CONSULTA NUEVA para iniciar la próxima consulta. De esa forma, podrás comparar resultados fácilmente cuando termines.

  • ¿Cuál es la cantidad de transacciones fraudulentas para cada tipo de transacción?
SELECT type, isFraud, count(*) as cnt FROM `finance.fraud_data` GROUP BY isFraud, type ORDER BY type

En la columna isFraud, busca 1 = yes.

  • Ejecuta lo siguiente para ver la proporción de actividades fraudulentas de los tipos de transacción de TRANSFER y CASH_OUT (proporciona las cantidades de isFraud):
SELECT isFraud, count(*) as cnt FROM `finance.fraud_data` WHERE type in ("CASH_OUT", "TRANSFER") GROUP BY isFraud
  • Ejecuta el siguiente comando para ver las 10 cantidades máximas de transacciones:
SELECT * FROM `finance.fraud_data` ORDER BY amount desc LIMIT 10

DEDICA UN MINUTO A REFLEXIONAR:

  • ¿Te llamó la atención algún saldo en las transacciones?, ¿cómo puedes hacer una transacción cuando el saldo en la cuenta de origen es cero?, ¿por qué el saldo nuevo en la cuenta de destino sigue siendo cero después de la transferencia monetaria? Marcaremos esos casos y los agregaremos como atributos nuevos en el próximo paso.
  • ¿Crees que los datos están desequilibrados? Sí, la proporción de transacciones fraudulentas es considerablemente inferior al 1%. Cuando divides la cantidad de isfraud por el número total de observaciones, obtienes la proporción de transacciones fraudulentas.

En la próxima sección, aprenderás a responder esas preguntas y mejorar los datos para los modelos de aprendizaje automático.

Haz clic en Revisar mi progreso para verificar el objetivo. Explorar e investigar los datos con BigQuery

Tarea 5: Prepara los datos

Para mejorar los datos de modelado, agrega atributos nuevos, filtra tipos de transacciones innecesarios y aumenta la proporción de la variable de destino isFraud con submuestreo.

En función de tus hallazgos de la etapa de análisis, solo debes analizar los tipos de transacción "TRANSFER" y "CASH_OUT", y filtrar el resto. También puedes procesar variables nuevas de los valores de importes existentes.

El conjunto de datos tiene un objetivo extremadamente desequilibrado para el fraude (la tasa de fraude en los datos sin procesar equivale al 0.0013%). Tener eventos poco comunes es normal para los fraudes. Para que el patrón de comportamiento fraudulento sea más obvio para los algoritmos de aprendizaje automático y también interpretar los resultados, estratifica los datos y aumenta la proporción de las marcas fraudulentas.

  1. En el próximo paso, redacta una consulta nueva y agrega el siguiente código para agregar atributos nuevos a los datos, filtrar tipos de transacciones innecesarios y seleccionar un subconjunto de transacciones no fraudulentas con submuestreo:
CREATE OR REPLACE TABLE finance.fraud_data_sample AS SELECT type, amount, nameOrig, nameDest, oldbalanceOrg as oldbalanceOrig, #standardize the naming. newbalanceOrig, oldbalanceDest, newbalanceDest, # add new features: if(oldbalanceOrg = 0.0, 1, 0) as origzeroFlag, if(newbalanceDest = 0.0, 1, 0) as destzeroFlag, round((newbalanceDest-oldbalanceDest-amount)) as amountError, generate_uuid() as id, #create a unique id for each transaction. isFraud FROM finance.fraud_data WHERE # filter unnecessary transaction types: type in("CASH_OUT","TRANSFER") AND # undersample: (isFraud = 1 or (RAND()< 10/100)) # select 10% of the non-fraud cases
  1. Ejecuta la consulta.

  2. Crea una tabla de datos de PRUEBA seleccionando una muestra aleatoria del 20%:

CREATE OR REPLACE TABLE finance.fraud_data_test AS SELECT * FROM finance.fraud_data_sample where RAND() < 20/100
  1. Ejecuta la consulta.

Esos datos se mantendrán separados y no podrán incluirse en el entrenamiento. Los usarás para otorgarle una puntuación al modelo en la etapa final.

BigQuery ML y AutoML particionan automáticamente los datos del modelo como TRAIN y VALIDATE, mientras usan los algoritmos de aprendizaje automático para probar la tasa de errores en los datos de entrenamiento y validación, y evitar el sobreajuste.

  1. Ejecuta lo siguiente para crear datos de muestra:
CREATE OR REPLACE TABLE finance.fraud_data_model AS SELECT * FROM finance.fraud_data_sample EXCEPT distinct select * from finance.fraud_data_test

Los datos de muestra que creaste para el modelado tienen aproximadamente 228,000 filas de transacciones bancarias.

También puedes particionar manualmente el conjunto de datos como TRAIN/VALIDATE y TEST, en especial si quieres comparar modelos de entornos diferentes como AutoML o AI Platform, y tener coherencia.

DEDICA UN MINUTO A REFLEXIONAR:

  • ¿Qué enfoque usarías para el problema de no tener eventos fraudulentos etiquetados en los datos? Si no hay transacciones etiquetadas, puedes usar técnicas de modelado no supervisado para analizar anomalías en los datos como el agrupamiento en clústeres de k-means. En la próxima sección, probarás ese método.

Haz clic en Revisar mi progreso para verificar el objetivo. Preparar los datos

Tarea 6: Entrena un modelo no supervisado para detectar anomalías

Los métodos no supervisados suelen usarse en la detección de fraudes para explorar el comportamiento anormal en los datos. También son útiles cuando no hay etiquetas para fraude o la tasa de eventos es muy baja, y la cantidad de casos no permite crear un modelo supervisado.

En esta sección, usarás el algoritmo de agrupamiento en clústeres de k-means para crear segmentos de transacciones, analizar cada uno de los segmentos y detectar los que tienen anomalías.

  1. Redacta una consulta nueva y ejecuta el código incluido a continuación en BigQuery con CREATE OR REPLACE MODEL, y establece el model_type como kmeans:
CREATE OR REPLACE MODEL finance.model_unsupervised OPTIONS(model_type='kmeans', num_clusters=5) AS SELECT amount, oldbalanceOrig, newbalanceOrig, oldbalanceDest, newbalanceDest, type, origzeroFlag, destzeroFlag, amountError FROM `finance.fraud_data_model`

De esa forma, se creará un modelo de k-means denominado model_unsupervised con 5 clústeres usando las variables seleccionadas de fraud_data_model.

Nota: El entrenamiento del modelo tardará unos minutos en completarse.

Una vez que termine el entrenamiento del modelo, verás que aparece en Finanzas > Modelos.

  1. Haz clic en model_unsupervised y, luego, en la pestaña EVALUACIÓN (EVALUATION).

El algoritmo k-means crea una variable de salida denominada centroid_id. Cada una de las transacciones se asigna a una centroid_id. El algoritmo asigna las transacciones que son similares entre sí al mismo clúster.

El índice Davies–Bouldin muestra una indicación del nivel de homogeneidad de los clústeres. Mientras más bajo sea el valor, más distantes serán los clústeres entre sí, lo que es un resultado deseado.

En la pestaña Evaluación (Evaluation), se muestran los atributos numéricos con gráficos de barras para cada centroide (clúster). Los números junto a las barras muestran el valor promedio de las variables en cada clúster. Como práctica recomendada, las variables de entrada pueden estandarizarse o agruparse en buckets para evitar el impacto de valores atípicos o números grandes en los cálculos de distancia para el agrupamiento en clústeres. Para simplificar el proceso en el ejercicio de este lab, se usan las variables originales.

Las variables categóricas que se usan como entrada se muestran por separado. Puedes ver la distribución de las transacciones TRANSFER y CASH_OUT en cada uno de los segmentos incluidos a continuación.

Es posible que los gráficos de tu modelo se vean diferentes por lo que debes enfocarte en los segmentos más pequeños y tratar de interpretar las distribuciones.

Página con la pestaña Evaluación que muestra las secciones Métricas, Atributos numéricos y Atributos categóricos

La variable objetivo isFraud no se usó en este modelo no supervisado. En este ejercicio, se recomienda guardar esa variable para la creación de perfiles y usarla para explorar la distribución de actividades fraudulentas en cada uno de los clústeres.

  1. Otorga puntuaciones a los datos de prueba (fraud_data_test) usando este modelo y observa la cantidad de eventos de fraude en cada centroid_id. Los algoritmos de agrupamiento en clústeres crean grupos homogéneos de observaciones. En esta consulta, ML.PREDICT llamará al modelo y generará el centroid_id de cada transacción en los datos de prueba.

  2. Ejecuta el siguiente código en la consulta nueva:

SELECT centroid_id, sum(isfraud) as fraud_cnt, count(*) total_cnt FROM ML.PREDICT(MODEL `finance.model_unsupervised`, ( SELECT * FROM `finance.fraud_data_test`)) group by centroid_id order by centroid_id

DEDICA UN MINUTO A REFLEXIONAR:

  • ¿Qué clúster te llama más la atención? Los clústeres pequeños con grandes cantidades de errores.

Haz clic en Revisar mi progreso para verificar el objetivo. Entrenar un modelo no supervisado para detectar anomalías

Tarea 7: Entrena un modelo de aprendizaje automático supervisado

Ya tienes todo listo para empezar a compilar modelos supervisados usando BigQuery ML para predecir la probabilidad de que ocurran transacciones fraudulentas. Empieza con un modelo simple: usa BigQuery ML para crear un modelo de regresión logística binario para clasificación. Con ese modelo, se intentará predecir si es probable que la transacción sea fraudulenta o no.

Para todas las variables no numéricas (categóricas), BigQuery ML realiza automáticamente una transformación de codificación one-hot. Esa transformación genera un atributo independiente para cada valor único en la variable. En este ejercicio, BigQuery ML realizará la codificación one-hot para la variable TYPE automáticamente.

  1. Para crear tu primer modelo supervisado, ejecuta la siguiente instrucción de SQL en BigQuery:
CREATE OR REPLACE MODEL finance.model_supervised_initial OPTIONS(model_type='LOGISTIC_REG', INPUT_LABEL_COLS = ["isfraud"] ) AS SELECT type, amount, oldbalanceOrig, newbalanceOrig, oldbalanceDest, newbalanceDest, isFraud FROM finance.fraud_data_model Nota: BigQuery tarda unos minutos en crear y entrenar este modelo de regresión logística.

Cuando esté lista, verás la tabla model_supervised_initial en Finanzas > Modelos.

Una vez que se creó el modelo, puedes obtener los metadatos, el entrenamiento y las estadísticas de evaluación del modelo en la IU de la consola de BigQuery.

  1. Haz clic en model_supervised_initial, en el panel lateral izquierdo. Luego haz clic en la pestaña Detalles, Entrenamiento, Evaluación o Esquema para obtener más información.

En la pestaña Evaluación, encontrarás distintas métricas de rendimiento específicas del modelo de clasificación.

 Página con la pestaña Evaluación que muestra secciones: Métricas agregadas, Umbral de puntuación, Matriz de confusión y gráficos

Conocer el rendimiento del modelo es un tema clave del aprendizaje automático. Como se realizó una regresión logística para la clasificación, los siguientes conceptos clave son útiles para la comprensión:

  • Precisión: Identifica la proporción de casos positivos seleccionados en los que el modelo tenía razón.
  • Recuperación: Una métrica que responde lo siguiente: de todas las etiquetas positivas reales, ¿cuántas identificó correctamente el modelo?
  • Exactitud: Es la proporción total de predicciones correctas.
  • Puntuación F1: Es una medida de la exactitud del modelo. Corresponde al promedio armónico de la precisión y la recuperación. Se toman valores del 0 al 1 y, mientras más alto sea, mejor.
  • AUC de la ROC: Es el área bajo la curva ROC. Proporciona información sobre la capacidad de discriminación de un clasificador binario teniendo en cuenta diferentes umbrales y tomando valores entre el 0 y el 1. Mientras más alta sea, mejor. Para un modelo moderado, se esperaría tener un valor de ROC mayor que 0.7.

En el gráfico de esta página de Wikipedia, se explican los conceptos de precisión y recuperación.

El valor de ROC para este modelo de regresión es muy alto. Puedes comprender mejor la exactitud haciendo pruebas con los resultados de los distintos umbrales de probabilidad.

Ahora analicemos las funciones que más influyen en el modelo.

  1. Ejecuta la siguiente consulta para verificar la importancia de la función:
SELECT * FROM ML.WEIGHTS(MODEL `finance.model_supervised_initial`, STRUCT(true AS standardize))

Los pesos se estandarizan para eliminar el impacto de la escala de las variables usando la opción standardize. Los pesos más grandes son los más importantes. El signo del peso indica la dirección según la relación directa o inversa con el destino.

DEDICA UN MINUTO A REFLEXIONAR:

  • ¿Cuáles crees que son las dos variables más importantes? oldbalanceOrig y type son las dos variables más importantes.

type-oldbalorig.png

Haz clic en Revisar mi progreso para verificar el objetivo. Entrenar un modelo de aprendizaje automático supervisado

Tarea 8: Mejora tu modelo

Haz un ejercicio divertido: crea un modelo nuevo y entrena los dos modelos para mejorar la exactitud.

  • Crea un nuevo modelo de boosting de gradientes ejecutando el siguiente código:
CREATE OR REPLACE MODEL finance.model_supervised_boosted_tree OPTIONS(model_type='BOOSTED_TREE_CLASSIFIER', INPUT_LABEL_COLS = ["isfraud"] ) AS SELECT type, amount, oldbalanceOrig, newbalanceOrig, oldbalanceDest, newbalanceDest, isFraud FROM finance.fraud_data_model Nota: El entrenamiento del modelo tardará unos minutos en completarse.

Luego, compara los 2 modelos que creaste y elige el mejor.

Tarea 9: Evalúa los modelos de aprendizaje automático supervisado

Mejora el modelo de regresión logística actual agregando variables nuevas.

Después de crear el modelo, puedes evaluar el rendimiento del clasificador usando la función ML.EVALUATE. La función ML.EVALUATE compara el resultado o los valores predichos con los reales.

  • Ejecuta las siguientes consultas para agregar los resultados de los dos modelos en una sola tabla y elige el mejor modelo para usar para asignar puntuaciones a datos nuevos.
CREATE OR REPLACE TABLE finance.table_perf AS SELECT "Initial_reg" as model_name, * FROM ML.EVALUATE(MODEL `finance.model_supervised_initial`, ( SELECT * FROM `finance.fraud_data_model` )) insert finance.table_perf SELECT "improved_reg" as model_name, * FROM ML.EVALUATE(MODEL `finance.model_supervised_boosted_tree`, ( SELECT * FROM `finance.fraud_data_model` ))

DEDICA UN MINUTO A REFLEXIONAR:

  • ¿Qué modelo tuvo el mejor rendimiento? Primero, ejecutaste un modelo de regresión. Luego, agregaste más variables y entrenaste un modelo nuevo usando regresión (el modelo supervisado). Por último, usaste un árbol con boosting como el segundo modelo supervisado. El modelo de árbol con boosting tiene un mejor rendimiento cuando comparas las tablas de rendimiento. Agregar funciones adicionales nuevas mejoró la exactitud del modelo.

Tarea 10: Predice transacciones fraudulentas en datos de prueba

El último paso del aprendizaje automático es usar el mejor modelo para predecir el resultado en nuevos conjuntos de datos.

Los algoritmos del aprendizaje automático en BQML crean una variable anidada llamada predicted_<target_name\>_probs. Esa variable incluye las puntuaciones de probabilidad para la decisión del modelo. El modelo decide si las transacciones son fraudulentas o genuinas.

  • Ejecuta la siguiente consulta en BigQuery para ver la predicción de transacciones fraudulentas en los datos de prueba que se crearon al principio de este lab. La sentencia WHERE incluida a continuación mostrará las transacciones con las puntuaciones de probabilidad más alta.
SELECT id, label as predicted, isFraud as actual FROM ML.PREDICT(MODEL `finance.model_supervised_initial`, ( SELECT * FROM `finance.fraud_data_test` ) ), unnest(predicted_isfraud_probs) as p where p.label = 1 and p.prob > 0.5

DEDICA UN MINUTO A REFLEXIONAR:

  • ¿Cuál es la proporción de actividades fraudulentas en el conjunto predicho de transacciones? Menos del 3%.
  • ¿Cuánto aumentó la tasa de eventos en el conjunto predicho de filas en comparación con los datos generales de prueba? Más del 95%.

Haz clic en Revisar mi progreso para verificar el objetivo. Predecir transacciones fraudulentas en datos de prueba

¡Felicitaciones!

Próximos pasos

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 12 de octubre de 2023

Prueba más reciente del lab: 12 de octubre de 2023

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible