EDA(탐색적 데이터 분석) 입문: 단계별 가이드

미누·2025년 10월 2일
post-thumbnail

서론

필자는 코딩을 할때(주로 알고리즘 문제를 풀때) 코드를 먼저 작성하지는 않는다. 우선 논리(작동 순서)를 먼저 국어로 풀어서 써보고, 이후에 이걸 코드로 옮겨서 그 순서대로 작동하는지 확인하는 편이다.

EDA 첫 실습 간 난이도가 높은 데이터셋을 골라서 제대로 된 실습을 하기가 어려웠다. 또한 EDA 를 어떤 순서로 진행해야될지 몰라 헤매면서 다른 사람들이 진행한 EDA 분석 결과를 서칭하였다.

본격적인 실습 전에 EDA 를 어떻게 수행하는지 “어떤 사고 흐름으로 데이터를 탐색할 것인가”에 대해 단계별로 정리하였다.

EDA는 코딩 실력보다 데이터를 어떻게 분석하는지 사고 흐름과 어떻게 인사이트를 도찰하는지가 중요한 영역으로 보인다.(따라서 기본적인 분석 후 토론을 통해 의견을 공유하면 실력을 빨리 향상시킬 수 있는 부분인 것 같다.)


1. 문제 정의 (Why)

데이터를 탐색하기 전, 먼저 분석 목적을 명확히 한다.

  • Kaggle 대회라면: 예측해야 하는 Target 변수가 무엇인지 확인 (예: Titanic → Survived)

  • 개인 학습이라면: 데이터셋의 특성을 이해하고 시각화/모델링까지 확장하는 것

    *핵심 질문: "무엇을 알고 싶은가?”, “어떤 문제를 해결해야 하는가?”


2. 데이터 구조 확인 (What is inside?)

import pandas as pd
df = pd.read_csv("dataset.csv")
df.head()
df.info()
df.describe()
  • 행(row), 열(column) 수 확인
  • 결측치(null) 개수 확인
  • 데이터 타입(숫자형, 범주형, 날짜형 등) 확인

*데이터 구조와 전처리 필요성을 빠르게 파악


3. 변수(Feature)별 탐색

  • 숫자형 변수

    • 평균, 분산, 분포(히스토그램, boxplot)
  • 범주형 변수

    • 고유값 개수 (.nunique()), 빈도수(.value_counts())
    • barplot으로 시각화

*데이터의 불균형 여부, 이상치(outlier) 감지


4. 타겟 변수(정답 label) 탐색

  • 분포 확인 (예: 생존 0/1 비율)
  • 연속형이라면 분포·왜도(skewness) 확인

*불균형한 데이터라면 이후 모델링 단계에서 보정 필요


5. 변수와 타겟 관계 탐색

  • 수치형 ↔ Target: 평균 비교, boxplot
  • 범주형 ↔ Target: groupby 평균, countplot
  • 상관계수 (df.corr() + heatmap)

*어떤 feature가 Target에 영향을 주는지 확인


6. 변수 간 관계 탐색 (Feature-to-Feature)

  • pairplot, scatterplot, heatmap 활용
  • 강한 상관관계를 가진 변수 → 중복 정보 여부 검토

*(예) height와 weight가 거의 같은 정보를 제공한다면 둘 다 쓰는 것은 비효율적일 수 있음.


7. 이상치(Outlier) & 결측치 처리 전략

  • 결측치가 많은 컬럼 → 제거 vs 대체(평균/중앙값/모델 기반)
  • 이상치 → 제거 vs 변환(log transform 등)

*전처리 방향을 결정하는 핵심 단계


8. 도메인 지식 + 데이터 특징 정리

  • 분석 중 떠오른 가설/패턴 기록
  • “이 feature는 중요할 것 같다”, “이 변수는 잡음일 가능성이 있다”

*보통 Jupyter Notebook에 마크다운 메모로 함께 정리


9. feature engineering(새로운 특징 도출)

  • EDA 중 새로운 feature 아이디어 도출, 생성
  • Age → AgeGroup
  • DateTime → Year, Month, Hour
  • Text → 단어 수, 문자열 길이

*feature engineering이 성능에 큰 차이를 만드는 경우가 있다고 함.


10. 요약 및 보고서 작성

  • EDA를 마쳤다면, 짧게라도 보고서 형태로 정리
  • 데이터 크기와 형태
  • 주요 변수 특징
  • 결측치/이상치 처리 계획
  • Target 분포와 Feature 관계
  • 향후 모델링/가설 검증 방향

정리: 사고 흐름 체크리스트

  1. 문제 정의(분석 목적 정의)
  2. 데이터 구조 파악 (행/열/타입/결측치)
  3. 변수별 유형, 이상치 확인
  4. 타겟 변수 탐색
  5. 변수와 타겟 관계 탐색
  6. 변수 간 간 관계 탐색
  7. 이상치/결측치 처리 전략
  8. 도메인 지식 반영 & 기록
  9. Feature Engineering
  10. 요약 및 보고서 작성

결론

  • EDA는 단순히 시각화를 “예쁘게” 하는 과정이 아님.
  • EDA는 데이터의 구조와 패턴을 이해하고, 문제 해결을 위한 가설을 세우는 과정
    *즉, EDA의 목표는 “데이터를 해석할 수 있는 눈을 기르는 것”

단계별 흐름을 기본적으로 이해하되, 실제로 실습을 해보면서 실력을 쌓아야 할 분야로 느껴짐.

본인이 흥미있는 데이터를 위주로 분석하면 좋겠지만,
초반에는 트레이닝의 관점에서 난이도를 조절하는 것이 중요해보임.

타이타닉 데이터, 펭귄 데이터 등 쉬운 데이터부터 시작하여 감을 익힌뒤 본인의 흥미에 맞는 데이터셋을 찾는 것이 좋다고 생각함. (난이도별 GPT 에게 데이터셋을 추천받을 수 있음.)

profile
AI 엔지니어 노트

0개의 댓글