DBSCAN
In deze oefening ga je een density-based clustering-methode (DBSCAN) gebruiken om fraude op te sporen. Het voordeel van DBSCAN is dat je het aantal clusters niet vooraf hoeft te bepalen. Ook kan DBSCAN veel beter overweg met vreemd gevormde data (dus niet-convex) dan K-means. Deze keer neem je niet de uitschieters binnen de clusters als fraude, maar juist de kleinste clusters in de data en label je die als fraude. Je hebt weer de geschaalde gegevensset, X_scaled, beschikbaar. Aan de slag!
Deze oefening maakt deel uit van de cursus
Fraudedetectie in Python
Oefeninstructies
- Importeer
DBSCAN. - Initialiseer een DBSCAN-model waarbij je de maximale afstand tussen twee samples op 0.9 zet en het minimum aantal observaties in een cluster op 10, en fit het model op de geschaalde data.
- Haal de voorspelde labels op; dit zijn de clusternummers die aan een observatie zijn toegekend.
- Print het aantal clusters en de overige prestatiestatistieken.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))