Comece agoraComece grátis

Detectando outliers

Nos próximos exercícios, você vai usar o algoritmo K-means para prever fraude e comparar essas previsões com os rótulos reais que estão salvos, para validar os resultados.

Transações fraudulentas geralmente são marcadas como as observações mais distantes do centróide do cluster. Aqui, você vai aprender como fazer isso e como definir o ponto de corte. No exercício seguinte, você vai conferir os resultados.

Você tem à disposição as observações padronizadas X_scaled, bem como os rótulos armazenados na variável y.

Este exercicio faz parte do curso

Detecção de Fraudes em Python

Ver curso

Instruções do exercicio

  • Divida os dados padronizados e os rótulos y em conjuntos de treino e teste.
  • Defina o modelo MiniBatch K-means com 3 clusters e ajuste-o aos dados de treino.
  • Obtenha as previsões de cluster para os dados de teste e recupere os centróides dos clusters.
  • Defina a fronteira entre fraude e não fraude a partir de 95% da distribuição das distâncias para cima.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# Split the data into training and test set
X_train, X_test, y_train, y_test = ____(____, ____, test_size=0.3, random_state=0)

# Define K-means model 
kmeans = ____(n_clusters=____, random_state=42).fit(____)

# Obtain predictions and calculate distance from cluster centroid
X_test_clusters = ____.____(X_test)
X_test_clusters_centers = ____.____
dist = [np.linalg.norm(x-y) for x, y in zip(X_test, X_test_clusters_centers[X_test_clusters])]

# Create fraud predictions based on outliers on clusters 
km_y_pred = np.array(dist)
km_y_pred[dist >= np.percentile(dist, ____)] = 1
km_y_pred[dist < np.percentile(dist, ____)] = 0
Editar e Executar Código