Decision Tree는분류와 회귀에서도 사용될 수 있는 머신러닝 모델로 입력값에 대해 규칙을 생성하는 알고리즘으로 생성된 규칙 구조가 나무의 가지를 닮아 의사결정나무라고도 불립니다.
Decision Tree의 작동원리는 다음과 같습니다.
STEP1.
Decision Tree는 노드(Node)와 가지(Branch)로 구성되어 있으며 가장 위에 있는 Root Node에서 부터 시작합니다.
STEP2.
규칙을 거침에 따라 각각의 구획으로 정리됩니다. 내부 노드(Internal Node)는 데이터를 조건에 따라 분할하는 노드로 위의 그림에서는 도형의 변(sides of a shape)의 갯수에 따라 triangle이냐 square냐로 구분할 수 있습니다.
STEP3.
새로운 데이터가 들어왔을 때, 정해진 규칙에 따라 각각의 구획으로 들어가게 됩니다.
그 안의 평균/최빈값을 토대로 결과를 도출하여 단말 노트(Leaf Node) 를 최종적으로 나타냅니다.
수 많은 규칙이 생성될 수 있으나 가장 예측에 도움이 되는 규칙을 찾아야합니다.
가장 좋은 규칙을 세우기 위해서는 불순도(Impurity)를 계산해야합니다. 불순도가 가장 낮아지는 규칙을 찾을 수 있어야 합니다.
하지만 적당한 깊이의 규칙만을 남기고 처리해야 합니다. (pruning: 가지를 자르는 것)
SASHELP의 IRIS 데이터를 활용해 Decision Tree로 예제입니다.
proc hpsplit data=sashelp.iris;
class Species;
model Species = SepalLength SepalWidth PetalLength PetalWidth;
grow entropy;
prune none;
run;
proc hpsplit: SAS에서 제공하는 Decision Tree statement로 데이터 분류나 회귀를 수행할 때 사용됩니다. 분할 기준과 조건을 트리 형태로 시각화 해주는 특징이 있습니다.
Class: 종속변수 또는 독립변수를 범주형 변수로 설정합니다.
grow: 트리의 가지를 발생시키는 기준을 정의합니다.
prune: 트리의 복잡성을 줄이기 위해 가지치기 방법을 설정한 것 입니다.
Species는 꽃의 품종을 나타내는 종속 변수로 SepalLength, SepalWidth, PetalLength, PetalWidth를 활용해서 꽃의 품종을 예측합니다.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!