Alura > Cursos de Data Science > Cursos de Machine Learning > Conteúdos de Machine Learning > Primeiras aulas do curso Classificação: resolvendo problemas multiclasse

Classificação: resolvendo problemas multiclasse

Conhecendo os dados - Apresentação

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.

O que vamos aprender?

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.

O que vamos adesenvolver?

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.

O que você precisa saber para acompanhar este curso?

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?

Conhecendo os dados - Carregando os dados

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.

Contextualizando

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.

Importando os dados no Google Colab

Importando a biblioteca Pandas

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.

Arquivo dados_estudantes.csv no repositório do GitHub

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

Armazenando os dados em uma variável

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.

#ColumnNon-Null CountDtype
0Estado Civil4424 non-nullobject
1Migração4424 non-nullobject

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!

Conhecendo os dados - Entendendo os dados

Temos os dados carregados previamente e agora é o momento de realizar uma análise mais aprofundada do conteúdo disponível.

Analisando os dados

O retorno abaixo foi parcialmente transcrito. Para conferi-lo na íntegra, execute o código na sua máquina.

#ColumnNon-Null CountDtype
0Estado Civil4424 non-nullobject
1Migração4424 non-nullobject
2Sexo4424 non-nullobject
3Idade na matrícula4424 non-nullint64
4Estrangeiro4424 non-nullobject

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.

Conclusão

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!

Sobre o curso Classificação: resolvendo problemas multiclasse

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:

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

Conheça os Planos para Empresas