EmpezarEmpieza gratis

Detección de valores atípicos

En los próximos ejercicios, vas a usar el algoritmo K-means para predecir fraude y comparar esas predicciones con las etiquetas reales que están guardadas, para validar los resultados.

Las transacciones fraudulentas suelen marcarse como las observaciones más alejadas del centroide del clúster. Aquí verás cómo hacerlo y cómo determinar el punto de corte. En el siguiente ejercicio, comprobarás los resultados.

Tienes disponibles las observaciones escaladas X_scaled, así como las etiquetas almacenadas en la variable y.

Este ejercicio forma parte del curso

Fraud Detection in Python

Ver curso

Instrucciones del ejercicio

  • Divide los datos escalados y las etiquetas y en un conjunto de entrenamiento y otro de prueba.
  • Define el modelo MiniBatch K-means con 3 clústeres y ajústalo con los datos de entrenamiento.
  • Obtén las predicciones de clúster para tus datos de prueba y calcula los centroides de los clústeres.
  • Define el límite entre fraude y no fraude en el percentil 95 de la distribución de distancias y superiores.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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 y ejecutar código