Git Product home page Git Product logo

clusters's Introduction

Clusters

Clustering con DBSCAN e Visualizzazione:

In questa implementazione, abbiamo utilizzato l'algoritmo DBSCAN (Density-Based Spatial Clustering of Applications with Noise) per eseguire il clustering dei dati. Abbiamo utilizzato la libreria scikit-learn per eseguire DBSCAN. Dopo aver eseguito il clustering, abbiamo visualizzato i risultati utilizzando Matplotlib. Il codice comprende:

  • Creazione di dati di esempio (puoi sostituire con i tuoi dati reali).
  • Creazione di un oggetto DBSCAN con parametri epsilon (ε) e minPts specificati.
  • Esecuzione del clustering sui dati e ottenimento delle etichette di cluster.
  • Visualizzazione dei punti dati colorati in base alle etichette di cluster.
from sklearn.cluster import DBSCAN
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# Crea dati di esempio (puoi sostituire questo passaggio con i tuoi dati)
data, _ = make_blobs(n_samples=300, centers=3, cluster_std=0.6, random_state=0)

# Crea un oggetto DBSCAN
dbscan = DBSCAN(eps=0.5, min_samples=5)

# Esegui il clustering sui dati
labels = dbscan.fit_predict(data)

# Visualizza i risultati
plt.scatter(data[:, 0], data[:, 1], c=labels)
plt.title("Risultati del DBSCAN")
plt.show()

png

Selezione di Punti Rappresentativi per Cluster:

In questa implementazione, abbiamo esteso l'esempio precedente per selezionare un punto rappresentativo per ogni cluster. Abbiamo creato una funzione get_representative_points che calcola il punto medio (media) dei punti all'interno di ciascun cluster. Il codice comprende:

  • Creazione di dati di esempio (puoi sostituire con i tuoi dati reali).
  • Creazione di un oggetto DBSCAN con parametri epsilon (ε) e minPts specificati.
  • Esecuzione del clustering sui dati e ottenimento delle etichette di cluster.
  • Definizione di una funzione per ottenere i punti rappresentativi per ciascun cluster.
  • Visualizzazione dei punti rappresentativi insieme ai punti dati originali.
import numpy as np

# Funzione per ottenere un punto rappresentativo per ogni cluster
def get_representative_points(data, labels):
    unique_labels = np.unique(labels)
    representative_points = []
    for label in unique_labels:
        if label == -1:
            continue  # Ignora i punti di rumore
        cluster_points = data[labels == label]
        representative_point = cluster_points.mean(axis=0)  # Calcola il punto medio
        representative_points.append(representative_point)
    return np.array(representative_points)

# Ottieni i punti rappresentativi per ciascun cluster
representative_points = get_representative_points(data, labels)

# Visualizza i risultati
plt.scatter(data[:, 0], data[:, 1], c=labels)
plt.scatter(representative_points[:, 0], representative_points[:, 1], marker='X', s=100, c='red', label='Punti rappresentativi')
plt.title("Risultati del DBSCAN con punti rappresentativi")
plt.legend()
plt.show()

png

Filtraggio di Punti di Rumore e Visualizzazione:

In questa implementazione, abbiamo ulteriormente esteso l'esempio precedente per filtrare i punti di rumore e visualizzarli separatamente dai punti rappresentativi dei cluster. Abbiamo aggiunto la capacità di identificare i punti di rumore (quelli etichettati come -1 da DBSCAN) e li abbiamo visualizzati in grigio. Il codice comprende:

  • Creazione di dati di esempio (puoi sostituire con i tuoi dati reali).
  • Creazione di un oggetto DBSCAN con parametri epsilon (ε) e minPts specificati.
  • Esecuzione del clustering sui dati e ottenimento delle etichette di cluster.
  • Definizione di una funzione per ottenere i punti rappresentativi per ciascun cluster.
  • Estrazione dei punti di rumore e visualizzazione separata dei punti rappresentativi e dei punti di rumore.
# Ottieni i punti di rumore (etichettati come -1 da DBSCAN)
noise_points = data[labels == -1]

# Visualizza i risultati
plt.scatter(representative_points[:, 0], representative_points[:, 1], marker='X', s=100, c='red', label='Punti rappresentativi')
plt.scatter(noise_points[:, 0], noise_points[:, 1], c='gray', alpha=0.5, label='Punti di rumore')
plt.title("Punti rappresentativi dei cluster e punti di rumore")
plt.legend()
plt.show()

png

clusters's People

Contributors

paolpal avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.