धोखाधड़ी सिर्फ एक परेशानी नहीं है; यह $12.5 बिलियन का उद्योग है। 2024 FTC डेटा के अनुसार, धोखाधड़ी से होने वाले नुकसान में भारी वृद्धि हुई है, जिसमें अकेले निवेश घोटाले कुल का लगभग आधा हिस्सा हैं।
डेवलपर्स और सिस्टम आर्किटेक्ट्स के लिए, चुनौती दोहरी है:
पारंपरिक नियम-आधारित सिस्टम ("यदि राशि > $10,000, तो फ्लैग करें") बहुत नाजुक हैं। वे फॉल्स पॉजिटिव उत्पन्न करते हैं और विकसित होते हमले के वेक्टर्स को याद करते हैं।
इस इंजीनियरिंग गाइड में, हम एक द्वि-स्तरीय रक्षा प्रणाली बनाएंगे। हम लेनदेन निगरानी के लिए एक उच्च-गति XGBoost मॉडल और स्पैम पहचान के लिए एक BERT-आधारित NLP इंजन लागू करेंगे, इन सभी को क्लाउड-नेटिव माइक्रोसर्विस आर्किटेक्चर में लपेटेंगे।
आइए बनाएं।
हम रात भर चलने वाला बैच जॉब नहीं बना रहे हैं। धोखाधड़ी मिलीसेकंड में होती है। हमें एक रियल-टाइम अनुमान इंजन की आवश्यकता है।
हमारी प्रणाली में दो अलग-अलग पाइपलाइन हैं जो एक केंद्रीय निर्णय इंजन में फीड करती हैं।
टैबुलर वित्तीय डेटा (राशि, समय, स्थान, डिवाइस आईडी) से निपटते समय, XGBoost वर्तमान में शीर्ष पर है। हमारे बेंचमार्क में, इसने 98.2% सटीकता और 97.6% प्रिसिजन हासिल की, जो गति और विश्वसनीयता दोनों में रैंडम फॉरेस्ट से बेहतर प्रदर्शन करता है।
धोखाधड़ी दुर्लभ है। यदि आपके पास 100,000 लेनदेन हैं, तो शायद केवल 30 धोखाधड़ी वाले हैं। यदि आप इस पर एक मॉडल प्रशिक्षित करते हैं, तो यह हर बार "वैध" का अनुमान लगाएगा और 99.9% सटीकता प्राप्त करेगा, जबकि हर एक धोखाधड़ी के मामले को याद करेगा।
समाधान: हम प्रशिक्षण के दौरान SMOTE (सिंथेटिक माइनॉरिटी ओवर-सैंपलिंग तकनीक) या क्लास वेटिंग का उपयोग करते हैं।
यहां बताया गया है कि लेनदेन स्कोरिंग के लिए 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 क्यों जीतता है:
धोखाधड़ी अक्सर एक लिंक से शुरू होती है। "अपना KYC अपडेट करने के लिए यहां क्लिक करें।" \n इसका पता लगाने के लिए, हमें नेचुरल लैंग्वेज प्रोसेसिंग (NLP) की आवश्यकता है।
हमने नाइव बेज़ (हल्का, तेज़) की तुलना BERT (डीप लर्निंग) से की।
प्रोडक्शन एनवायरनमेंट के लिए, हम एक पूर्व-प्रशिक्षित ट्रांसफॉर्मर मॉडल को फाइन-ट्यून करते हैं।
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%})")
कार्रवाई के बिना पहचान बेकार है। इस आर्किटेक्चर का सबसे नवीन हिस्सा इंटरवेंशन लॉजिक है।
हम सिर्फ धोखाधड़ी को लॉग नहीं करते; हम उपयोगकर्ता की यात्रा को रोकते हैं।
वर्कफ्लो:
नोट: मानक ईमेल फिल्टर के विपरीत जो आइटम को जंक फोल्डर में ले जाते हैं, यह सिस्टम क्लिक और गंतव्य के बीच बैठता है, जिससे उपयोगकर्ता को कभी भी दुर्भावनापूर्ण पेलोड लोड करने से रोकता है।
जब इसे प्रोडक्शन में डिप्लॉय करते हैं, तो "सटीकता" एक वैनिटी मेट्रिक है। आपको प्रिसिजन और रिकॉल पर नज़र रखने की आवश्यकता है।
हमारे शोध में, XGBoost ने सबसे अच्छा संतुलन प्रदान किया:
मैनुअल धोखाधड़ी समीक्षा का युग समाप्त हो गया है। लेनदेन की मात्रा में विस्फोट के साथ, एकमात्र स्केलेबल बचाव AI है।
संरचित लेनदेन डेटा के लिए XGBoost और असंरचित संचार डेटा के लिए BERT को जोड़कर, हम एक मजबूत ढाल बनाते हैं जो उपयोगकर्ताओं को न केवल वित्तीय नुकसान से बचाता है, बल्कि उस सामाजिक इंजीनियरिंग से भी जो इससे पहले होती है।
डेवलपर्स के लिए अगले कदम:
\ \


