Metsän Satunnaisuus
Pyyhkäise näyttääksesi valikon
Random Forest rakentaa suuren määrän päätöspuita – tyypillisesti noin 100 tai jopa enemmän. Näin monien erilaisten puiden luominen ei onnistu pelkästään asetuksia säätämällä, joten mukaan tuodaan satunnaisuutta. Onneksi päätöspuut ovat erittäin herkkiä pienille muutoksille datassa ja asetuksissa, mikä johtaa luonnollisesti monipuoliseen puiden joukkoon metsässä.
Random Forestissa on kaksi satunnaisuuden lähdettä:
- Datan otanta jokaista puuta varten;
- Ominaisuuksien otanta jokaisessa päätössolmussa jokaisessa puussa.
Datan otanta
Jokaiselle päätöspuulle metsässä luodaan erilainen opetusjoukko käyttämällä bootstrap-menetelmää (tunnetaan myös nimellä bagging). Ideana on ottaa otos, palauttaen, samankokoisesta aineistosta jokaista puuta varten.
Oletuksena jokaisen puun aineiston koko vastaa alkuperäisen aineiston kokoa. Otanta palauttaen tarkoittaa, että satunnaisesti valitaan datapiste opetusjoukosta – kuten kortin nostaminen pakasta. Toisin kuin tavallisessa korttien nostossa, valittua datapistettä ei poisteta, joten sama datapiste voi tulla valituksi useita kertoja.
Jokainen puu opetetaan eri osajoukolla dataa, mikä jo itsessään lisää puiden monimuotoisuutta. Satunnaisuuden lisäämiseksi ja koulutuksen nopeuttamiseksi voidaan lisäksi rajoittaa ominaisuuksien määrää, joita kukin puu käyttää jakaumia tehdessään.
Ominaisuuksien otanta
Tavallisessa päätöspuussa jokainen solmu tarkastelee kaikkia käytettävissä olevia ominaisuuksia löytääkseen parhaan jakauman – yleensä laskemalla mittareita kuten Gini-epäpuhtaus. Tämä prosessi on laskennallisesti raskas.
Satunnaismetsässä jokaisessa solmussa tarkastellaan vain satunnaista ominaisuusjoukkoa. Tämä nopeuttaa koulutusta ja lisää satunnaisuutta, mikä tekee puista monimuotoisempia. Yleinen tapa on käyttää ominaisuuksien kokonaismäärän neliöjuurta. Esimerkiksi, jos ominaisuuksia on 9, voidaan jokaisessa solmussa valita satunnaisesti 3; jos ominaisuuksia on 10 000, valitaan noin 100.
Ominaisuudet otetaan ilman palautusta, joten sama ominaisuus ei esiinny useammin kuin kerran yhdessä solmussa. Tarkasteltavien ominaisuuksien määrää voidaan säätää käyttötarkoituksen mukaan.
Voit hallita, kuinka monta ominaisuutta otetaan huomioon jokaisessa päätössolmussa käyttämällä max_features-parametria scikit-learnin toteutuksessa. Tässä joitakin suosittuja vaihtoehtoja:
max_features='sqrt': käyttää ominaisuuksien lukumäärän neliöjuurta. Tämä on yleinen oletus, joka tasapainottaa tarkkuuden ja tehokkuuden;max_features='log2': käyttää ominaisuuksien lukumäärän kakkospohjaista logaritmia, mikä lisää satunnaisuutta;max_features=0.1: käyttää 10 % ominaisuuksista, jolloin arvo tulkitaan suhteena.
Voit myös asettaa max_features-parametrin mihin tahansa arvoon välillä 0 ja 1 (esim. max_features=0.1 käyttää 10 % ominaisuuksista).
Yhteenvetona: Random Forest on suunniteltu siten, että jokainen puu opetetaan eri otoksella datasta, ja jokainen päätössolmu näissä puissa käyttää eri satunnaista ominaisuusjoukkoa. Tämä sisäänrakennettu satunnaisuus johtaa monipuoliseen puukokoelmaan, mikä lopulta parantaa mallin kokonaissuorituskykyä.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme