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 method
class
. 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!