Data Analytics Data Science Python

Descubra Como Utilizar o DBSCAN em Python para Análise de Dados

como utilizar DBSCAN

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.

conjunto de dados para DBSCAN

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.

Visualização do conjunto de dados para DBSCAN

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.

conjunto de dados com 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.

Gráfico de dispersão com DBSCAN

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!

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.

Gostou? Compartilhe!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *