Naučte Klasifikace s Rozhodovací Stromy v R

Robert Wood

Následovat

Jul 30, 2019 · 4 min číst

Když přijde na klasifikaci pomocí rozhodovacího stromu klasifikátor je jedním z nejjednodušších k použití.

Proč používat rozhodovací strom

  • Neuvěřitelně snadné interpretovat
  • zpracovává chybějící data & odlehlé hodnoty velmi dobře a jako takový vyžaduje daleko méně dopředu, čištění
  • dostanete se vzdát kategorické proměnné kódování jako rozhodovací stromy rukojeť categoricals dobře!
  • bez ponoření do specifik rekurzivního dělení jsou rozhodovací stromy schopny modelovat nelineární vztahy.

proč nepoužívat rozhodovací strom

se vším, co dobře říká, že nejsou vždy ideální volbou.

  • stejným způsobem mohou být jednoduché, mohou být také příliš komplikované, takže je téměř nemožné konceptualizovat nebo interpretovat.
  • Aby se tento nápad trošku dál, s strom, který je příliš zaujatý nebo složité, to může být catering příliš dobře, aby to tréninková data a výsledkem je overfit.

Model školení

s tím řekl, umožňuje skočit do něj. Nebudu mluvit o křížové validaci nebo vlaku, test se hodně rozdělil, ale zveřejní níže uvedený kód. Ujistěte se, že komentář, pokud existuje něco, co byste chtěli více vysvětlení na.

nejprve rozbijeme data do tréninkových & testovacích sad.

Také si všimněte, že budeme používat klasický titanic dataset, který je součástí základny. R.

Teď budeme trénovat modelu pomocí rpart funkce rpart balíček. Klíčové věci, které je třeba si všimnout, je, že proměnná, kterou chceme předpovědět, přežila, takže chceme pochopit pravděpodobnost, že daný jedinec přežil podle některých údajů. ~ lze interpretovat jako by; takže jinými slovy umožňuje pochopit přežil některými proměnnými. Pokud po ~ existuje . to znamená, že chceme použít každou další proměnnou v datovém souboru k předpovědi přežití. Alternativně, jak je uvedeno níže, můžeme volat proměnné, které chceme explicitně použít.

další věc, kterou je třeba poznamenat, je, že method je class. Je to proto, že chceme vytvořit klasifikační strom předpovídající kategorické výsledky, na rozdíl od regresního stromu, který by byl použit pro numerické výsledky. A konečně data, která používáme k trénování modelu, jsou train.

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

Interpretovatelnost

jak již bylo zmíněno jednou z věcí, která dělá rozhodovací strom tak snadné použití je, že je neuvěřitelně snadné interpretovat. Jste schopni sledovat různé větve stromu k různým výsledkům.

rpart.plot(model)

je To trochu obtížné číst, ale pokud se vám přiblížit trochu, uvidíte, že první kritérií, pokud někdo pravděpodobně žil nebo zemřel na titaniku bylo, zda jsi muž. Pokud jste byli muž, přesunete se do levé větve a zpracujete dva uzly, ať už jste byli Dospělí a váš sourozenec/manžel se počítá na palubě. Takže pokud jste byl svobodný muž, máte šanci na přežití, byly docela malé.

vyhodnocení výkonu

než se dostaneme ven metriky, umožňuje předpovědět hodnoty pro testovací sady. Podobně jako u volání do vlaku vyberete data a typ predikce. Hlavní rozdíl je specifikace modelu.

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

existuje celá řada metrik hodnocení výkonu, které se hodí při pochopení účinnosti vašeho rozhodovacího stromu.

přesnost

tato metrika je velmi jednoduchá, jaké procento vašich předpovědí bylo správné. Funkce matic zmatku z caret to zahrnuje.

matrice zmatku

funkce confusionMatrix z balíčku caret je neuvěřitelně užitečná. Pro hodnocení výkonnosti klasifikačního modelu. Načtěte balíček a předejte mu své předpovědi & aktuální informace.

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

první věc, tato funkce vám ukáže, je tzv. confusion matrix. To vám ukáže tabulku, jak předpovědi a aktuální hodnoty seřadily. Diagonální buňky, kde je predikce a reference stejné, představují to, co jsme dostali správně. Sečteme-li je 149 (106 + 43 ) a vydělíme je celkovým počtem záznamů, 178; dospějeme k našemu počtu přesnosti 83,4%.

pravda pozitivní: buňka v kvadrantu, kde referenční i predikce jsou 1. To naznačuje, že jste předpovídali přežití a oni ve skutečnosti přežili.

falešně pozitivní: zde jste předpovídali pozitivní, ale mýlili jste se.

pravda negativní: když předpovídáte negativní a máte pravdu.

falešně negativní: když předpovídáte negativní a jste nesprávní.

několik dalších klíčových metrik, které je třeba mít na paměti, je citlivost a specificita. Citlivost je procento skutečných záznamů, které jste správně předpověděli.

specifičnost na druhé straně je měřit, jakou část skutečných falešných záznamů jste správně předpověděli.

specifičnost je třeba mít na paměti při předpovídání nevyvážené datové sady. Velmi častým příkladem je klasifikace e-mailového spamu. 99% času to není spam, takže pokud jste předpověděl, nic se nikdy spam budeš mít 99% přesnost, ale své specifičnosti bude 0, což vede na všechny spam přijat.

závěr

doufám, že se vám tato rychlá lekce v rozhodovacích stromech líbila. Dejte mi vědět, jestli tam bylo něco, co jste chtěli více informací o, nebo jestli existuje něco, co byste chtěli, abych pokrýt v jiném příspěvku.

Happy Data Science-ing! Pokud se vám to líbilo, přijďte se podívat na další podobné příspěvky na datasciencelessons.com!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

Previous post WordPress.org
Next post Fava Bean výsadba-jak pěstovat fava fazole v zahradě