Skip to content

Latest commit

 

History

History
205 lines (138 loc) · 14.7 KB

File metadata and controls

205 lines (138 loc) · 14.7 KB

Desafio 01 | Bantotal

Para te ajudar

1. Sobre a Bantotal

1.1. Introdução

Bantotal é a plataforma bancária líder na América Latina, que resolve as operações de missão crítica das Instituições Financeiras de forma simples e precisa.

A plataforma bancária Bantotal entrou no mercado em 1991 e tornou-se líder na América Latina. Sua sede se encontra no Uruguai, onde também estão localizados seu Departamento de Pesquisa e Desenvolvimento, seu Centro de Serviços de Manutenção global e seu Centro de Treinamento. Possui escritórios comerciais e de serviços em: Argentina, Chile, Colômbia, México, Peru e Uruguai. Seus Centros de Desenvolvimento de Software estão localizados no Peru e no Uruguai.

1.2. Premiação

Será dado como premiação pela Bantotal, para cada uma das duas melhores pessoas classificadas no desafio Bantotal, um Vale-Presente no valor de US$ 500.

2. Desafio de negócio

Cada vez que um cliente solicita um empréstimo a uma instituição financeira, diversos processos e controles internos são acionados, necessários para a avaliação da solicitação recebida. Desta forma, são analisadas manualmente muitas informações relacionadas com o perfil do cliente, destinos de crédito, atividade de trabalho, rendimentos, condições de habitação, entre outros dados demográficos. Além disso, a instituição utiliza os chamados bureaus de crédito para conhecer o histórico de crédito do cliente, a fim de definir o perfil de crédito do cliente. Em conjunto com outros registros próprios, informações de outros créditos, grau de conformidade e comportamento dos produtos contratados, a instituição aprova um valor a ser emprestado e um prazo para sua devolução ou rejeita a solicitação.

3. Objetivo

O desafio consiste em criar um modelo de inteligência artificial capaz de realizar uma análise de risco para predizer se um empréstimo a um cliente deve ser feito ou não. Para isso, espera-se a utilização de um modelo de Machine Learning capaz de realizar uma classificação. O modelo pode ser desenvolvido na plataforma Watson Studio, e deve ser publicado em uma instância Watson Machine Learning. O modelo deverá ser treinado com os conjuntos de dados disponibilizado nesse repositório, contendo dados de clientes de bancos, como dados demográficos, sobre suas contas e sobre o empréstimo que querem realizar.

4. Tecnologias aplicadas

Para este desafio serão utilizados os seguintes serviços da IBM Cloud:

  • Watson Studio, também conhecido como Cloud Pak for Data as a Service. Esse serviço permite o uso de uma gama de ferramentas relacionadas à Ciência de Dados, inclusive execução de Jupyter Notebooks com processadores na nuvem.

  • Watson Machine Learning (WML). Esse serviço provê uma série de recursos para construção, treinamento e publicação de modelos de Machine Learning. Para validação do desafio pedimos que os participante enviem seus modelos em forma de uma publicação no WML. Dessa forma, conseguimos testar o modelo por meio de chamadas HTTP.

Recomendamos o uso da linguagem Python, com Jupyter Notebooks, e por isso disponibilizamos exemplos de código com essas ferramentas para uso no Watson Studio. No entanto, o participante é livre para utilizar a linguagem e ferramenta que quiser para a resolução do desafio, contanto que consiga publicar o modelo no Watson Machine Learning. Você pode verificar os frameworks suportados nesta página.

5. Desenvolvimento da solução

5.1. Pré-requisitos

Para realizar esse desafio você deverá cumprir os seguintes pré-requisitos:

5.2. Resumo das Tarefas

  1. Instanciar os serviços do desafio na IBM Cloud: Watson Machine Learning (obrigatório), e Object Storage e Watson Studio (opcionais);
  2. Caso for utilizar Watson Studio, baixar o projeto e importá-lo no seu serviço;
  3. Ler e executar as instruções contidas no Jupyter Notebook;
  4. Alterar, validar e testar o seu modelo de Machine Learning, até estar satisfeito com o resultado;
  5. Criar um deployment no Watson Machine Learning com o seu modelo;
  6. Efetuar a submissão na página do desafio.

5.3. Desenvolvimento

O desafio consiste na elaboração de um modelo de Machine Learning para predição de risco de empréstimo, baseado em informações bancárias. Você deverá explorar os dados, tratá-los, e construir o modelo para predição.

O modelo deve receber como entrada os seguintes dados:

[
  "ID", # Número de identificação do cliente
  "CHECKING_BALANCE", # Saldo em conta corrente do cliente
  "PAYMENT_TERM", # Número de dias que o cliente tem para pagar o empréstimo
  "CREDIT_HISTORY", # Como está a situação de crédito passada do cliente
  "LOAN_PURPOSE", # Motivação do empréstimo
  "LOAN_AMOUNT", # Valor do empréstimo
  "EXISTING_SAVINGS", # Saldo de conta poupança
  "EMPLOYMENT_DURATION", # Quantos anos o cliente está no último emprego
  "INSTALLMENT_PERCENT", # Em quantas parcelas o empréstimo deve ser pago
  "SEX", # Sexo
  "OTHERS_ON_LOAN", # Se existe um fiador ou outro aplicante para o empréstimo
  "CURRENT_RESIDENCE_DURATION", # Anos em que o cliente está vivendo na última casa
  "PROPERTY", # Se o cliente possui alguma propriedade em nome
  "AGE", # Idade
  "INSTALLMENT_PLANS", # Plano de financiamento, podendo ser do banco, externo, ou nenhum
  "HOUSING", # Tem casa própria ou não
  "EXISTING_CREDITS_COUNT", # Número de empréstimos que o cliente já tem
  "JOB_TYPE", # Tipo de emprego: 0 - desempregado, 1 - Não qualificado, 2 - Autônomo, 3 - Qualificado
  "DEPENDENTS", # Número de pessoas com acesso à conta
  "TELEPHONE", # Se o cliente tem telefone cadastrado ou não
  "FOREIGN_WORKER" # Se o cliente trabalha num país externo ao do banco ou não
]

E como saída um valor binário que representa se o empréstimo deve ser permitido ou não (0 para não, 1 para sim).

Atenção: os dados disponibilizados neste desafio são fictícios, qualquer correlação com a realidade é mera coincidência.

Para começar, siga o passo-a-passo abaixo para importar o projeto do desafio com os dados e o Notebook em seu Watson Studio. Alternativamente, você pode executar o Notebook em outros ambientes também. No Notebook você encontrará todas as instruções para criar um modelo e publicá-lo no Watson Machine Learning.

Importando um projeto ao Watson Studio

Primeiro, crie uma instância de Watson Studio em sua conta da IBM Cloud, caso já não tenha, e entre na página inicial do IBM Cloud Pak for Data as a Service através da instância.

Baixe o arquivo project.zip encontrado nesse repositório.

Na página inicial na seção Work with data, clique em Create a project.

criando-projeto

Após abrir a nova página, clique em Create a project from a sample or file.

criando.png

Clique em Drop a file here or browse for file to upload ou arraste o seu arquivo para a área destacada.

selecionando-arquivo

Depois de fazer o upload, dê um nome ao seu projeto e uma descrição se quiser.

nomeando

Pronto!

Agora é só ir no seu projeto e na aba Assets para ver os arquivos e Notebooks listados.

assets.png

A partir daqui, você poderá abrir o Notebook em seu projeto e seguir as instruções contidas nele para realizar o desafio.

6. Submissão

Com o modelo pronto, o último passo é realizar a submissão. Será aceita somente uma submissão para o desafio, então teste bem antes de fazer o envio.

🚨 MUDANÇA NO MECANISMO DE SUBMISSÃO 🚨

Por conta de problemas com os limites do plano gratuito do Watson Machine Learning, alteramos o sistema de submissão para pedir um arquivo CSV. Para entregar o desafio, você deverá alterar o arquivo com a tabela-resposta disponível nesse repositório, preenchendo o valor da coluna ALLOW em todas as 1000 linhas com as predições do seu modelo (valores 0 ou 1). Iremos avaliar sua solução nos baseando nas respostas do arquivo CSV.

Para realizar a submissão, você deverá acessar a página do desafio: https://maratona.dev/challenge/1 e enviar o arquivo CSV com as respostas, juntamente com um arquivo .zip, de até 10MB, contendo o código fonte da solução (lembre-se de remover dependências e datasets para não ocupar espaço). A página fará um teste para verificar se o arquivo CSV está no formato correto.

Você poderá acompanhar o status da submissão acessando a página do desafio, logando na sua conta.

7. Sobre a avaliação

Uma semana após o início do desafio, nosso sistema de avaliação automática começará as avaliações. Ele irá utilizar os dados enviados para calcular uma pontuação numérica de 1 até 100, baseada na métrica F1. O arquivo .zip enviado deve conter todo o código utilizado para obter a solução. Caso contrário, a pontuação será zerada.

Caso o desafio seja entregue dentro do prazo de envio (até 21 de novembro), o participante receberá uma bonificação de 10% da pontuação total (10 pontos), independendo do resultado de seu desafio. A pontuação máxima possível, portanto, é 110 (100 de avaliação + 10 de bônus).

Após o prazo de envio, o participante ainda poderá realizar sua submissão até dia 12 de dezembro, mas sem receber o bônus.

Atenção: nos reservamos o direito de zerar a pontuação de uma submissão caso:

  • O código fonte enviado não seja coerente com os resultados obtidos dos testes no modelo.
  • Seja detectado plágio, de um ou mais participantes. Nesse caso, todos os participantes com a solução igual terão sua pontuação no desafio zerada.

Material de apoio

Você também pode acessar o Discord oficial da Maratona 2021 para realizar perguntas e/ou interagir com outros participantes: Discord.

License

Copyright 2021 Maratona Behind the Code

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.