Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Metsän Satunnaisuus | Satunnaismetsä
Luokittelu Pythonilla

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ä:

  1. Datan otanta jokaista puuta varten;
  2. 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.

RandomForest

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.

Ominaisuudet

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.
Note
Huomio

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 kokonais­suorituskykyä.

question mark

Mikä auttaa saavuttamaan satunnaisuuden Random Forest -menetelmässä? Valitse kaikki, jotka pätevät.

Valitse kaikki oikeat vastaukset

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 2
some-alt