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.
- Træningsdata
- →Feature (inputvariabel)
- →Feature engineering
Relationer
- Forudsætter
- Feature (inputvariabel)
- Forveksl ikke med
- Deep learning
- Bruges sammen med
- Gradient boostingDimensionsreduktion
Kilder og videre læsning
Officiel dokumentation
- scikit-learn User Guide, Preprocessing data · scikit-learn
Opslagsværker
- Machine Learning Crash Course: Production ML systems, Monitoring pipelines · Google for Developers
- Domingos (2012), A Few Useful Things to Know About Machine Learning · Communications of the ACM
Lærebøger
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…