Підвищення кількості вдалих виявлень за допомогою ресемплінгу даних

Виявлення шахрайства в Python

Charlotte Werger

Data Scientist

Андерсемплінг

Виявлення шахрайства в Python

Оверсемплінг

Виявлення шахрайства в Python

Оверсемплінг у Python

from imblearn.over_sampling import RandomOverSampler

method = RandomOverSampler() X_resampled, y_resampled = method.fit_resample(X, y)
compare_plots(X_resampled, y_resampled, X, y)

Виявлення шахрайства в Python

SMOTE (Synthetic Minority Oversampling Technique)

1 https://www.kaggle.com/rafjaa/resampling-strategies-for-imbalanced-datasets
Виявлення шахрайства в Python

Який метод ресемплінгу обрати?

  • Random Under Sampling (RUS): відкидає дані, обчислювально ефективно
  • Random Over Sampling (ROS): просто й зрозуміло, але модель навчається на багатьох дублікатах
  • SMOTE (Synthetic Minority Oversampling Technique): більш витончений і реалістичний набір даних, але ви навчаєтеся на «штучних» даних
Виявлення шахрайства в Python

Коли застосовувати методи ресемплінгу

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# Визначте метод ресемплінгу та розбийте на train і test method = SMOTE() X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.8, random_state=0)
# Застосуйте ресемплінг лише до тренувальних даних X_resampled, y_resampled = method.fit_resample(X_train, y_train)
# Далі навчайте модель і отримайте передбачення model = LogisticRegression() model.fit(X_resampled, y_resampled)
# Отримайте метрики якості predicted = model.predict(X_test) print (classification_report(y_test, predicted))
Виявлення шахрайства в Python

Давайте потренуємось!

Виявлення шахрайства в Python

Preparing Video For Download...