Skip to content
Back to skills

Skill Imbalanced Data

ASecurity

Decision checklist for handling imbalanced classification problems. Use when you need help with skill imbalanced data.

  • 9 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
developmentgoperformance

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add anubhavg-icpl/vibe --skill skill-imbalanced-data --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skill Imbalanced Data?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Skill Imbalanced Data
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/anubhavg-icpl-skill-imbalanced-data/badge)](https://www.skillsdirectory.com/skills/anubhavg-icpl-skill-imbalanced-data)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: skill-imbalanced-data
description: Decision checklist for handling imbalanced classification problems. Use when you need help with skill imbalanced data.
license: CC-BY-NC-SA-4.0
phase: 2
lesson: 17
metadata:
  version: 1.0.0
  tags: [imbalanced-data, smote, class-weights, threshold-tuning, evaluation]
---

# Imbalanced Data Strategy

A decision checklist for handling imbalanced classification. Follow this sequence to pick the right approach for your problem.

## Step 1: Measure the imbalance

- Count samples per class
- Compute the imbalance ratio (majority / minority)
- Mild: ratio < 3:1 (e.g., 70/30)
- Moderate: ratio 3:1 to 20:1 (e.g., 95/5)
- Severe: ratio > 20:1 (e.g., 99/1)

## Step 2: Pick the right metric

Prefer precision/recall/F1 over accuracy for imbalanced datasets. Choose based on your problem:

| Situation | Primary Metric | Secondary Metric |
|-----------|---------------|-----------------|
| Missing positives is very costly (fraud, disease) | Recall | F2 score |
| False alarms are costly (spam filter, recommendations) | Precision | F0.5 score |
| Both matter roughly equally | F1 score | MCC |
| Need a single ranking metric | AUPRC | AUC-ROC |
| Need to compare across datasets | MCC | AUPRC |

## Step 3: Choose a rebalancing strategy

### By imbalance severity

| Imbalance | First Try | Second Try | Avoid |
|-----------|-----------|------------|-------|
| Mild (< 3:1) | Class weights | Threshold tuning | Oversampling (unnecessary) |
| Moderate (3:1 to 20:1) | SMOTE + class weights | Threshold tuning on top | Undersampling (too much data loss) |
| Severe (> 20:1) | SMOTE + class weights + threshold | Ensemble with balanced bagging | Undersampling alone |

### By dataset size

| Dataset Size | Preferred Strategy | Reason |
|-------------|-------------------|--------|
| < 1,000 samples | Oversampling or SMOTE | Cannot afford to lose majority data |
| 1,000 - 10,000 | SMOTE + threshold tuning | Enough minority samples for k-NN |
| > 10,000 | Class weights or undersampling | Fast, sufficient minority data |

## Step 4: Apply the technique

### Class weights (always try first)
- In sklearn: `class_weight='balanced'`
- No data modification needed
- Works with any loss-based model
- Equivalent to oversampling in expectation

### SMOTE
- Apply only to training data (never test/validation)
- Use k=5 neighbors (default)
- Combine with class weights for best results
- Watch for noisy synthetic points near the boundary

### Threshold tuning
- Train model, get predicted probabilities on validation set
- Sweep thresholds from 0.05 to 0.95
- Pick threshold maximizing your chosen metric
- Always tune on validation data, never test data

## Step 5: Validate properly

- Use stratified cross-validation (preserves class ratios in each fold)
- Report metrics on the original (non-resampled) test set
- Never apply SMOTE before splitting -- only on training folds
- Compare against the "always predict majority" baseline

## Step 6: Common mistakes to avoid

- Applying SMOTE to the entire dataset before train/test split (data leakage)
- Using accuracy as the evaluation metric
- Not trying class weights first (simplest approach, often sufficient)
- Oversampling and then cross-validating (synthetic points leak across folds)
- Ignoring threshold tuning (free performance, no retraining needed)
- Using random undersampling on small datasets (throws away too much data)

## Quick Decision Tree

1. Is the imbalance ratio < 3:1? -> Try class weights only
2. Is the dataset > 10,000 samples? -> Class weights + threshold tuning
3. Is the dataset < 1,000 samples? -> SMOTE + class weights
4. Otherwise -> SMOTE + class weights + threshold tuning
5. Still not good enough? -> Balanced bagging ensemble

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.