Gradiendi suurendamise otsustuspuud: XGBoost vs LightGBM (ja catboost)

Gradiendi suurendamise otsustuspuud on struktureeritud andmeprobleemide tehnika tase. Kaks kaasaegset algoritmi, mis muudavad gradiendi suurendamise puude mudelid, on XGBoost ja LightGBM. Selles artiklis võtan kokku nende algoritmid iga algoritmi lähenemisviisi kohta.

Gradiendi suurendamise otsustuspuud (GBDT) on praegu parimad meetodid ennustavate mudelite ehitamiseks struktureeritud andmetest. Erinevalt piltide analüüsimise mudelitest (selleks soovite kasutada sügava õppimise mudelit) saab struktureeritud andmeprobleeme väga hästi lahendada paljude otsustuspuudega. Parimate otsustuspuu pakettide abil saab treenida suurtes sublineaarse ajaliselt keerukates andmekogumites, paralleelselt paljude protsessoritega, jaotada arvutiklastritesse ja need saavad suurema osa teabest andmekogumist minuti jooksul eraldada.

GBDT-d treenivad andmetel põhimudelit ja kasutavad seejärel järjestikuste mudelite loomisel esimese mudeli viga. See protsess vähendab järjestikku mudeli vigu, kuna iga järgnev mudel paraneb eelmise mudeli nõrkade külgedega. Iga äsja koolitatud puu mudel üritab allesjäänud, raskesti eraldatavat ruumi lineaarselt eraldada. MIT-i 6–034 kassa suurendamise põhjalikuks töötlemiseks.

Washingtoni ülikoolis avaldatud ja 2016. aastal avaldatud XGBoost tutvustab jõudluse parandamiseks kahte tehnikat. Esiteks idee kaalutud kvantiilsest visandist, mis on lähenemisalgoritm otsustuspuu (kandidaatide lõhestamiste) lõhestamise määramiseks. Teine on Sparsity-teadlik split-leid, mis töötab hõredatel andmetel, paljude puuduvate lahtritega andmetel.

Kaalutud kvantitatiivne visand on suurendamise probleem, mis on suurte andmekogumite korral parandamatu. Põhiline idee edendamisel on andmete täiendamine, kus varasemates mudelites on vigu. Seega oleme turgutamise huvides huvitatud jagatud punktide leidmisest kaalutud proovidest, mis toimivad kõige paremini. XGBoost paberi autorid selgitavad lisalehes oma lahendust, andmestruktuuri, mis toetab liitmist ja pügamist.

Hajususe teadlik poolitav leid tutvustab igas puusõlmes vaikesuunda. Kui hõredas veerus väärtus puudub, klassifitseeritakse proov sellesse vaikesuundi. Vaikesuunad õpitakse andmetest. Vaikesuuna omamine võimaldab algoritmil vahele jätta proovid, millel puudub funktsiooni kirje. See tehnika kasutab ära andmekogumi hõredust, vähendades arvutamise lineaarseks otsinguks ainult puuduvate kirjete korral.

Microsofti poolt 2017. aastal avaldatud LightGBM tutvustab ka kahte tehnikat toimivuse parandamiseks. Gradientidel põhinev ühepoolne valim, mis kontrollib kõige informatiivsemaid proove, jättes samal ajal vähem informatiivsed proovid vahele. Ja eksklusiivne funktsioonide komplekteerimine, mis kasutab ära hõredaid andmekogumeid, grupeerides funktsioonid peaaegu kadudeta viisil.

Gradientidel põhinev ühepoolne valim on otseteed, et võimalikult kiiresti andmestikust ekstraheerida teave. See saavutatakse hüperparameetri alfa (ja pöördvõrdelise beeta, mis on 1-alfa) lisamisega. Alfa on proovide suhe kõige informatiivsemate proovide hulka. Ülejäänud proovid dubleeritakse, nii et algoritmi keerukus väheneb lineaarseks otsinguks alfa-proovide vahel. Vähem informatiivsete valimite dubleerimine aitab säilitada andmete algset jaotust.

Eksklusiivne funktsioonide komplekteerimine (EFB) ühendab sarnaseid veerge. Kui XGBoosti Sparsity-teadlik jagatud leid jätab proovid tühjade väärtustega vahele, vähendades keerukust ridade kaupa, siis EFB seob sarnased omadused, vähendades keerukust veergude kaupa. Need üksikasjad on minu jaoks ebaselged, kuna ma pole uurinud kapoti all kasutatavat histogrammil põhinevat algoritmi. Autorid väidavad, et hoolikalt kavandatud funktsioonide skaneerimise algoritmi abil saame funktsioonikimpudest ehitada samad funktsioonide histogrammid nagu üksikute funktsioonide puhul.

Seejärel näitab LightGBM-i paber eksperimentaalselt, et see treenib murdosa ajast võrreldava täpsusega XGBoost-vormingus. Lisaks on andmekogumeid, mille korral XGBoost ei saa töötada, kuna andmed ei mahu töömällu. LightGBM ei pea talletama nii palju töömälu. Mõlemas artiklis mainitakse andmete pakkimise ja vahemälu kokkulangevuse eeliseid.

Kokkuvõtlikult võib öelda, et LightGBM täiustatakse XGBoost. LightGBM-i paber kasutab lähtejoonena XGBoost ja edestab seda treenimiskiiruse ja andmestiku suuruse korral, millega ta saab hakkama. Täpsus on võrreldav. Mõnel juhul saavutab LightGBM selle maksimaalse täpsuse vähem kui minutiga ja loeb ainult murdosa kogu andmekogumist. See näitab ligikaudsete algoritmide võimsust ja andmestiku arukalt valimit, et võimalikult kiire teave eraldada.

värskendus: Pärast selle artikli avaldamist juhtisid mõned inimesed Catboosti minu tähelepanu. Catboost parandab LightGBM-i, kui haldab kategoorilisi funktsioone paremini. Tavapäraselt on kategoorilised omadused ühetuumaliselt kodeeritud, kui funktsioonil on palju erinevaid väärtusi, põhjustab see mõõtme needuse. Varasemad algoritmid käsitlesid seda hõredate funktsioonide küsimust, nagu nägime ülalpool EFB-ga. Catboost tegeleb kategooriliste tunnustega järgmiselt: "genereerides andmekogumi juhuslikke permutatsioone ja arvutades iga valimi jaoks sama kategooria väärtusega proovi keskmise märgistuse väärtuse, mis on antud permutatsioonis enne antud kategooriat". Nad töötlevad andmeid ka GPU kiirendusega ja nende funktsioone diskreteeritakse fikseeritud arvu salve (128 ja 32). Ma ootan seda varsti proovimiseks!

Kui vajate abi andmete analüüsimisel või teate mõnda sellist, võtke minuga ühendust. Otsin alati huvitavat tööd ja aidata sidusrühmadel saada teavet nende andmete kohta.

Algselt avaldati see aadressil harrymoreno.com 15. oktoobril 2018.