Шахрайство — це не просто неприємність; це індустрія на $12,5 мільярдів. Згідно з даними FTC за 2024 рік, зафіксовані збитки від шахрайства різко зросли. Традиційні системи, засновані на правилахШахрайство — це не просто неприємність; це індустрія на $12,5 мільярдів. Згідно з даними FTC за 2024 рік, зафіксовані збитки від шахрайства різко зросли. Традиційні системи, засновані на правилах

Створіть систему захисту від шахрайства на основі ШІ в реальному часі за допомогою Python, XGBoost та BERT

2025/12/15 04:04

Шахрайство — це не просто неприємність; це індустрія на 12,5 мільярдів доларів. Згідно з даними FTC за 2024 рік, зафіксовані збитки від шахрайства різко зросли, причому лише інвестиційні шахрайства становлять майже половину цієї суми.

Для розробників та системних архітекторів виклик подвійний:

  1. Шахрайство з транзакціями: Виявлення аномалій у структурованих фінансових даних (Хто надіслав гроші? Куди? Скільки?).
  2. Шахрайство в комунікаціях (Спам/Фішинг): Виявлення зловмисних намірів у неструктурованому тексті (посилання в SMS, фішингові електронні листи).

Традиційні системи на основі правил ("Якщо сума > $10,000, позначити") занадто крихкі. Вони генерують хибні спрацьовування та пропускають нові вектори атак.

У цьому інженерному посібнику ми створимо Систему захисту з подвійним шаром. Ми впровадимо високошвидкісну модель XGBoost для моніторингу транзакцій та BERT-based NLP-рушій для виявлення спаму, обгорнувши все це в хмарну мікросервісну архітектуру.

Давайте будувати.

Архітектура: в режимі реального часу та хмарна

Ми не створюємо пакетне завдання, яке виконується вночі. Шахрайство відбувається за мілісекунди. Нам потрібен рушій виведення в режимі реального часу.

Наша система складається з двох окремих конвеєрів, які подають дані в центральний рушій прийняття рішень.

Технологічний стек

  • Мова: Python 3.9+
  • Структуроване навчання: XGBoost (Extreme Gradient Boosting) та Random Forest.
  • NLP: Hugging Face Transformers (BERT) та Scikit-learn (Naïve Bayes).
  • Розгортання: Docker, Kubernetes, FastAPI.

Частина 1: Захисник транзакцій (XGBoost)

При роботі з табличними фінансовими даними (Сума, Час, Місцезнаходження, ID пристрою), XGBoost наразі є королем гори. У наших тестах він досяг 98,2% точності та 97,6% прецизійності, перевершуючи Random Forest як за швидкістю, так і за надійністю.

Виклик: незбалансовані дані

Шахрайство рідкісне. Якщо у вас 100 000 транзакцій, можливо, лише 30 є шахрайськими. Якщо ви навчите модель на цьому, вона просто вгадуватиме "Легітимно" кожного разу і досягне 99,9% точності, пропускаючи кожен випадок шахрайства.

Рішення: Ми використовуємо SMOTE (Synthetic Minority Over-sampling Technique) або зважування класів під час навчання.

План реалізації

Ось як налаштувати класифікатор XGBoost для оцінки транзакцій.

import xgboost as xgb from sklearn.model_selection import train_test_split from sklearn.metrics import precision_score, recall_score, f1_score import pandas as pd # 1. Load Data (Anonymized Transaction Logs) # Features: Amount, OldBalance, NewBalance, Location_ID, Device_ID, TimeDelta df = pd.read_csv('transactions.csv') X = df.drop(['isFraud'], axis=1) y = df['isFraud'] # 2. Split Data X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 3. Initialize XGBoost # scale_pos_weight is crucial for imbalanced fraud data model = xgb.XGBClassifier( objective='binary:logistic', n_estimators=100, learning_rate=0.1, max_depth=5, scale_pos_weight=10, # Handling class imbalance use_label_encoder=False ) # 4. Train print("Training Fraud Detection Model...") model.fit(X_train, y_train) # 5. Evaluate preds = model.predict(X_test) print(f"Precision: {precision_score(y_test, preds):.4f}") print(f"Recall: {recall_score(y_test, preds):.4f}") print(f"F1 Score: {f1_score(y_test, preds):.4f}")

Чому XGBoost перемагає:

  • Швидкість: Він обробляє табличні дані значно швидше, ніж глибокі нейронні мережі.
  • Розрідженість: Він елегантно обробляє відсутні значення (поширені при ідентифікації пристроїв).
  • Інтерпретованість: На відміну від "Чорної скриньки" нейронної мережі, ми можемо виводити важливість ознак, щоб пояснити, чому транзакцію було заблоковано.

Частина 2: Мисливець за спамом (NLP)

Шахрайство часто починається з посилання. "Натисніть тут, щоб оновити свій KYC." \n Для виявлення цього нам потрібна обробка природної мови (NLP).

Ми порівняли Naïve Bayes (легкий, швидкий) з BERT (глибоке навчання).

  • Naïve Bayes: 94,1% точності. Добре підходить для простого спаму з ключовими словами.
  • BERT: 98,9% точності. Необхідний для "контекстного" фішингу (наприклад, соціально спроектовані електронні листи, які не виглядають як спам).

План реалізації (BERT)

Для виробничого середовища ми точно налаштовуємо попередньо навчену модель Transformer.

from transformers import BertTokenizer, BertForSequenceClassification import torch # 1. Load Pre-trained BERT model_name = "bert-base-uncased" tokenizer = BertTokenizer.from_pretrained(model_name) model = BertForSequenceClassification.from_pretrained(model_name, num_labels=2) def classify_message(text): # 2. Tokenize Input inputs = tokenizer( text, return_tensors="pt", truncation=True, padding=True, max_length=512 ) # 3. Inference with torch.no_grad(): outputs = model(**inputs) # 4. Convert Logits to Probability probabilities = torch.nn.functional.softmax(outputs.logits, dim=-1) spam_score = probabilities[0][1].item() # Score for 'Label 1' (Spam) return spam_score # Usage msg = "Urgent! Your account is locked. Click http://bad-link.com" score = classify_message(msg) if score > 0.9: print(f"BLOCKED: Phishing Detected (Confidence: {score:.2%})")

Частина 3: Робочий процес "Жорсткої зупинки"

Виявлення марне без дії. Найбільш інноваційною частиною цієї архітектури є Логіка втручання.

Ми не просто реєструємо шахрайство; ми перехоплюємо шлях користувача.

Робочий процес:

  1. Користувач отримує SMS: "Оновіть спосіб оплати."
  2. Користувач натискає: Клік спрямовується через наш мікросервіс.
  3. Сканування в режимі реального часу: URL та тіло повідомлення оцінюються моделлю BERT.
  4. Точка прийняття рішення:
  • Безпечно: Користувач перенаправляється на справжній платіжний шлюз.
  • Шахрайство: З'являється попередження "Жорстка зупинка".

Примітка: На відміну від стандартних фільтрів електронної пошти, які переміщують елементи в папку "Спам", ця система розташовується між кліком та пунктом призначення, запобігаючи завантаженню користувачем шкідливого вмісту.

Ключові метрики

При розгортанні цього у виробництві "Точність" є показником марнославства. Вам потрібно стежити за Прецизійністю та Повнотою.

  • Хибні спрацьовування (падіння прецизійності): Ви блокуєте законного користувача від купівлі кави. Вони сердяться і перестають користуватися вашим додатком.
  • Хибні пропуски (падіння повноти): Ви дозволяєте хакеру спустошити рахунок. Ви втрачаєте гроші та репутацію.

У нашому дослідженні XGBoost забезпечив найкращий баланс:

  • Точність: 98,2%
  • Повнота: 95,3% (Він виявив 95% усіх шахрайств).
  • Затримка: Швидке виведення, придатне для блокування в реальному часі.

Висновок

Ера ручного перегляду шахрайства закінчилася. З вибуховим зростанням обсягів транзакцій єдиним масштабованим захистом є ШІ.

Поєднуючи XGBoost для структурованих даних транзакцій та BERT для неструктурованих комунікаційних даних, ми створюємо надійний щит, який захищає користувачів не лише від фінансових втрат, але й від соціальної інженерії, яка їм передує.

Наступні кроки для розробників:

  1. Контейнеризація: Обгорніть вищенаведені скрипти Python у Docker.
  2. Відкрийте API: Використовуйте FastAPI для створення кінцевої точки /predict.
  3. Розгортання: Відправте в Kubernetes (EKS/GKE) для можливостей автоматичного масштабування.

\ \

Ринкові можливості
Логотип RealLink
Курс RealLink (REAL)
$0,07279
$0,07279$0,07279
-%1,03
USD
Графік ціни RealLink (REAL) в реальному часі
Відмова від відповідальності: статті, опубліковані на цьому сайті, взяті з відкритих джерел і надаються виключно для інформаційних цілей. Вони не обов'язково відображають погляди MEXC. Всі права залишаються за авторами оригінальних статей. Якщо ви вважаєте, що будь-який контент порушує права третіх осіб, будь ласка, зверніться за адресою service@support.mexc.com для його видалення. MEXC не дає жодних гарантій щодо точності, повноти або своєчасності вмісту і не несе відповідальності за будь-які дії, вчинені на основі наданої інформації. Вміст не є фінансовою, юридичною або іншою професійною порадою і не повинен розглядатися як рекомендація або схвалення з боку MEXC.