Personality Type Mapping with Machine Learning

Sharles Maurício

Sharles Maurício Mariano

Mapeamento de Tipos de Personalidade com Machine Learning

Este repositório contém um projeto de clustering utilizando o algoritmo KMeans. O objetivo é agrupar dados baseados em suas características e analisar os grupos formados.

Requisitos

Você pode instalar essas bibliotecas usando o seguinte comando:
pip install pandas numpy matplotlib seaborn scikit-learn yellowbrick
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.cluster import KMeans
from yellowbrick.cluster import KElbowVisualizer


## Carregamento e Tratamento dos Dados

O dataset utilizado neste projeto é carregado de um arquivo CSV e processado para remover colunas desnecessárias e registros com valores nulos.



# Configurações
pd.options.display.max_columns = 150
pd.options.display.float_format = "{:.2f}".format

# Carregamento dos dados
data = pd.read_csv('/content/data-final.csv', sep='\t')

# Remoção de colunas desnecessárias
data.drop(data.columns[50:110], axis=1, inplace=True)

# Descrição dos dados
data.describe()

Contagem de Registros por Valor

Contamos os registros por valor para identificar a quantidade de não respondentes.
# Contagem dos registros por valor
data['EXT1'].value_counts()

Limpeza dos Dados

Selecionamos apenas os registros com valores maiores que zero.
# Seleção de registros maiores que zero
data = data[(data > 0.00).all(axis=1)]

Elbow Method para Determinação do Número de Clusters

Utilizamos o método do cotovelo (Elbow Method) para determinar o número ideal de clusters.
# Visualizador Elbow
kmeans = KMeans()
visualizer = KElbowVisualizer(kmeans, k=(2,10))

# Amostra de dados
data_sample = data.sample(5000, random_state=1)

# Início do teste
visualizer.fit(data_sample)
visualizer.poof()

Agrupamento com KMeans

Instanciamos o KMeans com 5 clusters e rotulamos os dados.
# Instanciação do KMeans com 5 clusters
kmeans = KMeans(n_clusters=5)
k_fit = kmeans.fit(data)

# Predições
predicoes = k_fit.labels_
data['Clusters'] = predicoes

# Contagem de registros por cluster
data["Clusters"].value_counts()

# Média dos clusters
data.groupby('Clusters').mean()

Resultados

Os dados foram agrupados em 5 clusters, e a média de cada cluster foi calculada.
# Resultados
data["Clusters"].value_counts()
data.groupby('Clusters').mean()

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue ou enviar um pull request.

Licença

Este projeto está licenciado sob a MIT License.
Like this project

Posted Jul 8, 2025

Clustering project using KMeans for personality type mapping.