데이터에 있는 모든 특성들을 바로 분석에 사용할 수 있다면 다행이지만, 어떤 특성들은 분석을 위해 형식을 변환하거나 가공해야 합니다. (사실 이런 경우가 대부분입니다...)
또한 기존에 있는 데이터들을 활용해 분석에 필요한 새로운 특성을 만들어야 할 때도 있습니다.
이런 과정을 각각 Data Preprocessing(데이터 전처리)와 Feature Engineering(특성 공학)이라고 합니다.
포브스에서 데이터 과학자들을 대상으로 진행한 설문에 따르면, 데이터 과학자들은 데이터를 정리하고 가공하는 데에 가장 많은 시간을 할애한다고 응답하는 것으로 나타났습니다. 즉, 데이터 분석 실무에 있어서 가장 많은 시간과 노력을 쏟아야 하는 과정이 데이터 전처리와 특성 공학이라고 할 수 있겠죠.
이 과정들이 어떻게 진행되는지는 가지고 있는 데이터나 분석하고자 하는 방향에 따라 다르게 나타날 것입니다. 지금은 일단 기본적인 개념들을 정리해 보고, 나중에 기회가 된다면 자주 쓰이는 방법들을 살펴보도록 하겠습니다.
Data Preprocessing (데이터 전처리)
안타깝게도 우리가 분석을 위해 사용하게 될 대부분의 데이터는 사실 그리 깔끔하지 않습니다. 결측치가 포함되어 있거나, 같은 특성 안에서도 데이터의 특성이 통일되어 있지 않는 등, 이러한 지저분한 raw data들은 바로 분석에 사용될 수 없습니다.
데이터 전처리는 이렇게 지저분한 데이터를 분석에 사용될 수 있도록 정리하는 과정을 의미합니다. 데이터를 깔끔하게 정리한다는 의미에서 데이터 전처리를 데이터 클리닝(Data Cleaning)으로 부르기도 합니다.
데이터 전처리 과정에서는 주로 다음 과정들을 수행합니다:
- 결측치 처리 : 결측치를 확인한 후 분석 목적에 따라 결측치를 변환/제거 처리
- 데이터 변환 : 데이터를 분석하기 좋은 형식으로 변환 (범주형 데이터 라벨링/인코딩, 수치형 데이터의 정규화 등)
- 데이터 통합 : 여러 소스에서 가져온 데이터, 혹은 분할되어 있는 데이터들을 통합
Feature Engineering (특성 공학)
특성 공학(Feature Engineering)이란 기존에 없는 특성을 새로 만들어내는 것을 의미합니다. 이 과정에서 분석가는 자신이 가진 도메인 지식을 활용할 수 있습니다. 가령, 몸무게와 신장에 대한 자료를 가지고 '비만도'에 대한 특성을 새롭게 만들거나, 혈액 검사 지표를 활용하여 '혈액 건강 상태'에 대한 특성을 만들어낼 수 있습니다.
실제 분석 과정에서...
이렇게 열심히 정리하고도 막상 데이터를 분석하다 보면 추가적으로 데이터 전처리나 특성 공학이 필요한 부분들을 발견하게 되는 경우가 있습니다. 또는 실제로 모델을 돌리는 과정에서 모델의 성능을 향상시키기 위해 추가적으로 전처리와 특성 공학이 필요한 부분들을 발견하게 되는 경우도 많습니다. 마지막으로, 모델을 다 돌린 후에도 원하는 성과를 도출하지 못한 경우, 다시 전처리와 특성 공학 과정으로 돌아와서 명확한 가설은 없어도 이것 저것 만져보면서 다시 모델을 설정해야 하는 경우도 많습니다.
이처럼, 데이터 전처리와 특성 공학 과정은 한 번 하고 다음 단계로 넘어가는 것이 아니라, 지속적인 feedback을 통해 더 나은 모델을 만들기 위해 다시 돌아오는 과정을 거칩니다. 이처럼 데이터 분석은 직선 형태로 나아가는 것이 아니라 분석이 끝날 때까지 지속적으로 전체 과정을 수정해 나가는 과정으로 진행됩니다.
결국 데이터 전처리와 특성 공학은 데이터 실무자들이 가장 많은 시간을 할애해야 하는 가장 지난한 작업인 동시에, 모델의 성능을 판가름할 수 있는 가장 중요한 지점 중 하나라고 할 수 있습니다.
'Data Analysis' 카테고리의 다른 글
[Pandas] 자주 사용했던 기능들 정리 -3. iloc/loc (0) | 2022.07.16 |
---|---|
[Pandas] 자주 사용했던 기능들 정리 - 2. 결측치 처리 (0) | 2022.07.10 |
[Pandas] 자주 사용했던 기능들 정리 - 1. 데이터프레임 정보 확인하기 (0) | 2022.07.03 |
[python] Pandas 라이브러리를 활용한 데이터 파일 불러오기 (0) | 2022.06.06 |
[데이터 사이언스] EDA (Explanatory Data Analysis) (0) | 2022.06.06 |