-
탐색적 데이터 분석(Exploratory data analysis, EDA) 알아보기Machine learning 2024. 2. 7. 00:53
머신러닝 프로젝트를 진행한다면, 탐색적 데이터 분석을 무조건 해야 한다. (보통 EDA라고 한다)
특히, 비정형보다 정형 데이터인 경우, 모델이 데이터 전처리의 영향을 많이 받으므로 더 중요한 편이다.
하지만 EDA는 데이터나 상황에 따라 방법이 달라지기 때문에 정해진 길이 없다.
다만 나름의 경험을 바탕으로 EDA의 필수요소들에 대한 글을 작성하려고 한다.
EDA란
EDA란 데이터 이해를 위해 여러 측면에서 데이터를 확인하는 작업이다.
이러한 작업은 데이터에 대한 새로운 통찰을 주거나, 모델링 전략의 기초 정보가 된다.
EDA의 목적
EDA의 목적은 아래 4가지 정도로 정리할 수 있다.
- 데이터 자체에 대한 이해 (프로젝트에 대한 감 잡기)
- 데이터 전처리를 위한 EDA (Target 예측에 방해되는 데이터를 처리)
- Target 예측에 가장 적합한 모델 (후보) 선정
- 데이터(X)와 Target에 대한 가설 생성 (Insight 얻기)
EDA에 정답은 없지만 위의 4가지 정도의 목적성을 갖고 필요한 정보를 찾는다면 능숙하게 EDA를 할 수 있을 것이다.
목적별로 필요한 EDA를 정리해보자면,
1. 데이터 자체에 대한 이해 (프로젝트에 대한 감 잡기)
데이터를 눈에 익히는 데에 목적이 있다.
프로젝트 시작에 앞서 데이터가 눈에 익어야 통찰력 있는 전략을 짤 수가 있다.
특히 낮선 도메인의 데이터라면 Feature의 분포 등을 시각화하면서 데이터에 익숙해지는 과정이 필요하다.
시각화와 더불어 데이터의 규모, 기초 통계량, 데이터 타입을 확인해보면서 데이터를 전반적으로 파악할 수 있다.
2. 데이터 전처리를 위한 EDA (Target 예측에 방해되는 데이터를 처리)
데이터를 어떻게 전처리 해야 하는지을 알기 위해 하는 EDA이다.
보통 노이즈 제거, 정규화 등을 해야 하는지 확인한다.
노이즈 제거를 위해서는 대표적으로는 이상치, 결측치를 확인한다.
그 외에도 상호간에 상관관계가 높은 변수 그룹을 찾거나, 도메인 지식 등을 활용하여 Target과 상관 없는 변수는 없는지도 확인한다.
3. Target 예측에 가장 적합한 모델 (후보) 선정
데이터 규모, 형태(Tabular, image 등등), 변수와 Target 간의 상관관계 등을 확인하여 모델링에 필요한 정보를 확인한다.
예를 들면,
데이터 규모(특성 개수 포함)가 매우 크다면 머신러닝 모델보다는 딥러닝 모델이 학습이 더 용이한 편이다. (Tree 모델 쓰다가 메모리 터질 수 있다.)
Tabular 데이터라면 머신러닝 모델이 (특히 Tree 모델이) 딥러닝 모델보다 성능도 좋고 Fitting도 빠른 편이다.
주가 예측 같이 변수와 Target 간의 상관관계가 매우 낮은 과제는 복잡한 모델보다는, 과적합 위험이 적은 단순 회귀모델이 나을 수 있다.
이외에도 EDA 과정에서 모델링에 영향을 줄 만한 데이터의 특성을 잘 리스트업한다면, 최적의 모델을 빠르게 찾아낼 수 있을 것이다.
4. 변수(X)와 Target에 대한, 혹은 변수 간의 가설 생성 (Insight 얻기)
프로젝트와 데이터에 대한 이해를 바탕으로 생긴 자기만의 아이디어(가설)을 확인해보는 데에 목적이 있다.
데이터를 쭉 살펴보다보면 자연스럽게 생기는 궁금증이나 아이디어가 있다.
실제 데이터의 분포 등을 확인하면서 아이디어를 검증하고 새로운 통찰을 얻을 수도 있다.
예를 들어,
전력량 예측에서 가구당 시간 전력량 데이터를 얻었다면, 전력 사용 패턴에 따라 가구를 클러스터링 할 수 있지 않을까 하고 가설을 세우고 데이터 분포를 확인하여 가설을 1차적으로 검증할 수 있다.
이런 가설들을 데이터 전처리나 모델링 과정에서 실험해본다면 더 나은 결과를 기대할 수 있을 것이다.
데이터 기반의 아이디어는 언제나 옳다.
결론
위의 4가지 목적 말고도 다양한 목적이 있을 수 있지만, EDA를 하는 데에 있어 가장 중요한 건 연결성이다.
일반적인 프로젝트에서 초기의 문헌/자료조사가 잘못되면 나중에 다 된 프로젝트가 엎어질 수 있듯이,
머신러닝 프로젝트도 EDA가 부실하면 좋은 결과를 기대하기가 어렵다.
'EDA ~ 전처리 ~ 모델링 ~ 결과 분석' 까지 전과정이 짜임새 있게 수행되어야 좋은 결과 (++효율) 를 기대할 수 있다.
'Machine learning' 카테고리의 다른 글
Decision Tree (0) 2024.02.08 서포트 벡터 머신(Support Vector Machine, SVM) (0) 2024.02.07 데이터 전처리 (Data preprocessing) (0) 2024.02.07