Tilbake til AI-arkitekturleaderboard
hobby Color polygraph · arkitekturdetalj Beste kjønn-AUC, 2026

LightGBM + bucket-skårer

Samme enkle LightGBM som varianten med perseptuelle features, pluss mål-enkodede fargebucket-skårer slått opp trilineært over et 8×8×8 RGB-gitter. Det signerte kjønn-bucket-totalet er den enkeltfeature med høyest gain i hele inputvektoren. Ny topp i kjønnskolonnen.

Resultater

Kjønn AUC
0.881
+0.003 vs kun perseptuell
Alder MAE
6.89
-0.03 vs kun perseptuell
Humør MAE
8.91
+0.04 vs kun perseptuell

Slik fungerer bucket-skårene

RGB-rommet deles inn i et 8×8×8 gitter av 32-brede kuber, med bucketsentre ved RGB-verdier 16, 48, 80, ..., 240. For hver sesjon bygger vi en 512-dims signert delta-vektor som fanger både fargene brukeren valgte og fargene de avslo:

Per CV-fold (StratifiedKFold for kjønn, KFold for regresjonshodene, seed 42) gjennomsnittes diskrete delta-vektorer over treningsradene i hver klasse / målverdi for å bygge per-bucket-skåregitter:

Oppslag bruker trilineær interpolasjon: hver farges bidrag fordeles over de 8 bucketsentrene rundt den i RGB-rommet, med vekter som summerer til 1. En farge nøyaktig på et bucketsenter lander helt i den bucketen; en farge midt mellom to tilstøtende sentre deler 50/50; en farge midt i den 8-hjørnede kuben deler åttedeler. Per-sesjons-featuren er deretter smooth_delta @ grid, som matematisk tilsvarer "slå opp hvert events interpolerte gitterverdi, vekt med +0.229 eller -0.1 avhengig av om fargen ble valgt, summer over sesjonen".

Kritisk: gitterne bygges med kun treningsrader i gjeldende fold, slik at en sesjons bucket-deriverte features aldri avhenger av sin egen etikett – standardsikringen mot mål-enkodingslekkasje.

Hva dataene fant på egenhånd

Bucketene med høyest feminin-vs-maskulin lead, beregnet fra hele datasettet:

RGB-senter Lead
(240, 176, 208)+0.0190
(208, 176, 208)+0.0174
(240, 144, 176)+0.0154
(208, 176, 240)+0.0152
(208, 144, 208)+0.0150

Og de mest maskulint-lente:

RGB-senter Lead
(48, 16, 240)-0.0161
(48, 48, 240)-0.0138
(48, 48, 208)-0.0136
(80, 240, 48)-0.0136
(16, 48, 176)-0.0133

Dataene identifiserer de samme kjønnskodede klyngene som mennesker ville: rosa og lyse lilla lener seg feminint, sterke og mørke blå lener seg maskulint. Uteliggeren er en enkelt sterk grønn (80, 240, 48) – en guttefarge prototypemodellen min ikke fanget opp.

Aldersgitteret er like skarpt. Buckets som best forutsier over-gjennomsnittlig alder er mørke og dempede: mørk blå (80, 80, 208), mørk lilla (80, 48, 144), mørk grønn (16, 112, 16). Buckets som forutsier under-gjennomsnittlig alder er pasteller og sterke farger: lys rosa (240, 208, 240), lys cyan (112, 208, 240), hvit (240, 240, 240). Barn velger lyse og mettede farger, voksne velger dempede – og modellen finner det ut fra fargevelgene alene, uten håndkoding.

Feature-viktighet

Gain-basert viktighet fra en full-data LightGBM på kjønn. De tre kjønn-bucket-featurene dominerer fullstendig toppen av listen (* = ny feature fra dette eksperimentet, alle rangeringer av 477).

Rangering Feature Gain
★ 1signed_total27 326
★ 3girly_total1 789
★ 6masc_total1 119

signed_total alene bærer gain 27 326 – mer enn 2.5× den nest-beste featuren (r1_lab_b_std med 10 689) og mer enn 15× den neste individuelle bucket-featuren. Den signerte differansen er den informasjonstette fordi den fanger kjønnsretningen med basispopulariteten delt ut.

Hurtigoppslagstabell

Etter CV fitter skriptet også de fire gitterne på hele datasettet og skriver dem til bucket_scores.npz. Alle med den filen pluss konverteringskonstantene kan skåre en ny sesjon uten å kjøre trening på nytt: bucket en farges RGB inn i gitteret, slå opp skåren med trilineær interpolasjon, multipliser med +0.229 eller -0.1 avhengig av om fargen ble valgt, summer over sesjonen. Fire tall kommer ut per sesjon – girly_total, masc_total, age_total, mood_total – og de alene holder det meste av det den større modellen bruker til å diskriminere.

Konfigurasjon

Prosjektlenker

Tilbake til AI-arkitekturleaderboard