DBSCAN
Neste exercício, você vai explorar o uso de um método de agrupamento baseado em densidade (DBSCAN) para detectar fraudes. A vantagem do DBSCAN é que você não precisa definir o número de clusters previamente. Além disso, o DBSCAN lida com dados de formato estranho (isto é, não convexos) muito melhor do que o K-means. Desta vez, em vez de pegar os outliers dos clusters para identificar fraude, você vai considerar os menores clusters nos dados e rotulá-los como fraude. Você tem novamente o conjunto de dados escalonado, ou seja, X_scaled disponível. Vamos tentar!
Este exercício faz parte do curso
Detecção de Fraudes em Python
Instruções do exercício
- Importe
DBSCAN. - Inicialize um modelo DBSCAN definindo a distância máxima entre duas amostras como 0.9 e o mínimo de observações nos clusters como 10, e ajuste o modelo aos dados escalonados.
- Obtenha os rótulos previstos; eles são os números de cluster atribuídos a cada observação.
- Imprima o número de clusters e o restante das métricas de desempenho.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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))