파이썬/전처리

[정형데이터] 전처리 순서 / 전처리 파이프라인

excelsu 2022. 6. 23. 17:34

데이터를 전처리함에 있어 절대적인 기준과 순서는 없지만  논리적으로 순서가 정해져있고 그 순서를 따라 전처리하는 순서를 정리해보겠습니다.

 

맨처음 데이터 확인, 탐색을해보고 그에맞게 전처리 아이디어를 도출하여 아래 해당하는 전처리를 진행한다.

  1. NA값 처리 : 데이터가 비어있는곳을 확인해보고 정말 기록이 되지않은것인지, 0이 입력되지않은것인지 고민해볼 필요가 있고 데이터의 성질에따라 채워넣는 방법을 고민해보아야한다. 너무 많은 NA값이 있는 컬럼이라면 컬럼삭제를 고민해봐도 되지만 웬만하면 모든 데이터를 사용하는것이 좋은듯 하다.
  2. 이상치 처리 : 이상치라고 판단되는 값이 있다면 해당 행을 수정하거나 해당변수를 로그,루트등 변환하여보고 분석을 해본다.(제거는 과적합될수있는 우려가 있음)
  3. feature engenering : 도메인지식을 쌓아야하는 이유 필요한 컬럼을 만들거나 필요없는 컬럼을 삭제한다.
  4. 가변수화 : 범주형 변수가 있다면 분석에 용이하도록 원핫인코딩을 한다.
  5. 변수 구간화 binning : 이상치를 제거하지않았다면 완화하기위해 고려해볼만하다.
  6. 스케일링 : 스케일링을 진행하지 않아도 되지만 특정분석에서는 스케일링이 필수인 분석이 있다. (스케일링은 연속형 변수만)
  7. KNN보간법으로 NA값 추정 : KNN보간은 가변수화가 진행된후에 사용한다.

 

데이터 분할은 맨처음, 맨마지막에 하면된다.

 

보통 데이터분할을 맨처음 하는이유는 test 데이터가 포함된 데이터셋을 보고(학습하고) 낙관적인 추정(오버피팅)이 될 확률이 있기때문에 애초에 test셋을 보지않기 위함이고, 맨마지막에하는 이유는 똑같은 전처리 과정을 반복해야하기 때문에 적당히 간단한 결과를 확인할때 마지막에 하는듯 하다.

 

전처리는 모델링을 진행한 후에도 성능을 높이기 위해 여러번 다시 수행 할 수 있기때문에 전처리에 대한 파이프라인을 미리 생성해 놓는다면 전처리 프로세스를 빠르게 진행할 수 있다.