분류에 있어서는 의사 결정 트리 분류자를 사용하는 것이 가장 쉬운 방법 중 하나입니다.
의사 결정 트리를 사용하는 이유
- 믿을 수 없을 정도로 쉽게 해석
- 누락 된 데이터 처리&이상 치를 매우 잘 처리하므로 의사 결정 트리가 범주를 잘 처리하므로 범주 형 변수 인코딩을 포기하게됩니다!
- 재귀 파티셔닝의 세부 사항에 뛰어 들지 않으면 의사 결정 트리가 비선형 관계를 모델링 할 수 있습니다.
의사 결정 트리
를 사용하지 않는 이유는 항상 완벽한 옵션은 아니라고 말했습니다.
- 같은 방법으로 그들은 간단 할 수있다,그들은 또한 개념화하거나 해석하는 것이 거의 불가능하게 지나치게 복잡 할 수 있습니다.
- 이 아이디어를 조금 더 발전시키기 위해,지나치게 편향되거나 복잡한 트리와 함께,그것은 그것의 훈련 데이터에 너무 잘 취사 될 수 있으며,그 결과 지나치게 적합 할 수 있습니다.
모델 교육
그런 말로 뛰어들 수 있습니다. 교차 유효성 검사 또는 기차,테스트 분할에 대해 이야기하지 않지만 아래 코드를 게시 할 것입니다. 당신이 더 많은 설명을하고 싶습니다 뭔가가있는 경우 언급해야합니다.
먼저 데이터를 교육&테스트 세트로 나눕니다.
이제rpart
패키지의rpart
함수를 사용하여 모델을 학습합니다. 여기서 주목해야 할 중요한 점은 우리가 예측하고자하는 변수가 살아남 았으므로 주어진 개인이 일부 데이터에 따라 생존 할 가능성을 이해하기를 원합니다. ~로 해석 될 수있다;그래서 다른 말로하면 일부 변수에 의해 살아남은 것을 이해할 수 있습니다. 는~이 후 경우. 즉,데이터 집합의 다른 모든 변수를 사용하여 생존자를 예측하고 싶습니다. 아래 그림과 같이 또는 우리는 우리가 명시 적으로 사용하고자하는 변수를 호출 할 수 있습니다.
주목해야 할 또 다른 것은method
가class
라는 것입니다. 수치 결과에 사용되는 회귀 트리와 달리 범주형 결과를 예측하는 분류 트리를 만들고자 하기 때문입니다. 마지막으로 모델을 학습하는 데 사용하는 데이터는train
입니다.
model <- rpart(formula = Survived ~ Pclass + Sex + Age + SibSp + Parch + Fare + Embarked,
data = titanic_train,
method = "class")
해석 가능성
앞에서 언급했듯이 의사 결정 트리를 사용하기 쉽게 만드는 것 중 하나는 해석하기가 매우 쉽다는 것입니다. 당신은 다른 결과에 나무의 다른 가지를 따라 할 수있어.
rpart.plot(model)
그곳을 읽는 것은 조금 어렵지만,조금만 확대하면 타이타닉에서 누군가가 살았거나 죽었을 때의 첫 번째 기준은 당신이 남성인지 여부라는 것을 알 수 있습니다. 당신이 남성 인 경우에 당신은 왼쪽 지점으로 이동하고 두 개의 노드를 아래로 작동,당신은 성인이었고,당신의 형제 자매 여부/배우자는 온보드 계산. 당신이 한 사람이 있다면 그래서 당신은 생존의 확률은 꽤 슬림했다있어.
성능 평가
메트릭을 분리하기 전에 테스트 세트의 값을 예측할 수 있습니다. 학습 호출과 마찬가지로 데이터 및 예측 유형을 선택합니다. 핵심 차이점은 모델 사양입니다.
test$pred <- predict(object = model,
newdata = test,
type = "class")
의사 결정 트리의 효능을 이해할 때 매우 유용한 다양한 성능 평가 메트릭이 있습니다.
정확도
이 메트릭은 매우 간단합니다. caret
의 혼돈 행렬 함수는 이것을 포함한다.
혼란 행렬
caret
패키지의confusionMatrix
함수는 매우 유용합니다. 분류 모델 성능 평가. 패키지를로드하고 그것을 당신의 예측을 전달&실제.
library(caret)
confusionMatrix(data = test$pred,
reference = test$Survived)
이 함수가 보여주는 첫 번째 것은 혼란 행렬이라고 불리는 것입니다. 이것은 당신에게 예측과 실제 데이터가 줄 지어 방법의 테이블을 보여줍니다. 따라서 예측과 참조가 같은 대각선 세포는 우리가 올바른 것을 나타냅니다. 149(106+43)를 계산하고 총 레코드 수,178 로 나눕니다.
참 양성:참조와 예측이 모두 1 인 사분면의 셀입니다. 이것은 당신이 생존을 예측하고 그들이 실제로 생존했다는 것을 나타냅니다.
거짓 긍정:여기서 당신은 긍정적 인 것으로 예측했지만 잘못되었습니다.
참 부정:당신이 부정적인 예측,당신은 정확합니다.
거짓 음수:음수를 예측하고 잘못된 경우.
명심해야 할 몇 가지 주요 지표는 민감도와 특이성입니다. 민감도는 올바르게 예측 한 실제 레코드의 백분율입니다.
반면에 특이성은 실제 거짓 레코드의 어떤 부분을 정확하게 예측했는지 측정하는 것입니다.
특이성은 불균형 데이터 집합을 예측할 때 염두에 두어야 할 사항입니다. 이것의 아주 일반적인 보기는 전자 우편 스팸을 분류하기를 위해 이다. 시간의 99%는 스팸이 아니다,그래서 당신은 아무것도 이제까지 스팸 없었다 예측 한 경우 당신은 99%의 정확도를했을 것이다,그러나 당신의 특이성은 0 이 될 것이다,모든 스팸이 허용되는 선도.
결론
의사 결정 트리에서이 빠른 교훈을 즐겼기를 바랍니다. 당신이 더 많은 정보를 원하거나 뭔가가 있다면 당신이 나를 다른 게시물에 커버하고 싶은 무언가가 있다면 알려주세요.
행복한 데이터 과학! 당신이 즐길 경우,이 같은 다른 게시물을 체크 아웃 와서 datasciencelessons.com!