Funkcijų genėjimas ir funkcijų praturtinimas yra priešingos mašininio mokymosi strategijos: viena pašalina nereikalingus duomenis, kad supaprastintų modelius, o kita prideda naujos informacijos, kad padidintų prognozavimo galią. Pasirinkimas priklauso nuo to, ar jūsų modelyje yra triukšmo, ar trūksta konteksto.
Akcentai
Genėjimas sumažina perteklinį derėjimą, o sodrinimas – nepakankamą derėjimą.
Genėjimas sumažina skaičiavimo sąnaudas; sodrinimas jas dažnai padidina.
Praturtinimas papildo kontekstą iš išorinių šaltinių; genėjimas pašalina vidinį triukšmą.
Sėkmingiausi projektai naudoja abi strategijas iš eilės.
Kas yra Funkcijų genėjimas?
Metodas, kuris pašalina nereikalingas arba nereikalingas funkcijas iš duomenų rinkinio, siekiant pagerinti modelio našumą ir sumažinti sudėtingumą.
Funkcijų genėjimas daugeliu atvejų taip pat žinomas kaip funkcijų atranka arba matmenų mažinimas.
Tai padeda sumažinti perteklinį pritaikymą, pašalinant triukšmingus kintamuosius, kurie painioja modelį mokymo metu.
Įprasti metodai apima rekursinį požymių pašalinimą, L1 reguliavimą ir abipusį informacijos vertinimą.
Mažesni funkcijų rinkiniai lemia greitesnį mokymo laiką ir mažesnes skaičiavimo sąnaudas.
Genėjimas gali pagerinti modelio interpretuojamumą, sutelkiant dėmesį tik į reikšmingiausius įvesties duomenis.
Kas yra Funkcijų praturtinimas?
Naujų kintamųjų pridėjimo arba esamų transformavimo procesas, siekiant suteikti mašininio mokymosi modeliams išsamesnės informacijos prognozėms.
Funkcijų praturtinimas dažnai apima išvestinių funkcijų kūrimą iš neapdorotų duomenų, pvz., santykių, agregacijų ar įterpimų.
Jis gali apimti išorinius duomenų šaltinius, tokius kaip orai, demografiniai duomenys ar ekonominiai rodikliai, siekiant išplėsti kontekstą.
Metodai apima vienkartinį kodavimą, tikslinį kodavimą, polinominius požymius ir požymių kryžminimą.
Praturtinimas yra ypač vertingas tokiose srityse kaip sukčiavimo aptikimas ir rekomendacijų sistemos, kur kontekstas yra svarbus.
Tai gali smarkiai padidinti tikslumą, kai pradiniame duomenų rinkinyje trūksta kritinių nuspėjamųjų signalų.
Palyginimo lentelė
Funkcija
Funkcijų genėjimas
Funkcijų praturtinimas
Pagrindinis tikslas
Pašalinkite nereikalingas funkcijas
Pridėkite vertingų funkcijų
Poveikis duomenų rinkinio dydžiui
Sumažina funkcijų skaičių
Padidina funkcijų skaičių
Poveikis modelio sudėtingumui
Supaprastina modelį
Padidina modelio sudėtingumą
Geriausia naudoti, kada
Modelis per daug pritaikomas arba lėtas
Modelis neatitinka konteksto arba jam trūksta konteksto
Įprasti metodai
Lasso, medžių svarba, PCA
Kodavimas, įterpimai, funkcijų kryžminimai
Rizika
Naudingų funkcijų pašalinimas per klaidą
Triukšmingų arba nereikalingų funkcijų pridėjimas
Skaičiavimo kaina
Paprastai žemesnis po genėjimo
Paprastai didesnis dėl daugiau funkcijų
Aiškinamasis aspektas
Paprastai pagerėja
Gali būti sunkiau interpretuoti
Išsamus palyginimas
Pagrindinė filosofija
Funkcijų genėjimas vadovaujasi minimalistine filosofija: mažiau yra daugiau. Pašalinant kintamuosius, kurie mažai prisideda prie prognozinės vertės, modelis sutelkia dėmesį į tai, kas iš tikrųjų svarbu. Funkcijų praturtinimas laikosi priešingos pozicijos, manydamas, kad išsamesni ir išsamesni duomenys leidžia gauti protingesnes prognozes. Abi filosofijos turi savo privalumų, o teisingas pasirinkimas priklauso nuo pradinių duomenų kokybės ir išsamumo.
Kai kiekvienas požiūris šviečia
Genėjimas geriausiai veikia, kai turite šimtus ar tūkstančius funkcijų ir įtariama, kad daugelis jų yra triukšmingi, pavyzdžiui, genominiuose duomenyse arba teksto klasifikavime naudojant žodžių maišo modelius. Praturtinimas geriausiai veikia, kai jūsų duomenų rinkinys yra retas arba jame trūksta svarbaus konteksto, pavyzdžiui, prognozuojant klientų praradimą naudojant tik pagrindinius demografinius duomenis be elgsenos istorijos. Praktiškai duomenų mokslininkai dažnai derina abu metodus: pirmiausia praturtina, o tada genėja išplėstą rinkinį.
Našumo ir efektyvumo kompromisai
Apkarpyti modeliai paprastai mokosi greičiau ir diegiami su mažesniu atminties kiekiu, todėl jie idealiai tinka periferiniams įrenginiams arba realaus laiko sistemoms. Praturtinti modeliai gali pasiekti didesnį tikslumą, tačiau tai kainuoja ilgiau mokantis ir reikia daugiau atminties. Praturtinimo skaičiavimo išlaidas galima pateisinti, kai tikslumo padidėjimas tiesiogiai padidina verslo vertę, pavyzdžiui, medicininės diagnostikos ar sukčiavimo prevencijos srityse.
Klaidų rizika
Didžiausias genėjimo pavojus yra pašalinti funkciją, kuri atrodė nesvarbi, bet iš tikrųjų buvo svarbi subtiliose sąveikose. Pagrindinė praturtinimo rizika yra funkcijų sprogimas, kai pridėjus per daug išvestinių kintamųjų, atsiranda multikolinearumas ir per didelis pritaikymas. Abu trūkumus galima sušvelninti atliekant kryžminį patvirtinimą ir atidžiai stebint patvirtinimo metrikas eksperimento metu.
Aiškinamasis ir derinimo metodas
Genėjimas natūraliai veda prie paprastesnių modelių, kuriuos suinteresuotosios šalys gali suprasti, nes mažiau įvesties duomenų reiškia aiškesnius paaiškinimus. Praturtinimas gali drumsti vandenis, įvedant inžinerines funkcijas, kurių reikšmė nėra akivaizdi, pavyzdžiui, įterpimo vektorius ar sąveikos terminus. Nepaisant to, gerai dokumentuoti praturtinimo srautai su aiškiais funkcijų pavadinimais gali išlaikyti interpretuojamumą ir kartu pagerinti našumą.
Privalumai ir trūkumai
Funkcijų genėjimas
Privalumai
+Greitesnis mokymas
+Mažiau per didelio pritaikymo
+Lengvesnis aiškinimas
+Mažesni sandėliavimo poreikiai
Pasirinkta
−Signalo pašalinimo rizika
−Gali pakenkti tikslumui
−Reikalingas patvirtinimo rūpestis
−Sunku idealiai automatizuoti
Funkcijų praturtinimas
Privalumai
+Didesnis tikslumo potencialas
+Užfiksuoja paslėptus modelius
+Pasinaudoja išoriniais duomenimis
+Lanksčios transformacijos
Pasirinkta
−Padidėjęs sudėtingumas
−Didesnės skaičiavimo išlaidos
−Triukšmo rizika
−Sunkiau derinti
Dažni klaidingi įsitikinimai
Mitas
Daugiau funkcijų visada reiškia geresnį modelį.
Realybė
Funkcijų pridėjimas be pateisinimo dažnai sukelia triukšmą ir multikolinearumą, o tai gali pakenkti našumui. Kokybė ir aktualumas yra daug svarbesni nei kiekybė, todėl genėjimas išlieka svarbus net ir po praturtinimo.
Mitas
Funkcijų genėjimas yra tiesiog atsitiktinis stulpelių ištrynimas.
Realybė
Efektyvus genėjimas naudoja statistinius testus, modeliu pagrįstus svarbos įvertinimus arba srities ekspertizę, kad nustatytų tikrai nenaudingas funkcijas. Atsitiktinis ištrynimas beveik neabejotinai pašalintų vertingą signalą kartu su triukšmu.
Mitas
Funkcijų praturtinimas visada pagerina tikslumą.
Realybė
Praturtinimas padeda tik tada, kai naujos funkcijos turi tikrą nuspėjamąją informaciją. Pridėjus nesvarbias ar nereikalingas inžinerines funkcijas, modelio našumas gali taip pat lengvai pablogėti, kaip ir jį pagerinti.
Mitas
Reikia pasirinkti vieną arba kitą strategiją.
Realybė
Realaus pasaulio mašininio mokymosi procesuose praturtinimas ir genėjimas yra vienas kitą papildantys žingsniai. Komandos paprastai pirmiausia praturtina neapdorotus duomenis, o tada genėja išplėstinį funkcijų rinkinį, kad išsaugotų tik tai, kas iš tikrųjų lemia prognozes.
Mitas
Genėjimas pagal apibrėžimą sumažina modelių tikslumą.
Realybė
Genėjimas pašalina ypatybes, kurios kenkia apibendrinimui, todėl gerai atliktas genėjimas dažnai pagerina testo rinkinio tikslumą. Tikslas nėra savavališkai sumažinti ypatybes, o išlaikyti tik tas, kurios reikšmingai prisideda prie prognozių.
Dažnai užduodami klausimai
Kuo skiriasi funkcijų genėjimas ir funkcijų parinkimas?
Funkcijų genėjimas ir funkcijų atranka dažnai vartojami kaip sinonimai, abu reiškia mažiau svarbių funkcijų identifikavimo ir pašalinimo procesą. Kai kurie specialistai terminą „genėjimas“ vartoja laisviau, apibūdindami iteracinį šalinimą modelio mokymo metu, o „atranka“ reiškia formalesnį vertinimo etapą. Praktiškai šie metodai labai sutampa ir atlieka tą patį tikslą – supaprastinti modelius.
Ar galima kartu naudoti požymių genėjimą ir požymių praturtinimą?
Be abejo, ir dauguma gamybinių mašininio mokymosi darbo eigų daro būtent tai. Įprastas srautas prasideda nuo praturtinimo, siekiant sukurti naudingas funkcijas ir įtraukti išorinius duomenis, tada atliekamas genėjimas, siekiant pašalinti viską, kas reikšmingai neprisideda. Šis derinys užtikrina praturtinimo tikslumo privalumus, tuo pačiu išlaikant modelių paprastumą ir greitį.
Kaip sužinoti, ar mano modelį reikia genėti, ar praturtinti?
Peržiūrėkite savo patvirtinimo metrikas ir mokymosi kreives. Jei jūsų mokymo tikslumas yra daug didesnis nei patvirtinimo tikslumas, modelis yra per daug pritaikytas ir tikriausiai reikia jį apkarpyti. Jei abu tikslumai yra maži ir greitai pasiekia stabilią padėtį, modelis yra nepakankamai pritaikytas ir tikriausiai reikia jį praturtinti informatyvesnėmis funkcijomis.
Kokie yra įprasti savybių praturtinimo metodai?
Populiarūs praturtinimo metodai apima vienkartinį kategorinių kintamųjų kodavimą, tikslinį kodavimą didelio kardinalumo ypatybėms, polinominius požymius sąveikai užfiksuoti ir teksto ar kategorinių duomenų įterpimą. Išorinių duomenų integravimas, pvz., oro ar ekonominių rodiklių pridėjimas, yra dar viena galinga praturtinimo forma, kuri į modelį įtraukia realaus pasaulio kontekstą.
Ar funkcijų genėjimas sumažina perteklinį pritaikymą?
Taip, genėjimas yra vienas efektyviausių būdų kovoti su per dideliu pritaikymu. Pašalinus triukšmingas arba nereikalingas funkcijas, modelis turi mažiau galimybių įsiminti mokymo duomenų modelius, kurie nėra apibendrinami. Tai paprastai lemia geresnį našumą su nematomais bandymų duomenimis ir stabilesnes prognozes gamyboje.
Ar funkcijų praturtinimas yra tas pats, kas funkcijų inžinerija?
Funkcijų praturtinimas yra funkcijų inžinerijos pogrupis. Funkcijų inžinerija apima visus neapdorotų duomenų transformavimus į modeliui paruoštus įvesties duomenis, o praturtinimas konkrečiai reiškia naujos informacijos pridėjimą, nesvarbu, ar tai būtų išvestinės funkcijos, išoriniai šaltiniai, ar pažangios kodavimo sistemos. Abu šie metodai patenka į platesnę duomenų paruošimo mašininiam mokymuisi sritį.
Kiek savybių turėčiau išlaikyti po genėjimo?
Nėra universalaus skaičiaus, tačiau įprastas euristinis metodas yra išlaikyti funkcijas, kurios sudaro bent 1–5 procentus modelio prognozavimo galios. Kryžminis patvirtinimas yra geriausias būdas nustatyti optimalų skaičių: palaipsniui mažinti ir sustabdyti, kai patvirtinimo našumas pradeda mažėti. Srities žinios taip pat gali padėti nustatyti, kurias funkcijas būtina išlaikyti.
Ar funkcijų praturtinimas visada padidina modelio sudėtingumą?
Paprastai taip, nes pridedate daugiau įvesties dimensijų, kurias modelis turi apdoroti. Tačiau sumanus praturtinimas kartais gali supaprastinti mokymąsi, padarydamas modelius aiškesnius, pavyzdžiui, sukurdamas „kaina už kvadratinį pėdą“ funkciją, o ne atskirai pateikiant neapdorotą kainą ir plotą. Svarbiausia užtikrinti, kad kiekviena nauja funkcija pridėtų realios vertės, o ne tik masinės vertės.
Kuris metodas yra geresnis mažiems duomenų rinkiniams?
Mažiems duomenų rinkiniams paprastai naudingesnis kruopštus praturtinimas nei agresyvus genėjimas. Esant ribotiems duomenims, pašalinus požymius, modelyje gali likti per mažai informacijos, iš kurios būtų galima mokytis. Praturtinimas apgalvota požymių inžinerija ir išorinių duomenų integracija gali kompensuoti mažą imties dydį, suteikiant išsamesnį kontekstą kiekvienam stebėjimui.
Ar yra automatinių įrankių funkcijų genėjimui ir praturtinimui?
Taip, kelios bibliotekos palaiko abu darbo eigą. „Scikit-learn“ siūlo „SelectKBest“ ir rekursinį funkcijų pašalinimą genėjimui, o „Featuretools“ automatizuoja praturtinimą funkcijų sintezės būdu. Pažangesni įrankiai, tokie kaip „AutoML“ platformos, tvarko abu galus, automatiškai ieškodami optimalaus sukonstruotų ir pasirinktų funkcijų derinio.
Nuosprendis
Funkcijų genėjimą rinkitės, kai jūsų modelis per daug pritaikomas, per lėtai mokomas arba sunkiai apdoroja daugiamačius duomenis. Funkcijų praturtinimą rinkitės, kai tikslumas yra nestabilus, nes jūsų duomenų rinkinyje trūksta konteksto, reikalingo realaus pasaulio modeliams užfiksuoti. Daugumoje gamybinių darbo eigų protingiausia yra apgalvotai praturtinti duomenis, o tada agresyviai genėti, kad būtų rastas optimalus balansas.