Middle
Kaip kovoti su datalakes naudojant target encoding?
sobes.tech AI
Atsakymas iš AI
Duomenų nutekėjimas (data leakage) taikant tikslinio kodavimo (target encoding) metu įvyksta, kai informacija iš tikslinės kintamosios prasiskverbia į požymius, kas sukelia modelio per didelį pritaikymą.
Siekiant kovoti su duomenų nutekėjimu taikant tikslinio kodavimo metodą, naudojami šie būdai:
- Kryžminė validacija koduojant: kiekvienam foldui apskaičiuoti tikslinio kodavimo reikšmę, naudojant tik kitų foldų duomenis, išskyrus esamą foldą.
- Slydimas (smoothing): sujungti kategorijos tikslinės kintamosios vidurkį su bendruoju vidurkiu, siekiant sumažinti retų kategorijų įtaką.
- Triukšmo pridėjimas: pridėti atsitiktinį triukšmą prie koduotų reikšmių, siekiant sumažinti per didelį pritaikymą.
- Naudoti atskirą treniruočių rinkinį: skaičiuoti kodavimą tik treniruočių duomenyse ir vėliau taikyti testavimo duomenims.
Pavyzdys su slydimu:
# Pseudokodas
mean_global = target.mean()
count_category = df.groupby('category').size()
mean_category = df.groupby('category')['target'].mean()
smoothing = count_category / (count_category + k)
encoded_value = smoothing * mean_category + (1 - smoothing) * mean_global
Taip tikslinio kodavimo metodas tampa stabilesnis ir sumažina duomenų nutekėjimo riziką.