Back to projects

Research

Class Imbalance Study

A university term paper on imbalanced classification, UNSW-NB15

Pythonscikit-learnXGBoostSMOTEUNSW-NB15Statistics

Role

Student Researcher

Duration

One term

Date

2025 - 2026

Type

University Term Paper

By the Numbers

18 runs

Experiment Grid

Friedman + CIs

Statistical Tests

81

Commits

Overview

A university term paper executed with research-grade discipline: an 18-experiment grid crossing two tasks (binary and multiclass) with three models (LR, RF, XGBoost) and three strategies (no balancing, class weighting, SMOTE) on the UNSW-NB15 dataset. Preprocessing fits only on training data to prevent leakage, seeds and config snapshots are fixed, and the results archive includes Friedman nonparametric tests, metric confidence intervals, per-class metrics, and rare-class aggregates for Worms (0.07%) and Shellcode (0.65%), moving well past raw accuracy with macro-F1, ROC-AUC, and G-Mean. A one-click Colab notebook reruns the study, and IEEE-style paper drafts with a professor review report live in the private repo.

Tech Stack

Pythonscikit-learnXGBoostSMOTEUNSW-NB15Statistics

Inside the Project

What it does, how it works, and what it ships.

help

The Question

Which class-imbalance strategy actually helps on rare attack classes, and does the answer change between binary and multiclass settings?

shield

Leakage-Proof by Construction

Preprocessing fits on training data only, with fixed seeds, exact config snapshots, and a Docker-ready structure, so results regenerate from configs rather than memory.

  • Friedman test with metric confidence intervals
  • Rare-class analysis: Worms 0.07%, Shellcode 0.65%
  • One-click Colab rerun with badge
star

Coursework Plus

MkDocs documentation tree, results tables and metrics JSON, and IEEE-style paper drafts with a professor review report. Private repo, so no code link.

Outcomes

The most statistically complete study in my portfolio, kept honestly scoped as coursework.

science

18

Controlled Runs

calculate

Friedman

Nonparametric Testing

replay

100%

Reproducible from Configs

Interested in this project?

Reach out for source code walkthroughs or collaboration.