Gå til indhold
atlas

Feature engineering

At omsætte rå registreringer til nyttige input for en model ved at vælge, rense, kombinere og omforme de oplysninger, den skal læse.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

Arbejdet med at bygge hver feature ud fra rådata med menneskelig viden om problemet, fx at tælle, gruppere, omsætte tekst eller datoer til tal og fjerne uhjælpsomme kolonner, udført før eller som en del af modeltræningen.

Forklaret enkelt

Som en kok, der vasker, skræller og hakker grøntsagerne, før der skal koges, fordi den samme gryde giver en langt bedre ret, når det, der kommer i, er godt forberedt.

I praksis

En bank, der bygger en model til at opdage kortsvindel, giver den ikke bare enkelte betalinger; den tilføjer nye kolonner som "antal betalinger den seneste time" og "afstand fra kundens bopæl".

Hvorfor det betyder noget

På almindelige forretningstabeller betyder gode input ofte mere end valget af model, og et skødesløst trin kan lække svaret ind i data.

Teknisk uddybning

Typiske trin i feature engineering er kodning af kategoriske variable (one-hot, ordinal eller target encoding for kolonner med mange kategorier), skalering af numeriske kolonner (standardisering, min-max-skalering), ikke-lineære transformationer (log, Box-Cox, Yeo-Johnson, kvantiler), opdeling i intervaller, polynomielle led og vekselvirkningsled, opsplitning af dato og tid (ugedag, time, helligdagsflag), aggregeringer over tidsvinduer eller grupper (antal, summer, glidende gennemsnit pr. kunde) og tekstrepræsentationer som bag-of-words eller TF-IDF. scikit-learns preprocessing-modul og ColumnTransformer dækker de fleste af dem.

Den største faldgrube er lækage. Enhver transformation, der lærer statistik fra data (en skalers middelværdi, en target encoders kategorigennemsnit, en imputers median), skal tilpasses på træningsdata alene og derefter anvendes uændret på validerings-, test- og produktionsdata; scikit-learn anbefaler at pakke forbehandling og model ind i en Pipeline, så krydsvalidering tilpasser transformationerne på ny inden for hvert fold. Aggregerede features må kun beregnes ud fra oplysninger, der er tilgængelige på forudsigelsestidspunktet, og den samme kode skal køre ved træning og i drift for at undgå training-serving skew, som Googles vejledning om produktions-ML nævner som et centralt overvågningspunkt. Feature stores findes i høj grad for at dele én definition mellem de to spor.

Domingos (2012) opsummerede den erfaringsbaserede tommelfingerregel, at de anvendte features ofte er den vigtigste faktor for, om et projekt lykkes. Deep learning flyttede meget af dette arbejde ind i modellen: foldningsnetværk og transformere lærer repræsentationer direkte fra pixels eller tokens, hvilket er kernen i representation learning (Goodfellow m.fl., kap. 15). På tabeldata er gradient boosting-træer på håndlavede features dog stadig meget konkurrencedygtige, og selv dybe pipelines afhænger af konstruktionsvalg som tokenisering, normalisering og datarensning.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. Træningsdata
  2. →Feature (inputvariabel)
  3. →Feature engineering

Relationer

Forveksl ikke med
Deep learning

Kilder og videre læsning

Officiel dokumentation

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.