Br) ML - 의사결정 나무

Br) ML - 의사결정 나무

브라이틱스(Brightics)에서 의사결정나무(Decision Tree)를 실시하는 방법을 알아본다.


Machine Learning

※ 본 내용은 Load 함수 블럭에서 diabetes.csv 파일을 불러온 후에 진행한다.
diabetes.csv 다운받기 [클릭]
사전 준비


개요

의사결정 나무(Decision Tree)는 규칙(rule) 기반으로 데이터를 분류(classification) 또는 예측(prediction)하는 모델이다. 학습 데이터를 입력한 독립변수와 각종 분리기준을 사용하여 단계적으로 분할하며 이를 도식화 하였을 때 나무의 형상(나무를 뒤집어 놓은 형상 or 뿌리 모양 같지만…)을 보인다. 그리고 도식화한 모델은 다른 머신러닝 모델에 비해 직관적이며 해석이 매우 쉽다. 추가로 종속변수가 범주형인 경우 의사결정 나무의 분류 나무(Classification Tree)를 사용하고 연속형인 경우 회귀 나무(Regression Tree)를 사용한다.


이론

향후 보충 예정

분류 모델(Classifier)

회귀 모델(Regression)


설정

Decision Tree Classifier Train 블럭의 설정 창은 다음과 같다.
Decision Tree Classifier Train 블럭 설정 창

-Feature Columns: 독립변수 지정
-Label Column: 종속변수 지정
-Criterion: 노드 분할 결과 품질을 평가하기 위한 기준. Gini와 Entropy 중에서 선택할 수 있으며 기본값은 Gini이다.
-Splitter: 노드를 분할하기 위한 기준값 설정법. Best와 Random 중에서 선택할 수 있으며 기본값은 Best이다.
-Max Depth: 모델(나무) 성장 제한 기준. 몇 단계(깊이) 까지 성장시킬지 지정
-Min Samples Splits: 노드 분할에 필요한 최소 표본 수. 이 숫자가 매우 작으면 과적합, 반대의 경우 과소적합이 발생
-Min Samples Leaf: 잎사귀(말단) 노드가 되기 위한 최소 표본 수. 지정 숫자보다 노드에 더 많은 표본이 있을 경우 노드 분할 가능성이 있음
-Min Weight Fraction Leaf: 잎사귀(말단) 노드에 필요한 가중치 합계의 최소 가중치 비율
-Max Features: 최적 분할(best split)시 고려하는 변수의 개수. 입력 누락시 훈련에 사용하는 변수 개수로 자동 설정
-Seed: 결과를 고정하기 위해 지정하는 자연수
-Max Leaf Nodes: 모델(나무) 성장시 최우선으로 고려하는 기준. 최적 잎사귀(말단) 노드 개수는 불순도의 상대적인 감소로 정의. 입력 누락시 무한대로 설정
-Min Impurity Decrease: 여기에 설정한 값 이상으로 불순도가 감소할 경우 노드를 분할
-Class Weights: 종속변수 각 수준에 부여되는 가중치. 입력 누락시 균등 가중치. 가중치 부여는 사전식 순서(lexicographical order)를 따름
-Group By: 특정 변수를 기준으로 연산을 별도로 실시

Decision Tree Classifier Predict 블럭의 설정 창은 다음과 같다.
Decision Tree Classifier Predict 블럭 설정 창

-Prediction Column Name: 예측값이 들어갈 변수 명
-Probability Column Prefix: 예측값의 확률값이 들어갈 변수의 접두사
-Suffix Type: 예측값의 확률값이 들어갈 변수의 접미사.

Decision Tree Regression Train 블럭의 설정 창은 다음과 같다.
Decision Tree Regression Train 블럭 설정 창

-Feature Columns: 독립변수 지정
-Label Column: 종속변수 지정
-Criterion: 노드 분할 결과 품질을 평가하기 위한 기준. MSE/Friedman MSE/MAE 셋 중에서 선택할 수 있으며 기본값은 MSE이다.
-Splitter: 노드를 분할하기 위한 기준값 설정법. Best와 Random 중에서 선택할 수 있으며 기본값은 Best이다.
-Max Depth: 모델(나무) 성장 제한 기준. 몇 단계(깊이) 까지 성장시킬지 지정
-Min Samples Splits: 노드 분할에 필요한 최소 표본 수. 이 숫자가 매우 작으면 과적합, 반대의 경우 과소적합이 발생
-Min Samples Leaf: 잎사귀(말단) 노드가 되기 위한 최소 표본 수. 지정 숫자보다 노드에 더 많은 표본이 있을 경우 노드 분할 가능성이 있음
-Min Weight Fraction Leaf: 잎사귀(말단) 노드에 필요한 가중치 합계의 최소 가중치 비율
-Max Features: 최적 분할(best split)시 고려하는 변수의 개수. 입력 누락시 훈련에 사용하는 변수 개수로 자동 설정
-Seed: 결과를 고정하기 위해 지정하는 자연수
-Max Leaf Nodes: 모델(나무) 성장시 최우선으로 고려하는 기준. 최적 잎사귀(말단) 노드 개수는 불순도의 상대적인 감소로 정의. 입력 누락시 무한대로 설정
-Min Impurity Decrease: 여기에 설정한 값 이상으로 불순도가 감소할 경우 노드를 분할
-Group By: 특정 변수를 기준으로 연산을 별도로 실시

Decision Tree Regression Predict 블럭의 설정 창은 다음과 같다.
Decision Tree Regression Predict 블럭 설정 창

-Prediction Column Name: 예측값이 들어갈 변수 명


결과

Diabete 데이터를 Split Data 함수 블럭으로 7:3으로 나눈 후(Seed 123) 임신횟수(Pregnancies), 혈당(Glucose), 혈압(BloodPressure)을 독립변수로 하고 당뇨 여부(Outcome)을 종속변수로 한 결과는 다음과 같다.
분류 나무 학습 학습 결과

분류 나무 정확도 확인 결과

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×