1. Kas yra „feature engineering“?
„Feature engineering“ (jis dar vadinamas požymių inžinerija) – tai procedūra, kai žaliuos duomenis (raw data) transformuojate į tokias savybes (features), kurios geriau atspindi underlying problemą, kurią sprendžiate, ir taip pagerina prognozavimo modelio našumą. MachineLearningMastery.com+1
Svarbu: tai nėra tik automatinis procesas — tai dalinai menas, dalinai inžinerija. MachineLearningMastery.com
Pavyzdžiui: Jeigu turite duomenis apie klientų pirkimus, galite išskaičiuoti papildomas savybes („kiek kartų pirko per paskutinius 3 mėn.“, „vidutinė pirkimo suma“ ir t. t.), kurios modelio treniruotėje gali padėti geriau atskirti klientus pagal riziką ar potencialą.
2. Kodėl tai svarbu?
- Geros savybės leidžia naudoti paprastesnius modelius, bet su geresniais rezultatais. MachineLearningMastery.com+1
- Jūsų modelio rezultatas yra priklausomas ne tik nuo algoritmo, bet labai stipriai — nuo to, kokios savybės yra jūsų duomenyse. MachineLearningMastery.com+1
- Net turint „neidealų“ modelį ar neoptimalias hiperparametrus, geros savybės gali sumažinti klaidų riziką.
3. Kur ši sritis įsitaiso mašininio mokymosi procese?
Duomenų projektai dažnai vyksta tokia seka:
- Apibrėžiate problemą
- Atrenkate / surenkate duomenis
- Išvalote / paruošiate duomenis (preprocessing)
- Transformuojate duomenis (feature engineering)
- Modeliuojate, testuojate ir optimizuojate modelius. MachineLearningMastery.com
Svarbu: „feature engineering“ nėra vienkartinis — tai iteratyvus procesas. Grįžtate atgal, matote modelio našumą, apžvelgiate savybes, generuojate naujas, pašalinate silpnas, vėl testuojate. MachineLearningMastery.com
4. Pagrindinės „feature engineering“ sub-sritys
Straipsnyje autorius išskiria keletą dalių: MachineLearningMastery.com
- Feature selection (požymių atranka) – iš daugybės savybių išrinkti naudingas, pašalinti nesvarbias ar labai koreliuojančias. MachineLearningMastery.com
- Feature extraction (požymių išgavimas) – automatinės technikos, pvz., PCA, klasterizacija, kai iš didelio požymių skaičiaus kuriama mažesnė požymių aibė. MachineLearningMastery.com
- Feature construction (požymių konstravimas) – rankinis savybių kūrimas, derinimas, skaidymas iš žaliųjų duomenų. MachineLearningMastery.com
- Feature learning (požymių išmokimas) – pvz., giliojo mokymosi atveju, kai modelis pats išmoko savybes, bet dažnai jos būna juodojo langelio forma. MachineLearningMastery.com
5. Konkrečios technikos / pavyzdžiai
Kelios technikos, kurias galima pritaikyti:
5.1. Kategorinių atributų dekompozicija
Pvz.: turite stulpelį „Item_Color“ su reikšmėmis [„Red“, „Blue“, „Unknown“]. Galite sukurti:
- „Has_Color“ (0/1) – ar yra spalva (ne „Unknown“)
- „Is_Red“, „Is_Blue“, „Is_Unknown“ – binariniai indikatoriai. MachineLearningMastery.com
Šios savybės gali padėti paprastesniam modeliui geriau „matuoti“ kategorijas.
5.2. Laiko–datos atributų išskleidimas
Jeigu turite stulpelį su datos–laiko reikšme (pvz., 2024-09-20T20:45:40Z), galite sukurti:
- „Hour_of_Day“ – valanda
- „Part_of_Day“ – rytas, diena, vakaras, naktis
- „Day_of_Week“, „Month“, „Season“ ir pan. MachineLearningMastery.com
Tai ypač naudinga, kai yra laiko priklausomybių (pvz., pirkimų laikas, dienos ciklai).
5.3. Skaitinių atributų perframingas
Pvz., turite „Item_Weight“ gramais – sukurkite „Item_Weight_kg“ arba „Item_Above_4kg“ (binariškai). MachineLearningMastery.com
Taip pat: jei turite agreguotą reikšmę per metus („Num_Customer_Purchases_per_year“), galite ją suskaidyti į „pirkimų_suma_pavasaris“, „pirkimų_suma_ruduo“ ir pan. MachineLearningMastery.com
6. Praktiniai žingsniai — kaip pradėti
Remiantis straipsniu, galite sekti tokį workflow: MachineLearningMastery.com
- Idėjos generavimas („brainstorm“) – gilinkitės į duomenis, supraskite problemą, pažiūrėkite, kaip kiti sprendė panašius atvejus.
- Savybių kūrimas – rankinis konstravimas, automatiniai metodai, mišrios strategijos.
- Savybių atranka / testingas – pasirinkite vieną ar kelis savybių rinkinius, įvertinkite modelio našumą.
- Modelio vertinimas – pasirinkite gerą testavimo aplinką (train/test split, cross‐validation), kad objektyviai matytumėte našumą su naujomis savybėmis.
- Iteracija – grįžkite į ankstesnius žingsnius, keiskite / tobulinkite savybes, kol pasieksite našumo ribą arba laikas baigsis.
7. Kaip tobulėja „feature engineering“ įgūdžiai?
- Praktika: reguliariai eksperimentuokite su skirtingais duomenų rinkiniais, spręskite realias problemas.
- Studijos: skaitykite gerų pavyzdžių — ypač konkurencijose (pvz., KDD Cup 2010) naudojamų metodų aprašymus. MachineLearningMastery.com
- Refleksija: stebėkite, kurios savybės veikia, kurios – ne; kodėl vienos duomenų reprezentacijos geresnės už kitas.
8. Taikymas jūsų kontekste
Kadangi jūs dirbate su medijos planavimo, duomenų segmentavimo, influenceriais, reklamos pasiekimu ir pan., galite „feature engineering“ pritaikyti taip:
- Išskirkite savybes iš medijos naudotojų duomenų: pvz., „kiek kartų klausė radiją per savaitę“, „kiek procentų video žiūrėjo iki galo“, „influencerių aktyvumo laikas“ ir pan.
- „Temporal“ savybės: reklamos kampanijos laikas, sezoniškumas (šventės, savaitės diena) – gali būti savybės.
- Kategorinių savybių dekompozicija: vartotojo tipas, regionas, platforma – vektorizuokite jas.
- Skaitinės savybės: vidutinė sesijos trukmė, peržiūrų skaičius, sąveikos norma – transformuokite į „didelis / vidutinis / mažas“, logaritmu ar kita forma.