반응형
EDA란 무엇인가? (탐색적 데이터 분석 입문)
데이터 분석을 한다는 건 마치 요리를 준비하는 것과 같습니다.
EDA(탐색적 데이터 분석)는 본격적으로 요리를 시작하기 전에 재료를 하나하나 꺼내보고, 썩은 재료는 없는지, 어떤 재료가 얼마나 있는지 살펴보는 과정이에요.
또는 건강검진에 비유할 수도 있습니다.
몸 상태를 정확히 파악하지 않고 약을 처방하면 부작용이 생길 수 있듯, 데이터를 충분히 이해하지 않고 모델을 만들면 부정확한 예측이나 잘못된 인사이트를 얻게 될 수 있어요.
그래서 데이터를 분석하거나 머신러닝 모델을 만들기 전에는 반드시 EDA부터 시작해야 합니다.
EDA(Exploratory Data Analysis)란?
EDA는 데이터를 시각화하고 요약 통계로 살펴보면서,
- 데이터에 어떤 패턴이 있는지
- 이상치는 없는지
- 결측치나 오류는 어떤 식으로 존재하는지
- 변수 간 관계가 어떻게 나타나는지
등을 탐색하는 과정입니다.
EDA는 모델 학습 이전의 사전 작업이지만, 데이터 분석에서 가장 핵심적인 단계입니다.
왜 EDA가 중요한가?
- 데이터 품질 점검: 결측치, 이상치, 중복 등 확인
- 변수 간 관계 탐색: 상관관계나 트렌드 파악
- 도메인 이해 보조: 변수 의미와 유의미한 조합 찾기
- 전처리 전략 수립: 정규화, 인코딩, 변환 방식 결정
- 모델링 방향 설정: 문제 정의 및 변수 선택 기반 마련
EDA 없이 분석을 시작하는 건, 지도 없이 여행을 떠나는 것과 같습니다.
EDA의 기본 단계
1. 데이터 구조 이해
df.info()
df.head()
2. 기초 통계 확인
df.describe()
df.isnull().sum()
3. 단변량 분석 (Univariate)
- 히스토그램, 카운트 플롯 등
df['Age'].hist()
df['Sex'].value_counts()
4. 이변량/다변량 분석
- 변수 간 상관관계 시각화
import seaborn as sns
sns.heatmap(df.corr(), annot=True)
5. 이상치 확인
sns.boxplot(x=df['Fare'])
6. 결측치 시각화
import missingno as msno
msno.matrix(df)
실전 예시: 타이타닉 데이터셋 EDA
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv("titanic.csv")
# 데이터 구조 확인
print(df.info())
# 성별에 따른 생존율 시각화
sns.countplot(x="Survived", hue="Sex", data=df)
plt.show()
# 나이 분포
sns.histplot(df["Age"].dropna(), bins=20)
plt.show()
분석 결과 예시:
- 여성의 생존율이 높음
- 승객의 나이는 20~30대가 많음
- 'Cabin'과 'Age' 컬럼에 결측치 존재
자주 쓰이는 라이브러리
- Pandas: 데이터 조작 및 분석
- Matplotlib / Seaborn: 데이터 시각화
- Missingno: 결측치 시각화
- Plotly: 인터랙티브 그래프
- Sweetviz / Pandas-Profiling: 자동 분석 리포트 생성
실무 팁
.describe()
만 하지 말고 시각화로 패턴을 직접 확인하세요.- 단순히 평균만 보지 말고, 분포와 이상치도 체크하세요.
- 데이터를 여러 각도에서 비교하면서 질문과 가설을 세우는 사고방식이 중요합니다.
- 도메인 지식과 결합된 EDA는 모델보다 더 강력한 인사이트를 줄 수도 있어요.
요약
EDA는 단순한 사전 작업이 아닌, 데이터 분석의 출발점이자 핵심 과정입니다.
데이터를 제대로 이해하지 않고는 좋은 모델이 나올 수 없습니다.
EDA는 "데이터를 읽는 눈"을 길러주는 훈련이기도 합니다.
처음에는 느릴 수 있지만, 실력이 쌓일수록 EDA 속도가 분석의 속도가 됩니다.
반응형
'개발 창고 > AI' 카테고리의 다른 글
AutoML이란? 파이썬 예제로 배우는 머신러닝 자동화의 모든 것 (2) | 2025.06.30 |
---|---|
Feature Engineering이란? 머신러닝 성능을 높이는 핵심 기술! (3) | 2025.06.29 |
파이썬으로 머신러닝 시작하기: Scikit-Learn 핵심 정리 (2) | 2025.06.27 |
복잡한 모델을 간단하게: Lasso Regression의 모든 것 (2) | 2025.06.26 |
RNN이란? – 순서를 기억하는 인공지능 모델 (2) | 2025.06.25 |