티스토리 뷰

반응형

조건부 추론 나무 



조건부 추론 나무란 의사결정 나무(Decision Tree) + 통계적 유의성 확인(변수의 유의성) 가능한 수치를 제공해주는 Tree 입니다.



의사결정 나무 알고리즘에서 발생하는 두 가지 단점을 극복한 건강한(?) 나무입니다.

 - 통계적 유의성에 대한 판단 없이 노드를 분할하면서 생기는 과적합 문제 극복 

 - 다양한 값으로 분할 가능한 변수가 다른 변수에 비해 선호되는 문제 


조건부 추론 나무를 통해, 통계적으로 컬럼별 중요도를 파악하고, 중요도가 큰 변수를 트리의 상위에 배치하여 인과관계를 조금 더 정확하게 판별할 수 있습니다. 



1. 조건부 추론 나무 생성 및 시각화 


### 1. data sampling : train data set, test data set 분리

> library(doBy)  

> train <- sampleBy(~Species, frac = 0.7, data = iris)   

> f1 <- function(x) {

     as.numeric(strsplit(x, '\\.')[[1]][2])                       

   }

> rn <- as.vector(sapply(rownames(train), f1))          

> test <- iris[-rn,]     


 # 조건부 추론 나무 모델을 생성하기 위한 패키지

> install.packages('party')   

> library(party)     


party::ctree(formula = , data = )


### 2. 모델 생성

> m <- ctree(Species ~., data=iris)

> m    Decision Tree와 비슷하지만 좀 더 통계적으로 접근


Conditional inference tree with 4 terminal nodes


Response:  Species 

Inputs:  Sepal.Length, Sepal.Width, Petal.Length, Petal.Width 

Number of observations:  150 


1) Petal.Length <= 1.9; criterion = 1, statistic = 140.264

  2)*  weights = 50 

1) Petal.Length > 1.9

  3) Petal.Width <= 1.7; criterion = 1, statistic = 67.894

    4) Petal.Length <= 4.8; criterion = 0.999, statistic = 13.865

      5)*  weights = 46 

    4) Petal.Length > 4.8

      6)*  weights = 8 

  3) Petal.Width > 1.7

    7)*  weights = 46


### 3. 모델 시각화

> plot(m)

# 통계적 유의성 측정치 p-value에 따른 분석이 가능하고 오분류의 지점을 파악하기에 용이합니다.

# 보통  p-value 값이 0.01보다 작으면 유의하다고 판단하고.  p-value 값이 작아질수록 유의성이 커집니다.

# 아래 결과에서 p-value가 0.001보다 작다는 것은 매우 유의미한 결과라고 볼 수 있겠죠!!






참고: KIC 캠퍼스 머신러닝기반의 빅데이터분석 양성과정

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday