AI:n perusteet

Mitä on Päätöspuu?

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa

Mitä on Päätöspuu?

Päätöspuu on hyödyllinen koneoppimisalgoritmi, jota käytetään sekä regressio- että luokittelutehtävissä. Nimi “päätöspuu” tulee siitä, että algoritmi jaksaa jakaa tietojoukon yhä pienemmiksi osiksi, kunnes tiedot on jaettu yksittäisiin tapauksiin, jotka sitten luokitellaan. Jos visualisoit algoritmin tulokset, tapojen jakautuminen muistuttaa puuta ja sen lehtiä.

Tämä on nopea määritelmä päätöspuusta, mutta tarkastellaan tarkemmin, miten päätöspuut toimivat. Päätöspuiden toimintaa sekä niiden käyttötapauksia koskeva syvempi ymmärrys auttaa sinua tiedostamaan, milloin niitä kannattaa käyttää koneoppimishankkeissasi.

Päätöspuun Muoto

Päätöspuu on paljon kuin virtapiiri. Virtapiirin käyttäminen aloitetaan virtapiirin aloituspisteestä eli juuresta, ja sitten siirrytään seuraaviin mahdollisiin solmuihin sen mukaan, miten vastaat virtapiirin suodatuskriteereihin. Tätä prosessia toistetaan, kunnes päädytään lopputulokseen.

Päätöspuut toimivat käytännössä samalla tavalla, jossa jokainen sisäinen solmu puussa on jonkinlainen testi tai suodatuskriteeri. Puun ulkopuolella olevat solmut eli puun päätepisteet ovat datapisteen luokat ja ne kutsutaan “lehdiksi”. Haarat, jotka johtavat sisäisistä solmuista seuraavaan solmuun, ovat piirteitä tai niiden yhdistelmiä. Säännöt, joita käytetään datapisteiden luokitteluun, ovat polut, jotka johtavat juuresta lehtiin.

Päätöspuun Algoritmit

Päätöspuut toimivat algoritmisen lähestymistavan mukaan, jossa tietojoukko jaetaan yksittäisiin datapisteisiin eri kriteerien perusteella. Nämä jaot tehdään eri muuttujien avulla, eli tietojoukon eri piirteiden avulla. Esimerkiksi, jos tavoitteena on määrittää, kuvaako syöte-ominaisuudet koiraa vai kissaa, muuttujat, joilla data jaetaan, voivat olla esimerkiksi “kynnet” ja “haukkuu”.

Mitä algoritmeja sitten käytetään itse tietojen jakamiseen haaraan ja lehtiin? On olemassa useita menetelmiä, joita voidaan käyttää puun jakamiseen, mutta yleisin jakamistapa on todennäköisesti “rekursiivinen binäärijaottelu”. Kun tämä jakamistapa toteutetaan, prosessi alkaa juuresta, ja tietojoukon muuttujien määrä edustaa mahdollisia jakamisia. Funktio käytetään määrittämään, kuinka paljon kunkin mahdollisen jakamisen kustannus on, ja jakaminen tehdään kriteerien perusteella, joka uhraa vähiten tarkkuutta. Tätä prosessia toistetaan rekursiivisesti, ja alaryhmiä muodostetaan käyttäen samaa yleistä strategiaa.

Jakamisen kustannuksen määrittämiseksi käytetään kustannusfunktiota. Eri kustannusfunktiota käytetään regressio- ja luokittelutehtävissä. Molempien kustannusfunktioiden tavoitteena on määrittää, mitkä haarat ovat vastaavimpia, eli mitkä haarat ovat enemmän homogeenisia. Tässä mielessä, jos haluat, että testidatan tietty luokka seuraa tiettyä polkua, tämä on intuitiivista.

Rekursiivisen binäärijaon regressiokustannusfunktiota koskien algoritmi on seuraava:

sum(y – ennuste)^2

Ennuste tietyn ryhmän datapisteille on kyseisen ryhmän koulutusvastauksen keskiarvo. Kaikki datapisteet ajetaan kustannusfunktion läpi määrittämään kustannus kaikille mahdollisille jakamisille, ja valitaan jakaminen, jolla on alin kustannus.

Luokittelukustannusfunktiota koskien funktio on seuraava:

G = sum(pk * (1 – pk))

Tämä on Gini-kertoja, ja se on mitta siitä, kuinka tehokas jakaminen on, perustuen siihen, kuinka monta eri luokkien esiintymää on jakamisen seurauksena syntyneissä ryhmissä. Toisin sanoen, se mittailee, kuinka sekoittuneita ryhmät ovat jakamisen jälkeen. Ihanteellinen jakaminen on sellainen, jossa kaikki jakamisen seurauksena syntyvät ryhmät koostuvat vain yhden luokan syötteistä. Jos ihanteellinen jakaminen on tehty, “pk”-arvo on joko 0 tai 1, ja G on nolla. Voit ehkä arvata, että huonoin jakaminen on sellainen, jossa on 50-50 edustus luokista jakamisessa, binäärisessä luokittelussa. Tässä tapauksessa “pk”-arvo on 0,5, ja G on myös 0,5.

Jakamisprosessi lopetetaan, kun kaikki datapisteet on muutettu lehdiksi ja luokiteltu. Kuitenkin voit haluta lopettaa puun kasvun aikaisemmin. Suuret monimutkaiset puut ovat alttiita ylioppimiselle, mutta useita eri menetelmiä voidaan käyttää tätä vastaan. Yksi tapa vähentää ylioppimista on määrittää minimimäärä datapisteitä, joita käytetään lehtien luomiseen. Toinen tapa hallita ylioppimista on rajoittaa puun enimmäissyvyyttä, mikä määrittää, kuinka pitkä polku voi olla juuresta lehtiin.

Toinen prosessi, joka on mukana päätöspuun luomisessa, on lopputulehdus. Lopputulehdus voi parantaa päätöspuun suorituskykyä poistamalla haaroja, jotka sisältävät piirteitä, joilla on vähän ennustevää voimaa / vähän merkitystä mallille. Tällä tavoin puun monimutkaisuus vähenee, se ei ole enää altis ylioppimiselle, ja mallin ennustevää voimaa lisääntyy.

Kun suoritetaan lopputulehdusta, prosessi voidaan aloittaa joko puun ylä- tai alaosasta. Kuitenkin helpoin tapa suorittaa lopputulehdusta on aloittaa lehtien kohdalta ja yrittää poistaa solmu, joka sisältää yleisimmän luokan kyseisessä lehdessä. Jos mallin tarkkuus ei heikkene, kun tämä tehdään, muutos säilyy. On olemassa muita tekniikoita, joita voidaan käyttää lopputulehduksen suorittamiseen, mutta yllä kuvattu menetelmä – vähennetyn virheen lopputulehdus – on todennäköisesti yleisin tapa päätöspuun lopputulehdukselle.

Harkinnat Päätöspuun Käytölle

Päätöspuut ovat usein hyödyllisiä, kun on tehtävä luokittelu, mutta laskentaaika on tärkeä rajoitus. Päätöspuut voivat osoittaa, mitkä piirteet valituissa tietojoukoissa ovat eniten ennustevää voimaa. Lisäksi, toisin kuin monet koneoppimisalgoritmit, joissa käytettyjen sääntöjen luokitteluun voi olla hankalaa tulkitsemista, päätöspuut voivat tarjota tulkitettavissa olevia sääntöjä. Päätöspuut pystyvät myös käyttämään sekä kategorisia että jatkuvia muuttujia, mikä tarkoittaa, että vähemmän esikäsittelyä tarvitaan verrattuna algoritmeihin, jotka voivat käsitellä vain toisenlaisia muuttujia.

Päätöspuut eivät yleensä suoriudu hyvin, kun niitä käytetään jatkuvien attribuuttien arvojen määrittämiseen. Päätöspuun toisena rajoituksena on, että luokittelussa, jos on vain vähän koulutus-esimerkkejä, mutta monta luokkaa, päätöspuu on usein epätarkka.

Blogger ja ohjelmoija, jolla on erityisalat Machine Learning ja Deep Learning -aiheissa. Daniel toivoo pystyvänsä auttamaan muita käyttämään tekoälyn voimaa sosiaaliseen hyvään.