* Decision Tree
1. 의사결정나무(Decision Tree)는 그 시각적인 구조 덕분에 depth가 크지 않는 한 해석이 용이한, 간단한(simple) 모델에 해당합니다. 다른 간단 모델인 Linear Regression, Logistic Regression은 feature와 target이 선형적 관계일 때 통하는 방법인 반면, 의사결정나무는 비선형적인 관계에서도 통하는 방법, 앙상블이 의사결정나무 기반
2. 목적이 분류(Classification)일 때에는 불순도 지표로 Gini 계수 및 엔트로피를 이용하고, 목적이 회귀(Regression)일 때에는 MSE(Mean Square Error) 등을 이용해서 분산을 감소시키는 방향으로 노드를 째게 됩니다. 이 과정에서, 불순도를 가장 크게 감소시키는 변수의 중요도가 가장 크게 됩니다. CART 알고리즘은 바로 이 불순도를 이용해서 가장 중요한 변수들을 찾아냅니다.
CART ( Classification and Regression Tree)
1. 분류 및 회귀 트리 (Sckit learn , Spark)
2. 적절한 불순물 기준을 사용하여 분할 할 최적의 수치 적 또는 범주 적 특징을 찾는다 (GIni index 이용)
3. CART는 숫자 및 범주 변수를 모두 쉽게 처리
4. CART 알고리즘은 자체적으로 가장 중요한 변수를 식별하고 중요하지 않은 변수를 제거
5. CART는 이상 값을 쉽게 처리
ID3
1. 불순물 기준 엔트로피를 사용하여 정보 이득 을 최대화 할 범주 형 특징을 찾는 다 방향 트리를 생성
2. Regression 은 처리 할 수 없고 Classification 문제에만 적합 ex) spark
3. 샘플이 작으면 과적합 되기가 쉬움
4. 결측값 처리 X
Feature Importance (Gini Importance)
1. Scikit-learn에서는 지니 중요도(Gini Importance)를 이용해서 각 feature의 중요도를 측정
2. 해당 노드에서 샘플들이 이질적으로 구성되어 있을수록, 다시 말해서 모든 Class에 골고루 분포되어 있을수록 지니 불순도(impurity)가 높아짐 , 의사결정나무는 이렇게 불순도를 감소시키는 방향으로 노드를 생성하고 분류를 진행
3. 노드 중요도라는 게 사실 우리한테 더 잘 알려진 Information Gain
4. Information Gain을 최대화하는 feature를 기준으로 노드를 째게 된다. 어떤 노드의 노드 중요도 값이 클수록, 그 노드에서 특히 불순도가 크게 감소한다는 것을 의미하기 때문에, 이러한 면에서 그 노드가 중요하다고 말하는 것은 합리적
5. 즉, 전체 노드의 중요도를 합한 것 대비 ii번째 feature에 의해 째진 노드들의 중요도를 합한 것이 바로 ii번째 feature의 중요도 I(fi)I(fi)가 됩니다! 이 값이 클수록, 해당 feature가 트리를 생성하고 샘플을 분류하는데 큰 역할을 했다고 볼 수 있고 이 I(fi)I(fi)를 다시 모든 feature들의 중요도의 합으로 나눠서 정규화한 것으로 이용한다고 합니다.
* 각 feature의 중요도를 계산해보겠습니다. ii번째 feature, fifi의 중요도 I(fi)I(fi)는 다음과 같이 계산됩니다.
* 랜덤 포레스트에서 변수 중요도는 어떻게 될까요? 랜덤 포레스트는 의사결정나무들을 병렬적으로 합한 것이므로, 랜덤 포레스트에서 I(fi)I(fi)는 결국 각 트리에서의 I(fi)I(fi)를 모두 평균 낸 것
불순도 기반 Feature Importance의 한계
1. scikit-learn의 디폴트 랜덤 포레스트 Feature Importance는 biased 하다
2. 특히 randomforest는 연속형변수 또는 high cardinality 범주형 변수인 경우 중요도가 부풀려짐
2-1 cardinality가 큰 변수일 수록, 노드를 쨀 게 훨씬 더 많아서 노드 중요도 값이 높게 나오는 것이라 추측
3. 또 한, 이 불순도를 기반으로 한 변수 중요도는 train 과정에서 얻은 중요도이기 때문에, test 데이터셋에서는 이 변수 중요도가 어떻게 변하는 지 알 수 없음
3-1. 실제로 test 데이터셋에서는 중요하지 않은 변수가 학습 과정에서는 가장 중요한 변수로 계산될 수 있음
'Machine Learning' 카테고리의 다른 글
군집화 (Clustering ) (0) | 2020.12.28 |
---|---|
Permutation Feature Importance (0) | 2020.12.15 |
Interpretable Machine learning (0) | 2020.12.14 |
AUC-ROC 심화 이해 (0) | 2020.08.30 |
모델의 정확도 지표(Accuracy,Recall,Precision,F1 Score) (0) | 2020.08.30 |