728x90

의사결정나무는 데이터가 가진 속성으로부터 분할 기준 속성을 판단하여, 트리형태로 모델링하는 분류 예측 모델이다.

 

의사결정 나무를 수행할 수 있는 대표적인 함수는 다음 3가지다.

rpart() : CART 기법 방법을 사용

tree()

ctree()

 

library(rpart)
md = rpart(Species~., data = iris) #rpart 함수로 의사결정나무 모형생성

#의사결정나무 시각화 처리 1(plot 이용)
plot(md, compress = T, margin = 0.5) #트리 모형 시각화
text(md, cex = 1) #텍스트 크기 조정

#의사결정나무 시각화 처리 2(rpart.plot 패키지 이용)
library(rpart.plot)
prp(md, type = 2, extra = 2)

md$cptable #cptable을 활용해 교차 타당성 오차를 확인한다.
plotcp(md) # 모형의 교차 타당성 오차 시각화 처리

tree_pred = predict(md,
					newdata = iris,
                    type = "class")
                    
library(caret) #혼동행렬 함수를 사용하기 위한 라이브러리 불러오기
confusionMatrix(tree_pred,
				reference = iris$Species)
                #정확도는 0.96으로 상당히 높다
                #민감도는 0.9~1.0로 높다
                #특이도는 0.95~1.0로 높다
728x90