Achievements
🔍
2024Competition
5th Place Final — Objective Quest Airnlogoy 3.0
BEM FTTM Airlangga University · National
Placed 5th in the Finals of Objective Quest Airnlogoy 3.0, hosted by BEM FTTM Airlangga University — a national data science competition with 88 competing teams. The task: multiclass classification of web network traffic into attack categories.
The problem
- Classify 416,473 network flows (43 features) into 6 traffic categories: Background, Benign, Bruteforce, Bruteforce-XML, Probing, and XMRIGCC CryptoMiner.
- Heavily imbalanced dataset — Background and Benign classes dominated, while attack classes (Bruteforce, CryptoMiner) were rare minorities.
- Many features had up to 35% missing values; several were algebraically dependent (e.g., flow_packets_per_sec = forward + backward).
- Many flag features (SYN, FIN, RST, PSH, etc.) were sparse — over 80% zero values — causing variability issues.
EDA and preprocessing
- Identified multicollinearity clusters via correlation matrix — dropped redundant features to give the model compact, non-overlapping information.
- Imputed missing values algebraically for dependent features (flow_duration = active + idle, down_up_ratio = backward/forward subflow packets).
- Binarized sparse flag features (value > 0 → 1) to preserve signal without noise from near-zero distributions.
- Created combinatorial categorical features from origin_host, origin_port, response_host, response_port (0% missing) — e.g., origin_host + response_host — to encode directional network relationships.
- Applied backward-forward feature elimination, dropping 28 features to improve model signal density.
Modeling and experiments
- Baseline: CatBoost, XGBoost, LightGBM — CatBoost best at 0.858 ± 0.01; became primary model for all experiments.
- Undersampling: manually reduced Background/Benign to 50–90% of original. Best local score 0.893 — but severely overfit on Kaggle (private score dropped significantly).
- Categorical combination: added concatenated host+port features — improved to 0.850 ± 0.002, used as base for subsequent experiments.
- Balanced Class Weight: assigned inverse-frequency weights to penalize misclassification of minority attack classes. Score: 0.855 ± 0.002.
- Tuned Class Weight: manually adjusted weights — reduced majority class penalties, boosted minority (Bruteforce ×13.7, CryptoMiner ×19.2). Best result: 0.864 ± 0.002 locally, 0.88271 private Kaggle score.
Results
- 5th place in finals, 3rd in preliminaries, among 88 teams as team LabtekV.
- Best model: CatBoost with Tuned Class Weight — public score 0.88118, private score 0.88271.
- Most important feature: host_origin_response (concatenated categorical) — directional network relationship was the strongest predictor of traffic type.
- Key finding: undersampling looked great locally but overfit badly; class weighting generalized far better to unseen data.
Links