> ## Content Index
> Fetch the complete content index at: https://www.mekeywhydoesmatter.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# [DATA] 1. 데이터 분석에서 EDA가 필요한 이유
- URL: https://www.mekeywhydoesmatter.com/why-eda-exporatory-data-analsis/
- Published: 2026-02-07T02:40:34.000Z
- Updated: 2026-02-25T12:26:59.000Z
- Author: mekey
- Tags: Data

---

### **EDA(**Exporatory Data Analsis**)는 말그대로 데이터를 본격적으로 분석하기 전에 탐색을 해보는 단계이다.** 

### **즉, 데이터를 사용하기 전에, 데이터를 이해 하는 시간임.**

데이터 분석을 시작할 때 많은 사람들이 바로 모델부터 떠올린다.

하지만 경험상, **모델 성능의 70%는 EDA에서 이미 결정**된다.

> EDA는 “이 데이터가 **어떤 성격인지**, **믿을 수 있는지**, **어떤 질문을 던질 수 있는지**를 파악하는 과정”이다.

---

## **EDA는 왜 필요한가?**

EDA 없이 분석을 시작하면 보통 이런 문제가 생긴다.

- 데이터에 **결측치가 많은데 모르고 모델 학습**
- 특정 컬럼이 **상수값**인데 피처로 사용
- 데이터 분포가 왜곡되어 있는데 그대로 학습

EDA는 이런 실수를 **초기에 차단**한다.

> EDA는 “분석”이 아니라 **데이터와 대화하는 단계**에 가깝다.

---

## **EDA를 할 때 핵심적인 질문들**

EDA를 할 때 나는 항상 아래 질문부터 던진다.

### **1\. 이 데이터는 어떻게 생겼나?**

- 행(row)은 무엇을 의미하는가?
- 컬럼(column)은 어떤 의미를 가지는가?
- 시간 개념이 있는가? (event time, snapshot time)

```
예:
- row = 고객 1명
- column = 고객의 행동/속성
```

---

### **2\. 데이터는 충분한가?**

- 전체 샘플 수는?
- 클래스별 분포는?
- 특정 기간에 데이터가 몰려 있지는 않은가?

```
df.shape
df['label'].value_counts(normalize=True)
```

**데이터가 적지는 않은지**, **불균형이 심하지는 않은지**를 여기서 판단한다.

---

### **3\. 결측치와 이상치는?**

EDA에서 가장 먼저 확인해야 할 부분이다.

```
df.isnull().mean().sort_values(ascending=False)
```

- 결측치가 많은 컬럼은 왜 비어 있을까?
- “의미 있는 0” 인가, “없는 값” 인가?
- 특정 구간에서만 결측이 발생하는가?

> 결측치는 단순한 문제가 아니라 **데이터 생성 과정의 힌트**다.

---

### **4\. 분포는 정상적인가?**

수치형 데이터라면 분포를 반드시 본다.

```
df['price'].hist(bins=50)
```

체크 포인트:

- 모델보다 먼저 **분포를 신뢰할 수 있어야 한다.**

---

### **5\. 변수 간 관계는?**

EDA의 꽃은 **관계 탐색**이다.

- 피처 ↔ 타겟 관계
- 피처 ↔ 피처 상관관계

```
df.corr(numeric_only=True)
```

여기서 얻는 인사이트는 다음과 같다.

- 쓸모없는 변수 제거
- 중복 피처 발견
- 단순 규칙으로도 설명 가능한 신호 발견

---

## **시각화는 EDA의 필수**

EDA는 숫자보다 **그림이 더 많은 단계라고 볼 수 있다.**

자주 쓰는 시각화:

- 히스토그램 (분포)
- 박스플롯 (이상치)
- 산점도 (관계)
- 시간 흐름 라인 차트

> EDA 결과를 말로 설명하기 어렵다면 **아직 충분히 이해하지 못한 것**일 가능성이 높다.

---

## **실무에서의 EDA 체크리스트**

아래는 실무에서 거의 항상 사용하는 EDA 체크리스트다.

- 데이터 스키마 이해
- row/column 의미 명확화
- 결측치 비율 확인
- 이상치 확인
- 타겟 분포 확인
- 주요 피처 분포 시각화
- 피처-타겟 관계 탐색
- 데이터 누수 가능성 점검
- 시간 축 기준 분리 가능 여부 확인

---

## **EDA는 한 번으로 끝나지 않는다**

- 새로운 피처를 만들면 다시 EDA
- 성능이 안 나오면 다시 EDA
- 데이터가 바뀌면 다시 EDA

EDA ↔ 모델링 ↔ EDA

이 사이클이 반복될수록 분석은 좋아진다.

---

## **마무리**

EDA는 **가장 많은 사고를 막아주는 단계**다.

모델이 잘 나오지 않는다면, 하이퍼파라미터보다 먼저 이렇게 물어보자.

> “내가 이 데이터를 정말 이해하고 있는가?” EDA는 그 질문에 답을 주는 과정이다.

---