DBSCAN
Dans cet exercice, vous allez explorer une méthode de regroupement basée sur la densité (DBSCAN) pour détecter la fraude. L'avantage de DBSCAN est que vous n'avez pas à définir le nombre de grappes à l'avance. De plus, DBSCAN gère beaucoup mieux que K-means les données aux formes atypiques (c.-à-d. non convexes). Cette fois-ci, plutôt que de prendre les valeurs aberrantes des grappes pour indiquer la fraude, vous allez prendre les plus petites grappes dans les données et les étiqueter comme fraude. Vous disposez de nouveau de l'ensemble de données normalisé, c.-à-d. X_scaled. Essayons ça!
Cette activité fait partie du cours
Détection de fraude en Python
Instructions de l’exercice
- Importez
DBSCAN. - Initialisez un modèle DBSCAN en fixant la distance maximale entre deux échantillons à 0.9 et le nombre minimal d'observations dans les grappes à 10, puis ajustez le modèle aux données normalisées.
- Obtenez les étiquettes prédites, qui correspondent aux numéros de grappe attribués à chaque observation.
- Affichez le nombre de grappes et le reste des mesures de performance.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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))