티스토리 뷰
조건부 추론 나무
조건부 추론 나무란 의사결정 나무(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,]
# 조건부 추론 나무 모델을 생성하기 위한 패키지
> 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 캠퍼스 머신러닝기반의 빅데이터분석 양성과정
'R > Analysis' 카테고리의 다른 글
[R 분석] Random Forest 알고리즘 (0) | 2019.01.17 |
---|---|
[R 분석] Decision Tree 매개변수 튜닝 (0) | 2019.01.17 |
[R 분석] 종속변수의 그룹(class) 별 데이터 개수 균등하게 맞추기 (0) | 2019.01.16 |
[R 분석] 지도학습을 위한 데이터 샘플링 (0) | 2019.01.16 |
[R 분석] Decision Tree(의사결정 나무) 알고리즘 - rpart (0) | 2019.01.15 |