IniziaInizia gratis

DBSCAN

In questo esercizio esplorerai l’uso di un metodo di clustering basato sulla densità (DBSCAN) per rilevare frodi. Il vantaggio di DBSCAN è che non devi definire in anticipo il numero di cluster. Inoltre, DBSCAN gestisce dati con forme strane (cioè non convesse) molto meglio di K-means. Questa volta non prenderai i valori anomali all’interno dei cluster per identificarli come frodi, ma selezionerai i cluster più piccoli nei dati e li etichetterai come frode. Hai di nuovo a disposizione l’insieme di dati scalato, cioè X_scaled. Proviamoci!

Questo esercizio fa parte del corso

Rilevamento delle frodi in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Importa DBSCAN.
  • Inizializza un modello DBSCAN impostando la distanza massima tra due campioni a 0.9 e il numero minimo di osservazioni nei cluster a 10, quindi adatta il modello ai dati scalati.
  • Ottieni le etichette previste, ovvero i numeri di cluster assegnati a ciascuna osservazione.
  • Stampa il numero di cluster e il resto delle metriche di performance.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Import DBSCAN
from sklearn.cluster import ____

# Initialize and fit the DBSCAN model
db = DBSCAN(eps=____, min_samples=____, n_jobs=-1).fit(____)

# Obtain the predicted labels and calculate number of clusters
pred_labels = ____.____
n_clusters = len(set(pred_labels)) - (1 if -1 in labels else 0)

# Print performance metrics for DBSCAN
print('Estimated number of clusters: %d' % ____)
print("Homogeneity: %0.3f" % homogeneity_score(labels, pred_labels))
print("Silhouette Coefficient: %0.3f" % silhouette_score(X_scaled, pred_labels))
Modifica ed esegui il codice