PayWave processes millions of card transactions per day and wants a fraud detection model to score transactions before approval. Fraud is rare, but missed fraud is expensive, while too many false positives create customer friction and declined legitimate payments.
You are given a historical transaction dataset for supervised binary classification.
| Feature Group | Count | Examples |
|---|---|---|
| Transaction attributes | 12 | amount, merchant_category, entry_mode, card_present, currency |
| Customer behavior | 9 | avg_txn_amount_7d, txn_count_24h, chargeback_count_90d |
| Merchant risk | 6 | merchant_fraud_rate_30d, merchant_country, terminal_age_days |
| Temporal & geo | 7 | hour_of_day, day_of_week, billing_shipping_distance_km |
| Device & channel | 8 | device_id_hash, browser_type, app_version, ip_risk_score |
is_fraud where 1 = fraudulent transaction, 0 = legitimate transactionA strong solution should improve fraud capture materially over a majority-class baseline and be evaluated with metrics appropriate for severe class imbalance. Good enough means achieving recall >= 70% at precision >= 20% on the fraud class, with PR-AUC > 0.18 on a held-out test set.