Alura > Cursos de Data Science > Cursos de Machine Learning > Conteúdos de Machine Learning > Primeiras aulas do curso Machine Learning: Credit Scoring

Machine Learning: Credit Scoring

Cadeia de crédito e riscos - Apresentação

Olá, seja bem-vindo e bem-vinda a mais um curso de Machine Learning aqui na Alura. O meu nome é Karoline Penteado e eu sou a instrutora que vai te acompanhar nesta jornada.

Neste curso o nosso objetivo é entender como o Machine Learning está também no mercado financeiro, quais são as particularidades desse setor e como construir, ajustar e escolher a melhor regressão logística, que será usada como motor na concessão de crédito do Bytebank, um banco digital.

Esse curso é para pessoas que já estão no mundo da ciência de dados e querem entender como essa aplicação pode ser feita no mercado financeiro, ou para pessoas do mercado financeiro que querem entender qual é o algoritmo usado por trás das decisões das instituições financeiras.

É muito importante que você tenha uma noção básica de Python, não precisa ser expert, mais uma noção básica de Python. Se você não souber nada do mercado financeiro, não tem problema nenhum, é só vir comigo e vamos aprender juntos.

Cadeia de crédito e riscos - Ciclo da concessão de crédito e riscos associados

Olá, seja bem-vindo e bem-vinda ao curso de Machine Learning Credit Scoring aqui na Alura. Neste curso nós vamos entender como o Machine Learning também está inserido no mercado financeiro. O crédito faz parte das nossas vidas o tempo todo: cartões de crédito, empréstimos pessoais e consignados, financiamento de veículos e imobiliários, são apenas alguns dos exemplos de como o crédito está inserido no nosso dia a dia.

Mas, apesar disso, poucas pessoas sabem quais são as decisões que são tomadas por trás da concessão de crédito. Aqui a ideia é entendermos quais são essas decisões. A cadeia de crédito é composta por quatro pilares: a prospecção, a concessão, a gestão de risco e a recuperação.

Neste curso nós vamos focar na concessão do crédito. Além disso, a cadeia de crédito conta com três principais participantes: os poupadores, que são aquelas pessoas que reservam parte do seu dinheiro para ser investido; os tomadores, que são aquelas pessoas que estão em busca de um crédito ou de um financiamento no mercado; e quem intermedia essa relação é a instituição financeira.

Mas como isso funciona? Os poupadores levam o seu dinheiro para ser investido para os bancos e os bancos também têm um valor disponível para que os tomadores busquem o crédito que eles precisam.

Mas é uma relação bilateral. Da mesma forma que os poupadores levam o seu dinheiro até o banco para receber um rendimento sobre o investimento, é o banco que define qual será o rendimento e quais são as condições daquela aplicação.

Da mesma forma, os tomadores vão até os bancos e solicitam o seu crédito, mas é o banco que decide se aquele crédito será concedido ou não e quais serão as condições dessa concessão. Eu tenho certeza que você já passou por um pedido de crédito. Caso você não tenha passado, você conhece alguém que passou por essa solicitação.

Vamos lembrar como é? O tomador, ele vai até o banco, até a instituição financeira, e a instituição financeira avalia, a partir de dados cadastrais e financeiros e outras variáveis, se aquele pedido será concedido ou não através de um modelo de decisão.

É neste modelo que o banco vai dizer se o crédito será aprovado ou negado. A aprovação ou a negação daquela solicitação faz parte da decisão da instituição financeira. Independente se o crédito for aprovado ou negado, a instituição dá a devolutiva para o tomador.

Vamos pensar em um caso prático: você está precisando de um dinheiro, você entra no aplicativo do Bytebank, que é um banco digital criado recentemente, e faz a sua solicitação. Vamos ver como funciona.

Você foi até o Bytebank, o Bytebank pega a sua solicitação, coleta os seus dados cadastrais, financeiros e outras variáveis, passa em um modelo de decisão, que é também chamado de Credit Scoring, e então aprova o seu pedido após duas horas.

Depois disso ele te devolve quais serão as condições do seu empréstimo: prazos, taxas, números de parcelas e etc. E você decide ou não se vai seguir com aquela operação. Mas o que tem por trás do Credit Scoring?

O Crediting Score, ele busca estimar a probabilidade de um evento acontecer frente a uma base de dados. Nós estamos falando de uma probabilidade, então o valor está concentrado entre 0 e 1, e existem diversas aplicações.

Pensando na concessão de crédito, o evento que nós estamos buscando é se um tomador vai ser inadimplente, por isso nós queremos classificar os nossos solicitantes em adimplentes ou inadimplentes, é um evento binário. Toda concessão de crédito está intrinsecamente relacionada ao risco. Nós não conseguimos dissociar isso, toda operação de crédito está relacionada a um risco, têm um risco acoplado ali

Nós podemos entender o risco de crédito como a probabilidade de receber um montante de dinheiro em um determinado período não acontecer, ou seja, a expectativa da instituição financeira de receber o seu dinheiro de um determinado valor em um determinado prazo, não vai acontecer.

Parte dos juros associados ao seu empréstimo também está embutido no risco de crédito. Vamos aprender mais?

Cadeia de crédito e riscos - Base de dados

Pensando que aqui o nosso objetivo é criar um modelo de decisão de crédito para que o Bytebank use na concessão, vamos usar uma base de dados disponibilizada pela UCI. A UCI é um repositório internacional onde eles colocam bases de dados para serem usadas em estudos de Machine Learning.

Então vamos ver qual é essa a base e onde ela está. Eu vou abrir o meu navegador na página do Google e vou procurar "german credit data". Eu vou entrar no primeiro link disponibilizado pelo Google. Ele vai abrir uma página.

Aqui, no canto superior esquerdo, eu tenho "Download: Data Folder, Data Set Description". Estes são os dois arquivos que nós precisamos para o nosso estudo. O primeiro é a própria base de dados e o segundo é o dicionário das variáveis. Mas aqui nós vamos usar uma base de dados inspirada nesta German credit data. Por quê?

Por ser um repositório internacional, esta base de dados está em inglês. Aqui o nosso principal objetivo é que você entenda como é o processo, então nós fizemos uma tradução dessa base de dados para que o idioma não seja nenhum impedimento para você entender o curso. O único trabalho que nós fizemos foi traduzir essa base de dados.

Vamos deixar disponível para você o código da tradução, caso você tenha interesse em entender como foi feito, é bem simples, mas estará aqui disponível. Vocês podem tentar também, é um trabalho bem legal. A base de dados traduzida já está no meu GitHub, então eu vou abrir uma nova aba no meu navegador e vou procurar o meu GitHub. Eu vou em "github.com/karolpenteado/".

Eu abri a página do meu GitHub. Nas opções do menu superior, eu vou entrar em "Repositories". Vai ter um repositório público aqui disponível, chamado "credit_scoring". Quando eu clico nele e eu entro, vocês podem ver que eu tenho vários arquivos aqui.

Eu vou entrar na "base_dados_traduzida.csv", porque nós queremos que essa base de dados seja lida no nosso Google Colab, que é onde vamos abrir o nosso notebook e de fato fazer o nosso estudo. Agora eu vou abrir o meu Google Colab, através de uma nova aba no navegador. Eu vou entrar no site do próprio Google, no buscador mesmo e vou procurar aqui "Google Colab". Eu entro novamente no primeiro link. Eu abri aqui o meu Google Colab.

Aqui, no canto inferior direito, eu tenho a opção "Novo Notebook". É onde eu vou clicar. Depois que carregou, a primeira coisa que eu vou fazer será dar um título para o nosso estudo. Eu vou colocar "Machine Learning - Credit Scoring".

Agora eu quero ler aquele arquivo do GitHub. Como nós fazemos? Primeiro eu vou importar o Pandas, a biblioteca Pandas, porque será através dela que eu vou ler o meu CSV. Eu faço import pandas as pd e rodo. Pronto. Agora eu vou usar o quê? Eu vou passar uma URL para o meu código, url = ' '.

Eu vou dar um "Enter" aqui e vou definir a minha base de dados, eu vou chamar de dados = pd.read_csv(). Eu vou passar como parâmetro para esse read_csv a minha URL, (url). E qual é essa URL? Nós voltamos no GitHub, e nele, quando a base de dados está aberta, nós temos no canto direito, no meio, uma opção escrita "Raw".

Você tem "Raw" e "Blame", você vai clicar em "Raw". Quando você clica em "Raw", ele muda a página e te dá uma URL.

Você copia essa URL, porque será ela que você vai usar no código, na definição da sua variável url = ' '.

Depois disso, só para conferirmos no final, eu vou pedir para aparecer o cabeçalho dessa base de dados, então eu vou escrever dados.head() e vou rodar. Pronto, aqui está a nossa base de dados traduzida, com as variáveis traduzidas.

Olha, eu não sei muito bem o que tem aqui, eu pedi para ela me mostrar só o cabeçalho, então vamos pedir algumas informações dessa base. Eu vou escrever dados.info(). Vamos rodar. Aqui saiu uma tabela me mostrando todas as variáveis e algumas informações, como: a quantidade, se elas têm nulo ou não, o tipo que pode ser, nesse caso, objeto ou inteiro.

Objeto significa que é uma string e inteiro significa que é um número. São pouquíssimas informações, então vamos pedir para ver o tamanho dessa base? Como faremos isso? Eu vou definir aqui linhas = dados.shape[0]. Depois eu vou pedir para definir colunas = dados.shape[1]. E eu vou pedir para ele imprimir uma frase me dizendo o número de linhas e colunas, print() e vou pedir para ele passar ('A base de dados tem %s linhas e %s colunas.').

Depois de fechar as aspas simples, eu vou passar o símbolo de percentual e vou passar os dois parâmetros que eu quero que ele imprima em ordem. No primeiro %s eu quero que ele imprima as minhas linhas que eu defini, e no segundo %s eu quero que ele imprima as minhas colunas, ('A base de dados tem %s linhas e %s colunas.' %(linhas, colunas)). Vamos ver? Pronto.

A minha base de dados tem 1000 linhas e 21 colunas. Avançamos um pouco, não é? Mas continuaremos vendo algumas informações da base de dados. Vamos conferir se a base tem valores nulos ou duplicados, por exemplo? Então para ver os duplicados eu vou fazer o seguinte: vou definir duplicados = dados.duplicated() e vou pedir, no final, para ele contar isso, então duplicados = duplicados.sum().

Novamente eu vou pedir para ele imprimir aqui, desse jeito bonito, vai ser print('A base de dados tem %s dados duplicados.'). Depois eu vou passar de novo os parâmetros que eu quero, então o símbolo de percentual, neste momento, será print('A base de dados tem %s dados duplicados.' %(duplicados)). Vamos ver o que acontece?

Ótimo, a nossa base de dados tem 0 dados duplicados, isso é um ótimo indício. Por fim, vamos verificar os nulos. Para verificarmos os nulos, vamos fazer nulos = dados.isnull() e eu vou pedir para somar os nulos, nulos.sum(). Vamos ver? Ele me deu a lista de variáveis e ele me trouxe a soma dos nulos. Ou seja, se todas as minhas somas são 0, significa que a minha base de dados não tem valores nulos.

É muito importante nós verificarmos dados duplicados, dados nulos, o tamanho da base e as informações da base, por exemplo, porque assim que pegamos uma base de dados, não sabemos muito bem o que tem lá dentro. Então esse tipo de informação começa a nos trazer consciência sobre aquele objeto que estamos trabalhando.

Estando conscientes do nosso objeto de trabalho, é muito mais fácil decidir quais serão as decisões que vamos tomar na análise exploratória, no melhor modelo a ser decidido. Nós conseguimos traçar melhor as diretrizes assim que tomamos consciência sobre o nosso objeto de trabalho, então fazer esse tipo de verificação é bem importante. Nos vemos na próxima aula.

Sobre o curso Machine Learning: Credit Scoring

O curso Machine Learning: Credit Scoring possui 163 minutos de vídeos, em um total de 56 atividades. Gostou? Conheça nossos outros cursos de Machine Learning em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Machine Learning acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
12X
R$109
à vista R$1.308
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

Matricule-se

Pro

De
R$ 2.400
12X
R$149
à vista R$1.788
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Luri, a inteligência artificial da Alura

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas