Visão Geral do Projeto
Este projeto mostra um ciclo de vida de ciência de dados, onde eu limpo e preparo o banco de dados, feature engineering, aprendizado de máquina, deploy e visualização de dados.
O conjunto de dados vem do kaggle, e possui muitas informações sobre o crédito e os dados bancários de uma pessoa, mas ele também tem muitos erros de digitação, dados ausentes e dados censurados. Este conjunto de dados precisava ser limpo e também precisava de feature engineering, eu precisava alterar algumas features, para que pudessem ser lidos pelo modelo. Assim, quando apresentada com dados categóricos, eu precisava identificar se era ordinal ou nominal, se fosse uma variável ordinal, seria mapeada para números sequenciais, caso contrário, eu faria uma dummy. Para as variáveis _sim_ e não eu escolhi fazer apenas uma dummy, mas para os tipos de empréstimos fiz uma dummy para cada tipo de empréstimo e se alguém não tiver um empréstimo, simplesmente obtém 0 em todos as features de tipo de empréstimo. Eu falo sobre o processo de limpeza e feature engeeniring neste conjunto de dados aqui.
Então eu precisava de um modelo de ML que pudesse prever o score de crédito de uma pessoa com base em algumas features. Para decidir quais features eu iria usar eu analisei quais variáveis são usadas em empresas reais, e eu também escolhi variáveis que eu achei que faziam sentido. Eu acabei escolhendo as seguintes variáveis:
- Idade
- Renda anual
- Quantidade de contas bancárias
- Quantidade de cartões de crédito
- Quantidade de pagamentos atrasados
- Proporção de uso do cartão de crédito
- Quantidade de pagamento de empréstimos
- Idade do histórico de crédito em meses
- Empréstimos
- Perdeu algum pagamento nos últimos 12 meses
- Pagou o valor mínimo em pelo menos um cartão de crédito
Com as features prontas, eu comecei a trabalhar no modelo, por enquanto eu decidi usar um modelo simples de Floresta Aleatória (Random Forest), eu pretendo melhorar esse modelo, mas nesse primeiro momento eu foquei eu fazer o app do streamlit.
Depois que terminei o modelo eu serializei ele e o scaler usando o pacote pickle
. Para fazer o deploy do modelo e construir a visualização, usei o streamlit.
Neste aplicativo, você pode preencher um formulário ou apenas selecionar um dos três perfis padrão fornecidos para ver como o modelo avalia a pontuação de crédito de cada pessoa. Ele também apresenta “a certeza” do modelo exibindo um gráfico de pizza com a probabilidade (em porcentagem) de cada grupo de score de crédito em que as respostas se encaixam. Ele também mostra o quanto cada recurso conta para sua pontuação de crédito, de acordo com esse modelo. Você pode ver o aplicativo ao vivo aqui.
Todo o código está disponível no meu repositório do GitHub. Além do código, lá você encontra a documentação, os dados originais e tratados (todas as etapas do tratamento), todos os requisitos para a construção deste projeto e como executá-lo localmente.