НачатьНачать бесплатно

Обнаружение выбросов

В следующих упражнениях вы будете использовать алгоритм K-средних для предсказания мошенничества и сравнивать эти предсказания с реальными метками, чтобы проверить результаты.

Мошеннические транзакции, как правило, определяются как наблюдения, наиболее удалённые от центроида кластера. В этом упражнении вы узнаете, как это сделать и как определить пороговое значение. В следующем упражнении вы проверите полученные результаты.

Доступны масштабированные наблюдения X_scaled, а также метки, хранящиеся в переменной y.

Это упражнение является частью курса

Обнаружение мошенничества на Python

Посмотреть курс

Инструкции к упражнению

  • Разделите масштабированные данные и метки y на обучающую и тестовую выборки.
  • Определите модель MiniBatch K-средних с 3 кластерами и обучите её на обучающих данных.
  • Получите предсказания кластеров для тестовых данных и определите центроиды кластеров.
  • Задайте границу между мошенническими и обычными транзакциями на уровне 95-го процентиля распределения расстояний и выше.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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
Редактировать и запускать код