Pular para conteúdo

Glossário

Este glossário explica, em linguagem simples, as siglas e os termos técnicos usados no projeto.

Como ler o log de treinamento

Durante o build da imagem Docker, podem aparecer linhas como estas:

#11 [builder 7/7] RUN python -m ml.train
#11 3.462 [logistic_regression] PR-AUC=0.633 ROC-AUC=0.842 F1=0.622 recall=0.765 thr=0.54
#11 5.052 [gradient_boosting] PR-AUC=0.660 ROC-AUC=0.843 F1=0.629 recall=0.714 thr=0.34
#11 5.052 >> Modelo escolhido: gradient_boosting (maior PR-AUC)

Isso não é um erro. É o Docker mostrando o progresso do build e o programa comparando dois modelos de previsão.

Trecho Significado
#11 Identificador da etapa atual do build do Docker.
[builder 7/7] Sétima e última instrução do estágio chamado builder no Dockerfile.
RUN python -m ml.train Executa o módulo ml.train, responsável por treinar e avaliar os modelos.
3.462 / 5.052 Tempo aproximado, em segundos, desde o início dessa etapa.
[logistic_regression] Resultados da Regressão Logística, usada como modelo de referência (baseline).
[gradient_boosting] Resultados do Gradient Boosting, modelo mais flexível avaliado pelo projeto.
PR-AUC=0.660 Qualidade do modelo ao identificar churn, considerando diferentes limiares. Quanto maior, melhor.
ROC-AUC=0.843 Capacidade de ordenar clientes com e sem churn. Quanto mais próximo de 1, melhor.
F1=0.629 Equilíbrio entre precisão e recall. Quanto maior, melhor.
recall=0.714 O modelo encontrou cerca de 71,4% dos clientes que realmente cancelaram.
thr=0.34 Limiar escolhido: probabilidade a partir de 34% é classificada como churn.
Modelo escolhido Informa qual modelo foi salvo para uso pela aplicação e qual foi o critério da escolha.

Os valores usam ponto como separador decimal. Portanto, 0.660 equivale a 0,660 e não significa 66% de acerto geral. Cada métrica mede um aspecto diferente do modelo.

Comparação do exemplo

O Gradient Boosting foi escolhido porque obteve a maior PR-AUC, que é a métrica principal deste projeto. A Regressão Logística encontrou uma parcela maior dos cancelamentos (recall de 76,5%), mas o Gradient Boosting teve melhor desempenho geral na identificação da classe minoritária. Essa escolha e suas limitações são detalhadas em Avaliação do sistema.

Métricas de aprendizado de máquina

Acurácia

Proporção de previsões corretas entre todos os casos. Pode ser enganosa em classes desbalanceadas: um modelo que quase sempre prevê a classe mais comum pode ter acurácia alta e ainda encontrar poucos casos de churn.

AUC

Area Under the Curve ou área sob a curva. Resume uma curva de avaliação em um valor. Em geral, quanto maior o valor, melhor, mas é necessário observar qual curva está sendo medida: PR ou ROC.

Classe desbalanceada

Situação em que uma categoria aparece bem menos que a outra. Neste conjunto de dados, há menos clientes com churn do que sem churn. Por isso, olhar somente a acurácia pode dar uma impressão enganosa.

F1

Média harmônica entre precisão e recall. É alta somente quando as duas métricas estão razoavelmente altas. O projeto usa F1 para escolher o limiar de classificação de cada modelo.

Limiar (thr ou threshold)

Valor que transforma uma probabilidade em uma decisão. Com limiar 0,34, por exemplo, um risco calculado de 40% é classificado como churn e um risco de 30% não é. Diminuir o limiar costuma encontrar mais casos, mas também pode gerar mais falsos alarmes.

PR-AUC

Área sob a curva de precisão × recall (Precision–Recall Area Under the Curve). Mostra como essas duas métricas se comportam em vários limiares. É especialmente útil quando a classe de interesse, como churn, é menos frequente. É o principal critério de escolha do modelo neste projeto.

Precisão (precision)

Entre os clientes que o modelo classificou como churn, indica quantos realmente cancelaram. Precisão alta significa menos falsos alarmes. Não deve ser confundida com acurácia.

Recall (sensibilidade)

Entre todos os clientes que realmente cancelaram, indica quantos o modelo conseguiu encontrar. Recall alto significa que poucos casos de churn passaram despercebidos.

ROC-AUC

Área sob a curva ROC (Receiver Operating Characteristic). Mede a capacidade do modelo de atribuir riscos maiores aos clientes com churn do que aos clientes sem churn, considerando vários limiares. Um valor de 0,5 equivale aproximadamente a uma ordenação aleatória; 1,0 representa uma separação perfeita.

Modelos e explicabilidade

Baseline

Modelo de referência, geralmente mais simples, usado para verificar se uma abordagem mais complexa realmente traz ganho. A Regressão Logística é o baseline deste projeto.

Churn

Cancelamento ou abandono do serviço pelo cliente. A aplicação estima a probabilidade de um cliente de telecom cancelar.

Gradient Boosting

Método que combina várias árvores de decisão construídas em sequência. Cada nova árvore tenta corrigir parte dos erros das anteriores. Foi o modelo escolhido pelo projeto por apresentar a maior PR-AUC.

Regressão Logística (logistic regression)

Algoritmo de classificação que estima a probabilidade de uma das duas classes, neste caso churn ou não churn. Apesar do nome, é usado aqui para classificação.

SHAP

Técnica de explicabilidade que estima quanto cada característica do cliente aumentou ou reduziu a previsão de risco. É usada para apresentar os fatores que mais influenciaram uma previsão individual.

Aplicação e agente

API

Interface usada por programas para conversar com a aplicação. Por exemplo, POST /api/predict recebe os dados de um cliente e devolve a previsão em formato JSON.

Fallback

Resposta alternativa usada quando o LLM está indisponível, demora demais ou produz uma saída incoerente. Ela é determinística e mantém a probabilidade calculada pelo modelo de ML.

Function calling / ferramenta (tool)

Mecanismo que permite ao LLM solicitar a execução de uma função do sistema. Neste projeto, a ferramenta predict_churn chama o modelo de ML e devolve a probabilidade e os fatores SHAP.

Guardrail

Regra de proteção aplicada à entrada ou à saída do agente. Os guardrails limitam o assunto atendido, bloqueiam tentativas de manipulação e verificam se a resposta do LLM respeita a previsão calculada.

JSON / JSONL

JSON é um formato de texto estruturado usado nas requisições e respostas da API. JSONL guarda um objeto JSON por linha; o projeto usa esse formato nos registros de monitoramento.

LLM

Large Language Model ou modelo de linguagem de grande porte. É o componente que transforma o resultado numérico em explicação e recomendação. Ele não calcula a probabilidade de churn.

ML

Machine Learning ou aprendizado de máquina. Neste projeto, é a parte responsável por aprender com o histórico de clientes e calcular o risco de churn.

Pipeline

Sequência padronizada de transformações e etapas do modelo. Garante que os dados recebam o mesmo tratamento durante o treinamento e durante uma previsão em produção.

Trace

Registro de uma interação contendo informações como latência, custo estimado, uso de fallback e bloqueios de guardrail. Ajuda a monitorar e investigar o comportamento da aplicação.

Infraestrutura e interface

Build

Processo que prepara a aplicação para execução. Aqui, o build instala dependências, treina o modelo e monta a imagem Docker.

CI/CD

Automação de integração e entrega contínuas. O GitHub Actions verifica o código, treina o modelo, executa os testes e constrói a imagem Docker a cada alteração relevante.

Container e imagem Docker

A imagem é um pacote com a aplicação e suas dependências. O container é uma instância dessa imagem em execução.

FastAPI, Uvicorn e Jinja2

FastAPI define a aplicação web e a API; Uvicorn mantém essa aplicação rodando e recebendo requisições; Jinja2 monta o HTML da interface a partir de um template.

HTTP e HTTPS

Protocolos usados para acessar aplicações web. HTTPS adiciona criptografia e autenticação do endereço por certificado digital.

UI e UX

UI (User Interface) é a interface visual usada pela pessoa. UX (User Experience) é a experiência mais ampla de uso, incluindo clareza, facilidade e resposta às ações.

VPS

Virtual Private Server ou servidor virtual privado. É a máquina remota onde o container da aplicação pode ser hospedado.