Skip to content

Credit Card Fraud Detection

Fraud datasets are usually highly imbalanced.

You will:

  • Explore class imbalance
  • Check feature distributions
  • Build a baseline model evaluation plan
diagram Fraud detection analysis pipeline mermaid
From raw transactions to a metric that actually matters for imbalanced data.
Load
import pandas as pd
 
df = pd.read_csv("data/fraud.csv")
print(df.shape)
print(df.head())
Imbalance
print(df["fraud"].value_counts())
print(df["fraud"].value_counts(normalize=True))
Feature distribution
import seaborn as sns
import matplotlib.pyplot as plt
 
# Example: compare one feature by class
feature = "amount"
 
plt.figure(figsize=(7, 4))
sns.kdeplot(data=df, x=feature, hue="fraud", common_norm=False)
plt.title(f"{feature} distribution by class")
plt.tight_layout()
plt.show()
sketch Class imbalance: legit vs fraud p5.js
The fraud bar is intentionally tiny - that is the whole challenge of this dataset.

For fraud, accuracy is misleading.

Prefer:

  • Precision / Recall
  • F1 score
  • ROC-AUC
  • PR-AUC
  • How imbalanced is the dataset?
  • Which features differ between classes?
  • What metric will you optimize?

pch.coffeeTagline

pch.coffeeCta

pch.feedbackHeading

pch.feedbackSubheading