Dataset Shift에 대한 이해 (2) - Prior probability Shift, Concept Drift

2019. 12. 15. 23:13관심있는 주제/분석 고려 사항

728x90

눈 딱감고 한번만 광고 눌러주세요!

https://towardsdatascience.com/understanding-dataset-shift-f2a5a262a766 

https://data-newbie.tistory.com/354

왜 필요한지와 Covariate Shift는 위의 글을 참고! 

Dataset shift에 대한 다양한 이상 징후

  • Covariate shift
  • Prior probability shift
  • Concept shift
  • Internal covariate shift (an important subtype of covariate shift)

Prior Probability Shift

Covariate Shift가 인풋 변수의 분포의 변화에 초점을 맞췄다면, Prior Probability Shift는 아웃풋 변수(y)에 class 분포의 변화에 초점을 맞춘 것이다.

이런 변화의 종류는 희미해서 더 혼란스러울 수 있지만, 공변량 이동의 역방향으로 생각하라고 한다.
이것에 대해 생각하는 직관적인 방법은 Imbalanced Dataset를 생각해보면 될 것 같다. 
만약 스팸 메일의 수가 스팸 일지 아닐지에 대해서 동등한 확률 50%라고 알고 있다면, 우리는 training set에 50%는 일단 스팸이라고 예측할 수 있을 것이다. 

만약 현실에서 우리의 메일의 90%가 스팸이면, 해당 타깃 변수의 사전 확률이 변하게 될 것이다.
이 아이디어는 데이터의 희소성과 편향된 공변량 변화로 발생하는 특징 선택과 관련이 있지만, 입력 분포에 영향을 주는 대신 출력 분포(y)에 영향을 미친다.

이 문제는 Y → X 문제에서만 발생하며 일반적으로 naive Bayes와 관련이 있다
(naive Bayes는 스팸 메일을 필터링하는 데 일반적으로 사용되기 때문에 스팸 예시)

아래 그림은 머신러닝에서 Dataset Shift로 인한 사전 확률의 변화를 잘 보여주는 그림이다.

Concept Drift

Concept Drift는 데이터의 분포나 타겟 분포의 분포와는 관련이 없고 대신 두 변수(인풋, 타깃) 사이의 관계와 관련이 있다는 점이 이전에 말한 Covariate Shift나 prior probability shift와는 다른 이야기이다.

시계열 분석으로 보면 이러한 아이디어데 해서 직관적으로 생각할 수 있다.

시계열 분석에서 분석을 수행하기전에 이 시계열이 정상인지 아닌지 점검을 해야 한다.
정상 과정 시계열은 비정상 시계열보다 분석하기가 훨씬 쉽기 때문이다. 

왜 이러한 경우가 발생할까?

이것은 인풋과 타겟간에 일관된 변화 관계가 아니기 때문이라고 생각하면 쉽다.
시계열에서 추세를 없애서 정상성으로 만드는 것도 하나의 방법이지만, 항상 잘되는 것은 아니다.
(일반적으로 자기 상관이나 세속적인 변동이 거의 없는 주식 지수의 경우).

좀 더 구체적인 예를 들면, 2008년 금융 위기 이전과는 알고리즘이 이익이 산업 등과 같은 요인에 기반하여 예측하기 위해 기업의 이익을 검사하다고 하자. 직원들의 수 등 제품에 대한 정보, 기타 등등. 만약 우리의 알고리즘 2000–2007에서 데이터에는 있지만, 금융 위기 이후 동일한 정보를 예측하기 위해 그걸 사용하지 않습니다. 아마 그것을 사용하면 결과가 나쁘게 나오기 때문일 것입니다.

그래서 무엇이 변한걸까요?

분명히 새로운 사회 경제적 환경 때문에 전체적인 인풋과 타깃 사이에서 바뀌었고, 이러한 것들은 변수에 반영되지 않는다면 (날짜 변수를 사용해서 경제 위기 전과 후로 만들어 사용하는 더미 변수) 우리의 모델은 concept drift의 계속 고통받을 것입니다. 

우리의 구체적인 경우, 우리는 금융위기 이후 몇 년 동안 이윤이 현저하게 변화할 것으로 예상할 것이다. 
https://en.wikipedia.org/wiki/Interrupted_time_series

728x90