Opettele luokittelu puuston kanssa R

Robert Wood

Follow

heinä 30, 2019 * 4 min Lue

kun se tulee luokittelu, käyttämällä päätöksenteon tree luokittelija on yksi helpoimmista käyttää.

Miksi käyttää päätöksentekopuuta

  • uskomattoman helppo tulkita
  • se käsittelee puuttuvia tietoja & vieraslajeja erittäin hyvin ja näin ollen vaatii paljon vähemmän etukäteispuhdistusta
  • voit luopua kategorisen muuttujan koodauksesta, koska päätöksentekijät käsittelevät kategorioita hyvin!
  • sukeltamatta rekursiivisen osioinnin yksityiskohtiin, päätöksentekopuut pystyvät mallintamaan epälineaarisia suhteita.

miksi ei käyttäisi ratkaisupuuta

kaiken sen hyvän kanssa, että ne eivät aina ole täydellinen vaihtoehto.

  • samalla tavalla ne voivat olla yksinkertaisia, ne voivat olla myös liian monimutkaisia, jolloin niiden käsitteellistäminen tai tulkitseminen on lähes mahdotonta.
  • tämän ajatuksen vieminen hieman pidemmälle, kun puu on liian puolueellinen tai monimutkainen, se saattaa olla liian hyvin sen koulutustietoihin nähden ja sen seurauksena ylimitoitettu.

Mallitreeni

sillä saidilla, hypätään siihen. En puhu cross validointi tai juna, testi jakaa paljon, mutta lähettää koodin alla. Muista kommentoida, jos on jotain haluat enemmän selitystä.

ensin murretaan tiedot koulutuksiksi & koesarjoiksi.

huomaa myös, että käytämme base R: ään sisältyvää klassista titanic-aineistoa.

nyt koulutamme mallin käyttäen rpart funktiota rpart paketista. Tärkeimmät asiat huomata tässä on, että muuttuja haluamme ennustaa on säilynyt, joten haluamme ymmärtää todennäköisyys tietyn yksittäisen selvisi joidenkin tietojen mukaan. ~ voidaan tulkita siten, joten toisin sanoen antaa ymmärtää selvisi joitakin muuttujia. Jos ~ jälkeen on . se tarkoittaa, että haluamme käyttää kaikkia muita muuttujia aineistossa ennustamaan selviytyneitä. Vaihtoehtoisesti, kuten alla on esitetty, voimme kutsua muuttujia, joita haluamme käyttää nimenomaisesti.

toinen huomionarvoinen asia on, että method on class. Tämä johtuu siitä, että haluamme luoda luokittelupuun, joka ennustaa kategorisia tuloksia, toisin kuin regressiopuu, jota käytettäisiin numeerisiin tuloksiin. Ja lopulta tiedot, joita käytämme mallin kouluttamiseen, ovat train.

model <- rpart(formula = Survived ~ Pclass + Sex + Age + SibSp + Parch + Fare + Embarked,
data = titanic_train,
method = "class")

Tulkittavuus

kuten aiemmin mainittiin, yksi ratkaisupuun helppokäyttöisyydestä tekee se, että se on uskomattoman helppo tulkita. Pystyt seuraamaan puun eri oksia erilaisiin lopputuloksiin.

rpart.plot(model)

sitä on vähän vaikea lukea, mutta jos zoomaa vähän, näkee, että ensimmäinen kriteeri, jos joku todennäköisesti eli tai kuoli Titanicilla, oli se, oletko mies. Jos olit uros, siirryt vasempaan oksaan ja työskentelet alas kaksi solmua, olitpa AIKUINEN ja sisaruksesi / puolisosi lasketaan aluksella. Jos olisit Sinkku, selviytymismahdollisuudet olisivat heikot.

suorituskyvyn arviointi

ennen kuin mittarit otetaan käyttöön, ennustetaan testisarjan arvot. Samanlainen kutsu kouluttaa, voit valita tiedot, ja tyyppi ennustus. Keskeinen ero on mallin spesifikaatio.

test$pred <- predict(object = model, 
newdata = test,
type = "class")

on olemassa erilaisia suorituskyvyn arviointimittareita, jotka ovat erittäin käteviä, kun ymmärtää oman päätöksenteon tehokkuutta.

tarkkuus

tämä metriikka on hyvin yksinkertainen, mikä prosenttiosuus ennusteistasi oli oikein. Sekaannusmatriisifunktio caret sisältää tämän.

Sekaannusmatriisi

confusionMatrix funktio caret paketista on uskomattoman hyödyllinen. Luokitusmallin suorituskyvyn arviointiin. Lataa paketti, ja siirrä se ennusteesi & actuals.

library(caret)
confusionMatrix(data = test$pred,
reference = test$Survived)

ensimmäinen asia, jonka tämä funktio näyttää, on niin sanottu sekaannusmatriisi. Tämä näyttää taulukon siitä, miten ennusteet ja actuals rivissä. Joten diagonaaliset solut, joissa ennuste ja viite ovat samat, edustavat sitä, mitä saimme oikein. Laskemalla ne ylös 149 (106 + 43) ja jakamalla se kokonaismäärä kirjaa, 178; saavumme meidän tarkkuus numero 83.4%.

tosi positiivinen: kvadrantin solu, jossa sekä viite että ennuste ovat 1. Tämä osoittaa, että ennustit selviytymisen ja he itse asiassa selvisivät.

väärä positiivinen: tässä ennustit positiivista, mutta olit väärässä.

tosi negatiivinen: kun ennustat negatiivista, ja olet oikeassa.

väärä negatiivinen: kun ennustat negatiivista, ja olet väärässä.

pari keskeisintä mittaria, jotka kannattaa pitää mielessä, ovat herkkyys ja spesifisyys. Herkkyys on prosenttiosuus todellisista tietueista, jotka ennustit oikein.

spesifisyys taas on mitata, minkä osan todellisista vääristä tietueista ennustit oikein.

spesifisyys on pidettävä mielessä, kun ennustetaan epätasapainoista aineistoa. Hyvin yleinen esimerkki tästä on sähköpostin roskapostin luokittelu. 99% ajasta se ei ole roskapostia, joten jos ennustit mitään ei koskaan roskapostia sinulla on 99% tarkkuus, mutta spesifisyys olisi 0, mikä johtaa kaikki roskapostin hyväksytään.

Conclusion

toivon, että nautitte tästä nopeasta ratkaisupuiden oppitunnista. Kerro minulle, jos oli jotain haluat lisätietoja tai jos on jotain haluat minun kattaa eri postitse.

Happy Data Science-ing! Jos pidit tästä, tule katsomaan muita virkoja, kuten tämä osoitteessa datasciencelessons.com!

Vastaa

Sähköpostiosoitettasi ei julkaista.

Previous post WordPress.org
Next post Fava Bean Planting-miten Fava Beania kasvatetaan puutarhassa