필수적이며 가장 기본적인 데이터 Processing 과정(EDA포함)을 서술함.
Step1. 데이터 종류 파악
- [설명 링크](A. https://brunch.co.kr/@bef6d2c23e1c413/17
- 데이터 종류 파악이 가장 중요하다. 이를 제대로 파악을 해야지 나중에 feature engineering이나 normalization을 할 때 현명하게 수행할 수 있다. 예를 들면 categorical 과 numeric variables들이 같이 존재한다면 차원축소 할때 "NMF(Non-negative Matrix Factorization) 기법을 써야겠다" 라는 연구 계획을 잡을 수 있다. 다시 말하자면, 데이터 종류에 따라 차원 축소의 방식들이 다르다는 것이다.
Step2. 분포도 확인
- 각 Feature 별로 Plot을 하여 분포도 파악
- 희소 데이터(sparse data)인지 파악 (설명)
Step3. 이상치, Null 값 확인
- 이상치 파악:
- 주로 IQR을 이용(예제)
- Outlier detection 방법에는 IQR 방법 말고도 여러가지가 존재한다.
- 주의 해야할 점: 실제로 이상치 값이 "데이터의 대표성"을 띄는 경우가 있다. 이는 학습에 도움이 되기에 함부로 빼면 안된다.
- Null값 파악:
- 데이터가 많은 경우는 정보를 삭제.
- 데이터가 부족한 경우는 Inference(Median, Mean, regression) 방법을 통해서 Null값을 채워 넣음.
Step4. Feature correlation을 확인
- 좋은 Feature를 뽑는다는 것은 orthogonal features들을 뽑는다는 의미이다.
- 예를 들자면, feature A와 feature B가 아주 높은 연관성(상관 계수가 1에 가까움)경우는 두 개의 feature가 거의 비슷하다고 볼 수 있다. 이는 학습에 있어서 중복된 feature가 들어가서 가중치를 높게 받기 때문에 feature A 혹은 feature B를 삭제하거나, 차원 축소 과정을 통해서 해결해야 한다.
- Feature들 간의 연관성 파악을 위한 correlation matrix plot:
- Python Seaborn을 통한 예제
- Sweetviz2는 결과물에 자동 correlation matix를 만들어준다.
Step5. 데이터 처리
- 위의 Step1~4과정을 통해 일차적인 분석이 끝났다. 그렇다면 이제 데이터 처리를 해야 할 것이다.
- 이상치, Null 값을 처리한다.
- 누구에게 납득을 시킬 수 있을 정도의 근거를 통해 값을 처리해야 한다.
- 각 feature를 normalization
Step6. Feature Engineering
- Step5번 과정을 통해 normalization이 끝나면, Step4번 과정을 재확인해서 feature부분을 제거, 추가, 혹은 차원축소 해야 할지 결정해야 한다.
- 데이터가 많으면 많을수록 좋기 때문에 feature 제거 방법은 최후의 수단으로 두는 것이 좋다.
- 유의미한 feature가 몇 개 없어 보인다면, 외부 데이터를 혹은 추가적인 feature를 가져와야 한다.
- feature들의 개수가 너무 많다면 "차원의 저주"로 인해 모델 performance가 줄어든다.
- 그러면 몇 차원 정도가 적당한지는 처음에 어떻게 알 것인가?: 이는 reference하고 있는 논문들을 살펴보면서 survey해야 할 작업이다.
- Tip. Random forest 같은 기법을 통해서 어떤 feature가 "좋은 설명력"을 가지고 있는지 파악할 수 있다. (예제)
- 차원 축소 기법: 차원 축소 기법에는 여러가지가 있다. PCA, SVD, LSA, LDA, NMF.. 등이 있다. 그렇다면 어떤 차원 축소 기법을 사용해야 할 것인가? 해답은 Step1번 과정을 통해 얻은 데이터 종류에 따라 논문들을 survey해 가면서 조사를 해야 한다. 참고로, NMF방법이 Netflix에서 사용한 기법이라는 것이라고 필자는 기억하고 있다.
- 각 분야마다 대표적으로 사용되는 차원 축소 방법들이 있다.
- 그러면 몇 차원 정도가 적당한지는 처음에 어떻게 알 것인가?: 이는 reference하고 있는 논문들을 살펴보면서 survey해야 할 작업이다.
Step7. Cycle 반복
- Step1~6번 과정이 끝나면 이제 우리는 Model performance를 확인하면서 Step1~6 과정을 반복해야한다.
- 반복이라는 말은 Normalization, 차원축소, 이상치 제거 등에 사용됐던 기법들을 바꿔가면서 best performance를 나타내는 것을 찾아야 한다.
- Best performance를 찾게 된다면 왜 이러한 기법으로 인해 성능이 좋게 나왔는지 대해서 파악해야 한다.
- ** 모든 기법 선택에 있어서 이유가 반드시 존재해야 한다.