안녕하세요 MySAS홍보대사 한노아입니다.
오늘은 EM의 [의사결정]노드를 활용한 비용기반 불균형 문제 해소 방법에 대해 알아보도록 하겠습니다.
INTRODUCTION
계급불균형자료의 경우 분류기의 학습알고리즘의 특성에 의해 높은 정분류율에도 불구하고 의미 없는 모형이 만들어지는 정확도의 역설 문제가 발생한다는 사실을 지난 연재를 통해 알아보았습니다. 이번 시간에는 EM의 [의사결정] 노드를 활용해 계급불균형 문제를 해소하는 방법에 대해 알아보도록 하겠습니다.
1. Under-Sampling , Over-Sampling(단순 임의 추출)
2. Over-Sampling(복원추출), Under&Over-Sampling
3. 비용함수를 이용한 방법 - Decision 노드 활용
4. 모형을 이용한 방법 – RUSBoost, UnderBagging 등
5. SMOTE – Macro를 이용한 방법과 Open Source Integration 노드를 이용한 방법
* 위 순서는 구현 난이도에 따른 것 입니다.
[의사결정]노드에 의한 역사전확률을 이용한 방법에 기반한 비용함수 방법은 EM에서 자체적으로 지원하는 방법이기 때문에 별도의 [SAS 코드]노드를 이용하지 않아도 무관합니다. 사실상 이 방법이 가장 쉬운 방법 중 하나라고 할 수 있습니다.
THE COST-SENSITIVE APPROACH
SAS 분류기들은 기본적으로 비용함수 기반의 분류를 하도록 설정되어 있습니다. 하지만 기본 비용함수는 Type1, Type2 오류 모두 1로 설정되어 있기 때문에 사실상 오분류율을 최소화하는 방향으로 학습이 되게 돼있다고 보시면 될 것 같습니다. 하지만 때로는 비용이나 사전확률들을 고려해 모형을 생성하고, 평가해야 할 때가 있습니다.
가령 암 발병 가능성에 대한 예측이나 금융사기 예측의 경우에는 그 발생에 대한 비용이 막대하기 때문에 사전에 이에 대한 비용을 높게 설정해 모형이 비용을 최소화하는 방향으로 학습하도록 유도하는 것이 논리적으로 타당할 것입니다.
이러한 기능을 담당하는 노드가 바로 [의사결정] 노드입니다. 또한 앞선 연재를 통해서 [표본추출]노드의 경우 Validate / Test 데이터를 출력하지 않는 이유도 여기에 있습니다. 즉, [표본추출]노드를 이용해 사전에 균형화 작업을 한 뒤 [의사결정]노드의 사전확률 기능을 이용해 본래 데이터 갖고 있던 확률로 모형을 평가하게 하는 것입니다.
METHODOLOGY
[의사결정] 노드의 역사전확률 기능을 활용한 비용함수 조정 방법에 대해 알아보도록 하겠습니다. [의사결정] 노드는 EM의 [평가]항목에서 찾을 수 있습니다. 우선 아래와 같이 노드를 연결하도록 하겠습니다.
위와 같이 [의사결정]노드를 연결하고 [사용자 정의 편집기]의 […]버튼을 클릭하면 우선 경로 업데이트가 진행되게 됩니다. 기본적으로 의사결정 노드의 경우 주어진 데이터에 의한 사전확률 계산절차 및 비용 매트릭스 구성을 위해 필요한 절차로 보입니다.
처음 뜨는 화면에서 [사정확률(P)]라고 적혀 있는 상위 탭을 선택합니다. 그러면 아래와 같은 화면이 나오게 됩니다.

위 화면을 보면 알 수 있듯 기본적으로 주어진 데이터에 기반하여 사전확률이 계산되어 있는 것을 알 수 있습니다. 살펴보면 반응(Personal_loan = 1) 집단에 대한 사전확률이 0.096으로 상대적으로 엄청 작은 것을 알 수 있습니다. 즉, 계급불균형 문제가 발생했다는 사실을 알 수 있습니다. 여기서 만약 앞선 [표본추출]노드와 같은 노드를 이용할 경우 저 사전확률이 0.5, 0.5로 변경되어 있게 됩니다. 여하튼 이번 실습의 관심사는 [의사결정 가중] 탭을 이용한 가중치 조정이기 때문에 자세한 설명은 차치하도록 하겠습니다. 이제 [의사결정] 탭으로 이동하도록 하겠습니다.

[의사결정(D)] 탭에서 의사결정 비용함수 및 의사결정 이용여부 그리고 [역 사전확률을 기본으로(I)]라는 버튼이 있는 것을 알 수 있습니다. 역기서 “의사결정을 사용하시겠습니까?”를 [예(Y)]로 선택하고, [역 사전확률을 기본으로(I)]버튼을 클릭합니다. 이렇게 하고 [의사결정 가중(W)]항목을 확인해 보면 아래와 같이 변경되어 있는 것을 알 수 있습니다.

반응(Personal_Loan = 1)인 집단에 대한 의사결정 가중치가 역사전확률을 반영해 약 10.42가 된 것을 확인할 수 있습니다. 역 사전확률은 앞서 살펴본 사전확률의 역수로 여기서는 “1/0.096”이 10.41666이 됨을 확인할 수 있습니다. 이렇게 할 경우 두 Type1오류와 Type2오류에 대한 비율보정이 이뤄지게 됩니다. 결과적으로 둘은 동일한 표본 수를 가질 때와 유사하게 학습이 이뤄지게 되는 것 입니다. 이 작업까지 끝났다면 [확인]버튼을 클릭합니다.
PREDICTIVE MODELING

이번 시간에는 지난 시간에 구성한 다이어그램에 추가로 [의사결정]노드와 역사전확률에 의한 가중치가 부여된 표본을 학습할 [회귀분석], [신경망], [의사결정나무]등을 추가로 생성했습니다. 이렇게 생성 된 분류기들을 이용해 [의사결정]노드에 의한 처리효과 및 각 방법들의 효과를 비교해 보도록 하겠습니다.

[모형평가]노드의 경우 위와 같이 옵션을 변경하여 AU-ROC를 기준으로 챔피언 모형이 선택되도록 지정합니다.
GOODNESS-OF-FIT

먼저 모형 적합결과를 살펴보면 ROC의 경우 대체로 모두 우상향으로 붙어있는 형태로 좋은 모델 퍼포먼스를 보이고 있는 것을 알 수 있습니다. 사실 이 데이터의 경우 계급불균형 자료임에도 불구하고 종속변수에 대한 설명력이 높은 독립변수를 다수 갖고 있기 때문에 소수계급에 대한 정확도도 기본적으로 70%이상의 높은 정확도를 나타내고 있습니다. 따라서 단순하게 ROC곡선만으로 평가하기에는 무리가 있습니다.

AU-ROC에 의한 챔피언 모형 선정결과를 살펴보면 이 역시 어떠한 처리도 시행하지 않은 [의사결정]노드가 0.996의 1에 가까운 높은 AU-ROC값을 나타내는 것을 알 수 있습니다. 따라서 이 AU-ROC만을 소수집단에 대한 정확도 향상여부를 정확하게 판단하기가 어렵습니다.

위 그래프를 살펴보면 이번에도 역시 지난 시간과 마찬가지로 Over-Sampling기법을 이용한 의사결정 나무나 신경망 모형이 좋은 성능을 나타낸 것을 알 수 있습니다. 하지만 [의사결정] 노드에 의한 가중치 조정 [의사결정나무]의 특이도 값을 살펴보면 기본 [의사결정]나무보다 소폭 상승한 것을 알 수 있습니다. 자세한 내용은 아래 표를 참고해 주시기 바랍니다.
CONCLUSION
오늘은 계급불균형 자료의 해법으로 [의사결정]노드를 이용한 가중치 방법에 대해 알아보았습니다. 이 방법의 경우에는 별도의 샘플링 과정이 필요 없고 EM에서 지원하는 [의사결정]노드를 이용해 정말 손쉽게 구현이 가능하다는 장점이 있었습니다. 또한 표본을 늘리거나 줄이는 과정이 없기 때문에 학습시간의 증/감이 없었습니다. 반면 이번 실습데이터의 경우에는 이렇다할 만큼의 모형 정확도 개선이 없었습니다. 하지만 이 방법의 경우 많이 사용하는 방법이기도 하고 권장되는 방법 중 하나기도 합니다. 다음 시간에는 이번 시간에 이어서 계급불형 자료에 대한 분석방법으로 SOMTE방법에 대해 논의해 보도록 하겠습니다. 원래 연재 순서상 RUSBoosting을 진행해야 할 차례이지만 이 방법의 경우 샘플링 방법과 결합한 부스팅 방법이기 때문에 SMOTE방법 이후에 하는 것이 좋을 것으로 판단하여 연재 순서를 다소 변경했음을 알려드립니다.
REFERENCES
[1] Wang Ruizhe, Lee Novik, Wei Yun. 2015. “A Case Study: Improve Classification of Rare Events with SAS Enterprise Miner." Proceedings of the SAS Global Forum 2015 Conference, 3282-2015.
[2] Guzman Lina. 2015. “Data sampling improvement by developing SMOTE technique in SAS." Proceedings of the SAS Global Forum 2015 Conference, 3483-2015.