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.
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.
Agora veremos na prática como aplicar o DBSCAN em Python, utilizando a biblioteca sklearn. Primeiramente faremos a importação das bibliotecas necessárias.
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.
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.
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.
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!!!
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.
Apaixonado por dados e tecnologia ❤️ , criando soluções com dados 📊 📈 , desde 2015, sempre buscando tornar os processos orientados! Com formação em Engenharia da Computação 💾 , MBA Gestão da Informação e Business Intelligence e Especialização em Data Science.
Também atuo como professor na área de dados. Nas horas vagas crio modelos de Machine Learning 🤖 com Python em desafios do Kaggle e escrevo no Dados ao Cubo sobre o mundo dos dados 🎲 !
Compartilhando conhecimentos sempre 🚀
Fala Galera do mundo dos dados, hora de manipular dados no MongoDB com Python. Dessa…
Fala Galera do mundo dos dados, hora de manipular dados no Cassandra com Python. Dessa…
Fala galera do mundo dos dados, hoje é dia de aprender a função Select do Spark.…
Fala galera do mundo dos dados, hoje é dia de transformar consultas SQL em visualizações…
Fala galera do mundo dos dados, dando continuidade às consultas de banco de dados com…
Fala galera do mundo dos dados, hora de conhecer os bancos de dados NoSQL com…