ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 전처리, 무엇부터 해야할까?
    데이터사이언스/질문과 답변 2023. 2. 28. 17:40

     

     

     

    데이터 전처리는 데이터분석에 지대한 영향을 미치는 요인입니다. 

     

    모델과, 데이터의 종류에 따라 처리해야할 것들이 다양합니다. 무엇부터 해야할까요? 

     

    일반적으로 데이터를 로드 했을 때, 어떤 순서로 데이터에 접근하면 좋을 지 표로 정리해보았습니다. 

     

     

     


    데이터 전처리 순서, 1번 부터 14번 까지 : 

     

    ------- Drop 결측치 이상치 Scaling 자료형
    변환
    인코딩
    타겟 (y)   1번 2번 3번 4번  
    피처(x) 실수형 피처 5번 7번 8번 9번 10번  
    범주형 피처 6번 11번 12번   13번 14번

     

     

     

     


    각 처리에서 유의할 점 

     

     

     

    Drop.

    • 같은 변수인데 중복되었을 경우 삭제합니다.
    • 분석에 전혀 상관없는 변수를 삭제합니다. (ex. x3 = x1+x2) 
    • 이 단계에서 변수간에 상관관계를 의심하고 데이터가 저장된 자료형을 확인합니다. 

     

    결측치.

    • 실수형 피처가 결측된 경우, 보통 평균값으로 대체합니다.
    • 범주형 피처가 결측된 경우, 보통 인코딩을 통해 해결합니다. ("결측"이라는 임의의 범주 생성 가능)

     

    이상치.

    • 이상치는 보통 실수형 데이터에서 발견됩니다. 
    • 산점도를 통해 찾아내거나, 상자수염그림(IQR)의 기준을 사용하여 탐지 할 수 있습니다. 
    • 정규분포 가정을 통해 Z-score 방법을 사용할 수 있습니다. 

     

    Scaling.

    • 다양한 스케일러(Standard, Robust, MinMax 등)를 비롯해 로그변환을 통한 정규화 등을 의미합니다.
    • 로그변환을 실시하는 기준으로는 왜도(skewness), 또는 시각화를 통한 판단이 있습니다. 
    • 하지만 left-skewed 데이터는 로그변환으로 해결되지 않습니다. 
    • 또한 음수가 있을 때 로그변환을 하려면 양수로 만들어 줘야합니다. (ex. 모든 데이터에 +|최솟값|)
    • 스케일러를 train셋으로 만들었다면, test셋으로 한 번 더 만들지 말아야합니다. 
    • 회귀를 실시하는데 타겟변수를 로그변환했다면, 성능 평가 지표를 출력할 떄 예측값을 로그 역변환 해야합니다. 
    • 이 밖에도, 정규화를 위한 Box-Cox 변환을 고려할 수 있습니다. 
    • (시계열) 날짜 (month, day 등)의 경우 sin과 cos 변환한 피처를 변수로 사용하는 것이 유용합니다. 
    • (딥러닝) 활성화 함수가 지원하는 범위로 값들의 조정이 필요합니다. 

     

    자료형 변환.

    • 문자열 자료를 범주형 자료로, 시간형 자료를 실수형자료로 바꾸는 것 등을 의미합니다. 
    • 사용하는 언어와 모델이 받아들일 수 있도록 변환해줍니다. 

     

    인코딩.

    • 범주형 변수를 원앤핫 인코딩 합니다. (나무기반 모형은 인코딩이 무의미할 수 있습니다.) 
    • 피처에 너무 많은 범주가 있다면, 몇 개의 범주로 군집화하는것이 도움될 수 있습니다. (ex. 타이타닉 데이터의 객실을 등급별로 구분(1등실, 2등실,...)) 
    • 문서 또는 문장을 값으로하는 변수가 있다면 자연어처리의 피처벡터화를 합니다. 

     

    마무리. 

    • 타겟데이터의 라벨이 불균일한 경우에는 오버샘플링 또는 언더샘플링을 고려합니다. 
    • 실수형 피처데이터의 PCA나 polynomial 변환을 고려해봅니다.  
    • 모든 과정에서, 데이터프레임에 적용된 전처리 코드가 무엇이었는지 인지하고 이중으로 변형하지 않으며 원본 데이터를 복사본으로 관리하도록 유의합니다. 

     

     

     

     

     


     

    대부분의 데이터분석에 공통될 만한 사항을 정리해 보았습니다. 다루게 될 데이터마다, 또 도메인 분야마다 특별한 전처리 방법이 요구되는 경우가 있으므로 이 가이드라인이 정답이 아님을 인지해주시길 바랍니다. 제가 개인적으로 생각해본 내용이기 때문에 앞으로 경험이 쌓이면서 오류를 발견할 수 있다고도 생각합니다. 앞으로 계속 업데이트 하도록 하겠습니다. 

     

    댓글이나 이메일로 새로운 의견을 제안해주세요

     

    감사합니다. 

     

     

     

     

     

    댓글