데이터 탐색(EDA) 완전 정복 가이드: 인사이트를 행동으로

 

데이터 탐색(Exploratory Data Analysis, EDA)은 단순히 데이터를 훑어보는 과정을 넘어섭니다. 모델링의 성공을 좌우하는 가장 중요한 첫 단계로, 데이터를 깊이 이해하고 숨겨진 패턴을 발견하며, 비즈니스 문제를 명확하게 정의하는 핵심적인 활동이죠.

이 가이드는 상관관계 분석, 기초통계량, 시각화부터 시계열, 차원 축소, 텍스트 마이닝까지, 실무에서 마주치는 모든 데이터 유형을 다루는 실질적인 워크플로를 제공합니다. 단순한 이론 설명 대신, 각 기법의 핵심 포인트와 해석 팁, 그리고 실전 워크플로, 보고서 작성 팁까지 담아 EDA를 통해 얻은 인사이트를 실제 비즈니스 가치로 연결하는 방법을 제시합니다.

 

데이터 탐색이 중요한 이유

EDA(Exploratory Data Analysis)는 단순히 데이터를 들여다보는 작업이 아닙니다. 데이터를 낯선 사람처럼 형식적으로 대하는 것이 아니라, 오랜 친구를 깊이 이해하듯 탐구하는 과정입니다. 데이터 안에는 단순한 숫자 이상의 이야기와 패턴이 숨어 있으며, 이 과정을 통해 우리는 그 속사정을 파악할 수 있습니다.

EDA를 통해 얻는 가장 큰 이점은 데이터의 ‘골격’을 명확히 파악하는 것입니다. 각 변수의 의미와 분포, 변수 간의 관계를 살펴봄으로써 데이터가 어떤 특성을 가지고 있는지 이해할 수 있습니다. 이 과정에서 우리는 놓치기 쉬운 결측치, 이상치, 왜곡된 분포 등을 조기에 발견하고 처리할 수 있습니다. 또한 데이터 타입 오류나 불균형 클래스 등, 모델링 이후에 발견하면 큰 비용이 드는 문제를 미리 해결할 수 있습니다.

비유하자면, 이는 패션쇼의 런웨이에 오르기 전 옷의 핏을 최종 점검하는 과정과 같습니다. 옷의 주름 하나, 작은 얼룩 하나가 전체 무대의 완성도를 해칠 수 있듯, 데이터의 작은 문제도 분석 결과와 비즈니스 의사결정에 큰 영향을 미칠 수 있습니다.

잘 설계된 EDA는 단순히 ‘준비’에 그치지 않습니다. 모델 학습 시간을 단축시키고, 예측 성능을 향상시키며, 잘못된 분석으로 인한 비즈니스 리스크를 줄이는 핵심 단계입니다. 즉, EDA는 데이터 분석 프로젝트에서 선택이 아닌 필수이며, 성공적인 모델링의 50%는 이미 이 단계에서 결정된다고 해도 과언이 아닙니다.

데이터 탐색 기초

상관관계 분석: Pearson vs Spearman

 

두 변수 사이의 관계를 파악하는 가장 기본적인 방법은 상관관계 분석입니다. 그러나 어떤 상관계수를 사용해야 할까요?

  • 피어슨(Pearson) 상관계수는 두 연속형 변수 간의 ‘선형’ 관계의 강도를 측정합니다. 예를 들어, 광고비 지출이 늘어날수록 매출이 일정하게 증가하는 관계를 파악할 때 유용합니다.
  • 스피어만(Spearman) 상관계수는 변수들의 실제 값이 아닌 ‘순위’를 기반으로 관계의 강도를 측정합니다. 데이터에 이상치가 많거나, 변수 간의 관계가 곡선 형태의 ‘비선형’일 때 더 안정적인 결과를 제공합니다. 예를 들어, 고객 만족도가 증가할수록 재구매 횟수도 증가하지만 그 증가율이 일정하지 않은 경우에 사용하기 좋습니다.

핵심 해석 팁: 상관관계가 높다고 해서 인과관계를 의미하는 것은 절대 아닙니다. ‘아이스크림 판매량’과 ‘익사 사고’가 모두 여름에 증가하여 높은 상관관계를 보이지만, 이는 제3의 요인인 ‘날씨’ 때문이죠. 인과관계를 밝히려면 실험 설계나 교란 변수 통제 같은 추가적인 검증이 필요합니다.

 

기초 통계량: 평균, 중앙값, 표준편차, 왜도, 첨도

 

기초 통계량은 데이터의 중심 경향과 분포 형태를 한눈에 파악하는 데 필수적입니다.

  • 평균과 중앙값: 데이터의 중심을 나타내는 대표적인 값입니다. 평균은 모든 값을 더해 개수로 나눈 값으로, 이상치에 민감하게 반응합니다. 반면, 중앙값은 데이터를 오름차순으로 정렬했을 때 정중앙에 위치하는 값으로, 이상치 영향을 덜 받기 때문에 데이터가 한쪽으로 치우쳐 있을 때 더 유용합니다.
  • 표준편차: 데이터가 평균으로부터 얼마나 퍼져 있는지를 나타냅니다. 표준편차가 클수록 데이터의 변동성이 크다는 의미입니다.
  • 왜도(Skewness): 데이터 분포의 비대칭성을 측정합니다. 양의 왜도는 분포의 꼬리가 오른쪽으로 길게 늘어진 형태를 의미하며, 평균이 중앙값보다 큽니다. 이 경우, 로그 또는 루트 변환을 통해 분포를 정규분포에 가깝게 만들 수 있습니다.
  • 첨도(Kurtosis): 데이터 분포의 뾰족한 정도와 꼬리의 두께를 나타냅니다. 첨도가 3보다 크면 (정규분포 기준) 꼬리가 두꺼워 평균 주변보다 극단적인 값들이 더 많이 존재한다는 의미입니다. 이럴 때는 평균이나 분산에 의존하는 방법 대신, 중앙값이나 IQR(사분위 범위) 같은 ‘견고한 통계량’을 활용해 보완해야 합니다.

 

시각적 데이터 탐색

 

히스토그램, 박스플롯, 산점도, 히트맵

 

‘백문이 불여일견’이라는 말처럼, 데이터를 시각화하는 것은 숨겨진 패턴을 가장 직관적으로 이해하는 방법입니다.

  • 히스토그램: 단일 변수의 분포를 보여줍니다. 데이터가 어느 구간에 집중되어 있고, 어떤 형태로 퍼져 있는지 파악하는 데 용이합니다.
  • 박스플롯(Box Plot): 데이터의 중앙값, 사분위수(IQR), 이상치를 한 번에 보여주는 강력한 도구입니다. 여러 그룹의 분포를 비교할 때 특히 유용합니다.
  • 산점도(Scatter Plot): 두 변수 간의 관계를 점으로 표현합니다. 선형 관계, 비선형 관계, 그리고 데이터의 군집 여부를 시각적으로 확인할 수 있습니다.
  • 히트맵(Heatmap): 여러 변수 간의 상관관계 매트릭스를 색상 농도로 나타냅니다. 복잡한 표 대신, 색깔의 진함으로 변수들의 관계를 한눈에 파악할 수 있어 효율적입니다.

 

고급 데이터 탐색

 

시계열 데이터 탐색: 추세, 계절성, 잔차

 

시간에 따라 변화하는 데이터를 다룰 때는 특별한 접근이 필요합니다.

시계열 분해를 통해 데이터는 다음 세 가지 요소로 나뉩니다.

  • 추세(Trend): 장기적인 상승 또는 하락 경향
  • 계절성(Seasonality): 특정 주기(예: 요일, 월, 연)마다 반복되는 패턴
  • 잔차(Residuals): 추세와 계절성을 제거하고 남은 불규칙적인 변동

이 구조를 분해하면 이상치가 단순히 ‘노이즈’인지, 아니면 ‘특정 이벤트(예: 프로모션, 사고)’로 인해 발생한 중요한 시그널인지 파악할 수 있습니다. 또한, 시계열 예측 모델(ARIMA 등)을 적용하기 전 정상성(Stationarity) 여부를 확인하는 중요한 전처리 단계가 됩니다.

 

다변량 데이터 탐색: PCA, 군집 분석

 

데이터의 차원이 많을 때(변수가 많을 때), 이를 효과적으로 탐색하는 기법입니다.

  • 주성분 분석(PCA): 데이터의 분산을 최대한 보존하면서 차원을 축소하는 기법입니다. 수십 개의 변수를 2~3개의 새로운 차원으로 압축하여 데이터를 시각화하고 군집을 파악하는 데 유용합니다.
  • 군집 분석(Clustering): 비슷한 특성을 가진 데이터들을 그룹(군집)으로 묶습니다. PCA로 군집감을 확인한 후, 엘보(Elbow)나 실루엣(Silhouette) 지수 같은 평가 지표를 사용해 최적의 군집 수를 결정하는 것이 좋습니다.

핵심 팁: 군집 분석의 결과로 나온 라벨(Cluster 1, 2, 3…)은 그 자체로는 의미가 없습니다. 각 군집의 특성을 분석하여 ‘프리미엄 고객’, ‘이탈 가능성 높은 고객’ 등 비즈니스적 맥락에 맞는 해석 가능한 언어로 재명명해야만 실질적인 액션 아이템으로 이어집니다.

 

비정형 데이터 탐색: 텍스트 마이닝

 

고객의 리뷰, 문의, 소셜 미디어 데이터 등 비정형 텍스트는 중요한 인사이트의 보고입니다.

텍스트 마이닝 워크플로:

  1. 전처리: 불용어 제거, 정규화, 토큰화 등 텍스트를 분석 가능한 형태로 정제합니다.
  2. 단어 빈도 분석: 가장 자주 등장하는 단어를 통해 주요 키워드를 파악합니다.
  3. 감성 분석: 텍스트에 담긴 긍정/부정의 감정 점수를 측정하여 고객의 태도를 파악합니다.
  4. 토픽 모델링: LDA(Latent Dirichlet Allocation)와 같은 기법을 사용하여 문서 내 숨겨진 주제(토픽)를 찾아냅니다.

핵심 팁: 일반적인 감성 사전은 도메인 특화 용어를 반영하지 못할 수 있습니다. 예를 들어, IT 서비스 리뷰에서 ‘느리다’는 부정적이지만, 배달 서비스 리뷰에서는 ‘천천히 온다’가 긍정적일 수 있죠. 도메인 특화 감성 사전을 구축하면 분석 정확도를 크게 높일 수 있습니다.

 

실전 워크플로와 실무 팁

 

데이터 탐색은 다음과 같은 순서로 진행하면 효율적입니다.

EDA는 무작정 시각화하는 것이 아니라, 체계적인 흐름을 따라야 효율적입니다. 실무에서는 다음 단계로 진행하는 것이 좋습니다.


① 데이터 구조와 품질 점검

  • 목적: 분석 전에 데이터가 정상적으로 로드되었는지, 구조가 맞는지 확인

  • 작업:

    • df.info()로 데이터 타입 확인

    • 결측치 확인: df.isnull().sum()

    • 이상치 탐색: 간단한 describe 값, 범위 확인

  • 실무 팁:

    • 문자열로 되어 있는 숫자는 반드시 변환 (astype(int) 등)

    • datetime 컬럼은 pd.to_datetime()으로 미리 처리

    • 불균형 데이터(imbalanced data)는 모델링 전에 파악해둬야 함


② 기초 통계 및 분포 확인

  • 목적: 변수의 특성을 빠르게 파악

  • 작업:

    • df.describe()로 수치형 요약 통계

    • 범주형 변수는 df['컬럼'].value_counts()

    • 시각화: histplot, boxplot으로 분포와 이상치 확인

  • 실무 팁:

    • 평균(mean) 대신 중앙값(median)도 꼭 확인 (이상치에 민감하지 않음)

    • 로그 변환이 필요한 변수는 분포를 먼저 보고 결정


③ 상관관계 및 시각화

  • 목적: 변수 간 관계, 다중공선성 가능성 확인

  • 작업:

    • sns.heatmap(df.corr(), annot=True)로 상관계수 확인

    • sns.pairplot(df)로 변수 간 관계 시각화

  • 실무 팁:

    • 높은 상관관계(> 0.8) 변수는 하나를 제거하거나 PCA 고려

    • 카테고리와 타겟 관계는 바이올린플롯, 카운트플롯 활용


④ 데이터 유형별 심화 탐색

  • 시계열 데이터:

    • 추세(Trend), 계절성(Seasonality), 이상치 탐지

    • df['date'] = pd.to_datetime(df['date'])resample()로 집계

  • 다변량 데이터:

    • PCA(주성분 분석)로 차원 축소 후 시각화

  • 비정형 데이터:

    • 텍스트 → 워드클라우드, 토큰화 후 빈도 분석

    • 이미지 → 메타데이터, 해상도, 채널 수 확인


⑤ 리포트 작성

    • 핵심 포인트:

      • 단순 시각화 나열이 아닌, 인사이트 + 액션 아이템 제시

      • 예: “이상치 제거 후 로그 변환 적용 필요”, “타겟 변수와 상관관계 낮음 → 다른 변수 추가 고려”

    • 실무 팁:

      • Jupyter Notebook에서 Markdown + Code + 시각화 조합

      • 데이터 사이즈 크면 pandas_profiling(→ 현재는 ydata-profiling) 활용

 


 

FAQ 구조화

 

  • Q: Pearson과 Spearman의 차이는 무엇인가요?
    • A: 피어슨은 연속형 변수 간의 선형 관계를, 스피어만은 순위 기반으로 단조 관계를 측정합니다. 이상치에 더 강한 스피어만은 비선형 관계에서 유용합니다.
  • Q: 왜도와 첨도의 기준은 무엇인가요?
    • A: 왜도는 0, 첨도는 3이 기준입니다. 절대 왜도가 1보다 크거나 첨도가 3보다 크면 데이터 변환이나 견고한 통계 방법을 고려할 수 있습니다.
  • Q: PCA만으로 군집을 판단해도 되나요?
    • A: PCA 시각화는 군집의 존재를 짐작하는 데는 좋지만, 엘보나 실루엣 지수와 같은 별도의 군집 평가 지표로 검증하는 것이 정확도를 높이는 데 권장됩니다.
  • Q: 감성 분석의 정확도를 높이려면 어떻게 해야 하나요?
    • A: 일반 사전 외에 분석하고자 하는 도메인 특화 사전을 직접 구축하거나 최신 임베딩 기술을 함께 활용하면 정확도를 높일 수 있습니다.

Disclaimer: 본 블로그의 정보는 개인의 단순 참고 및 기록용으로 작성된 것이며, 개인적인 조사와 생각을 담은 내용이기에 오류가 있거나 편향된 내용이 있을 수 있습니다.