안녕하세요 MySAS홍보대사 한노아입니다.
오늘은 지난시간에 이어 샘플링기법을 활용한 계급불균형 문제 해결방안에 대해 알아보도록 하겠습니다.
INTRODUCTION
계급불균형자료의 경우 분류기의 학습알고리즘의 특성에 의해 높은 정분류율에도 불구하고 의미 없는 모형이 만들어지는 정확도의 역설 문제가 발생한다는 사실을 지난 연재를 통해 알아보았습니다. 이번 시간에는 지난 시간에 이어 SAS 코드 노드를 활용한 Under&Over Sampling방법에 대해 알아보도록 하겠습니다.
1. Under-Sampling , Over-Sampling(단순 임의 추출)
2. Over-Sampling(복원추출), Under&Over-Sampling
3. 비용함수를 이용한 방법 - Decision 노드 활용
4. 모형을 이용한 방법 – RUSBoost, UnderBagging 등
5. SMOTE – Macro를 이용한 방법과 Open Source Integration 노드를 이용한 방법
* 위 순서는 구현 난이도에 따른 것 입니다.
오늘은 지난시간에 알아본 Over-Sampling(복원추출)방법에 이어서 Under&Over Sampling방법에 대해 알아보도록 하겠습니다.
UNDER AND OVER-SAMPLING METHOD
Under&Over-Sampling방법은 기존에 자주 이용되는 Over-Sampling방법과 Under-Sampling방법을 결합한 방법으로 이 방법의 경우 정보의 손실도 기존의 절반으로 줄여줄 뿐만 아니라 편향 역시 Over-Sampling보다 적은 특징을 갖고 있습니다. 전체 표본수를 기준 샘플 수로 설정하고 절반에 해당하는 부분은 소수계급에서 Over-Sampling을 진행합니다. 그리고 나머지 절반에 해당하는 부분은 다수계급에서 랜덤추출을 합니다.
가령 위와 같이 1000개의 샘플이 있는 경우 다수집단(800명)에서 500명을 추출하고, 소수집단(200명)에서 복원추출 방법을 이용해 500명을 추출하게 됩니다. 이렇게 하면 소수집단과 다수집단간의 비율이 정확하게 1:1가 되기 때문에 다수집단에 편향된 학습을 막을 수 있습니다.
하지만 이 방법 역시 없는 표본을 생성하고, 있는 표본을 제거하는 것이기 때문에 결과적으로 정보의 손실과 편향이 동시에 발생하지만 그 정도가 기존의 Under또는 Over 샘플링보다는 덜하다는 장점이 있습니다.
METHODOLOGY
이번에 이용할 Under&Over-Sampling 방법 역시 지난 시간과 마찬가지로 EM에서 지원하는 [표본추출(Sample)]노드를 이용한 구현이 어렵기 때문에 [SAS 코드]노드를 이용해 지난시간과 마찬가지로 [Surveyselect]프로시저를 이용해 구현해 보도록 하겠습니다.
이번시간에 이용할 코드는 Under-Sampling절차와 Over-Sampling절차가 Target변수의 속성에 따라 모두 포함 돼 있기 때문에 지난번 코드에 비해 다소 복잡합니다. 때문에 지난시간과 겹치는 부분은 설명을 생략하고 변경된 부분만 설명 드리도록 하겠습니다.
핵심코드는 생각보다 간단합니다. 먼저 매크로 변수 total은 전체 표본의 개수를 의미합니다. 앞선 과정을 통에 이미 값을 받은 상태입니다. 또한 Target1은 다수집단의 level에 대항하는 값이고, Target2는 소수집단의 level에 해당하는 값입니다.
%sysevalf의 두 번째 인수로 포함되어 있는 ceil은 소수점을 제거하는 용도로 이용됐습니다. 첫 번째 Surveyselect문은 다수집단에서 전체의 절반만큼의 표본을 랜덤 추출하는 코드입니다. 그리고 두 번째 Surveyselect문은 소수집단에서 복원추출 방법을 이용해 데이터를 늘리는 코드입니다. 그리고 마지막 데이터문을 통해서 내보는 데이터에 이 둘을 결합하도록 했습니다.
개념자체가 어렵지 않기 때문에 구현방법 역시 프로시저만 잘 이용할 줄 안다면 어렵지 않게 구현이 가능합니다.
PREDICTIVE MODELING
노드는 위와 같이 Train/Validate 70:30으로 분할하였고, 변수변환 방법(정규성 최대화)을 통해서 불필요한 노이즈를 제거하는 없을 진행했습니다. 또한 각 처리방법의 효과를 확인하기 위해서 샘플링을 하지 않은 노드와 Over-Sampling, Under&Over-Sampling을 생성해 이를 [회귀분석], [신경망], [의사결정나무] 등을 이용해 비교해 보도록 할 것입니다. 모델비교의 경우 기본 옵션을 이용했지만 [모델선택]의 [통계량 선택] 옵션의 경우 [ROC]를 선택해 AU-ROC도 동시에 볼수 있도록 옵션을 변경했습니다.
변수변환 결과입니다. 결측치는 원래 없었기 때문에 별도의 처리를 하지 않았습니다. 기본적으로 정규성가정이 성립하는 범위가 왜도, 첨도 +/-2인 점을 감안했을 때 대부분은 정상범위 내에 들어온 것을 확인할 수 있습니다.
GOODNESS-OF-FIT
적합 결과를 살펴보면 대부분의 ROC곡선이 좌상향으로 붙어있는 것을 확인할 수 있습니다. 대부분의 분류기들이 매우 좋은 성능을 나타내는 것을 확인할 수 있습니다. 또한 Train/Validate간의 ROC곡선차이가 크지 않은 것으로 보아 과적합의 우려도 적은 것으로 판단됩니다.
오분류율 및 AU-ROC를 살펴보면 샘플링을 적용하지 않은 [의사결정나무]모형이 가장 높은 AU-ROC값을 나타내는 것을 알 수 있습니다. 즉, Event집단에 대한 비용이 크지 않을 경우 샘플링을 하지 않은 [의사결정나무]모형을 이용하는 것도 나쁘지 않을 것으로 판단 됩니다.
하지만 이번 데이터의 특성상 담보대출 제안에 불응할 사람을 예측하는 것보다 응할 확률이 높은 사람을 찾아내는 것이 훨씬 중요합니다. 왜냐하면 대부분의 은행에서 발생 되는 소득은 대출이자이기 때문입니다. 그렇기 때문에 비용면에서 특이도가 훨씬 중요하다는 사실을 알 수 있습니다.
그러한 이유로 특이도와 민감도를 살펴보겠습니다. 샘플링을 하지 않은 모형들의 경우 대부분이 특이도가 70~80%를 상회하는 수준의 값을 갖는 것을 알 수 있습니다. 반면에 샘플링 기법을 적용한 경우 대부분의 모형들이 90%이상의 높은 특이도를 갖는 것을 알 수 있습니다. 즉, 이번 문제의 경우에는 샘플링 방법을 적용하는 것이 더 목적적합한 것으로 판단 되어지고, Over-Sampling을 적용한 [신경망]모형이 가장 대출제안을 받아드릴 고객에 대한 예측력이 높은 것을 알 수 있습니다.
CONCLUSION
오늘은 지난시간에 이어 샘플링 기법을 활용한 계급불균형 문제 해결방안에 대해 알아보았습니다. 지난 시간에는 [SAS 코드]노드를 이용한 복원추출 Over-Sampling방법을 알아보았습니다. 오늘은 그에 이어서 Under&Over Sampling방법을 알아 보았습니다. 이 방법의 경우 편향과 정보손실의 trade-off의 중간지점을 선택해 한쪽으로 치우치지 않도록 보정해 주는 방법이라고 말할 수 있겠습니다. 이런 장점으로 지금도 왕왕 계급불균형 문제를 해결하는 방법으로 이용되고 있으며 보통은 부스팅이나 베깅과 같은 앙상블 모형과 함께 이용됩니다. 다음 시간에는 EM에서 지원하는 [의사결정]노드를 이용한 사전확률 보정을 통해 불균형 문제 해소방법에 대해서 알아보도록 하겠습니다.
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.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.