Skip to content

Demontie/default-probability-system

Repository files navigation

Sistema de Probabilidade de Inadimplencia

Aplicacao web em JavaScript que treina uma rede neural com TensorFlow.js e calcula a probabilidade de inadimplencia a partir de um documento (CPF/CNPJ).

Objetivo

Demonstrar um fluxo completo de Machine Learning no front-end:

  • carregamento de dados de treino em JSON;
  • treinamento de modelo no navegador (Web Worker + TensorFlow.js);
  • predicao de risco para perfis PF e PJ;
  • explicacao dos principais fatores que elevam ou reduzem o risco.

Funcionalidades

  • Treinamento manual do modelo via botao Treinar Modelo.
  • Atualizacao de progresso de treino e logs por epoca.
  • Predicao por documento (aceita CPF/CNPJ com ou sem mascara).
  • Classificacao de risco em baixo, medio ou alto.
  • Exibicao de fatores explicativos (impacto e severidade).
  • Integracao com tfjs-vis para visualizacao do treino.

Demonstracao das Telas

Tela principal do sistema:

Tela principal

Tela de treinamento do modelo:

Tela de treinamento

Tela de resultado da probabilidade:

Tela de resultado

Stack

  • JavaScript (ES Modules)
  • TensorFlow.js
  • Web Workers
  • Bootstrap 5
  • BrowserSync (script de desenvolvimento)

Estrutura do Projeto

  • index.html: layout principal da aplicacao
  • style.css: estilos da interface
  • src/index.js: ponto de entrada e injecao de dependencias
  • src/controller/: orquestracao de treino, preditor, worker e tfjs-vis
  • src/view/: renderizacao de UI (treino, entrada, resultado e visor)
  • src/service/RiskProfileService.js: acesso aos dados e normalizacao de documento
  • src/workers/modelTrainingWorker.js: treino/predicao com TensorFlow.js
  • src/events/: barramento de eventos da aplicacao
  • data/risk-training.json: base de treino com rotulo labelInadimplente
  • data/risk-profiles.json: base de perfis para consulta

Como Executar

Opcao 1: script do projeto

  1. Instale as dependencias:
npm install
  1. Inicie o servidor de desenvolvimento:
npm start
  1. Abra:
http://localhost:3000

Opcao 2: tarefa do VS Code

No workspace existe a task Start Default Probability System, que executa npm start e sobe o projeto na porta 3000.

Fluxo de Uso

  1. Clique em Treinar Modelo.
  2. Aguarde a mensagem de treino concluido.
  3. Informe um CPF/CNPJ presente em data/risk-profiles.json.
  4. Clique em Calcular Probabilidade.
  5. Analise probabilidade, nivel de risco e fatores explicativos.

Modelo de Machine Learning

  • Tipo: rede neural densa (tf.sequential).
  • Entrada: 13 features numericas normalizadas (0-1).
  • Arquitetura: Dense(32, relu) -> Dense(16, relu) -> Dense(1, sigmoid).
  • Treino: adam(0.01), binaryCrossentropy, accuracy, epochs=80, batchSize=16.
  • Saida: probabilidade de inadimplencia entre 0 e 100%.

Regra de classificacao:

  • < 0.33: baixo
  • >= 0.33 e < 0.66: medio
  • >= 0.66: alto

Formato dos Dados

Campos utilizados no modelo:

  • age
  • income
  • companyYears
  • paymentHistoryScore
  • previousDelays
  • creditUtilization
  • monthlyRevenue
  • debtRatio
  • cashFlowScore
  • averageTicket
  • churnRate
  • mrr
  • customerCount

No arquivo de treino, cada registro tambem deve conter:

  • labelInadimplente (0 ou 1)

Observacoes

  • A consulta de risco so funciona apos o treinamento.
  • Se o documento nao existir na base de perfis, a interface mostra erro.
  • O projeto e educacional e usa base local em JSON (sem persistencia em backend).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors