Ismerje meg az osztályozást döntési fákkal R-ben

Robert Wood

követés

júl 30, 2019 * 4 perc olvasás

az osztályozás során a döntési fa osztályozó használata az egyik legkönnyebben használható.

miért kell használni a döntési fa

  • hihetetlenül könnyen értelmezhető
  • kezeli a hiányzó adatokat & kiugró nagyon jól, és mint ilyen igényel sokkal kevesebb elöl Tisztítás
  • kapsz, hogy feladja a kategorikus változó kódolás döntési fák kezelni kategorikus is!
  • anélkül, hogy belemerülnénk a rekurzív particionálás sajátosságaiba, a döntési fák képesek modellezni a nemlineáris kapcsolatokat.

miért nem használja a döntési fa

minden jó azt mondta, hogy nem mindig a tökéletes választás.

  • ugyanúgy lehetnek egyszerűek, túl bonyolultak is, így szinte lehetetlen megfogalmazni vagy értelmezni.
  • ahhoz, hogy ezt az elképzelést egy kicsit tovább, egy fa, amely túlságosan elfogult vagy bonyolult, lehet, hogy a vendéglátás túl jól, hogy ez a képzési adatok, és ennek eredményeként a overfit.

modell képzés

ezzel azt mondta, lehetővé teszi, ugorj bele. Nem fogok beszélni a keresztellenőrzésről vagy a vonatról, a teszt sokat osztott, de az alábbi kódot fogja elküldeni. Ügyeljen arra, hogy megjegyzést, ha van valami, amit szeretne több magyarázatot.

először az adatokat & tesztkészletekre bontjuk.

azt is vegye figyelembe, hogy a klasszikus titanic adatkészletet fogjuk használni, amely az R alapban található.

most a modellt a rpart funkció használatával képezzük ki a rpart csomagból. A legfontosabb dolog, amit itt észre kell venni, hogy a megjósolni kívánt változó túlélte, ezért meg akarjuk érteni annak valószínűségét, hogy egy adott egyén túlélte bizonyos adatok szerint. ~ lehet értelmezni, mint a; így más szóval lehetővé teszi, hogy megértsük túlélte néhány változó. Ha a ~ után van egy . ez azt jelenti, hogy az adatkészlet minden más változóját fel akarjuk használni a túlélés előrejelzésére. Alternatív megoldásként, amint az alább látható, felhívhatjuk azokat a változókat, amelyeket kifejezetten használni akarunk.

egy másik dolog, amit meg kell jegyezni, hogy a methodclass. Ennek oka az, hogy olyan osztályozási fát akarunk létrehozni, amely megjósolja a kategorikus eredményeket, szemben a regressziós fával, amelyet numerikus eredményekhez használnának. Végül a modell betanításához használt adatok train.

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

értelmezhetőség

mint korábban említettük, az egyik dolog, ami a döntési fát olyan könnyen használhatóvá teszi, hogy hihetetlenül könnyen értelmezhető. Képes vagy követni a fa különböző ágait különböző eredményekhez.

rpart.plot(model)

kicsit nehéz ott olvasni, de ha kicsit nagyítasz, látni fogod, hogy az első kritérium, ha valaki valószínűleg élt vagy halt meg a Titanicon, az volt, hogy férfi vagy-e. Ha férfi vagy, akkor a bal ágra lépsz, és két csomópontot dolgozol le, függetlenül attól, hogy felnőtt vagy-e, és a testvéred/házastársad számít a fedélzeten. Tehát ha egyedülálló ember lennél, akkor a túlélési esélyeid elég csekélyek voltak.

teljesítményértékelés

mielőtt kitörnénk a mutatókat, lehetővé teszi a tesztkészlet értékeinek előrejelzését. A vonathíváshoz hasonlóan kiválaszthatja az adatokat és az előrejelzés típusát. A fő különbség a modell specifikációja.

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

számos teljesítményértékelési mutató létezik, amelyek nagyon hasznosak lesznek a döntési fa hatékonyságának megértésében.

pontosság

ez a mutató nagyon egyszerű, hány százaléka a jóslatok helyesek voltak. A zavart mátrix függvény caret tartalmazza ezt.

Confusion Matrix

a confusionMatrix funkció a caret csomag hihetetlenül hasznos. Osztályozási modell teljesítményének értékeléséhez. Töltse fel a csomagot, és adja át a jóslatok & a tényleges.

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

az első dolog, amit ez a funkció mutat, az úgynevezett zavart mátrix. Ez egy táblázatot mutat be arról, hogy az előrejelzések és a tények hogyan sorakoznak fel. Tehát az átlós cellák, ahol az előrejelzés és a referencia ugyanaz, azt mutatják, amit helyesnek találtunk. Ha ezeket 149-re számoljuk (106 + 43), és elosztjuk az összes rekordszámmal (178), akkor 83,4% – os pontossági számot kapunk.

igaz pozitív: a kvadráns cellája, ahol mind a referencia, mind a predikció 1. Ez azt jelzi, hogy megjósoltad a túlélést, és valójában túlélték.

hamis pozitív: itt pozitívat jósoltál, de tévedtél.

igaz negatív: amikor negatívat jósolsz, és igazad van.

hamis negatív: amikor negatívat jósolsz, és tévedsz.

még néhány kulcsfontosságú mutató, amelyet szem előtt kell tartani, az érzékenység és a specifitás. Az érzékenység a helyesen megjósolt valós rekordok százalékos aránya.

specificitás másrészt annak mérése, hogy a tényleges hamis rekordok melyik részét jósolta meg helyesen.

a specifitást szem előtt kell tartani, amikor kiegyensúlyozatlan adatkészletre jósolnak. Nagyon gyakori példa erre az e-mail spam osztályozása. Az esetek 99% – ában nem spam, tehát ha azt jósolta volna, hogy soha semmi sem spam, akkor 99% – os pontossággal rendelkezne, de a sajátossága 0 lenne, ami az összes spam elfogadásához vezetne.

következtetés

remélem tetszett ez a gyors lecke döntési fák. Hadd tudja, ha volt valami, amit akart több információt, vagy ha van valami, amit szeretne, hogy fedezze egy másik bejegyzést.

Boldog Adattudományt! Ha tetszett ez, gyere nézd meg más Hozzászólások, mint ez a datasciencelessons.com!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

Previous post WordPress.org
Next post Fava Bean Planting – hogyan lehet Fava babot termeszteni a kertben