- 2019년 5월 10일 오후 1:00
- 조회수: 4067
REFERENCES
INFORMATION
- 2019년 5월 17일
- 오후 1시 ~
- 고려대학교 신공학관 218호

TOPIC
OVERVIEW
발표자 후기

금일 세미나는 ‘RUSBoost : A Hybrid approach to alleviating class imbalance’ 라는 주제로 진행했다. 프로젝트를 진행하면서 마주친 불균형 데이터를 해결하기 위한 방법을 찾아보면서 찾게 된 논문이다. 발표의 주된 내용은 Under sampling과 Over sampling을 이용해서 불균형 데이터에서 성능이 좋은 분류 모델을 만드는 방법이었다. Under sampling 기반으로 진행 할 때, 가정은 전체적으로 데이터의 양이 많아야 하는 것이었다. 관심이 없지만 개수가 많은 관측치를 줄여, 관심이 있지만 개수가 적은 관측치의 개수와 1:1 정도까지 관측치를 줄여 분류 모델이 이들의 특징을 잘 반영하게 하는 것이 목표다. Under sampling 기반에서는 정보의 손실이 발생하지만, 이를 감수하고 성능에 초점을 맞추어서 분류 모델을 생성한다. 반대로 Over sampling 기반에서는 전체 데이터 셋에 대해 관측치 수가 작고, 관심이 있는 관측치의 수는 현저히 작은 경우, 관심이 있는 관측치에 대해 over sampling을 진행하여 1:1 비율을 맞추어서 진행한다. Over sampling 기반에서는 시간을 투자해, 관측치를 생성함으로써 분류 모델의 성능을 향상시킨다. 즉, over sampling과 under sampling 사이에는 시간과 정보의 양, 이들 사이에 Trade-off가 존재한다.
현재 연구실에서 진행하고 있는 다른 문제에서들도 불균형 데이터가 존재하는 것으로 알고 있는데, 해당 내용이 연구원들에게 도움이 되었으면 좋겠다. 발표 자료를 만들면서 느낀 점은 청중들이 쉽게 볼 수 있는 한글을 사용하고, 글자 폰트를 더 크게 하여 이해하기 쉽게 만들어겠다고 생각을 했다. 마지막으로 실험 설계 과목에서 등장하는 내용인 다중 비교(Multiple Comparison)에 관해 설명을 제대로 해주진 못한 부분이 아쉬움이 들었다. 발표를 들어준 분들에게 감사를 표한다.
청취자 후기

금일 세미나는 용원이가 RUSBoost : A Hybrid Approach to Alleviating Class Imbalance에 관하여 소개해주었다.타겟 변수의 클래스 불균형 문제는 실 데이터를 접하다 보면 아주 쉽게 접하는 문제이나 이는 분석 혹은 모델링 과정에서 해결하기 생각보다 어려운 문제이다. 이를 해결하기 위한 방법론으로 흔하게 사용하는 Under/Oversampling 방법, Boosting 계열의 알고리즘 기반 방법, 변수 선택 방법론 등이 있다. 용원이가 소개해준 알고리즘인 RUSBoost와 SMOTEBoost는 RUS/SMOTE와 같은 Sampling approach에 Boosting 개념을 도입하여 클래스 불균형 해결 방법론이다. Boosting과 RUS/SMOTE는 개별적으로는 많이 쓰이는 방법론이지만 이 둘을 결합하여 클래스 불균형을 해결하는 방법론을 만들었다는 것이 참신했고, 지금 프로젝트에서 겪고 있는 불균형 문제에도 한번 적용해보면 좋을 것 같다는 생각이 들었다. 좋은 방법론을 소개해준 용원이에게 감사하다는 말을 전한다.

금일 세미나는 RUSBoost : A Hybrid Approach to Alleviating Class Imbalance에 대한 주제로 용원이가 발표하였다. 많은 문제들 중에는 Class 불균형에 대한 문제가 존재한다. 이를 해결하기 위해서는 다양한 방법이 있는데, sampling 기법, 알고리즘 기법, feature selection 기법 등이 있다. Oversampling 기법에는 SMOTE라는 기법이 있는데, Minority Class 데이터에서 주변 K개의 데이터 간의 간격 내에 데이터를 새로 생성하는 방법이다. Under sampling은 RUS 기법이 있는데, majority Class에서 random하게 데이터를 지워주는 방법이다. 이때 사용되는 알고리즘 기법에는 boosting 계열이 있는데 weak learner를 통해 minor class에 대해 높은 가중치를 부여하고 major class는 지워주면서 oversampling 및 undersampling을 진행한다. Class 불균형 데이터는 처리하기 쉽지 않은 것으로 알고 있다. 이번 기회를 통해 불균형 데이터에 대한 문제를 다시 공부하고 그에 관련한 기법들이 무엇이 있는지 공부하였다. 기회가 된다면 불균형 데이터에서 어떻게 sampling을 하여 처리해볼지 고민해보고 이를 시도해보고 싶다.

오늘 전체세미나는 ‘RUS Boost: A hybrid approach to alleviating class imbalance’라는 주제로 용원이가 진행하였다. 클래스 불균형(class imbalance)라는 것은 반응변수가 상대적으로 하나의 클래스가 월등히 많거나 적은 경우를 일컫는다. 클래스 불균형 상황이 예측모델을 구축할 때 문제가 되는 점은 다음과 같다. 이진 클래스(binary class) 상황에서 하나의 클래스가 월등히 많을 때, 주로 그 문제 상황은 적은 개수의 클래스를 잘 탐지하는 예측모델을 구축하는 것이 목적이다. 예를 들어서 의료데이터에서 질환, 공정데이터에서 불량을 정상으로 예측하는 오류를 줄여야 한다. False alarm을 허용하되 이상을 정상으로 예측하는 오류를 줄이는 것이 매우 중요한 상황이다. 하지만 클래스 불균형 상황에서 예측모델을 학습하면 건수가 적은 클래스(불량, 질환 등)에 편중된 경계면(모델, 함수)이 만들어지기 때문에 이 경계면을 건수가 많은 클래스(정상) 쪽으로 더 가중을 갖도록 하여 유연한 모델(다양한 경우의 적은 클래스 관측치를 탐지할 수 있는 모델)을 구축하는 것이 중요하다. 그 해결책으로 클래스 불균형을 해소하는 방법을 적용한다. 그 방법은 undersampling, oversampling 등의 접근법이 있고 오늘은 undersampling 방법으로 사용하는 RUS Boost 기법을 소개해 주었다. RUS Boost는 많은 건수 클래스(negative)를 적은 건수의 클래스(positive)에 상응하는 일정한 비율로 샘플링하여 여러 개의 모델을 만들어 통합하는 방식으로 이루어져 있다. 오늘 본 세미나를 통해 클래스 불균형 상황이 왜 문제가 되는지 그 이유를 근본적으로 다시금 생각해보았고, 그 이유를 명확히 했다. 또한 그 문제에 적용하는 방법론을 시각적으로 잘 표현해주어 이해하기 수월했다. 여러 프로젝트를 진행하며 클래스 불균형 상황을 접하는데 그 방법론을 적용한 데 논리를 전개해 나갈 수 있게 됐다.

금일 세미나는 class imbalance 문제를 해결하기 위한 알고리즘에 대한 소개로 진행되었다. Classification 문제에서 class 간 관측치 개수 차이가 많은 차이가 나는 class imbalance 문제는 생각보다 흔한 문제 상황이지만, 해결하는 것이 쉽지는 않다. Class imbalance 문제를 해결하기 위한 방법론은 크게 샘플링 기반 접근 방식과 알고리즘 기반 접근 방식으로 나눌 수 있다. 샘플링 기반 접근 방식은 소수 클래스를 oversampling하거나, 다수 클래스를 undersampling하는 방식, 또는 두 가지를 동시에 수행하는 방식 등이 있으며, 알고리즘 기반 접근 방식은 소수 클래스에 대한 가중치를 높여 소수 클래스를 오분류 할 가능성을 낮추도록 모델을 학습한다는 특징이 있다. 세미나에서 소개된 RUSBoost는 random under sampling (RUS)와 boosting ensemble을 사용하여 class imbalance 문제를 풀어보고자 한 모델이다. 평소 class imbalance 문제에 많은 관심이 있지 않아서, 샘플링 기반과 알고리즘 기반 접근 방식을 동시에 사용하여 class imbalance를 해결하려는 시도가 있다는 것을 몰랐는데, 이번 세미나를 통해서 두 가지를 동시에 사용할 수 있다는 사실을 알게되었다. Tree boosting이 아닌 다른 알고리즘에서 이런 hybrid approach를 사용할 수 있는지 고민해보는 것도 재밌는 주제가 될 것 같다.

금일 세미나는 'RUSBoost: A Hybrid approach to alleviating class imbalance'라는 주제로 진행되었다. Class imbalance 문제는 주어진 데이터 샘플의 클래스의 개수가 고르지 않아 예측 성능이 나오지 않는 것을 의미한다. 이에는 undersampling과 oversampling 방법 두 가지가 있는데, 데이터 샘플을 줄여 성능을 높이는 것과 특정 클래스의 샘플을 생성하여 성능을 높이는 것이다. 이 둘은 각각 장단점이 있으며, 발표자는 풀고자 하는 문제 상황과 가지고 있는 데이터에 따라 적용하는 데에 차별점이 있을 것이라 생각한다. 대체로 불균형 데이터가 존재하는 도메인에서 예측 성능이 안 나올 때, 문제점이 클래스 불균형이라고 생각하는 경우가 많다. 이 가설에 대해 일대일 인과관계를 나타낼 수 있는 정확한 테스트가 있다면 문제 상황을 격파하는 데에 훨씬 효율적일 것이라는 생각이 든다.

불균형 데이터는 다양한 현실문제에서 발생한다. 일반적으로 데이터에서 불균형을 처리하는 sampling 기법과 알고리즘 내에서 불균형을 처리하는 algorithm 기법으로 분류된다. 또한 sampling 기법과 algorithm 기법을 복합적으로 적용한 하이브리드 기법도 종종 사용된다. 오늘 세미나는 하이브리드 기법인 RUSboosting / SMOTEboosting 기법에 대해 다뤘다. Boosting 기법은 ensemble 학습법 중에 하나로 반복적으로 각 관측치의 weight를 update하며 최종적으로 하나의 classifier를 구축한다. RUS/SMOTEboosting는 매 반복시마다 샘플링 기법을 함께 적용함으로써 모델이 학습되는 불균형 데이터에 대해 고려할 수 있도록 한다. 따라서 불균형 데이터에서 발생할 수 있는 decision boundary가 소수 클래스 쪽으로 밀리는 현상을 최소화 하면서 강건한 decision boundary를 구축할 수 있다. 오늘 세미나에서 다룬 내용은 일반적인 불균형 문제에 대해서는 다수의 연구를 통해 우수한 성능을 보인다고 알려져 있으므로 관련 프로젝트 또는 관련 연구를 진행하는데 있어 기초가 되는 연구로 생각된다. 하지만 SMOTE / RUS가 갖는 기본적인 단점을 완벽하게 극복하지는 못했다고 생각한다. 따라서 관련된 연구를 진행하는데 있어 이를 개선하기 위한 추가적인 연구가 된다면 좋을 것 이라 생각한다

이번 세미나에서는 RUSBoost : A hybrid approach to alleviating class imbalance 논문을 리뷰하였다. 일반적으로 제조분야를 비롯한 많은 분야에서 정상데이터에 비하여 비정상데이터의 수가 아주 적게 수집된다. 하지만 우리는 비정상 데이터를 얼마나 정확히 분류하는가에 관심이 있다. 비정상 데이터를 분류하기 위한 모델 학습 시 비정상 데이터의 수가 적을 경우 모델은 거의 모든 데이터를 정상이라고 판별하게 되어 분류가 잘 되지 않는 현상이 발생한다. 이를 클래스 불균형 문제라고 한다. 해당 논문은 클래스 불균형 문제가 있을 때 분류 모델의 성능을 향상 시킬 수 있는 알고리즘이다. 클래스 불균형 문제를 해결할 수 있는 방법으로 oversampling 과 undersampling 이 있다. Oversampling 은 적은 수의 class 의 데이터를 더 많이 생성하여 불균형을 개선하는 방법으로 SMOTE 와 같은 방법론이 있다. Undersampling 은 많은 수의 class 데이터를 삭제하면서 불균형을 개선하는 방법으로 random undersampling 과 같은 방법이 있다. 오늘 소개한 RUSBoost 는 random undersampling 과 boost 기반의 분류모델을 합하여 클래스 불균형 문제가 있는 데이터에서의 분류 성능을 향상하였다. 오늘 세미나를 통하여 클래스 불균형에 대한 정확한 이해를 하는데 도움이 되었으며, 개선할 수 있는 방법에 대해 생각해 볼 수 있었던 좋은 세미나였다.

오늘은 Class imbalance 문제를 해결할 수 있는 한 알고리즘에 대한 세미나가 진행되었다. Class imbalance문제는 다양한 도메인에 등장한다. 우리 연구실에서 진행하는 프로젝트들만 보아도 알 수 있다. Class imbalance된 데이터로 모델을 학습하면 당연히 majority class의 영향을 크게 받아 모델이 학습될 수 밖에 없다. 사실 모델의 입장에서만 해석하면 억울할 수 있다 모델이 잘못 학습한게 아니기 때문에. 이런 관점에서 윤상 오빠의 질문이 흥미로웠다. 불균형 데이터의 상황이여도 minority의 오분류 비용이 mojority의 오분류 비용보다 크지 않으면 사실 문제 될 것이 없다고 생각이 든다. 그러나 현실세계에선 minority class를 분류해 내는 것이 큰 목적인 경우가 많다. (메일 중 스팸메일의 비율, 카드이용건수 중 이상이용건수 비율 등) 따라서 불균형 데이터를 반영하여 모델링하는 것은 매우 중요하다. 데이터를 균형적으로 만들기 위해 sampling techniques을 사용하거나, 알고리즘 자체를 변경하는 algorithm techniques, 변수 선택을 하는 feature selection techniques 등 다양한 approach가 존재할 수 있다. 오늘 다뤄진 알고리즘(RUSBoost)은 Sampling techniques (RUS)과 algorithm techniques (AdaBoost)의 hybrid된 형태였다. 결과는 SmoteBoost와 성능 면에서는 다중비교를 이용해서 볼 경우 차이가 없었다. 따라서 Smote와 Rus 각 특징에 맞춰서 사용할 데이터에 적합한 것을 선택해서 사용하면 될 것 같다.

학습 데이터가 각 클래스 별로 골고루 주어지지 않을 경우, Decision Boundary가 이상적인 경우에 비하여 한 쪽으로 치우치게 되어 overfitting을 야기하므로 데이터 전처리 단계에서 본 문제는 누구나 짚고 넘어가야할 부분이다. 오늘 소개된 해결책은 샘플링 방법과 알고리즘(;Boosting)적 방법 2가지가 있었다. 샘플링 방법 중 SMOTE는 소수 클래스의 점들 간 내분점을 사용하여 oversampling을 하게 되는데, 어떤 경우에는 소수 클래스의 분산은 오히려 줄게 될 수도 있으므로 Decision Boundary 개선에 별 도움을 주지 않을 것 같다. 따라서, 외분점을 사용하는 방법도 고려해봄직하다. Boosting 방법론에는 AdaBoost 이외에도 RUSBoost와 SMOTEBoost를 소개해주었다. RUSBoost는 매 Boosting 단계마다 다수 클래스에 대해 처음에 정한 일정비율로 Undersampling 한 data set으로 weak learner를 생성한다. 이 t번째 step에서 만든 weak learner의 hypothesis로 틀리게 예측한 점들에 대해서 weight를 다시 업데이트한 후, 다시 원래 전체 data set에 대하여 weight normalize를 해준다. 반면, SMOTEBoost는 minority class에 대해서 매 boosting step마다 SMOTE 방식으로 oversampling하여 weak learner를 학습시킨 후, 원래 training set의 weight를 normalize해준다. 프로젝트에서 직면하는 대부분의 데이터들이 이렇게 불균형하다는 특성을 고려했을 때, 실용적인 주제를 소개해준 용원이 형에게 감사하다고 전하고 싶다.

데이터 클래스 레이블의 불균형 문제에 대해 다룬 발표였다. 클래스 레이블의 특정 클래스에 해당하는 관측치의 수가 다른 클래스 관측치의 수에 비해 상대적으로 많을 때 불균형 문제가 발생한다. 이 때 이를 고려하여 모델링을 하지 않으면 다수의 클래스를 구별해 내는 데 모델이 집중하게 되어 정작 관심이 있는 소수 클래스를 잘 구별하지 못하는 문제가 발생한다. 따라서 기본적으로 모델이 소수 클래스를 잘 구별하게 하기 위한 가중치를 부여하거나 소수 클래스의 양을 늘리는 방법을 사용한다. RUSBoost는 전자에 해당하는 방법으로, AdaBoost의 프로세스에서 소수 클래스에 가중치를 줌과 동시에 다수 클래스의 수를 줄이며 약분류기를 만드는 방법론이다. SMOTEBoost는 후자에 해당하며, AdaBoost 프로세스에서 임의의 두 소수 클래스 관측치 사이에 새로운 소수 관측치를 생성함으로써 소수 클래스의 수를 늘려 약분류기를 생성한다. 두 방법론을 직접 사용해 보지 않았기 때문에 무엇이 어떤 장단점을 갖을 지는 잘 모르겠지만 데이터 불균형 문제를 해결하는 기본적인 아이디어를 엿볼 수 있었다.

이번 세미나의 주제는 RUSBoost : A Hybrid Approach to Alleviating Class Imbalance 였다. 발표자의 경우 프로젝트 경험에서 데이터 불균형 문제를 깨닫고 해결하기 위해 여러 노력을 하였고 그 중 일부를 발표하였다. 부족한 부분을 늘리는 oversampling 방법과 많은 부분을 줄이는 undersampling 크게 두가지로 설명하였다. RUS 의 경우 undersampling에 해당하며 프로젝트에서 데이터의 양이 많았기 때문에 사용하였다고 한다. classifiaction의 경우 데이터 불균형이 성능에 영향을 미치는데 decision tree의 경우 분할 시에 많은 부분과 적은 부분의 비중이 달라지기 때문에 나타난다. 학습 데이터의 불균형을 조절하는 내용을 들으면서 분할 시에 불균형한 만큼 가중치를 impurity 계산에 포함시키면 어떨까 하는 생각을 하였다. 또한 명확히 분류되는 문제 상황보다 섞여있는 문제 상황에서 사용할 때 효과를 볼 수 있을 것 같다. 이러한 데이터 불균형 문제는 흔히 일어나며 대부분의 사람들이 겪지만 상황에 따라 여러 방법들을 사용한다. 이러한 문제에 대해 다시 한번 생각해 볼 수 있는 시간이었다.

RUSBoost라는 클래스불균형을 해결하기 위한 앙상블 하이브리드 방법론에 대하여 소개하는 세미나 시간이었다. 클래스 불균형 문제는 많은 도메인과 데이터에서 발생되며, 오랜 기간에 걸쳐 연구된 분야이지만 아직도 여전히 해결하기 어렵다고 알려져 있다. 일반적인 기계학습 모델은 클래스 간 비율이 비슷하다고 가정을 하고 학습이 되기 때문에, 적은 양의 클래스(minority class)를 학습하는데에는 낮은 성능을 보이게 된다. 이는 많은 양의 클래스(majority class)만 맞추더라도 모델 측면에서 높은 정확도를 획득할 수 있기 때문이다. 이러한 문제를 해결하기 위해 다양한 방법들이 적용되는데 오늘 소개된 논문은 샘플링과 Boosting 방법을 결합하여 만든 모델을 제안했다. 많은 양의 클래스에 대해서 random undersampling을 일부 적용한 후, 맞추지 못한 minority class 관측치에 대해서 가중치를 늘리는 boosting 과정을 반복하면서 minority class에 대한 분류 정확도를 향상시키는 접근 방법이었다. 이와는 대조되게 minority class에 oversampling 기법 중 하나인 SMOTE를 적용한 SMOTEBoost도 소개했다. 간단한 기법들을 섞어서 사용하는 hybrid approach의 장점을 잘 살린 방법이라고 생각했다.

금일 세미나는 ‘RUS Boost: A hybrid approach to alleviating class imbalance’라는 주제로 용원오빠가 진행하였다. 실제 데이터 분석을 하는 과정에서 데이터 불균형(class imbalance)문제는 빈번히 발생한다. 특히, 분석의 관심대상이 되는 불량/이상의 경우가 소수 클래스인 경우가 많기 때문에 해당 문제를 어떻게 해소하는가에 따라 모델의 성능이 크게 좌우된다. 따라서 주어진 데이터의 분포 및 형태를 이해하고 적절한 접근법으로 해당 문제를 해결하는 것은 매우 어려우면서도 중요한 문제이다. 데이터 불균형 문제를 처리하는 접근법에는 크게 sampling기반 접근법과 모델 내에서 불균형을 고려하여 처리하는 algorithm기반 접근법이 있으며, 최근에는 이 두 접근법을 동시에 고려한 하이브리드 기반 접근법이 있다. 오늘 소개한 RUS Boost는 하이브리드 접근법에 해당되며, 다수 클래스를 소수 클래스의 비율을 고려하여 일정 비율로 undersampling을 하고, 오분류된 포인트에 대해 weight를 부여한 뒤 부스팅 방식을 채택한다. 또한 추가적으로 소개한 SMOTEBoost는 소수 클래스를 다수 클래스의 비율을 고려하여 oversampling을 하고, 오분류된 포인트에 대해 weight를 부여하는 부스팅 방식이라 할 수 있다. 다시 한 번 데이터 불균형 문제에 대해 소개해주고, 간단한 예제를 통해 전달하기 위해 노력해준 용원오빠에게 감사하다.

금일은 RUSBoost를 주제로 세미나가 진행되었다. 본 세미나에서 핵심으로 다룬 내용은 'Classification 문제에서 반응 변수인 Y가 Class 불균형 문제를 보일 때, 어떤 방식으로 그 문제를 해결할 것인가'에 대해서였다. Class 불균형 문제를 해결하기 위해서는 Sampling Techniques, Algorithm Techniques, Feature selection Techniques등의 방식이 있다. Sampling Techniques은 작은 Class를 더 늘려서 샘플링하는 Over Sampling방식과 많은 Class를 줄여서 샘플링하는 Under Sampling 방식이 있다. Algorithm Techniques으로는 오분류된 관측치에 대한 Weight를 주면서 학습 시키는 방법인 Adaboost 방식에 대한 소개가 주를 이뤘다. RusBoost는 Under Sampling과 Adaboost 방식을 결합한 방식으로 학습을 진행함에 따라 수가 많은 Class에 대해 Under Sampling을 하고, 오분류된 관측치에 대해서는 Weight를 키우면서 학습을 진행하는 것이다.
이번 세미나에서 많은 의견 교류 중 인상 깊었던 것은 왜 'Class 불균형'이 문제인가? 이 또한 데이터의 특성이 아닌가? 라는 질문에 대한 논의였던 것 같다. 개인적으로 'Class가 불균형하면 결과가 한쪽으로 치우쳐 데이터 분석이 어려울 것이다.'라고 쉽게 생각해왔던 것 같다. 하지만 연구자가 가져야 하는 자세는 당연하고 쉽다고 생각하는 것에 대해서도 '왜(Why)?'인지를 고민하는 것이 중요하다는 것을 다시 한번 느끼게 되었다. 해당 내용에 대한 연구자들 간의 의견 교류를 듣고 항상 모든 것에 대해 고민하면서 어떤 경우에서도 항상 '왜(Why)?'를 궁금해하는 자세를 가져야겠다고 생각했다. 세미나를 열심히 준비해 준 용원이와 연구자의 자세에 대해 다시 한번 생각하게 해준 연구원분들께 감사함을 표한다.

금일 “RUS Boost: A hybrid approach to alleviating class imbalance’라는 주제로 세미나가 진행하였다. Data 가 반응변수에 불균형 할 때 어떻게 해결할 것인가에 대해 1)sampling 2)Algorithm 3)feature selection 방안 중 1),2) 방안에 대해 주로 설명이 되었다. Oversampling 에서는 SMOTE 방식을 Undersampling 에서는 RUS 방식을 설명 해 주었고 Algorithm 에서는 오분류된 관측치에 가중치를 주어서 학습 시키는 AdaBoost 방식을 설명 해 주었다. 그리고 이번 주제인 RUSBoost (undersampling 방식 +AdaBoost :더 많은 관측치를 가지고 있는 쪽의 data 를 random 하게 제거하고 AdaBoost 방식을 이용해서 적은 관측치를 가지고 있는 data 에 가중치를 주고 학습시키면서 balance 를 맞추는 방법 ) 와 SMOTEBoost (SMOTE +AdaBoost : 적은 관측치를 가지고 있는 data 들의 거리를 제고 사이에 새로운 data 를 generate 한 다음 가중치를 주고 학습시키면서 balance 를 맞추는 방법) 의 방식을 설명 해 주었다.
SMOTEBoost 와 RUSBoost 모두 기존 방식보다 더 좋은 결과를 보여 주었는데 한정된 시스템 알수없는 큰 data 를 가진 상태라면 RUSBoost 를 사용하는 것이 더 효율적일 것이고 training dataset 이 적을 경우는 SMOTEBoost 를 사용하는 것이 더 효율적이다 라고 제안을 해주었다.
이번 세미나에서 class 가 불균형일 경우 결과가 한쪽으로 치우쳐 진다 라고 단순히 쉽게 생각하고 넘어간 부분을 다시 한번 일깨워 주는 세미나 였다고 생각한다. 또한 Imbalance data 를 어떻게 해결하는 것이 좋은지에 대해 잘 배울수 있엇다.

오늘 세미나는 “RUSBoost : A Hybrid Approach to Alleviation Class Imbalance”라는 주제로 조용원님이 진행해 주셨다. 분류 모델에서 Data의 Imbalance 문제는 분석결과를 좌우할 문제가 될 수 있다. 이러한 Imbalance를 해결하는 방법에는 크게 3가지 종류가 있다. 첫번째 방법인 Sampling 기법은 샘플이 많은 DATA는 작게 Undersampling을 하고, 샘플이 적은 Data는 Oversampling하는 방법이다. Undersampling은 간단하게 Random형식으로 sample을 골라서 사용하면 된다. Oversamplig은 없는 DATA를 가상으로 만들어 내는 방법이기 때문에 여러 기술들이 있는데 그 가운데 SMOTE기법은 가지고 있는 sample 중 하나를 지정하고 추가 sampling할 숫자 K를 지정하여 지정된 sample과 가장 가까운 다른 sampler과의 중간지점에 새로운 DATA를 생성하는 방식이었다. 두번째 기법은 Algorithm적으로 Boosting기법 중 AdaBoost기법을 소개해 주었다. AdaBoost는 Adaptive Boosting의 약자로 최초 분류되지 못한 Sample에 가중치를 주며 Sampling을 잘 할 수 있도록 도와주는 기법이었다. 마지막 3번째 기법은 상기 2가지 방법을 조합한 강력한 방법이었다. Sample수준에 따라 Under/Oversamppling을 해주며, Boosting기법을 동시해 수행하는 기법이었다. 금일 세미나에서는 여러가지 기법과 원리 그리고 그 조합으로 새로운 기법을 창출하는 방법 등 여러가지를 배울 수 있었던 세미나였다. 훌륭한 세미나를 준비해준 조용원님께 감사하다.

이번주 세미나는 “RUSBoost:A Hybrid Approach to Alleviating Class Imbalance”라는 주제로 진행 되었다. 먼저 Class Imbalance문제는 예측 대상이 되는 부류의 비율이 현저하게 달라서 생기는 문제이다. 현실에서는 예측변수의 클래스가 매우 적은 경우가 많다. 예를 들어서 심장병에 있어서도 환자보다는 정상인 사람이 매우 많다. 신용카드도용에서도 전체 2%만이 도용을 당한다. 이와 같이 관심있게 예측하고자 하는 것은 매우 들기때문에 이러한 방법론이 나오게 되었다. 문제를 해결하는 과정에서 sampling techniques, algorithm techniques이 필요하다. 먼저 sampling techniques에는 over sampling, under sampling이 있다. 그리고 이 두가지 샘플링은 확연한 차이가 있다. 먼저 over sampling은 minority class가 변하지 않지만 대신에 시간이 많이 걸리고 under sampling은 시간이 적게 걸리는 대신 관측치를 날리게 됨으로 그 정보를 모델링 과정에 사용할 수 없다. 그리고 algorithm techniques에서는 adaboost를 이용하는데 관측치에 대해서 positive한 값을 제거하는데 가중치를 더 주면서 boundary를 만들어 준다. 이 boosting모델에 Rus, SMOTE를 결합하여서 알고리즘을 만들었는데 Rus algorithm은 큰 데이터를 처리할때 SMOTE algorithm은 매우 작은 training set에 좋은 성능을 가진다. 이해하기 어려운 내용을 그림으로 잘 설명해준 용원이형에게 감사하다는 말을 전하고 싶다.