Olá! Você sabia que em certos problemas de aprendizado de máquina, é necessário realizar previsões envolvendo múltiplas categorias em vez de apenas duas, como é comum na classificação binária?
Meu nome é Valquíria Alencar e serei a sua isntrutora ao longo deste curso.
Audiodescrição: Valquíria Alencar é uma mulher branca de olhos castanhos. Tem cabelos loiros e abaixo dos ombros. Usa piercing no septo e uma blusa preta com o logotipo da Escola de Dados. Ao fundo, do lado esquerdo há um LED com o mesmo logotipo e do lado direito tem uma estante com vários livros.
Estou aqui para acompanhar vocês dao longo deste curso que aborda a classificação multiclasse, onde lidaremos com múltiplas classes para fazer previsões.
Durante o desenvolvimento do curso, vamos desenvolver em um projeto envolvendo informações de estudantes universitários. Nossa meta é compreender e classificar os estudantes propensos a abandonar ou desistir do curso.
Neste projeto, vamos realizar uma análise exploratória dos dados, com a geração de gráficos e muitos insights. Vamos pré-processar esses dados para prepará-los para o modelo de Machine Learning. Trabalharemos com o modelo Random Forest (em português, "Floresta Aleatória"), que é baseado em árvores de decisão.
Aprenderemos também como lidar com métricas para dados com várias categorias, usaremos tanto a matriz de confusão quanto outras métricas. Também aprenderemos como balancear esses dados, realizar validação cruzada e testar o modelo com dados inéditos.
Porém, não vamos tratar de otimização de parâmetros e seleção de características.
Para obter o máximo benefício deste curso, é aconselhável possuir prévio conhecimento em Python, familiaridade com a biblioteca Pandas, experiência em classificação binária e compreensão de métricas e técnicas de validação.
Vamos começar?
Uma instituição de ensino superior solicitou que desenvolvêssemos um modelo de Machine Learning (Aprendizado de Máquina) destinado a prever a evasão de estudantes, ou seja, prever se as pessoas estudantes estão propensos a abandonar seu curso ou faculdade antes que isso realmente ocorra.
Me lembro que, quando iniciei a faculdade em 2007, minha turma era bastante numerosa. Contudo, após o segundo semestre, muitos dos meus colegas abandonaram o curso. Isso é uma ocorrência frequente e representa um desafio para instituições de ensino, seja no nível básico, médio ou superior.
O objetivo é manter as pessoas estudantes comprometidas e evitar a evasão.
Desenvolver um modelo que permita antecipar a desistência antes que ocorra é de grande relevância, pois capacita a instituição a adotar estratégias preventivas.
Nesse sentido, iremos utilizar dados reais de uma instituição de ensino superior em Portugal e importá-los para o Google Colab, dando início ao processo de desenvolvimento deste projeto.
Com o Google Colab já aberto e conectado ao ambiente, para iniciar nosso projeto, vamos importar a biblioteca Pandas na primeira célula, que nos permitirá carregar o arquivo contendo os dados. Basta digitar import pandas as pd
.
import pandas as pd
Em seguida, executamos a célula pressionando "Shift + Enter". Com isso, carregamos a biblioteca Pandas.
Nossos dados estão disponíveis no GitHub, contidos no arquivo denominado dados_estudantes.csv
. Neste momento, iremos à parte superior direita da parte que está o arquivo e escolhemos a opção "Raw" para acessar os dados brutos e copiar o link localizado no topo.
raw.githubusercontent.com/alura-cursos/classificacao_multiclasse/main/Dados/dados_estudantes.csv
Retornando ao Colab, para importar esses dados, nós os armazenaremos em uma variável chamada df
(que representa um Data Frame). Para fazer isso, basta utilizar o comando pd.read_csv()
, e entre parênteses, dentro de aspas, colaremos o link que copiamos anteriormente.
df = pd.read_csv(raw.githubusercontent.com/alura-cursos/classificacao_multiclasse/main/Dados/dados_estudantes.csv)
Agora, executamos essa célula com "Shift + Enter".
Podemos agora visualizar as cinco primeiras linhas usando a função head()
. Então, digitamos df.head()
.
df.head()
Esse comando retorna um Data Frame com 28 colunas contendo informações sobre os estudantes da instituição que mencionei em Portugal. Podemos realizar uma análise mais aprofundada dos tipos de dados e verificar a presença de valores nulos utilizando o método info()
. Na próxima célula, digitamos df.info()
.
df.info()
Após a execução, observamos que todas as colunas contêm 424 linhas de dados, e não identificamos nenhum valor nulo em qualquer uma delas.
O retorno abaixo foi parcialmente transcrito. Para conferi-lo na íntegra, execute o código na sua máquina.
# | Column | Non-Null Count | Dtype |
---|---|---|---|
0 | Estado Civil | 4424 non-null | object |
1 | Migração | 4424 non-null | object |
… | … | … | … |
Quanto aos tipos de dados, notamos a presença de colunas contendo objetos, ou seja, strings, bem como colunas com dados inteiros e valores do tipo float. Embora haja uma quantidade significativa de informações disponíveis, acredito que seja apropriado aprofundar nossa análise em um próximo vídeo.
Até mais!
Temos os dados carregados previamente e agora é o momento de realizar uma análise mais aprofundada do conteúdo disponível.
O retorno abaixo foi parcialmente transcrito. Para conferi-lo na íntegra, execute o código na sua máquina.
# | Column | Non-Null Count | Dtype |
---|---|---|---|
0 | Estado Civil | 4424 non-null | object |
1 | Migração | 4424 non-null | object |
2 | Sexo | 4424 non-null | object |
3 | Idade na matrícula | 4424 non-null | int64 |
4 | Estrangeiro | 4424 non-null | object |
… | … | … | … |
Possuímos informações demográficas das pessoas estudantes, abrangendo seu estado civil, uma categoria que sinaliza a migração (indicando se houve uma mudança de cidade ou local para ingressar na faculdade), dados sobre o sexo biológico e a idade no momento da matrícula.
Além disso, dispomos de uma variável que identifica se o estudante é estrangeiro, uma vez que estamos lidando com uma instituição de ensino em Portugal, onde a presença de estudantes internacionais é uma possibilidade.
Também temos dados socioeconômicos, como se a pessoa possui "necessidades educacionais especiais", se é uma pessoa devedora - pois, sendo uma instituição particular, as mensalidades precisam ser pagas regularmente - e informações sobre a adimplência da taxa de matrícula e se a pessoa é bolsista.
Também temos acesso aos dados macroeconômicos, incluindo a taxa de desemprego, a taxa de inflação e o PIB do período em questão. Posteriormente, temos informações sobre o momento da matrícula: o curso escolhido, o período (diurno ou noturno), e se a pessoa tinha alguma qualificação prévia - é possível que encontre pessoas que já fizeram outra faculdade ou até pós-graduação, mas querem cursar um segundo curso.
Possuímos informações referentes aos cursos que os estudantes efetivamente frequentaram durante o primeiro e o segundo semestres.
Isso compreende dados relacionados às disciplinas do primeiro semestre, tais como a quantidade creditadas, matrículadas, o número de avaliações que a pessoa estudante realizou, o total de disciplinas aprovadas, bem como as respectivas notas e outros pormenores semelhantes.
O mesmo procedimento se aplica ao segundo semestre.
A coleta de informações dos semestres iniciais e intermediários é justificável, uma vez que, como mencionei anteriormente, durante minha época como estudante, ao transitar do segundo ao terceiro semestre, pude observar que muitos estudantes abandonaram seus cursos. Essa situação é recorrente, e diversos elementos podem contribuir para esse abandono.
Isso pode ocorrer devido ao fato de a pessoa ter iniciado seus estudos e não ter se identificado com o curso, percebendo que não era realmente sua vocação. Talvez também tenha enfrentado desafios em uma disciplina específica, levando à desistência.
Além disso, razões de ordem econômica, como a falta de recursos financeiros para se manter na faculdade, podem ser determinantes.
Por último, destacamos uma coluna especial, a qual é fundamental para o modelo de Machine Learning (Aprendizado de Máquina) - denominada de "Target" na última linha do conjunto de dados.
O que representa essa coluna? Ela contém as classes que planejamos prever no futuro. E que classes são essas? Podemos examiná-las por meio do comando a seguir:
df['Target'].unique()
O comando acima retorna os valores únicos que temos dentro da coluna "Target". Executamos a célula com "Shift + Enter" e obtemos:
array(['Desistente", "Graduado', 'Matriculado'], dtype=object)
Os valores retornados são: "Desistente", "Graduado" e "Matriculado". Note que temos algo diferente, em vez de duas classes - que é o comum quando trabalhamos com classificação - nós temos três.
Temos pessoas que estão desistindo (desistentes), pessoas marcadas como graduadas (que efetivamente se formaram, concluíram o curso, receberam o diploma) e pessoas marcadas como matriculadas. Quem seria essa última categoria?
Na situação descrita, não podemos afirmar com certeza se a pessoa estudante irá abandonar o curso ou concluir a graduação. Estamos lidando com um cenário intermediário que também requer acompanhamento. É crucial monitorar de perto tanto as pessoas estudantes que desistem quanto aqueles que obtêm a graduação.
Para criar estratégias, a universidade precisa desenvolver mecanismos para que essas pessoas permaneçam. Portanto, o objetivo é conseguir classificar essas pessoas, especialmente as que estão em situação de desistência e as matriculadas, que são o nosso maior foco.
Entretanto, há várias variáveis além do nosso objetivo principal, um amplo conjunto de elementos a serem levados em conta.
Na próxima aula, vamos iniciar uma análise dessas variáveis, ou pelo menos da maioria delas, examinando-as detalhadamente, gerando gráficos e examinando as frequências.
Até mais!
O curso Classificação: resolvendo problemas multiclasse possui 124 minutos de vídeos, em um total de 50 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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.