카테고리 없음

[2021-08-16] 16일차 회고 ( WOE, Info Value )

iam_sw_ 2021. 8. 12. 21:28

1. 변수 600개 가운데 ( 예전부터 하면 좋겠다 싶었던 ) WOE, Info. Value 를 내림차순으로 해서 상위 n개 피쳐를 사용해 모델링을 해보면 어떨까 싶었는데, 직접 해봤다.

2. n개 피쳐 선택 -> 결측치 채우기(KNN impute 사용, 카테고리 변수는 dummy화 해서 ex. Y가 1 이면 1로, N이 1이면 0으로, 둘 다 0이면, Y,N 중에 개수가 더 많은 값으로 1로 채움 ) -> 모델 피팅

3. 앗, 만들고보니 AUC가 98% ?? 나중에 선임에게 물어보니 학습때 들어가면 안되는 타겟 인코딩된 피쳐가 있었다;;

=============

1. 내일 다시 타겟 인코딩된 피쳐 제거하고 다시 학습해봐야 한다.

2. 카테고리형 변수가 많아서 CatBoost 를 사용할 듯 하다.

3. 학습해봐서 성능이 좋게 나오면 추가 작업 ( Custom Loss Function, 하이퍼파라미터 최적화 )을 진행하고 PMML ?? 이이란걸 써서 Java App 으로 만드는것 까지 시도해보는것이 짧은 To-Do 이고

4. 먼 To-Do 로, 오버샘플링, Snorkel 적용해보는게 있다.

==============

 

1. 평일에 공부가 적은거 같아서 (오늘) XGB 강의를 들어야겠다...

2. 5일중에 2일 이상은 추가 공부를 하는걸 목표로 해야겠다.

3. 그러고보니, WOE, Info. Value 를 설명하라고 하면 못한다. 해당 방법에 대해서 설명을 찾아봐야 겠다.

 

==============

WEIGHT OF EVIDENCE (WOE) AND INFORMATION VALUE (IV) EXPLAINED

https://www.listendata.com/2015/03/weight-of-evidence-woe-and-information.html

 

Weight of Evidence (WOE) and Information Value (IV) Explained

This article explains the concept of weight of evidence and information value and how they are used in predictive modeling process along with SAS, R and Python code

www.listendata.com

In this article, we will cover the concept of weight of evidence and information value and how they are used in predictive modeling process

 

These two concepts - weight of evidence (WOE) and information value (IV) evolved from the same logistic regression technique. 

 

They have been used as a benchmark to screen variables in the credit risk modeling projects such as probability of default. They help to explore data and screen variables. It is also used in marketing analytics project such as customer attrition model, campaign response model etc.

 

What is Weight of Evidence (WOE)?

The weight of evidence tells the predictive power of an independent variable in relation to the dependent variable.

WOE 의 컨셉은

종속변수 대비 독립 변수가 예측력이 얼마나 강한지 설명하는 지표이다.```

Distribution of Goods - % of Good Customers in a particular group
Distribution of Bads - % of Bad Customers in a particular group
ln - Natural Log

```

 It's good to understand the concept of WOE in terms of events and non-events.

그림과 함께 이해해보자.

 

수치형 변수의 경우, 가령 구간을 10개로 나누었다.

구간별로, Non Event 와 Event 개수를 카운팅한다.그리고 Non Event 의 경우, 세로의 Non Event 의 총합을 구한 후, 특정 구간의 Non Event 노출 개수를 구해서 해당 구간에서의 전체 Non Event 가운데 Non Event가 몇 % 등장했는지 구한다.Event 의 경우도 동일하다.

 

그러면 그림에서 보듯 Non Event 는 201 - 250 구간에서 가장 높은 Non Event %를 기록하고Event 는 251 - 300 구간에서 가장 높은 Event % 를 기록한다.

 

우선 직관적으론, % of Events 가 높은 순서대로 피쳐가 중요할것이라고 생각이 들었지만

WOE 식을 다시 보자.

 

Ln 이면 단조 증가 함수이다.즉 ln 안의 식이 증가하면 증가할수록 WOE 값은 크다.

 

괄호 안의 식은 어떨때 가장 큰가? 케이스를 생각해보자.========케이스 1.% of Non Event : 1%% of events : 99%

========

케이스 2.

% of Non Event : 50%

% of events : 50%

========

케이스 3.

% of Non Event : 99%

% of events : 1%

========

1. WOE = ln ( 0.01 ) 정도 = 아주 큰 - 값2. WOE = 03. WOE = ln ( 100 ) 정도 = 조금 큰 + 값

 

그런데 (빨간 표를 봐도 알 수 있듯이) 위 처럼 Non Event 와 Event % 합쳐져서 100인 경우는 없고

========

케이스 1.

% of Non Event : 30%

% of events : 10%

========

케이스 2.

% of Non Event : 30%

% of events : 20%

========

케이스 3.

% of Non Event : 20%

% of events : 5%

========

케이스 4.

% of Non Event : 20%

% of events : 10%

=======-

라고 생각해보자. 1. WOE = ln(3)2. WOE = ln(1.5)3. WOE = ln(4)4. WOE = ln(2)

 

그렇다, 괄호 안의 수는 이벤트(안좋은 사건)의 %가 적으면서 좋은 사건의 %가 많아야 그 값이 커진다.( 이후부터는 해당 블로그 글의 내용이 납득이 되지 않는다.오히려 아래부터 내 나름대로 이해해본 내용인데, 이게 더 합리적이라고 생각된다. )...

그런데 왜 이런 계산식을 쓴걸까?

log 의 특징을 살려봐야 하지 않을까?

 

내 추측인데,

 

WOE 는 괄호 안의 숫자가 1 미만으로 갈때 기하급수적으로 작아진다.

반대로 말하면 절대값으론 기하급수적으로 커진다.

 

즉 어떻게 보면 Event 발생율이 큰 경우, 우리가 집중해야 하는 포인트 이고 ( ex. 신용 연체, Fraud Detection )

non Event 대비 Event 값이 상대적으로 큰 경우, 우리가 집중해야 한다는 포인트기 때문에 Ln 이라는 함수의 형태를 빌린게 아닌가 싶다.

 

특히 50 : 50 이면 무의미하면서, Event 율이 상대적으로 더 중요함을 강조하기 위해서 말이다.

 

그러면 이제 절대값으론 커지면서 실제 값으로는 상대적인 Event % 에 따라 급격히 작아지는  WOE 에 대해서 알아봤다.

 

그럼 최종적으로

 

Info. Value 는 어떻게 계산될까?

 

아마 생각해보건대 WOE 에 절대값을 취해주는 것 혹은 - 값을 곱해주는것 과 비슷한 효과를 내는 식이지 않을까?

IV는 WOE 에다, Event %가 높으면 - 값이 되는 값 ( 시그마 % 넌이벤트 - % 이벤트 ) 을 곱해주는 값이다.

 

IV를 제안한 최초의 사람의 의도는 정확히 모르겠지만

 

Event % 값에 민감한 WOE 값.

거기다 - 값을 곱해주며 최종적으로 ( Event %에 민감하며, 상대적으로 Event %값이 높을 경우) IV 값을 큰 양수의 값으로 만들어주는 것이 IV 식의 의도이지 않을까? 생각해본다.