에서 의사 결정 트리를 사용하여 분류 알아보기

로버트 우드

팔로우

2019 년 7 월 30 일·4 분 읽기

분류에 있어서는 의사 결정 트리 분류자를 사용하는 것이 가장 쉬운 방법 중 하나입니다.

의사 결정 트리를 사용하는 이유

  • 믿을 수 없을 정도로 쉽게 해석
  • 누락 된 데이터 처리&이상 치를 매우 잘 처리하므로 의사 결정 트리가 범주를 잘 처리하므로 범주 형 변수 인코딩을 포기하게됩니다!
  • 재귀 파티셔닝의 세부 사항에 뛰어 들지 않으면 의사 결정 트리가 비선형 관계를 모델링 할 수 있습니다.

의사 결정 트리

를 사용하지 않는 이유는 항상 완벽한 옵션은 아니라고 말했습니다.

  • 같은 방법으로 그들은 간단 할 수있다,그들은 또한 개념화하거나 해석하는 것이 거의 불가능하게 지나치게 복잡 할 수 있습니다.
  • 이 아이디어를 조금 더 발전시키기 위해,지나치게 편향되거나 복잡한 트리와 함께,그것은 그것의 훈련 데이터에 너무 잘 취사 될 수 있으며,그 결과 지나치게 적합 할 수 있습니다.

모델 교육

그런 말로 뛰어들 수 있습니다. 교차 유효성 검사 또는 기차,테스트 분할에 대해 이야기하지 않지만 아래 코드를 게시 할 것입니다. 당신이 더 많은 설명을하고 싶습니다 뭔가가있는 경우 언급해야합니다.

먼저 데이터를 교육&테스트 세트로 나눕니다.

이제rpart패키지의rpart함수를 사용하여 모델을 학습합니다. 여기서 주목해야 할 중요한 점은 우리가 예측하고자하는 변수가 살아남 았으므로 주어진 개인이 일부 데이터에 따라 생존 할 가능성을 이해하기를 원합니다. ~로 해석 될 수있다;그래서 다른 말로하면 일부 변수에 의해 살아남은 것을 이해할 수 있습니다. 는~이 후 경우. 즉,데이터 집합의 다른 모든 변수를 사용하여 생존자를 예측하고 싶습니다. 아래 그림과 같이 또는 우리는 우리가 명시 적으로 사용하고자하는 변수를 호출 할 수 있습니다.

주목해야 할 또 다른 것은methodclass라는 것입니다. 수치 결과에 사용되는 회귀 트리와 달리 범주형 결과를 예측하는 분류 트리를 만들고자 하기 때문입니다. 마지막으로 모델을 학습하는 데 사용하는 데이터는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!

답글 남기기

이메일 주소는 공개되지 않습니다.

Previous post WordPress.org
Next post 잠두 심기-정원에서 잠두를 재배하는 방법