Skip to content

Árvore de Decisão

Introdução

O modelo desenvolvido tem como objetivo prever o resultado de admissões em programas de MBA a partir de um conjunto de informações sobre os candidatos. Para isso, foi escolhida a técnica de árvores de decisão, que se mostra adequada por sua interpretabilidade e pela capacidade de lidar com variáveis de diferentes naturezas. Essa abordagem permite não apenas realizar previsões sobre o status de admissão, mas também compreender quais fatores exercem maior influência no processo seletivo. Dessa forma, o modelo não se limita a um exercício de classificação, mas também funciona como ferramenta de análise, apontando as características mais relevantes no perfil de um candidato admitido, em lista de espera ou recusado.

Base de dados

A base utilizada é composta por dados sintéticos criados a partir das estatísticas da turma de 2025 do MBA de Wharton. Ela reúne informações demográficas, acadêmicas e profissionais de candidatos, como gênero, nacionalidade, área de formação, desempenho no GPA e no GMAT, além de experiência de trabalho e setor de atuação. Esses atributos foram relacionados ao status final da candidatura, categorizado como admitido, em lista de espera ou negado. Por se tratar de um conjunto de dados diversificado, é possível observar tanto os aspectos objetivos ligados ao desempenho acadêmico e profissional quanto elementos contextuais que podem influenciar o resultado do processo seletivo. Essa combinação torna o dataset especialmente relevante para análises exploratórias e para o desenvolvimento de modelos preditivos que buscam compreender os critérios implícitos de seleção em admissões de MBA.

Exploração dos Dados

A seguir foi realizada uma análise exploratória da base de dados, com o objetivo de compreender o significado e a composição de cada coluna. Essa etapa busca identificar possíveis problemas, como valores ausentes ou distribuições desbalanceadas, que podem influenciar diretamente a qualidade do modelo. As visualizações e estatísticas descritivas permitem observar padrões, tendências e discrepâncias entre os candidatos, fornecendo subsídios importantes para orientar as decisões de pré-processamento e a construção da árvore de decisão.

A variável gênero apresenta uma diferença significativa na quantidade de aplicações. Observa-se uma predominância de candidatos do sexo masculino em comparação às candidatas do sexo feminino, o que indica uma distribuição desigual nesse aspecto. Essa discrepância pode refletir tendências do mercado de MBA ou características específicas da base gerada. Além disso, é um fator importante a ser considerado no modelo, já que possíveis vieses de gênero podem influenciar tanto a análise quanto as previsões de admissão.

2025-12-02T15:31:17.578037 image/svg+xml Matplotlib v3.10.7, https://matplotlib.org/

A variável alunos internacionais mostra que a maior parte das aplicações é de candidatos domésticos (não internacionais), enquanto os estudantes internacionais representam uma parcela menor do total. Essa diferença pode indicar que os programas de MBA ainda têm maior procura local, embora o número de aplicações internacionais seja relevante para demonstrar a diversidade e a atratividade global da instituição. Essa característica pode influenciar o modelo de predição, visto que fatores como origem do aluno podem estar relacionados às taxas de aceitação.

2025-12-02T15:31:17.678962 image/svg+xml Matplotlib v3.10.7, https://matplotlib.org/

A variável GPA apresenta distribuição concentrada em torno de valores relativamente altos, entre 3.1 e 3.3, o que indica que a maior parte dos candidatos possui desempenho acadêmico consistente. A mediana situa-se pouco acima de 3.2, reforçando esse padrão. Observa-se ainda a presença de alguns valores atípicos, tanto abaixo de 2.8 quanto acima de 3.6, que representam candidatos com desempenho fora do perfil predominante. Esses outliers, embora pouco frequentes, podem influenciar a análise estatística e devem ser considerados no pré-processamento ou na interpretação dos resultados do modelo. De forma geral, a distribuição do GPA sugere que a base é composta majoritariamente por candidatos academicamente fortes, o que pode ser um dos critérios determinantes no processo de admissão.

2025-12-02T15:31:17.780843 image/svg+xml Matplotlib v3.10.7, https://matplotlib.org/

A variável major, que representa a área de formação acadêmica dos candidatos, apresenta distribuição relativamente equilibrada entre as categorias, mas com destaque para Humanidades, que concentra o maior número de aplicações. As áreas de STEM e Business aparecem em proporções semelhantes, ambas com menor participação em relação a Humanidades. Essa diferença pode refletir o perfil da amostra, indicando maior procura de candidatos oriundos de cursos de Humanidades pelos programas de MBA. A análise dessa variável é relevante para verificar se determinadas formações acadêmicas têm maior representatividade ou desempenham papel diferenciado nos resultados de admissão.

2025-12-02T15:31:17.888530 image/svg+xml Matplotlib v3.10.7, https://matplotlib.org/

A variável raça apresenta distribuição diversificada entre os candidatos, com destaque para a categoria de pessoas que preferiram não se identificar, seguida pelo grupo White. Em seguida aparecem Asian, Black e Hispanic, enquanto a categoria Other concentra a menor quantidade de aplicações. Essa composição evidencia tanto a representatividade de diferentes origens raciais quanto a limitação do campo para candidatos internacionais. A análise dessa variável é importante para compreender a diversidade do conjunto de dados e avaliar se há possíveis diferenças de perfil que podem influenciar nos resultados de admissão.

2025-12-02T15:31:17.998705 image/svg+xml Matplotlib v3.10.7, https://matplotlib.org/

A variável GMAT apresenta uma distribuição concentrada entre 600 e 700 pontos, faixa onde se encontra a maior parte dos candidatos. O pico de frequência ocorre próximo de 650 pontos, o que sugere que esse valor é representativo do desempenho médio dos aplicantes. Apesar dessa concentração, também há candidatos com pontuações mais baixas, em torno de 570, bem como outros que alcançam notas elevadas acima de 750, embora em menor quantidade. Essa distribuição indica que, em geral, os candidatos possuem desempenho sólido no exame, mas com variação suficiente para permitir que o modelo identifique padrões relacionados ao status de admissão.

2025-12-02T15:31:18.123577 image/svg+xml Matplotlib v3.10.7, https://matplotlib.org/

A variável experiência profissional apresenta distribuição concentrada entre 4 e 6 anos de atuação no mercado, com destaque para os candidatos que possuem 5 anos de experiência, que representam a maior parte das aplicações. Os extremos da distribuição, com candidatos que possuem apenas 1 ou 2 anos de experiência e aqueles com mais de 7 anos, aparecem em menor número, configurando perfis menos frequentes na amostra. Esse padrão sugere que a base de dados está composta principalmente por profissionais em estágio intermediário de carreira, o que reflete o perfil típico de aplicantes a programas de MBA. Essa variável é particularmente relevante, pois pode influenciar diretamente nas chances de admissão, uma vez que a experiência prática é um critério valorizado nas seleções.

2025-12-02T15:31:18.254325 image/svg+xml Matplotlib v3.10.7, https://matplotlib.org/

A variável setor de experiência profissional revela que a maior parte dos candidatos possui trajetória em Consultoria, que se destaca amplamente em relação aos demais setores. Em seguida aparecem PE/VC (Private Equity e Venture Capital), Tecnologia e setores ligados ao serviço público ou organizações sem fins lucrativos, todos com participação significativa. Áreas tradicionais como Investment Banking e Financial Services também se mostram relevantes, mas em menor proporção. Já setores como Saúde, Bens de Consumo (CPG), Mídia/Entretenimento, Varejo, Imobiliário e Energia aparecem de forma mais restrita, representando nichos específicos da amostra. Essa distribuição indica que o MBA atrai predominantemente profissionais de consultoria e finanças, mas também apresenta diversidade ao incluir candidatos de áreas emergentes e de setores menos tradicionais.

2025-12-02T15:31:18.401941 image/svg+xml Matplotlib v3.10.7, https://matplotlib.org/

Pré-Processamento

Com base na análise exploratória realizada, foram definidos e aplicados procedimentos de pré-processamento a fim de adequar os dados para a etapa de modelagem. As principais etapas conduzidas incluem:

  • Tratamento de valores ausentes:na variável admission, valores nulos foram interpretados como recusa e substituídos por Deny. Já na variável race, os valores ausentes foram preenchidos como Unknown, garantindo a consistência da base.
  • Codificação de variáveis categóricas: colunas como gender, international, major, race, work_industry e admission foram convertidas em variáveis numéricas por meio do método LabelEncoder, possibilitando sua utilização pelo modelo de árvore de decisão.
  • Imputação em variáveis numéricas: atributos como gpa, gmat e work_exp tiveram seus valores ausentes substituídos pela mediana, minimizando a influência de outliers e preservando a distribuição original dos dados.
  • Seleção de variáveis: foram mantidas no conjunto de treino apenas as colunas relevantes para a análise preditiva, enquanto identificadores como application_id foram descartados por não possuírem valor analítico.
  • Separação entre features e target: as variáveis explicativas (X) foram definidas a partir das características acadêmicas, demográficas e profissionais dos candidatos, enquanto a variável alvo (y) corresponde ao status de admission.
  • Divisão em treino e teste: o conjunto de dados foi dividido em duas partes, com 80% para treino e 20% para teste, garantindo estratificação da variável alvo para preservar a proporção entre as classes.
application_id gender international gpa major race gmat work_exp work_industry admission
1 Female False 3.3 Business Asian 620 3 Financial Services Admit
2 Male False 3.28 Humanities Black 680 5 Investment Management nan
3 Female True 3.3 Business nan 710 5 Technology Admit
4 Male False 3.47 STEM Black 690 6 Technology nan
5 Male False 3.35 STEM Hispanic 590 5 Consulting nan
6 Male False 3.18 Business White 610 6 Consulting nan
7 Female False 2.93 STEM Other 590 3 Technology Admit
8 Male True 3.02 Business nan 630 6 Financial Services nan
9 Male False 3.24 Business White 590 2 Nonprofit/Gov nan
10 Male False 3.27 Humanities Asian 690 3 Consulting nan
11 Male False 3.05 Humanities White 580 5 Technology nan
12 Male True 2.85 Humanities nan 580 4 PE/VC nan
13 Female False 3.24 Humanities Hispanic 640 6 PE/VC Waitlist
14 Female False 3.39 Business Black 690 4 Nonprofit/Gov nan
15 Female False 3.03 STEM White 600 5 Technology Admit
16 Female True 3.05 Humanities nan 710 4 Consulting Admit
17 Female False 3.32 Business Asian 710 5 PE/VC Admit
18 Male False 3.23 Humanities Black 700 4 Health Care nan
19 Male False 3.13 Humanities White 630 6 Financial Services nan
20 Male True 3.09 Business nan 670 8 Consulting nan
gender international gpa major race gmat work_exp work_industry admission
1 0 3.48 1 5 630 5 8 0
1 0 3.27 0 5 610 6 10 0
1 0 3.31 2 0 670 6 8 0
1 1 3.29 1 4 660 5 10 0
1 1 3.02 2 4 570 3 10 0
1 0 3.4 1 0 710 4 13 0
0 0 3.23 0 0 670 7 9 0
1 0 3.36 2 1 700 5 10 2
0 0 3.36 1 1 670 4 6 2
1 0 3.29 0 5 620 6 1 0
1 1 3.4 2 4 580 5 1 0
0 0 3.21 1 2 580 5 1 0
1 1 3.06 0 4 640 4 1 0
0 0 3.2 1 2 630 6 1 0
1 0 3.25 2 0 610 5 6 0
1 0 3.27 2 1 630 6 1 0
1 1 3.01 0 4 610 6 13 0
1 1 3.15 0 4 620 6 10 0
0 0 2.93 1 2 580 5 0 0
1 1 3.25 0 4 570 6 8 0

Divisão dos Dados

Após o pré-processamento, os dados foram divididos em dois subconjuntos: 80% para treinamento e 20% para teste. Essa proporção é amplamente utilizada em problemas de classificação, pois fornece uma quantidade suficiente de exemplos para o aprendizado do modelo, ao mesmo tempo em que reserva uma amostra representativa para a avaliação final.

A divisão foi realizada utilizando a função train_test_split da biblioteca scikit-learn, com a opção de estratificação pela variável alvo (admission), de modo a preservar a proporção original entre as classes (Admit, Waitlist e Deny) em ambos os conjuntos. Isso garante que o modelo não seja favorecido ou prejudicado por distribuições desbalanceadas.

Dessa forma, o conjunto de treinamento é usado para ajustar os parâmetros da árvore de decisão, enquanto o conjunto de teste serve como base imparcial para medir a acurácia e capacidade de generalização do modelo.

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder

df = pd.read_csv("./src/MBA.csv")

label_encoder = LabelEncoder()

df["admission"] = df["admission"].fillna("Deny") 
df["race"] = df["race"].fillna("Unknown")

df["gender"] = label_encoder.fit_transform(df["gender"])
df["international"] = label_encoder.fit_transform(df["international"])
df["major"] = label_encoder.fit_transform(df["major"])
df["race"] = label_encoder.fit_transform(df["race"])
df["work_industry"] = label_encoder.fit_transform(df["work_industry"])
df["admission"] = label_encoder.fit_transform(df["admission"])

x = df[[
    "gender", "international", "gpa", "major",
    "race", "gmat", "work_exp", "work_industry"
]]

y = df["admission"]

x_train, x_test, y_train, y_test = train_test_split(
    x, y, test_size=0.3, random_state=27, stratify=y
)

print("Dimensão do treino:", x_train.shape)
print("Dimensão do teste:", x_test.shape)

Treinamento do Modelo

Accuracy: 0.78
Importância das Features:

Feature Importância
2 gpa 0.307012
5 gmat 0.290857
7 work_industry 0.140905
6 work_exp 0.092205
3 major 0.071803
4 race 0.063244
0 gender 0.019990
1 international 0.013984
2025-12-02T15:31:20.965219 image/svg+xml Matplotlib v3.10.7, https://matplotlib.org/

import matplotlib.pyplot as plt
import pandas as pd

from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from io import StringIO
from sklearn import tree
from sklearn.metrics import accuracy_score

def preprocess(df):

    # Fill missing values
    df["admission"] = df["admission"].fillna("Deny") 
    df['race'] = df['race'].fillna('Unknown')

    # Convert categorical variables
    label_encoder = LabelEncoder()
    df['gender'] = label_encoder.fit_transform(df['gender'])
    df['international'] = label_encoder.fit_transform(df['international'])
    df['major'] = label_encoder.fit_transform(df['major'])
    df['race'] = label_encoder.fit_transform(df['race'])
    df['work_industry'] = label_encoder.fit_transform(df['work_industry'])
    df['admission'] = label_encoder.fit_transform(df['admission'])

    # Select features
    features = ['gender', 'international', 'gpa', 'major', 'race', 'gmat', 'work_exp', 'work_industry', 'admission']
    return df[features]

# Load the dataset
df = pd.read_csv('./src/MBA.csv')

# Preprocessing
df = preprocess(df)

# Carregar o conjunto de dados
x = df.drop(columns=['admission'])
y = df['admission']

# Dividir os dados em conjuntos de treinamento e teste
x_train, x_test, y_train, y_test = train_test_split(x, y,test_size=0.2,random_state=42)

# Criar e treinar o modelo de árvore de decisão
classifier = tree.DecisionTreeClassifier()
classifier.fit(x_train, y_train)

# Avaliar o modelo
accuracy = classifier.score(x_test, y_test)
print(f"Accuracy: {accuracy:.2f}")
tree.plot_tree(classifier)

feature_importance = pd.DataFrame({
    'Feature': classifier.feature_names_in_,
    'Importância': classifier.feature_importances_
})
print("<br>Importância das Features:")
print(feature_importance.sort_values(by='Importância', ascending=False).to_html())

plt.figure(figsize=(20, 10))
tree.plot_tree(classifier, max_depth=5, fontsize=10)


# Para imprimir na página HTML
buffer = StringIO()
plt.savefig(buffer, format="svg")
print(buffer.getvalue())

Avaliação do modelo

O modelo de árvore de decisão alcançou uma acurácia de 78% na base de teste, demonstrando um desempenho satisfatório na tarefa de prever o status de admissão dos candidatos. Esse resultado indica que, em média, cerca de oito em cada dez previsões realizadas pelo modelo estão corretas, o que sugere boa capacidade de generalização.

A análise da importância das variáveis reforça a relevância dos indicadores acadêmicos, em especial o GPA (0.31) e o GMAT (0.30), que juntos representam mais de 60% da capacidade explicativa do modelo. Em seguida, fatores ligados à trajetória profissional, como setor de atuação (work_industry) e anos de experiência (work_exp), também apresentam peso significativo, ainda que menor, o que evidencia que o desempenho acadêmico continua sendo o principal critério de admissão.

As demais variáveis, como major, raça, nacionalidade e gênero, apresentam importâncias mais baixas, sugerindo que exercem influência menos direta sobre a decisão de admissão. No entanto, sua inclusão no modelo contribui para capturar nuances adicionais que podem afetar o resultado em casos específicos.

De forma geral, os resultados confirmam que a combinação de desempenho acadêmico e experiência profissional são os fatores mais determinantes para o processo de admissão, em consonância com práticas comuns em programas de MBA de alto nível.

Conclusão

A partir da análise da base de dados de admissões em MBA, foi possível compreender o perfil dos candidatos e identificar padrões relevantes que influenciam os resultados de aceitação, lista de espera ou recusa. A exploração inicial revelou um conjunto diversificado de informações, abrangendo aspectos acadêmicos, profissionais e demográficos, permitindo visualizar tanto tendências predominantes — como a maior representatividade de determinados grupos — quanto a presença de outliers em variáveis como GPA e GMAT.

O pré-processamento dos dados foi fundamental para garantir consistência e qualidade, contemplando a padronização de variáveis categóricas, a imputação de valores ausentes e a definição clara entre variáveis explicativas e alvo. Essa preparação assegurou que o modelo pudesse ser treinado de forma adequada, sem vieses estruturais oriundos da própria base.

Na etapa de modelagem, a divisão entre treino e teste possibilitou avaliar a capacidade de generalização do algoritmo. O modelo de árvore de decisão alcançou uma acurácia de 78%, demonstrando desempenho sólido ao prever o status de admissão. A análise das importâncias das variáveis evidenciou a centralidade dos critérios acadêmicos — com destaque para GPA e GMAT — complementados por fatores ligados à experiência profissional, como anos de atuação e setor de trabalho. Aspectos demográficos, como gênero, raça e nacionalidade, apresentaram impacto secundário, contribuindo de forma menos expressiva para a classificação final.

De maneira geral, os resultados confirmam que o processo de admissão em programas de MBA é fortemente guiado pela combinação de desempenho acadêmico e experiência profissional, refletindo a prática de selecionar candidatos que conciliem excelência acadêmica com vivência de mercado. O estudo mostra, portanto, que modelos de aprendizado de máquina podem não apenas auxiliar na previsão de admissões, mas também oferecer insights relevantes sobre os fatores que mais pesam em processos seletivos competitivos.