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

bookMetsän Satunnaisuus

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ä luonnollisesti johtaa monipuoliseen metsään erilaisia puita.

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ään luodaan erilainen opetusjoukko käyttämällä bootstrap-menetelmää (tunnetaan myös nimellä bagging). Ideana on ottaa otos, palauttaen, joka on kooltaan sama kuin alkuperäinen aineisto.

Oletuksena jokaisen puun aineiston koko vastaa alkuperäisen aineiston kokoa. Otanta palauttaen voidaan ajatella satunnaiseksi tietueen valinnaksi opetusjoukosta – kuten kortin nostaminen pakasta. Toisin kuin tavallisessa korttien nostossa, valittua tietuetta ei poisteta, joten sama tietue voi tulla valituksi useita kertoja.

Jokainen puu opetetaan eri osajoukolla dataa, mikä jo itsessään lisää puiden monimuotoisuutta. Satunnaisuutta ja opetuksen nopeutta voidaan lisätä rajoittamalla myös ominaisuuksien määrää, joita kukin puu huomioi jakaumia tehdessään.

Ominaisuuksien otanta

Tavallisessa päätöspuussa jokainen solmu tarkastelee kaikkia käytettävissä olevia ominaisuuksia löytääkseen parhaan jakokohdan – yleensä laskemalla mittareita kuten Gini-epäpuhtaus. Tämä prosessi on laskennallisesti raskas.

Random Forest -menetelmässä jokaisessa solmussa otetaan huomioon vain satunnainen osa ominaisuuksista. Tämä nopeuttaa mallin koulutusta ja lisää satunnaisuutta, mikä auttaa tekemään puista monimuotoisempia. Yleinen tapa on käyttää ominaisuuksien kokonaismäärän neliöjuurta. Esimerkiksi, jos ominaisuuksia on 9, voidaan satunnaisesti valita 3 jokaisessa solmussa; jos ominaisuuksia on 10,000, valitaan noin 100.

Ominaisuudet otetaan ilman palautusta, joten sama ominaisuus ei voi esiintyä useammin kuin kerran yhdessä solmussa. Otettavien 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 kokonaismäärän neliöjuurta. Tämä on yleinen oletus, joka tasapainottaa tarkkuuden ja tehokkuuden;
  • max_features='log2': käyttää ominaisuuksien kokonaismäärän kaksikantaisen logaritmin, mikä lisää satunnaisuutta entisestään;
  • 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 voidaan todeta, että satunnaismetsä on suunniteltu siten, että jokainen puu opetetaan eri otoksella datasta, ja jokainen päätössolmu näissä puissa ottaa huomioon eri satunnaisen joukon piirteitä. Tämä sisäänrakennettu satunnaisuus johtaa monipuoliseen puukokoelmaan, mikä lopulta parantaa mallin kokonais­suorituskykyä.

question mark

Mikä auttaa saavuttamaan satunnaisuuden satunnaismetsässä? Valitse kaikki, jotka pätevät.

Select the correct answer

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

Suggested prompts:

Can you explain why randomness is important in Random Forests?

How does sampling with replacement differ from sampling without replacement?

What is the effect of changing the max_features parameter?

Awesome!

Completion rate improved to 4.17

bookMetsä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ä luonnollisesti johtaa monipuoliseen metsään erilaisia puita.

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ään luodaan erilainen opetusjoukko käyttämällä bootstrap-menetelmää (tunnetaan myös nimellä bagging). Ideana on ottaa otos, palauttaen, joka on kooltaan sama kuin alkuperäinen aineisto.

Oletuksena jokaisen puun aineiston koko vastaa alkuperäisen aineiston kokoa. Otanta palauttaen voidaan ajatella satunnaiseksi tietueen valinnaksi opetusjoukosta – kuten kortin nostaminen pakasta. Toisin kuin tavallisessa korttien nostossa, valittua tietuetta ei poisteta, joten sama tietue voi tulla valituksi useita kertoja.

Jokainen puu opetetaan eri osajoukolla dataa, mikä jo itsessään lisää puiden monimuotoisuutta. Satunnaisuutta ja opetuksen nopeutta voidaan lisätä rajoittamalla myös ominaisuuksien määrää, joita kukin puu huomioi jakaumia tehdessään.

Ominaisuuksien otanta

Tavallisessa päätöspuussa jokainen solmu tarkastelee kaikkia käytettävissä olevia ominaisuuksia löytääkseen parhaan jakokohdan – yleensä laskemalla mittareita kuten Gini-epäpuhtaus. Tämä prosessi on laskennallisesti raskas.

Random Forest -menetelmässä jokaisessa solmussa otetaan huomioon vain satunnainen osa ominaisuuksista. Tämä nopeuttaa mallin koulutusta ja lisää satunnaisuutta, mikä auttaa tekemään puista monimuotoisempia. Yleinen tapa on käyttää ominaisuuksien kokonaismäärän neliöjuurta. Esimerkiksi, jos ominaisuuksia on 9, voidaan satunnaisesti valita 3 jokaisessa solmussa; jos ominaisuuksia on 10,000, valitaan noin 100.

Ominaisuudet otetaan ilman palautusta, joten sama ominaisuus ei voi esiintyä useammin kuin kerran yhdessä solmussa. Otettavien 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 kokonaismäärän neliöjuurta. Tämä on yleinen oletus, joka tasapainottaa tarkkuuden ja tehokkuuden;
  • max_features='log2': käyttää ominaisuuksien kokonaismäärän kaksikantaisen logaritmin, mikä lisää satunnaisuutta entisestään;
  • 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 voidaan todeta, että satunnaismetsä on suunniteltu siten, että jokainen puu opetetaan eri otoksella datasta, ja jokainen päätössolmu näissä puissa ottaa huomioon eri satunnaisen joukon piirteitä. Tämä sisäänrakennettu satunnaisuus johtaa monipuoliseen puukokoelmaan, mikä lopulta parantaa mallin kokonais­suorituskykyä.

question mark

Mikä auttaa saavuttamaan satunnaisuuden satunnaismetsässä? Valitse kaikki, jotka pätevät.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2
some-alt