파이썬/전처리
[정형데이터] 전처리 순서 / 전처리 파이프라인
excelsu
2022. 6. 23. 17:34
데이터를 전처리함에 있어 절대적인 기준과 순서는 없지만 논리적으로 순서가 정해져있고 그 순서를 따라 전처리하는 순서를 정리해보겠습니다.
맨처음 데이터 확인, 탐색을해보고 그에맞게 전처리 아이디어를 도출하여 아래 해당하는 전처리를 진행한다.
- NA값 처리 : 데이터가 비어있는곳을 확인해보고 정말 기록이 되지않은것인지, 0이 입력되지않은것인지 고민해볼 필요가 있고 데이터의 성질에따라 채워넣는 방법을 고민해보아야한다. 너무 많은 NA값이 있는 컬럼이라면 컬럼삭제를 고민해봐도 되지만 웬만하면 모든 데이터를 사용하는것이 좋은듯 하다.
- 이상치 처리 : 이상치라고 판단되는 값이 있다면 해당 행을 수정하거나 해당변수를 로그,루트등 변환하여보고 분석을 해본다.(제거는 과적합될수있는 우려가 있음)
- feature engenering : 도메인지식을 쌓아야하는 이유 필요한 컬럼을 만들거나 필요없는 컬럼을 삭제한다.
- 가변수화 : 범주형 변수가 있다면 분석에 용이하도록 원핫인코딩을 한다.
- 변수 구간화 binning : 이상치를 제거하지않았다면 완화하기위해 고려해볼만하다.
- 스케일링 : 스케일링을 진행하지 않아도 되지만 특정분석에서는 스케일링이 필수인 분석이 있다. (스케일링은 연속형 변수만)
- KNN보간법으로 NA값 추정 : KNN보간은 가변수화가 진행된후에 사용한다.
데이터 분할은 맨처음, 맨마지막에 하면된다.
보통 데이터분할을 맨처음 하는이유는 test 데이터가 포함된 데이터셋을 보고(학습하고) 낙관적인 추정(오버피팅)이 될 확률이 있기때문에 애초에 test셋을 보지않기 위함이고, 맨마지막에하는 이유는 똑같은 전처리 과정을 반복해야하기 때문에 적당히 간단한 결과를 확인할때 마지막에 하는듯 하다.
전처리는 모델링을 진행한 후에도 성능을 높이기 위해 여러번 다시 수행 할 수 있기때문에 전처리에 대한 파이프라인을 미리 생성해 놓는다면 전처리 프로세스를 빠르게 진행할 수 있다.