728x90

05.의사결정트리(Decision Tree) in R (2) 



iris 데이터 셋을 이용하여, Training Set과 Test Set을 생성한 뒤, Training Set으로 분류모델을 생성하고,  Test Set을 이용하여 분류모델을 평가 해보겠습니다.


먼저 전체 소스입니다.



다음은 iris_ctree결과입니다.

결과를 보시면 Species결정에 Petal.Length와 Petal.Width가 중요한 변수라는걸 알 수 있습니다.




다음은 Iris_ctree를 시각화한 그림입니다.

 

다음은 stats패키지에서 제공하는 predict()함수로 정확도를 구하는 방법입니다.

pred <- predict(iris_ctree,Test_set) 를 통하여 예측치를 구한뒤

table(pred,Test_set$Species)로 혼돈 매트릭스를 생성한뒤 정확도를 계산합니다.

저의 경우에는 97.8%의 정확도가 나왔으며, sample에 따라 결과의 차이는 약간 있을수 있습니다.

set.seed()를 사용하면 매번 동일결과를 얻을 수 있습니다. 



728x90

04.의사결정트리(Decision Tree)  in R


- 의사결정트리(Decision Tree) 방식은 나무구조 형태로 분류결과를 도출해내는 방식으로, 입력 변수 중에서 가장 영향력이 있는 변수를 기준   으로 이진 분류하여 분류결과를 나무 구조 형태로 시각화를 해줍니다..

- 비교적 모델 생성이 쉽고, 단순하지만 명료한 결과를 제공하기 때문에 의사결정의 자료로 가장 많이 사용하는 지도학습 모델입니다.




다음은 R의 party패키지의 ctree()함수로 의사결정트리를 생성하는 방법입니다.


먼저 소스코드입니다.



다음은 air_ctree의 결과입니다.

결과를 보면 온도를 결정하는 1순위가 Ozone이고 2순위가 Wind라는것을 알수있으며, Solar.R은  영향을 안 미치는것을 볼수 있습니다.

* 은 마지막 노드라는 것을 의미합니다.



다음은 분류분석 결과를 시각화 한 모양입니다.





728x90

의사결정트리(Decision Tree)




의사결정트리(Decision Tree) 정의

결정 트리(decision tree) 의사 결정 규칙과 결과들을 트리 구조 도식화한 의사 결정 지원 도구의 일종이다

결정 트는 운용 과학, 중에서도 의사 결정 분석에서 목표에 가장 가까운 결과를 있는 전략을 찾기 위해 주로 사용된다.



                                                 의사결정트리(Decision Tree) 알고리즘                                                                         

결정 트리를 구성하는 알고리즘에는 주로 하향식 기법이 사용되며, 진행 단계에서는 주어진 데이터 집합을 가장 적합한 기준으로 분할하는 변수값이 선택된다. 

서로 다른 알고리즘들은분할의 적합성" 측정하는 각자의 기준이 있다.

이러한 기준들은 보통 부분 집합 안에서의 목표 변수의 동질성을 측정하며, 아래는 예시들이다.

기준들은 가능한 데이터 집합 분할의 경우의 수마다 적용되며, 결과 값들은 병합되어, 평균 값이 계산되어, 데이터 집합의 분할이 얼마나적합한지" 측정하는데 사용된다.

 

Decision Tree algorithm


(Decision Tree) 강점


결과를 해석하고 이해하기 쉽다.

자료를 가공할 필요가 거의 없다.

수치 자료와 범주 자료 모두에 적용할 수 있다.

화이트박스 모델을 사용한다.

안정적이다.

대규모의 데이터 셋에서도 잘 동작한다.



의사결정트리(Decision Tree)의 약점


각 노드에서의 최적값을 찾아내는 탐욕 알고리즘 같은 휴리스틱 기법법을 기반으로 하고 있어 최적 결정 트리를 알아낸다고 보장할 수는 없다.

훈련 데이터를 제대로 일반화하지 못할 경우 너무 복잡한 결정 트리를 만들 수 있다.

배타적 논리합이나 패리티,멀티플렉서와 같은 문제를 학습하기 어렵다.

약간의 차이에 따라 트리의 모양이 많이 달라질 수 있다.

 

+ Recent posts