Tilbake til AI-arkitekturleaderboard
hobby Color polygraph · feature engineering 441 features per sesjon

Feature engineering

De trebaserte arkitekturene på leaderboardet konsumerer alle den samme 441-dims vektoren bygget av features.py. Sekvensmodellene gjør det ikke – de reparserer den rå sesjonen og bygger sine egne per-stegs-embeddings – men rensereglene nedenfor avgjør hvilke sesjoner som inngår i noen av rørledningene.

Oversikt

Features per sesjon
441
alle numeriske, alle float32
Rene sesjoner
6 710
av ~6 800 råd rader
Feature-blokker
15
gruppert etter hva de beskriver

Slik ser råinndataene ut

Hver rad i save.ligma beskriver én sesjon. En sesjon er et 21-stegs eliminasjonsturnerning:

Lagrede felt per rad: en id, et UNIX-tidsstempel, en sensurert IP, alder (år), humør (0–60), kjønn, den 21-tegnede valgstrengen, de 21 kumulative millisekund-tidsstemplene og farge-arrayene [64 tilbudte, 16 r1-vinnere, 4 r2-vinnere, finale].

Valideringsregler

En rad inngår i datasettet bare hvis den består alle disse sjekkene (se is_valid() i features.py). De samme reglene er duplisert i hvert sekvensmodell-skript slik at treningssettene er identiske:

Omtrent 1.2% av råradene feiler disse sjekkene. Resten blir det 6 710-rads datasettet alle modellene på leaderboardet trenes på.

Feature-blokker

Hopp til en blokk:

36 features

Per-stadium fargesammendragsstatistikk

Gjennomsnitt og standardavvik av R, G, B, H, S, L (12 tall) over hvert av de tre farge-stadiene: de 64 tilbudte fargene, de 16 runde-1-vinnerne og de 4 runde-2-vinnerne. Fanger ting som "denne brukeren graviterer mot mørke mettede farger" uten å forplikte seg til hvilke dimensjoner som faktisk betyr noe.

off_*, r1_*, r2_* med suffikser r_mean g_mean b_mean r_std g_std b_std h_mean s_mean l_mean h_std s_std l_std.

11 features

Endelig farge

Fargen brukeren til slutt valgte, kodet redundant slik at trærne kan splitte på hvilken som helst fargerom som tilfeldigvis er informativt.

final_r, final_g, final_b (RGB, 0–1) · final_h, final_s, final_l (HSL) · final_y, final_u, final_v (YUV) · final_warmth = (R−B) / 255 · final_chroma = (maks−min) / 255.

6 features

Selektivitetsdeltas

Hvor mye runde-1-gjennomsnittfargen avviker fra tilbudt-sett-gjennomsnittet, per kanal, og hvor mye runde-2-gjennomsnittet avviker fra runde-1-gjennomsnittet. Et stort positivt sel_r1_dr betyr "denne brukeren skjøv utvalget mot rødere farger når de fikk sjansen".

sel_r1_dr, sel_r1_dg, sel_r1_db, sel_r2_dr, sel_r2_dg, sel_r2_db.

2 features

Voxel-diversitet

Hvor mange distinkte 8×8×8 RGB-voxler runde-1- og runde-2-vinnerne sprer seg over, normalisert med henholdsvis 16 og 4. Nær 1.0 betyr at brukeren plukket over hele fargerommet; nær 0.0 betyr at de holdt seg i ett nabolag.

voxel_div_r1, voxel_div_r2.

1 feature

Runde-1 intern spredning

Gjennomsnittlig parvis euklidsk avstand mellom de 16 runde-1-vinnerne i normalisert RGB. En annen variant av "holdt denne brukeren seg nær én farge eller vandret de rundt?".

r1_internal_spread.

208 features · 13 per spørsmål × 16 spørsmål

Per runde-1-spørsmål

For hvert av de 16 runde-1-spørsmålene får modellen et fullstendig bilde av hva som var på skjermen og hva brukeren valgte. Per spørsmål (q00 til q15):

qNN_chosen_* — den samme 8-tallsfargeblokken som "Endelig farge"-gruppen (r, g, b, h, s, l, warmth, chroma) men for fargen brukeren valgte i spørsmål NN.
qNN_dr, qNN_dg, qNN_db — kanalvis delta fra den valgte fargen til gjennomsnittet av de tre avviste fargene.
qNN_decisive — lengden av den delta-vektoren. Høy = den valgte fargen var veldig forskjellig fra de avviste.
qNN_pos — hvilket av de 4 hjørnene (0–3) den valgte fargen befant seg i.

2 features

Besluttsomhetsaggregat

Gjennomsnitt og standardavvik av de 16 per-spørsmåls-besluttsomhetsstørrelsene. Et enkelt sammendrag av "hvor sterke er denne brukerens preferanser?".

mean_decisiveness, std_decisiveness.

36 features · 9 per spørsmål × 4 spørsmål

Per runde-2-spørsmål

Samme fargeblokk som runde-1 pluss hjørnepositionen brukeren valgte, for hvert av de 4 runde-2-spørsmålene. Ingen "delta fra avviste" her fordi i runde 2 var alle alternativene allerede godkjent i runde 1, så deltaet er mindre informativt.

r2qN_chosen_* (r, g, b, h, s, l, warmth, chroma), r2qN_pos.

5 features

Posisjonsvalg-aggregat

Hvilken andel av de 16 runde-1-valgene landet i hvert av de fire hjørneplasseringene, pluss Shannon-entropien til den fordelingen. Kjedelige barn trykker på samme hjørne; engasjerte brukere sprer seg ut.

pos_0_frac, pos_1_frac, pos_2_frac, pos_3_frac, pos_entropy.

64 features · 4×4×4 voxel-gitter

Runde-1 voxel-histogram

De 16 runde-1-vinnerne binnet inn i et 4×4×4 RGB-voxel-gitter (så hvert bin har 64-kubikanter), deretter hvert bin delt på 16. Trær elsker denne typen tette lavopp­løsningshistogrammer for å plukke ut "denne brukeren foretrekker den mørkeblå delen av fargerommet".

hist_v00 til hist_v63.

13 features · 12 avstander + nærmeste

Referansefargeav­stander

Euklidsk avstand i normalisert RGB fra finale-valg-fargen til hver av 12 håndplukkede referansefarger (rosa, rød, oransje, gul, grønn, cyan, blå, lilla, brun, grå, svart, hvit), pluss indeksen til den nærmeste. Poenget er å gi modellen et forsprang på å karte fargerommet langs akser som allerede betyr noe for mennesker, uten å tvinge modellen til å oppdage "nær rosa" fra rå RGB.

final_to_pink, final_to_red, ..., final_to_white, final_closest_ref.

2 features

Finale-til-runde-gjennomsnitt

Avstand i normalisert RGB fra finalevelget til runde-1-vinnergjennomsnittet, og fra finalevelget til runde-2-vinnergjennomsnittet. Konvergerte brukeren gjennom turneringen, eller valgte de noe utenom-trend til slutt?

final_to_r1_mean, final_to_r2_mean.

6 features

Runde-1-bane

Behandler de 16 runde-1-vinnerne som en sti gjennom RGB-rommet. Gjennomsnitt og std av steg-til-steg-avstand, gjennomsnittlig avstand til sentroiden, og stigningstall for varme, lyshet og metning over spørsmålsindeks. Plukker opp drifter som "ble trøtt og begynte å klikke blått".

r1_consec_mean, r1_consec_std, r1_centroid_mean_dist, r1_warmth_slope, r1_light_slope, r1_sat_slope.

6 features

Ekstremvalg-tellinger

For hvert runde-1-spørsmål: var den valgte fargen den varmeste / kuleste / lyseste / mørkeste / mest-mettede / minst-mettede av de 4 tilbudte? Hver feature er andelen av de 16 spørsmålene der svaret er ja.

extreme_warmest_frac, extreme_coolest_frac, extreme_lightest_frac, extreme_darkest_frac, extreme_most_sat_frac, extreme_least_sat_frac.

5 features

Runde-1 tids-buckets

Per-spørsmåls-tidsdeltas for de 16 runde-1-spørsmålene binnet i fem buckets: under 1s, 1–3s, 3–7s, 7–15s, 15s+. Hver verdi er en andel som summerer til ~1. Plukker opp "skummer vs leser"-mønstre.

r1_tbucket_0 til r1_tbucket_4.

2 features

Tid × atferdsinteraksjoner

To håndlagede interaksjoner som trærne kanskje ville konstruere på egenhånd til slutt, men som er nyttig å mate dem direkte:

time_x_low_entropy = gjennomsnittlig spørsmålstid × (1 − posisjons-entropi / log 4). Høy = langsom og konsentrert plukking, "bevisst hjørneklikker"-signalet.
time_per_decisive = gjennomsnittlig spørsmålstid / (gjennomsnittlig besluttsomhet + 50). Hvor mye tid brukeren bruker per preferanseenhet.

12 features

Tidssammendrag

Aggregatstatistikk over de 21 per-spørsmåls-tidsdeltas pluss runde- gjennomsnittene og det lineære stigningstallet over hele sesjonen.

total_sec, mean_q_ms, std_q_ms, min_q_ms, max_q_ms, median_q_ms, first5_mean_ms, last5_mean_ms, time_slope, r1_mean_ms, r2_mean_ms, final_ms.

21 features

Per-spørsmål råtider

Den rå tiden brukt på hvert av de 21 spørsmålene, i sekunder.

t_q00 til t_q20.

3 features

Time på dagen

Tidspunktet sesjonen ble registrert, kodet som sinus og cosinus av brøktimedelen i Oslo-tid (slik at midnatt og middag ikke er tilstøtende i feature-rommet). hour_known-flagget er 0 når tidsstempel- parsingen feilet, noe som lar trærne behandle ukjent-time-sesjoner separat.

hour_sin, hour_cos, hour_known.

Utdatafiler

Å kjøre python features.py skriver tre filer til training/ som alle trebaserte arkitekturer laster:

Prosjektlenker

Tilbake til AI-arkitekturleaderboard