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:

  1. Apibrėžiate problemą
  2. Atrenkate / surenkate duomenis
  3. Išvalote / paruošiate duomenis (preprocessing)
  4. Transformuojate duomenis (feature engineering)
  5. 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

  1. Idėjos generavimas („brainstorm“) – gilinkitės į duomenis, supraskite problemą, pažiūrėkite, kaip kiti sprendė panašius atvejus.
  2. Savybių kūrimas – rankinis konstravimas, automatiniai metodai, mišrios strategijos.
  3. Savybių atranka / testingas – pasirinkite vieną ar kelis savybių rinkinius, įvertinkite modelio našumą.
  4. Modelio vertinimas – pasirinkite gerą testavimo aplinką (train/test split, cross‐validation), kad objektyviai matytumėte našumą su naujomis savybėmis.
  5. 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.

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *