2일차_탐색적_데이터분석(EDA)

수빈·2026년 1월 13일
post-thumbnail

탐색적 데이터 분석(EDA)

EDA는 말 그대로 데이터를 탐색하는 과정이다. 데이터를 바로 AI 모델에 학습시키기보다, 먼저 데이터의 특성과 패턴을 이해하고 이상한 점은 없는지 확인하는 것이 목적이다.


EDA란?

EDA(Exploratory Data Analysis)는

데이터의 특성과 패턴을 이해하기 위해 다양한 통계적 기법과 시각화를 통해 데이터를 탐색하는 과정이다.

데이터를 처음 받았을 때 가장 먼저 수행하는 작업이며, 데이터가 어떤 구조를 가지고 있는지 파악하는 단계라고 생각하면 된다.

EDA를 통해 다음과 같은 질문에 답할 수 있다.

  • 데이터는 몇 개가 있을까?
  • 결측치는 얼마나 있을까?
  • 이상치는 존재할까?
  • 평균은 얼마일까?
  • 데이터는 어떤 분포를 가질까?
  • 변수들끼리 어떤 관계가 있을까?

왜 EDA가 중요할까?

좋은 AI 모델은 좋은 데이터에서 나온다.

만약 데이터에 문제가 있는데 그대로 모델을 학습시키면 정확도가 크게 떨어질 수 있다.

예를 들어

  • 혈압이 음수로 기록되어 있다.
  • 나이가 250살로 입력되어 있다.
  • 혈당 데이터가 절반 이상 비어 있다.

이런 데이터를 그대로 사용하면 AI 모델은 잘못된 패턴을 학습하게 된다.

따라서 데이터를 분석하기 전에 반드시 EDA를 수행해야 한다.


EDA에서 확인하는 것들

1. 데이터 크기 확인

먼저 데이터가 얼마나 있는지 확인한다.

df.shape

출력

(1000, 8)

→ 1000개의 행과 8개의 열을 가진 데이터라는 의미이다.

2. 데이터 정보 확인

df.info()

확인할 수 있는 정보

  • 데이터 개수
  • 데이터 타입
  • 결측치 개수

예시

Age         int64
Height      float64
Gender      object

이를 통해 숫자형 데이터와 범주형 데이터를 쉽게 구분할 수 있다.

3. 기초 통계량 확인

df.describe()

대표적으로 다음과 같은 정보를 제공한다.

  • 평균(mean)
  • 표준편차(std)
  • 최소값(min)
  • 최대값(max)
  • 중앙값(50%)
  • 사분위수(25%, 75%)

예를 들어 혈당 데이터의 평균이 97이고 최대값이 380이라면 이상치가 존재할 가능성을 의심해볼 수 있다.


결측치 확인

결측치(Missing Value)는 비어있는 데이터를 의미한다.

df.isnull().sum()

예시

Age          0
Height       5
Weight       2
Glucose     13

결측치가 많다면

  • 삭제할지
  • 평균값으로 채울지
  • 중앙값으로 채울지

등을 결정해야 한다.


이상치 확인

이상치(Outlier)는 다른 데이터와 비교했을 때 지나치게 크거나 작은 값을 의미한다.

예를 들어

나이
25
30
28
27
210

210세는 일반적으로 존재하기 어려운 값이므로 이상치로 판단할 수 있다.

이상치는 평균을 왜곡하고 모델 성능에도 영향을 줄 수 있기 때문에 반드시 확인해야 한다.


데이터 분포 확인

데이터가 어떤 형태로 분포하는지도 매우 중요하다.

대표적으로 사용하는 그래프는 히스토그램(Histogram)이다.

df["Age"].hist()

히스토그램을 통해

  • 데이터가 한쪽으로 치우쳐 있는지
  • 정규분포를 따르는지
  • 특정 구간에 데이터가 몰려 있는지

등을 쉽게 확인할 수 있다.


변수 간 관계 확인

두 변수 사이의 관계를 확인하는 것도 EDA의 핵심이다.

예를 들어

  • 키와 몸무게
  • 나이와 혈압
  • BMI와 혈당

등의 관계를 분석할 수 있다.

대표적으로 사용하는 그래프는 산점도(Scatter Plot)이다.

df.plot.scatter(x="Height", y="Weight")

산점도를 보면 두 변수 사이의 상관관계를 직관적으로 확인할 수 있다.


상관관계 분석

숫자형 변수끼리는 상관계수(Correlation)를 계산할 수 있다.

df.corr(numeric_only=True)

결과 예시

AgeBMIGlucose
Age1.000.280.46
BMI0.281.000.57
Glucose0.460.571.00

상관계수는 -1부터 1 사이의 값을 가지며,

  • 1에 가까울수록 강한 양의 상관관계
  • -1에 가까울수록 강한 음의 상관관계
  • 0에 가까울수록 관계가 거의 없음

을 의미한다.


데이터 시각화

EDA에서는 숫자로만 데이터를 보는 것보다 그래프로 확인하는 것이 훨씬 쉽다.

대표적으로 사용하는 그래프는 다음과 같다.

그래프용도
히스토그램데이터 분포 확인
막대그래프범주별 비교
산점도변수 간 관계 확인
박스플롯이상치 확인
히트맵상관관계 확인

그래프를 활용하면 데이터의 특징을 훨씬 빠르게 이해할 수 있다.


AI Healthcare에서는 어떻게 활용될까?

예를 들어 건강검진 데이터를 분석한다고 가정해보자.

EDA를 수행하면 다음과 같은 사실을 발견할 수 있다.

  • 60대 이상에서 평균 혈압이 높다.
  • BMI가 높을수록 혈당도 높아지는 경향이 있다.
  • 여성보다 남성의 흡연 비율이 높다.
  • 일부 환자의 혈당 데이터가 누락되어 있다.
  • 혈압이 비정상적으로 높은 이상치가 존재한다.

이러한 정보를 바탕으로 데이터 전처리 방법을 결정하고, 머신러닝 모델의 성능을 높일 수 있다.


마무리

EDA는 데이터를 단순히 살펴보는 과정이 아니라, 데이터를 이해하는 과정이다.

결측치와 이상치를 확인하고, 데이터의 분포와 변수 간 관계를 분석하면서 데이터가 가진 특성을 파악할 수 있다. 이러한 과정을 거쳐야 이후의 전처리와 머신러닝 모델 학습도 더욱 정확하게 진행할 수 있다.

다음 글에서는 데이터 시각화(Data Visualization)를 통해 Matplotlib과 Seaborn을 활용해 데이터를 효과적으로 표현하는 방법을 알아보자.

profile
안녕하세요 ⊂(ᴑ╹.╹ᴑ)੭ 열심히 하구있습니당!!

0개의 댓글