본문 바로가기

공부

[웅진씽크빅X러닝스푼즈]데이터 분석 부트캠프 2기 2회차

1. 고급 시각화: 파이 차트, 선 그래프, 산점도

파이 차트 (Pie Chart)

특징

  • 범주형 데이터의 비율 시각화
  • 범주 5개 이하일 때 가독성 최고
  • Seaborn 미지원, Matplotlib만 지원
# 기본 파이 차트
plt.pie(
    grp.values,
    labels=grp.index,
    colors=my_palette,
    autopct='%.1f%%',        # 백분율 표시
    explode=[0, 0, 0.1],     # 특정 조각 강조
    startangle=90,           # 시작 각도
    counterclock=False,      # 시계방향
    wedgeprops={             # 조각 스타일
        'edgecolor': 'white',
        'linewidth': 2
    }
)

선 그래프 (Line Plot)

용도: 시간 흐름에 따른 변화 추세 파악

# 기본 선 그래프
sns.lineplot(data=df, x='계약월', y='거래금액')

# X축 눈금 처리 (전체 월 표시)
plt.xticks(range(1, 13))

# 다중 선 그래프
sns.lineplot(
    data=df,
    x='계약월',
    y='거래금액',
    hue='계약연도',          # 연도별 구분
    style='계약연도',        # 선 모양 다르게
    markers=True,           # 점 표시
    dashes=True             # 선 스타일 자동 설정
)

범례(Legend) 위치 조정

# 그래프 오른쪽에 배치
plt.legend(
    bbox_to_anchor=(1, 0.5),
    loc='center left'
)

# 그래프 위쪽에 배치
plt.legend(
    bbox_to_anchor=(0.5, 1),
    loc='lower center',
    ncol=3  # 가로로 3열
)

산점도 (Scatter Plot)

용도: 두 연속형 변수 간 선형 관계 확인

# 기본 산점도
sns.scatterplot(
    data=df,
    x='전용면적',
    y='거래금액',
    s=50,              # 점 크기
    alpha=0.3          # 투명도 (밀집도 표현)
)

# 연속형 변수로 색상 구분
sns.scatterplot(
    data=df.sort_values('세대수'),  # 중요 데이터가 위에 오도록 정렬
    x='전용면적',
    y='거래금액',
    hue='q세대수',     # 그라데이션 효과 ('q' 붙이기)
    palette='viridis'
)

고급 기법

얕은 복사 vs 깊은 복사

# 얕은 복사 (메모리 주소 공유)
df1 = df  # df 수정 시 df1도 변경됨

# 깊은 복사 (독립된 객체)
df2 = df.copy()  # df 수정해도 df2는 영향 없음

이중 Y축 그래프

# 서로 다른 스케일의 두 그래프
ax1 = plt.gca()
ax2 = ax1.twinx()  # 두 번째 Y축 생성

2. 산점도 심화와 상관관계 분석

회귀선(Regression Line) 추가

# 산점도 + 회귀선
sns.lmplot(
    data=df,
    x='전용면적',
    y='거래금액',
    ci=None,                    # 신뢰구간 제거
    scatter_kws={               # 점 스타일
        'color': 'gray',
        'alpha': 0.3
    },
    line_kws={                  # 선 스타일
        'color': 'red',
        'linewidth': 2
    }
)

산점도 행렬(Pair Plot)

# 여러 변수 조합 한 번에
sns.pairplot(
    data=df,
    x_vars=['전용면적', '세대수', '주차대수'],  # 독립변수
    y_vars=['거래금액'],                      # 종속변수
    kind='reg',                               # 회귀선 추가
    plot_kws={
        'scatter_kws': {'alpha': 0.3},
        'line_kws': {'color': 'red'}
    }
)

히트맵(Heatmap)과 상관관계

상관계수 행렬 생성

# 수치형 변수만 상관계수 계산
corr_matrix = df.corr(numeric_only=True)

히트맵 시각화

sns.heatmap(
    corr_matrix,
    cmap='RdYlBu',          # 발산형 팔레트 (양수/음수 구분)
    annot=True,             # 상관계수 값 표시
    fmt='.2f',              # 소수점 둘째자리
    annot_kws={
        'size': 10,
        'fontweight': 'bold'
    }
)

히트맵 해석 전략

1. 목표 변수(Y)와의 관계 파악

  • 거래금액과 상관계수 절댓값이 큰 변수 → 주요 예측 변수
  • 예: 전용면적(0.85), 주차대수(0.72)
  • 상관계수 0에 가까운 변수(계약월, 계약일) → 영향력 적음

2. 독립 변수(X) 간 관계 파악 (다중 공선성)

  • 독립 변수끼리 상관계수 절댓값이 매우 높으면 문제
  • 예: 경과년수 vs 입주년도 (-1.0)
  • 둘 중 하나를 모델에서 제거 고려

상관계수 종류

피어슨(Pearson)

  • 두 연속형 변수의 선형 관계 측정
  • 정규분포 가정 필요
  • 기본값

스피어만(Spearman)

  • 데이터 순위 기반 상관관계
  • 정규분포 가정 불필요
  • 비선형 관계도 감지 가능

3. 대화형 시각화: Plotly

Plotly의 장점

정적 vs 대화형

  • 정적: 이미지로 고정된 결과
  • 대화형: 사용자와 상호작용 가능

주요 기능

  • 툴팁(Tooltip): 마우스 올리면 상세 정보
  • 필터링: 범례 클릭으로 표시/숨김
  • 줌, 팬, 선택: 영역 확대/이동/선택

Plotly 실습

import plotly.express as px

# 산점도 생성
fig = px.scatter(
    df,
    x='전용면적',
    y='거래금액',
    size='세대수',              # 점 크기
    color='시군구',             # 색상 구분
    hover_data=['단지명'],      # 툴팁 추가 정보
    title='아파트 거래 분석'
)

fig.show()

Streamlit과의 결합

# 웹 기반 대시보드 구축
import streamlit as st

st.title('데이터 분석 대시보드')
st.plotly_chart(fig)

활용: 사용자가 직접 데이터 업로드하고 분석하는 서비스 제작 가능


4. 데이터 분석 이론과 비즈니스 사례

DIKW 피라미드

데이터 → 정보 → 지식 → 지혜

  1. 데이터(Data): 가공되지 않은 사실
    • 예: 일별 판매량
  2. 정보(Information): 데이터 가공, 패턴 도출
    • 예: 상품별 매출 합계
  3. 지식(Knowledge): 정보 + 경험, 의사결정 활용
    • 예: 판매 비중 높은 상품 강화
  4. 지혜(Wisdom): 지식 융합, 새 가치 창출
    • 예: 교차 판매 전략

4가지 분석 유형

복잡성과 가치가 높아지는 순서:

  1. 기술 분석 (Descriptive): 과거에 무슨 일이 있었나?
  2. 진단 분석 (Diagnostic): 왜 일어났나?
  3. 예측 분석 (Predictive): 앞으로 어떻게 될까?
  4. 처방 분석 (Prescriptive): 무엇을 해야 하나?

금융권 사례: 리스크 관리 모델링

배경

  • 은행이 기업 고객 부도 가능성 예측 모델 요청
  • 목표: 3년 이내 경제적 디폴트 예측

모델 논쟁

로지스틱 회귀 (채택됨)
- 화이트박스 모델
- 각 변수 영향 명확히 설명 가능
- 예측 정확도 다소 낮음
- 설명 가능성 중요한 금융권에 적합

머신러닝 (부결됨)
- 블랙박스 모델
- 예측 성능 높음
- 내부 동작 설명 어려움
- 규제 환경에서 채택 어려움

시사점

  • 금융권: 예측 정확도보다 설명 가능성 우선
  • 최근: XAI(설명 가능한 AI) 기술로 한계 보완

데이터 거버넌스

핵심 요소

  • 데이터 표준화
  • 메타데이터 관리
  • 데이터 품질 관리
  • CDO(Chief Data Officer) 역할
  • 데이터 스튜어드 지정

사일로(Silo) 현상

  • 부서 간 데이터 공유 안 됨
  • 원인: 상대평가, 부서 간 경쟁
  • 해결: 전사적 데이터 거버넌스 확립

5. 산업별 빅데이터 활용 사례

유통/이커머스

자라(Zara)

  • PDA, RFID로 실시간 판매 데이터 수집
  • 스페인 데이터 센터에서 전 세계 데이터 분석
  • 지역별 맞춤 상품 기획·공급

아마존

  • 과거 주문/검색 기록 분석
  • 구매 예측 상품을 근처 창고에 미리 배치
  • '예측 배송' 특허 보유

RFM 고객 세분화

  • Recency(최근성): 마지막 구매일
  • Frequency(빈도): 구매 횟수
  • Monetary(금액): 구매 금액
  • 3가지 기준으로 우수/이탈 고객 식별

금융

신용 평가 고도화

  • 비금융 정보 활용 (통신 이력 등)
  • Thin-filer 고객의 상환 능력 예측
  • 예: 하나카드 × SKT

FDS (사기 탐지)

  • 실시간 거래 패턴 분석
  • 심야 결제, 급격한 위치 변경 감지
  • 국민카드: 사고 차단율 13.8%p 증가

고객 이탈 예측

  • 거래 내역, 불만 이력 분석
  • 이탈 가능 고객 식별
  • 선제적 방어 마케팅 (추가 혜택 제공)

제조/스마트 팩토리

예지 보전 (Predictive Maintenance)

  • 센서 데이터 실시간 분석 (온도, 압력, 진동)
  • 고장 전 예측 → 정비
  • 삼성SDS: 불량 검출률 3.5배 향상

공급망 관리(SCM)

  • 원자재 가격, 물류 경로 데이터 분석
  • 비용 최소화, 리스크 관리

GE

  • 산업 클라우드 기반 빅데이터 플랫폼
  • 개발→제조→판매→서비스 전 과정 통합 분석

기타 산업

구글 데이터 센터

  • 딥마인드 AI로 냉각 시스템 최적화
  • 전력 사용량 40% 절감

후지쯔 농업

  • 기후 데이터, 작물 이미지 클라우드 분석
  • 최적 파종/수확 시기 예측
  • 수확량 20-30% 증가

6. 프로젝트 기획 방법론

프로젝트 기획 5단계

1. 문제 선정
   ↓
2. 목표 변수(Y) 설정
   ↓
3. 가설 수립
   ↓
4. 필요 데이터 목록화
   ↓
5. 데이터 수집처 탐색
   (확보 어려우면 1단계로 회귀)

실전 사례: 항공 마일리지 카드 캠페인

1. 분석 주제

  • 할인/포인트 카드 사용자에게 마일리지 카드 추가 발급
  • 목표: 전체 카드 이용 금액 증대

2. 목표 변수 & 가설

  • Y: 추가 발급 동의(1) vs 거절(0)
  • 가설: 여성, 30-40대, 고소득, 해외 결제 경험자

3. 데이터 준비

  • BSS(Behavior Scoring System)가 가장 영향력 높은 변수
  • 로지스틱 회귀로 반응 확률 예측
  • 의사결정나무로 타겟 그룹 특징 파악

4. 결과

  • 타겟 그룹: 무작위 대비 3배 이상 높은 반응률
  • 적은 비용으로 높은 효율 달성

성공 사례의 공통점

  1. 새로운 데이터 확보: 과거 미활용 데이터 수집
  2. 패턴 발견과 예측: 잠재 패턴 도출, 미래 예측 모델
  3. 의사결정 활용: 수익 증대 or 비용 감소 → 이익 극대화

프로젝트 기획 예시: 직원 퇴사율 분석

주제: 직원 퇴사율 영향 요인

목표 변수(Y): 퇴사율 (최근 12개월 퇴사자/총 직원)

가설

  • 만족도↓ → 퇴사율↑
  • 평균 연봉↓ → 퇴사율↑
  • 당기순이익 증가율↑ → 퇴사율↓

데이터 수집처

  • 잡플래닛: 만족도
  • 원티드: 평균 연봉
  • 금융감독원: 당기순이익

추천 데이터 소스

공공 데이터

  • 공공 데이터 포털
  • 서울 열린 데이터 광장

산업별

  • 금융 빅데이터 플랫폼
  • 해양수산 빅데이터 거래소
  • 환경 빅데이터 플랫폼
  • 보건의료 빅데이터 플랫폼
  • 문화 빅데이터 플랫폼

경진대회 플랫폼

  • Kaggle (글로벌)
  • 데이콘 DACON (국내)

학습 요약 및 실무 인사이트

시각화 핵심

그래프 선택 가이드

  • 비율: 파이 차트 (5개 이하)
  • 추세: 선 그래프
  • 관계: 산점도 + 회귀선
  • 상관: 히트맵
  • 대화형: Plotly

범례 배치 원칙

  • 그래프 영역 방해 금지
  • bbox_to_anchor로 외부 배치
  • ncol로 가로 정렬

분석 프로세스

CRISP-DM 강조점

  1. 비즈니스 목표 이해 (가장 중요)
  2. 문제 정의 명확화
  3. 데이터 확보 가능성 검토
  4. 분석 수행
  5. 결과 활용 → 성과 창출

모델 선택 기준

  • 예측 정확도 vs 설명 가능성
  • 산업/규제 환경 고려
  • 금융: 화이트박스 선호
  • 일반: 블랙박스도 활용

실전 팁

데이터 확보 전략

  • 공공 데이터 포털 활용
  • 경진대회 플랫폼(Kaggle, 데이콘)
  • 웹 스크레이핑 (주의: 법적 검토)
  • 리뷰 데이터 대안 활용

프로젝트 성공 요소

  1. 명확한 문제 정의
  2. 현실적 데이터 확보 계획
  3. 도메인 전문성
  4. 비즈니스 가치 창출 지향