-
데이터 수집과 EDA 전략 시리즈 – 2화. 탐색적 데이터 분석(EDA)의 정의와 철학기술과 산업/AI 2025. 5. 5. 13:47728x90
데이터를 수집하고 나면, 대부분의 초보 분석가들은 곧바로 모델을 만들고 싶어진다.
머신러닝 알고리즘을 적용해 예측을 하고, 결과를 시각화해서 멋진 인사이트를 도출하고 싶기 때문이다.
하지만 그 전에 반드시 거쳐야 할 단계가 있다.
바로 EDA, 탐색적 데이터 분석(Exploratory Data Analysis)이다.
EDA는 단순한 숫자 요약이 아니다.
EDA는 데이터와 대화하는 일이며, 데이터에 대한 직관과 통찰을 형성하는 과정이다.
이 글에서는 EDA의 철학과 정의, 핵심 기법, 실전 예제, 그리고 분석가가 왜 반드시 이 단계를 거쳐야 하는지를 깊이 있게 다룬다.
1. EDA란 무엇인가?
EDA는 1970년대 존 튜키(John Tukey)에 의해 처음 명확히 정의되었다.
그는 기존의 가설 검정 중심 통계학이 데이터를 ‘테스트 대상’으로만 본다고 비판했다.
EDA는 그 반대로, 데이터를 **탐험(Explore)**하고 **관찰(Observe)**하는 데 초점을 둔다.
EDA의 핵심 목적은 다음과 같다:
- 데이터의 구조와 기본 특성을 이해한다
- 변수 간 관계와 상관성을 파악한다
- 이상치, 결측치, 노이즈 등을 조기에 식별한다
- 분석 방향성을 설정하고, 모델링 전에 데이터를 정제한다
즉, 데이터가 어떤 의미를 가지며 어떻게 사용할 수 있는지를 탐색하는 과정이다.
2. 왜 모델링보다 EDA가 먼저인가?
현업에서는 EDA를 건너뛴 모델링이 얼마나 위험한지 익히 알려져 있다.
실제로 아래와 같은 문제들이 EDA를 생략한 분석에서 자주 발견된다:
- 변수 포맷 오류 (문자형 숫자, 단위 혼재 등)
- 극단치 존재로 평균 왜곡
- 범주형 변수 내 클래스 불균형
- 의미 없는 상관관계에 기반한 모델 구성
- 결측치를 무시한 채 피처 사용
예컨대 고객 이탈 예측 모델을 만들면서
사용자의 마지막 접속일 데이터가 전부 ‘NaN’이라면?
EDA가 없었다면 이 문제를 인식조차 못한 채 학습과 예측을 수행하게 된다.
따라서 실무에서는 EDA 없이는 절대 모델링을 시작하지 않는다.
3. 데이터와 대화하는 방식: EDA의 철학
EDA는 기술적인 과정이기도 하지만, 동시에 철학적인 태도이기도 하다.
(1) 판단을 유보하는 태도
EDA는 ‘데이터가 말하는 바를 최대한 그대로 듣는 것’이다.
분석가는 선입견 없이, 현상 그대로를 바라보는 자세를 가져야 한다.
예를 들어, 성별에 따른 구매율 차이가 있다고 가정할 때
그 차이가 통계적으로 유의미한지, 단순 표본 왜곡인지 신중히 따져야 한다.
(2) 시각화 중심의 사고
EDA는 수치보다는 형태에 집중한다.
히스토그램, 상자그래프, 산점도는 변수의 분포와 관계를 직관적으로 보여주며
분석가에게 ‘무엇이 이상한가’를 빠르게 감지하게 해준다.
(3) 패턴보다 예외를 보는 시선
분석의 본질은 평균을 말하는 것이 아니라,
그 평균에서 벗어난 예외를 발견하고 그 이유를 해석하는 것이다.
EDA는 이런 ‘데이터의 경계선’을 바라보는 기술이다.
4. EDA의 실무 기법 요약
아래는 EDA에서 자주 활용되는 대표적인 분석 기법들이다.
구분주요 함수설명
기본 요약 .info(), .describe() 열 타입, 결측치, 분포 요약 분포 파악 histplot, boxplot 수치형 변수의 패턴 및 이상치 확인 범주형 분석 value_counts(), groupby() 범주 간 차이, 피벗 분석 변수 관계 corr(), scatterplot 상관계수 및 상호작용 시각화 이상치 탐색 IQR 방식, Z-score 극단값 감지 및 처리 기준 설정 결측치 탐색 .isnull().sum() 열/행별 결측 패턴 파악
5. 실전 예제: 타이타닉 생존자 분석
다음은 Kaggle의 대표적인 입문용 데이터인 Titanic 데이터를 활용한 EDA 예제이다.
데이터 불러오기 및 요약
import pandas as pd df = pd.read_csv('titanic.csv') print(df.info()) print(df.describe())
- Age, Cabin, Embarked 컬럼에 결측치 존재
- Fare(요금)의 최대값이 매우 크며 이상치 가능성
성별에 따른 생존자 분포
import seaborn as sns import matplotlib.pyplot as plt sns.countplot(x='Survived', hue='Sex', data=df) plt.title('성별 생존자 분포') plt.show()
- 여성 생존률이 월등히 높음 → 구조 우선순위 추정 가능
나이 분포 및 이상치 확인
sns.histplot(df['Age'].dropna(), kde=True) plt.title('나이 분포') plt.show()
- 나이 0~10세 비율 높음
- 70세 이상 고령자 일부 존재 (이상치 가능성 판단)
6. 분석가는 데이터를 읽는 사람이다
좋은 분석가는 코드를 잘 짜는 사람 이전에,
데이터가 말하는 바를 ‘이해하는 사람’이다.
EDA는 단순한 과정이 아니라
모델링, 시각화, 인사이트 도출의 출발점이자 검증자 역할을 한다.
“EDA는 데이터에게 질문을 던지고,
모델링은 그 질문에 대한 대답을 구하는 과정이다.”
다음 편 예고
데이터 수집과 EDA 전략 시리즈 – 3화. 결측치와 이상치 탐지 전략: 데이터의 허점을 읽어내는 기술
데이터는 완전하지 않다. 결측치와 이상치를 어떻게 탐지하고 처리할 것인가.
실전 코드를 기반으로 EDA의 핵심 기술을 정리한다.
728x90'기술과 산업 > AI' 카테고리의 다른 글
Whisper 시리즈 11화 – 팟캐스트를 텍스트로, Whisper 실전 변환 프로젝트 사례 (1) 2025.05.07 분야별 데이터 수집 전략 가이드 시리즈 - 2화. 공공데이터포털 완전 정복: API 인증부터 실전 수집까지 (1) 2025.05.05 AI/ML 기반 데이터 분석 시리즈 5화 - 결측치와 이상치 처리 전략: 정제된 데이터를 만드는 기술 (1) 2025.05.05 AI 모델 만들기 시리즈 5화 – 결측치, 이상치, 정규화… 데이터 전처리의 실전 전략 (0) 2025.05.05 Whisper 시리즈 10화 – Whisper 오류 해결 가이드, 설치·실행·변환 에러 실전 대응법 (0) 2025.05.05