Fluxo de ML sem código com Snowflake e SageMaker Canvas – Parte 2: Preparação de dados e construção de modelos

Contexto da série

Esta é a segunda parte de uma série de três artigos publicada pela AWS sobre como montar um fluxo completo de Aprendizado de Máquina (ML) sem escrever código. A primeira parte tratou da configuração do ambiente Snowflake e da infraestrutura necessária. Agora, a AWS demonstra como usar o Amazon SageMaker Canvas para preparar os dados e treinar um modelo de detecção de fraudes — do começo ao fim, sem programação.

O que é o Amazon SageMaker Canvas?

O Amazon SageMaker Canvas é um serviço visual de ML que permite que analistas de negócios e especialistas de domínio construam modelos preditivos e gerem previsões sem precisar escrever código. A proposta é democratizar o acesso ao ML dentro das organizações, mantendo controles de segurança e governança corporativa. A interface intuitiva cobre todo o ciclo: preparação de dados, treinamento de modelos e geração de previsões.

Pré-requisitos

Antes de começar, é necessário ter concluído a primeira parte da série, que configura o ambiente Snowflake. As credenciais e detalhes de conexão da conta Snowflake obtidos nessa etapa são indispensáveis para seguir adiante.

Configurando o Amazon SageMaker Canvas

O primeiro passo é acessar o Console de Gerenciamento da AWS (AWS Management Console) e localizar o Amazon SageMaker Canvas. Em seguida, é preciso criar um domínio — que funciona como a unidade organizacional base do ambiente SageMaker, agrupando perfis de usuário, configurações de armazenamento e controles de acesso.

Para uma configuração rápida, a AWS recomenda a opção Configuração para usuário único (Quick setup), que cria automaticamente o domínio e o perfil de usuário. Após a criação, basta selecionar o Canvas no painel lateral, escolher o domínio e o perfil criados, e aguardar de 3 a 5 minutos para o ambiente ficar disponível.

Preparação de dados com o Data Wrangler

O Amazon SageMaker Data Wrangler é a ferramenta integrada ao Canvas responsável por simplificar a preparação de dados para fluxos de ML. Com transformações visuais e uma interface intuitiva, ele reduz significativamente o tempo gasto nessa etapa — que costuma ser uma das mais trabalhosas em qualquer projeto de ML.

A integração direta com o Snowflake é um ponto de destaque: elimina a necessidade de exportar dados manualmente, garantindo que o trabalho seja feito sempre com os dados mais atualizados do data warehouse.

A. Conexão com a fonte de dados

Para conectar o Canvas ao Snowflake, o caminho é: acessar o Data Wrangler pelo painel de navegação, escolher a opção de importar dados tabulares e selecionar o Snowflake como tipo de conexão. No formulário de conexão, são fornecidos o nome da conexão, o ID da conta Snowflake (no formato organização + hífen + ID da conta), o nome de usuário e a senha.

Com a conexão estabelecida, a AWS orienta a executar uma consulta SQL para criar limiares de outliers por cartão e categoria — uma técnica para identificar padrões de gastos incomuns. A lógica calcula a média mais três desvios padrão dos valores de transação, agrupados por número de cartão e categoria:

select CC_NUM, CATEGORY,
  avg(AMT) + (3* stddev_pop(AMT)) as amt_outlier,
  case when sum(is_fraud)>1 then 1 else 0 end as fraud_history
from FRAUD.PUBLIC.FRAUD_TABLE
where trans_date_trans_time<'2020-12-01'
group by CC_NUM, CATEGORY

Após executar a consulta e visualizar os resultados, os dados são importados para o workspace do Canvas.

B. Enriquecimento dos dados

Na sequência, uma segunda fonte de dados é adicionada ao fluxo. Essa etapa incorpora características temporais (hora do dia, dia da semana), informações demográficas (faixa etária) e limiares de outlier por comerciante — todos sinais relevantes para detecção de fraudes. A consulta SQL utilizada é:

select t.MERCHANT, t.CC_NUM,
  'H'||extract(hour from t.TRANS_DATE_TRANS_TIME) as TRANS_HOUR,
  'D'||extract(dow from t.TRANS_DATE_TRANS_TIME) as TRANS_DOW,
  t.state, t.gender,
  'A'||FLOOR(DATEDIFF(YEAR, DATEADD(DAY, 1, CAST(t.dob AS DATE)), CAST(t.TRANS_DATE_TRANS_TIME AS DATE)) / 5) * 5 AS age_category,
  t.CATEGORY, t.IS_FRAUD, t.AMT,
  m.merchant_amt_outlier, m.merchant_fraud_history
from FRAUD.PUBLIC.FRAUD_TABLE t
left join (
  select MERCHANT,
    avg(AMT) + (3* stddev_pop(AMT)) as merchant_amt_outlier,
    case when sum(is_fraud)>1 then 1 else 0 end as merchant_fraud_history
  from FRAUD.PUBLIC.FRAUD_TABLE
  where trans_date_trans_time<'2020-12-01'
  group by MERCHANT
) m on t.MERCHANT = m.MERCHANT
where t.trans_date_trans_time<'2020-12-01'

C. Transformação dos dados

Com as duas fontes importadas, o próximo passo é combiná-las. No Data Wrangler, o fluxo de dados (Data flow) exibe as duas origens Snowflake. A junção é feita com um Left outer join usando a coluna CATEGORY como chave de relacionamento.

Após a junção, duas novas colunas são criadas usando fórmulas personalizadas com expressões Spark SQL:

  • CC_FLAG: indica se o valor da transação supera o limiar de outlier do cartão:
    CASE WHEN AMT > AMT_OUTLIER THEN 1 ELSE 0 END
  • MERCHANT_AMT_FLAG: indica se o valor supera o limiar de outlier do comerciante:
    CASE WHEN AMT > MERCHANT_AMT_OUTLIER THEN 1 ELSE 0 END

Por fim, colunas sensíveis ou desnecessárias são removidas do dataset para garantir que o modelo não seja treinado com informações que possam causar vazamento de dados ou comprometer a privacidade. As colunas eliminadas são: CC_NUM, AMT_OUTLIER, MERCHANT e MERCHANT_AMT_OUTLIER.

D. Análise de qualidade e exportação para o modelo

Com a preparação concluída, o Canvas permite executar um relatório de qualidade e insights dos dados. Para isso, basta acessar a aba de Análises, selecionar o tipo "Data Quality and Insights Report", definir IS_FRAUD como coluna-alvo e escolher o tipo de problema como Classificação.

O relatório gerado em poucos minutos inclui um resumo dos dados, análise de features, linhas duplicadas, amostras anômalas e, na seção "Quick model", métricas de acurácia e uma matriz de confusão. A seção de resumo de features mostra a importância preditiva de cada variável — útil para decidir quais colunas manter ou descartar.

Quando a preparação estiver satisfatória, o dataset é exportado para o ambiente de construção de modelos diretamente pelo Data flow, escolhendo a opção "Create model" no nó da última transformação.

Construção do modelo de detecção de fraudes

Na tela de construção (Build), o processo é direto: seleciona-se IS_FRAUD como coluna-alvo, configura-se o tipo de modelo como "2-category" (classificação binária) e escolhe-se o método de treinamento Ensemble com o algoritmo XGBoost — uma combinação que equilibra acurácia e eficiência computacional.

As colunas FRAUD_HISTORY e MERCHANT_FRAUD_HISTORY são desmarcadas antes de iniciar o treinamento padrão (Standard build). O processo leva aproximadamente 15 a 30 minutos para ser concluído.

Após o treinamento, a aba Analyze exibe quais features tiveram maior impacto nas previsões, além de gráficos de dispersão e classificações de fraude. A opção Advanced Metrics oferece uma visão mais aprofundada da performance do modelo.

Gerando previsões

Com o modelo treinado, o próximo passo é aplicá-lo a um conjunto de dados inédito. A AWS disponibiliza um arquivo CSV de exemplo para previsões. Na aba Predict do Canvas, o usuário carrega esse arquivo, cria um dataset e aciona a geração de previsões. O processo leva alguns minutos; quando o status muda para "Ready", os resultados estão disponíveis.

Enviando resultados para o Amazon QuickSight

Para visualizar os resultados de forma interativa no Amazon QuickSight, alguns pré-requisitos precisam ser atendidos. A AWS detalha esses requisitos na documentação oficial, mas em resumo são:

  • Alinhamento de região: a conta do QuickSight deve estar na mesma região AWS do domínio SageMaker Canvas.
  • Permissões de Gerenciamento de Identidade e Acesso (IAM): a função de execução associada ao domínio SageMaker (criada durante a configuração do domínio) precisa de permissões adicionais para enviar previsões ao QuickSight. A política inline necessária está descrita na documentação da AWS.
  • Acesso ao bucket S3: o QuickSight precisa de acesso ao bucket S3 onde o Canvas armazena as previsões, nomeado no formato sagemaker-{região}-{id_da_conta}.
  • Usuários do QuickSight: os usuários que receberão o dashboard precisam ter perfil de Author ou Admin no QuickSight. Mais detalhes em Gerenciamento de acesso de usuários.

Com os pré-requisitos atendidos, basta selecionar o job de previsão no Canvas e usar a opção "Send to Amazon QuickSight", adicionando os usuários que terão acesso ao dashboard.

Conclusão

Esta segunda parte da série demonstra que é possível construir um pipeline completo de ML — desde a conexão com um data warehouse até o treinamento de um modelo de detecção de fraudes — sem escrever uma linha de código de ML. O Amazon SageMaker Canvas, integrado ao Data Wrangler e ao Snowflake, oferece um ambiente visual que coloca analistas de negócios e especialistas de domínio no controle do processo.

Com o modelo treinado e as previsões geradas, o terreno está preparado para a terceira parte da série, que mostra como transformar esses insights em dashboards interativos no Amazon QuickSight.

Referências da série

Fonte

Build a no-code ML workflow with Snowflake, Amazon SageMaker Canvas and Amazon Quick – Part 2: Data preparation and model building with Amazon SageMaker Canvas (https://aws.amazon.com/blogs/machine-learning/build-a-no-code-ml-workflow-with-snowflake-amazon-sagemaker-canvas-and-amazon-quick-part-2-data-preparation-and-model-building-with-amazon-sagemaker-canvas/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *