1. Introdução
Neste laboratório, você vai usar o BigQuery para treinar e fornecer um modelo com dados tabulares usando um console. Essa oferta é a adição favorita para a disponibilização e o treinamento de modelo com base em SQL. Com o BigQuery ML, é possível criar e executar modelos de machine learning no BigQuery usando consultas SQL. O objetivo é democratizar o machine learning, de modo que os especialistas em SQL criem modelos usando as respectivas ferramentas e aumentem a velocidade de desenvolvimento ao eliminar a necessidade de movimentar os dados.
O que você vai aprender
- Explorar os dados disponíveis no BigQuery
- Criar um modelo com SQL no BigQuery usando o console
- Avaliar os resultados do modelo criado
- Prever uma transação se ela é fraudulenta ou não com o modelo criado
2. Sobre os dados
Os conjuntos de dados contêm transações realizadas com cartões de crédito em setembro de 2013 por titulares de cartões europeus. Este conjunto de dados apresenta transações que ocorreram em dois dias, nas quais temos 492 fraudes de 284.807 transações. Ela é altamente desequilibrada e a classe positiva (fraudes) representa 0, 172% de todas as transações.
Ele contém apenas variáveis de entrada numéricas, que são o resultado de uma transformação PCA. Devido a questões de confidencialidade, não podemos fornecer os recursos originais e mais informações básicas sobre os dados.
- Os atributos V1, V2, ... V28 são os principais componentes obtidos com o PCA, e os únicos atributos que não foram transformados com PCA são "Time". e "Valor".
- Recurso "Time" contém os segundos decorridos entre cada transação e a primeira transação no conjunto de dados.
- Valor do atributo é o valor da transação. Esse atributo pode ser usado para aprendizado baseado em custo, dependente de exemplo.
- O atributo "Class" é a variável de resposta e assume o valor 1 em caso de fraude e 0 caso contrário.
O conjunto de dados foi coletado e analisado durante uma colaboração de pesquisa da Worldline e do Machine Learning Group ( http://mlg.ulb.ac.be) da ULB (Université Libre de Bruxelles) para mineração de Big Data e detecção de fraudes.
Mais detalhes sobre projetos atuais e anteriores sobre tópicos relacionados estão disponíveis em https://www.researchgate.net/project/Fraud-detection-5 e na página do projeto DefeatFraud
Citação:
Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson e Gianluca Bontempi. Calibração da probabilidade com underamostragem para classificação desequilibrada. In Symposium on Computational Intelligence and Data Mining (CIDM), IEEE, 2015
Dal Pozzolo, Andrea Caelen, Olivier; Le Borgne, Yann-Ael Waterschoot, Serge Bontempi, Gianluca Lições aprendidas sobre detecção de fraudes de cartão de crédito da perspectiva de um profissional, sistemas especializados com aplicativos,41,10,4915-4928,2014, Pergamon
Dal Pozzolo, Andrea Boracchi, Giacomo Caelen, Olivier; Alippi, Cesare Bontempi, Gianluca Detecção de fraude de cartão de crédito: uma modelagem realista e uma nova estratégia de aprendizado, transações IEEE em redes neurais e sistemas de aprendizado,29,8,3784-3797,2018,IEEE
Dal Pozzolo, Adaptive Machine learning para detecção de fraudes em cartões de crédito da Andrea, tese de doutorado da ULB MLG (supervisionada por G. Bontempi)
Carcillo, Fabrizio Dal Pozzolo, Andrea Le Borgne, Yann-Aël Caelen, Olivier; Mazzer, Yannis; Bontempi, Gianluca Scarff: um framework escalonável para detecção de fraudes de cartão de crédito por streaming com o Spark, Information fusion,41, 182-194,2018,Elsevier
Carcillo, Fabrizio Le Borgne, Yann-Aël Caelen, Olivier; Bontempi, Gianluca Streaming de estratégias de aprendizado ativas para detecção de fraudes de cartão de crédito na vida real: avaliação e visualização, International Journal of Data Science and Analytics, 5,4,285-300,2018,Springer International Publishing
Bertrand Lebichot, Yann-Aël Le Borgne, Liyun He, Frederic Oblé, Gianluca Bontempi Deep-Learning Domain Adaptation Techniques for Credit Cards Fraud Detection, INNSBDDL 2019: Recent Advances in Big Data and Deep Learning, pp 78-88, 2019
Fabrizio Carcillo, Yann-Aël Le Borgne, Olivier Caelen, Frederic Oblé, Gianluca Bontempi Combinar aprendizado não supervisionado e supervisionado na detecção de fraudes de cartões de crédito , 2019
3. Configurar o ambiente
Para executar este codelab, você vai precisar de um projeto do Google Cloud Platform com o faturamento ativado. Para criar um projeto, siga estas instruções.
- Ativar a API BigQuery
Acesse o BigQuery e selecione "Ativar", caso essa opção ainda não esteja ativada. Você vai precisar disso para criar seu modelo.
4. explorar os dados
Etapa 1: acesse o BigQuery
Procure o BigQuery em https://cloud.google.com/console
Etapa 2: analisar os dados usando a consulta
No editor , digite a consulta SQL abaixo para revisar os dados no conjunto de dados público .
SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5
Etapa 3: executar
Pressione o comando "Executar" acima para executar a consulta
Resultados
Deve estar no painel "Query Results" e ser parecido com este exemplo. Os dados podem variar
Analise as colunas envolvidas e a saída.
É possível executar várias consultas para entender como os dados são distribuídos. Alguns exemplos podem incluir
SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`
where Class=0;
SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`
where Class=1;
5. crie um conjunto de dados de saída
Etapa 1: criar um conjunto de dados para a criação do modelo
- No painel Explorer - À esquerda , selecione o projeto em que você está trabalhando no momento e clique nos três pontos ao lado dele
- Clique em "Create Dataset" no canto superior direito.
- Insira os detalhes do nome, retenção, local do conjunto de dados etc. Usar estas configurações
6. Criar modelo de regressão logística
Etapa 1: criar instrução
Na janela "Consulta", digite a consulta abaixo para a criação do modelo. Entenda as principais opções com essa afirmação. Explicado neste link.
INPUT_LABEL_COLS indica o marcador de previsão
AUTO_CLASS_WEIGHTS são usados para conjuntos de dados desequilibrados
MODEL_TYPE indica que o algoritmo usado neste caso é a regressão logística
DATA_SPLIT_method indica a divisão entre os dados de treinamento e teste
CREATE OR REPLACE MODEL advdata.ulb_fraud_detection
TRANSFORM(
* EXCEPT(Amount),
SAFE.LOG(Amount) AS log_amount
)
OPTIONS(
INPUT_LABEL_COLS=['class'],
AUTO_CLASS_WEIGHTS = TRUE,
DATA_SPLIT_METHOD='seq',
DATA_SPLIT_COL='Time',
MODEL_TYPE='logistic_reg'
) AS
SELECT
*
FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`
Etapa 2: executar
Execute a instrução acima. Esse processo leva alguns minutos para ser concluído.
Observe os principais itens após a conclusão da execução
- O painel Explorer terá o modelo criado
- O painel de resultados da consulta terá a duração necessária para processar o SQL de ML, semelhante a qualquer instrução SQL
- O painel de resultados da consulta também terá o link "Ir para o modelo" para você analisar.
Etapa 3: explorar
Explore o modelo criado clicando em Ir para o modelo ou no painel Explorer. As guias fornecem informações sobre o modelo criado , treinamento, avaliação etc., Analisar os resultados
Vamos saber mais sobre isso nas próximas seções.
Para saber mais sobre regressão logística, clique aqui
7. Como explorar as métricas de avaliação do modelo
Nesta etapa, vamos conferir o desempenho do nosso modelo.
Depois que o job de treinamento do modelo for concluído, clique no modelo que você acabou de treinar e dê uma olhada na guia "Avaliar". Há muitas métricas de avaliação aqui. Vamos nos concentrar em apenas uma :roc_auc
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
Os resultados seriam mais ou menos assim. roc_auc geralmente é mais importante em um conjunto de dados desequilibrado
Para saber mais sobre os resultados. Procure os documentos do ML.Avaliar aqui.
8. Prever a classe para um determinado tempo
Pressione Compose e execute o SQL abaixo. O tempo identificado aqui tem um valor fraudulento. Estamos tentando avaliar se a previsão funciona
SELECT Amount, predicted_class_probs, Class
FROM ML.PREDICT( MODEL advdata.ulb_fraud_detection,
(SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` WHERE Time = 85285.0)
)
A saída será parecida com esta (os números podem variar)
Neste caso, estamos exibindo o valor com a probabilidade associada do rótulo. A coluna de classe indica quais foram os resultados reais.
Para saber mais sobre ML.PREDICT. Acesse este link
9. Limpeza
Se você quiser limpar os recursos criados neste laboratório, abra o conjunto de dados no painel Explorer no lado esquerdo
Clique em "Excluir conjunto de dados" no canto superior direito.
Insira o nome do conjunto de dados novamente para confirmar os detalhes. No nosso caso, será advdata
10. Parabéns
Parabéns! Você criou seu primeiro modelo, avaliou e fez previsões usando o machine learning supervisionado.
Agora você sabe as principais etapas necessárias para criar um modelo de regressão logística.
Qual é a próxima etapa?
Veja algumas dessas outras maneiras envolvidas na previsão
- Introdução ao BigQuery ML
- Previsão de séries temporais com o BigQuery ML
- Modelo de detecção de fraudes usando o AutoML
- Detecção de fraudes usando o Tensorflow