Fala galera do mundo dos dados! Hoje vamos falar de agrupamento de dados, mais especificamente de como utilizar o DBSCAN em Python para análise de dados. O DBSCAN (Density-Based Spatial Clustering of Applications with Noise) é um algoritmo de clusterização amplamente utilizado em análise de dados. Ele é capaz de identificar grupos em dados de alta dimensionalidade e é uma alternativa popular ao K-Means (confere o artigo Agrupamento com scikit-learn), especialmente quando não há conhecimento prévio do número de clusters.
Neste post, vamos explorar como utilizar o DBSCAN em Python para análise de dados, utilizando a biblioteca scikit-learn.
Como Funciona o DBSCAN
Primeiro, vamos entender o funcionamento do DBSCAN. Ele funciona criando clusters baseados na densidade dos pontos. Pontos próximos são considerados parte do mesmo cluster, enquanto pontos isolados são rotulados como ruído.
Em Python, a implementação do DBSCAN pode ser feita utilizando a biblioteca scikit-learn.
DBSCAN na Prática
Agora veremos na prática como aplicar o DBSCAN em Python, utilizando a biblioteca sklearn. Primeiramente faremos a importação das bibliotecas necessárias.
Importando bibliotecas
Vamos começar importando as bibliotecas necessárias. A sklearn, biblioteca para aplicação de modelos de machine learning, inclusive o DBSCAN. O Pandas para manipulação dos dados. Finalizando com a Matplotlib para visualização dos dados de forma gráfica.
from sklearn.cluster import DBSCAN from sklearn.datasets import make_blobs import pandas as pd import matplotlib.pyplot as plt
Bibliotecas importadas, agora faremos a criação do conjunto de dados.
Gerando dados aleatórios
Agora, vamos gerar alguns dados aleatórios para utilizar como exemplo, com a função make_blobs do sklearn.
X, y = make_blobs(n_samples=500, centers=4, cluster_std=0.60, random_state=0)
Em seguida uma transformação nos dados para o formato de dataframe com o Pandas.
df = pd.DataFrame(X,columns=['X1','X2'])
Confere como ficou o conjunto de dados de exemplo.

Uma outra forma de visualizar o conjunto de dados é com a ajudinha do Matplotlib. Observe a construção do gráfico de dispersão com a função scatter no código Python abaixo.
plt.scatter('X1', 'X2', data=df) plt.show()
E então, temos o gráfico de dispersão utilizando o dataframe criado no passo anterior.

Sendo assim, já temos os dados necessários para aplicar o DBSCAN.
Aplicando o DBSCAN
Com os dados gerados, podemos agora aplicar o DBSCAN para encontrar clusters, confere o código Python a seguir. Aqui, estamos definindo um valor para eps, que é o raio máximo de um cluster, e min_samples, que é o número mínimo de pontos necessários para formar um cluster.
dbscan = DBSCAN(eps=0.5, min_samples=5) clusters = dbscan.fit_predict(df) df['clusters'] = clusters
Na imagem a seguir temos os clusters que foram gerados a partir da função DBSCAN.

Para visualizar os resultados, podemos utilizar o matplotlib e plotar o mesmo gráfico de dispersão criado anteriormente. Porém agora, utilizaremos os clusters gerados para colorir o gráfico. Se liga no código Python na sequencia.
plt.scatter('X1', 'X2', data=df, c='clusters', cmap='rainbow') plt.show()
E então, temos o resultado abaixo.

Agora, atribuímos a cada ponto um rótulo correspondente ao seu cluster (vermelho, amarelo, verde e azul). Consideramos pontos com rótulo -1 como ruídos (lilás).
O DBSCAN também permite ajustar outros parâmetros, como a metric, que determina a medida de distância usada para definir a densidade dos pontos, e o algorithm, que especifica o método usado para identificar pontos próximos. Experimenta utilizar nas suas análises.
DBSCAN ao Cubo
A biblioteca scikit-learn torna fácil o uso do DBSCAN para análise de dados em Python. Com suas capacidades de encontrar clusters em dados de alta dimensionalidade e tratar ruídos, ele pode ser uma ferramenta valiosa para diversas aplicações.
Portanto, experimente utilizar o DBSCAN em seus próprios dados e veja como ele pode ajudar a identificar padrões e insights valiosos. Imagina agrupar os clientes? Ou os produtos?
E então, esta é uma introdução ao DBSCAN.Não perca as novidades do Dados ao Cubo! Então, fica ligado com a nossa Newsletter. Um abraço e até a próxima!!!
Conteúdos ao Cubo
Se você curtiu o conteúdo, aqui no Dados ao Cubo tem muito mais. Então, deixo algumas sugestões de conteúdos que você pode encontrar. Sempre falando sobre o mundo dos dados!
- Time de Dados na Prática
- Etapas para Análise de Dados
- Tipos de Análise de Dados
- Dicas para Visualização de Dados
- Análise de Dados com Airbyte e Metabase
- Importar CSV no PostgreSQL com o DBeaver
Finalizamos com um convite para você ser Parceiro de Publicação Dados ao Cubo e escrever o próximo artigo, compartilhando conhecimento para toda a comunidade de dados.

Baiano, apaixonado por dados e tecnologia, amante das inovações tecnológicas que facilitam a vida humana! Formado em Engenharia da Computação e com MBA em Gestão da Informação e Business Intelligence e especialização em Data Science. Atualmente atua como Data Tech Lead na Lopes, além de Professor na área de dados e nas horas vagas cria uns modelos de Machine Learning com Python e soluções diversas com dados!