LightGBM + perceptual features
Same single LightGBM configuration as the Single-LGB baseline, but with 33 extra perceptually-aware features bolted on to the existing 441-feature vector. The new features are mostly LAB-space encodings and gender-prototype distances. One single tree-of-trees beats the full stacked ensemble on gender AUC with this feature set.
Scores
Why this is on the leaderboard
The original 441-feature vector encodes colours in RGB and HSL. Neither of those is perceptually uniform - two colours that look equally different to a human can sit at very different distances in the model's input. LAB fixes that, and gradient-boosted trees cannot construct a non-linear sRGB-to-LAB transform from axis-aligned splits, so the new encoding genuinely adds information the model could not infer.
On top of LAB I added a "gender prototype" distance: take a handful of stereotypically girl-coded colours (light pink, hot pink, light purple, red) and boy-coded colours (bright blue, sky blue, green, dark gray), average each set in LAB, and compute Delta-E from the user's picks to each prototype centroid. This is the kind of prior knowledge a tree cannot invent on its own, even from rich features.
The 33 new features
Five blocks of features, all added to the base 441-vector:
- Final pick LABL*, a*, b* of the chosen colour (3 features)
- r1 LAB statsMean and std of L*, a*, b* across the 16 round-1 winners (6)
- r2 LAB statsMean and std of L*, a*, b* across the 4 round-2 winners (6)
- Offered LAB statsMean and std of L*, a*, b* across all 64 offered colours (6)
- Gender prototypeDelta-E from final / r1 picks to girl-prototype and boy-prototype centroids, plus log-ratio of distances (5)
- Question difficultyWithin-group offered diversity (mean and std), plus chosen-vs-rejected delta normalised by group spread (4)
- Time anomaliesFraction of rushed (under 1s) and dwelled (over 7s) questions, coefficient of variation of timings (3)
Which new features actually matter
Gain-based importance from a full-data LightGBM fit on gender. Ranks are out of all 474 features. Star marks new ones.
| Rank | Feature | Gain | Note |
|---|---|---|---|
| ★ 1 | r1_lab_b_std | 10,689 | blue-yellow spread across r1 picks |
| 2 | sel_r1_dr | 4,045 | r1 mean red - offered mean red |
| ★ 3 | r1_to_girl_proto_mean | 3,234 | mean Delta-E from r1 to girl-prototype |
| ★ 4 | r1_relative_decisive_mean | 3,102 | decisiveness / group difficulty |
| 5 | r1_l_mean | 2,769 | r1 mean lightness (HSL) |
| ★ 10 | off_lab_b_std | 997 | offered colours b* spread |
| ★ 17 | r1_relative_decisive_std | 661 | variability of relative decisiveness |
| ★ 20 | r1_lab_L_mean | 618 | r1 mean lightness (LAB) |
Five of the top 20 features are new, including the single highest-gain
feature across all 474. r1_lab_b_std is interesting: it captures
how much the user's 16 round-1 picks vary along the blue-yellow axis. A
small std means the user stayed on one side of the b* spectrum - i.e.
consistently "blue-ish" or consistently "pink/yellow-ish" - which is
exactly the perceptual signal the gender task is trying to extract.
Less interesting: the single-colour LAB features for the final pick
(final_lab_L, final_lab_a, final_lab_b)
all land outside the top 350. The redundancy with existing
final_h, final_s, final_l features
is too high to add much. The aggregates and the prototype distances are
where the gains actually live.
Configuration
- Feature vector441 base features (full list) + 33 perceptual extras
- ModelSingle LightGBM, identical config to the Single-LGB baseline row
- Hyperparametersn_estimators=800/1000, num_leaves=63, learning_rate=0.03, feature_fraction=0.8, bagging_fraction=0.8, bagging_freq=5, min_child_samples=20, reg_lambda=1.0
- Objectivebinary (gender) · regression / L2 (age, mood)
- CV5-fold StratifiedKFold for gender, KFold for age and mood, seed 42