카테고리 없음

2025.12.17 TIL (본캠프, 43일차)

D:Connect 2025. 12. 17. 21:04

오늘은 라이브 강의가 없는 날이었다.

대신 발표 기술 특강과 비지도 학습(클러스터링 복습)을 다시 한번 스스로 공부하였다.

특히 복습을 하면서 어제 이해하지 못했던 부분들이 조금씩 이해가 되어가고 있는거 같다..

 

"데이터 분석 결과 완성도를 높이는 발표 기술 A to Z" 특강

왜 발표 기술을 배워야 할까

튜터님의 질문이 인상적이었다: "아무리 좋은 분석을 해도, 전달하지 못하면 무용지물이다."

지난 42일간 우리는 분석하는 법을 배웠다. 통계, 머신러닝, 클러스터링... 하지만 그 결과를 어떻게 설득력 있게 전달할 것인가는 배우지 못했다.

발표의 구조

강사는 "발표는 스토리텔링"이라고 했다. 처음부터 끝까지 일관된 흐름이 있어야 한다는 뜻이다.

  1. 문제 정의: 무엇을 해결하려고 하는가?
  2. 배경과 이유: 왜 이것이 중요한가?
  3. 데이터와 방법: 어떻게 분석했는가?
  4. 결과: 무엇을 발견했는가?
  5. 인사이트와 권고: 이것이 의미하는 바는?

이 구조가 없으면 청중이 따라가기 어렵다고 했다.

시각화의 원칙

"차트 하나가 천 마디 말보다 낫다"는 격언이 있다고 했다. 하지만 잘못된 차트는 오히려 혼란을 가져온다.

  • 한 차트에는 한 가지 메시지만: 너무 복잡하면 중심이 흐린다
  • 색상의 일관성: 같은 범주는 같은 색으로
  • 범례와 축 레이블: 명확해야 한다
  • 적절한 차트 선택: 데이터의 종류와 목적에 맞게

어제 그린 레이더 차트가 떠올랐다. 5개 클러스터의 특성을 한눈에 보여줬는데, 바로 "한 가지 메시지"를 전달하는 좋은 예였다.

 

말하는 방식

발표는 텍스트가 아니라 말하기라는 게 중요했다:

  • 천천히, 명확하게
  • 청중과 눈 맞추기
  • 침묵을 두려워하지 말기
  • 리모콘을 활용해 적절한 타이밍에 내용 전환

튜터님이 "발표는 기술이 아니라 연습"이라고 했다. 많이 할수록 나아진다는 의미 인거 같다.

결론적으로 발표 기술도 데이터분석가의 역량이라는 뜻이다.

 

비지도학습 복습

어제 코드를 돌렸지만, 왜 이렇게 하는지 완전히 이해하지 못했다. 오늘은 차근차근 다시 생각해봤다.

 

표준화를 다시 생각해보자

scale_df = StandardScaler().fit_transform(base_df1)

왜 이 단계가 필수인가?

예를 들어보자. 우리가 사용하는 피처들:

  • customer_zip_code_prefix: 10000대의 숫자
  • price: 100대의 숫자
  • payment_value: 1000대의 숫자

세 피처를 그대로 K-Means에 넣으면 어떻게 될까?

가장 큰 숫자(price)의 변화가 거리 계산을 지배할 것이다. 즉, 작은 숫자들의 차이는 무시된다.

표준화를 하면 모든 피처가 평균 0, 표준편차 1로 변환된다. 이제 모든 피처가 동등한 무게를 가진다. 이것이 핵심이다.

 

PCA가 정말 필요한가?

어제는 "차원 축소"라는 개념이 추상적이었다. 다시 생각해보니:

5개 피처 중에 일부는 서로 연관되어 있을 수 있다. 예를 들어 price와 payment_value는 상관성이 높을 것이다.

PCA는 이런 상관성을 이용해서, 5개 피처의 정보를 3개 주성분으로 압축한다.

왜?

  1. 시각화: 3차원은 그릴 수 있지만, 5차원은 못 그린다
  2. 성능: 불필요한 정보를 제거하면 노이즈가 줄어든다

그리고 explained_variance_ratio_.sum()이 0.85면, "원본 정보의 85%를 유지하면서 차원을 줄였다"는 뜻이다. 15%를 버렸지만, 그건 노이즈일 가능성이 높다.

 

K값 선택의 어려움

어제는 K=5로 바로 정했는데, 왜 Elbow Method와 Distance Map을 봐야 하나?

정답은 없기 때문이다. K=3, 4, 5, 6... 각각 다른 결과가 나온다.

예를 들어:

  • K=3: 큰 단위로 고객을 나눔 (마케팅 캠페인 규모가 작음)
  • K=5: 중간 단위로 고객을 나눔 (적절한 세분화)
  • K=10: 작은 단위로 고객을 나눔 (마케팅 리소스 많이 필요)

비즈니스 상황에 따라 선택이 달라진다.

Elbow Method는 "통계적으로 최적"인 지점을 보여준다. 하지만 최종 결정은 데이터분석가가 해야 한다.

 

K-Means의 알고리즘을 다시

kmeans = KMeans(n_clusters=5, random_state=42, init='random')
kmeans.fit(pca_df)

내부에서 무슨 일이 일어나나?

  1. 5개의 중심점을 랜덤하게 설정
  2. 각 데이터 포인트에서 5개 중심점까지의 거리 계산
  3. 가장 가까운 중심점에 할당
  4. 각 클러스터의 중심 재계산
  5. 중심이 움직였으니 2번부터 다시
  6. 중심이 더 이상 움직이지 않으면 종료

이 과정에서 random_state=42를 설정한 이유가 이제 이해된다. 초기 중심점이 랜덤이므로, 실행할 때마다 다른 결과가 나올 수 있다. 시드를 고정하면 같은 결과가 나온다.

 

시각화를 다시 보자

2D 산점도에서 5개 클러스터가 명확히 분리되어 있었다. 이것은 K=5가 좋은 선택이었다는 신호다.

만약 클러스터들이 섞여있었다면?

  • K값이 잘못되었거나
  • 피처 선택이 잘못되었거나
  • 데이터 전처리가 필요하거나

이런 신호가 되어서 다시 조정해야 한다.

 

레이더 차트의 의미

어제는 "각 클러스터의 특성을 보여준다"고만 알았는데, 복습하면서 더 깊이 있게 봤다.

표준화된 데이터의 평균이므로:

  • 0에 가까우면: 평균 수준
  • 양수 크면: 평균보다 높음
  • 음수 크면: 평균보다 낮음

예를 들어 Cluster 0의 price 축이 크다면, "이 클러스터의 고객들은 평균보다 비싼 제품을 구매한다"는 뜻이다.

이것이 바로 인사이트다.

 

 

하루를 마무리하며...

오늘은 발표 기술과 비지도 학습을 배우고 스스로 복습하는 날이였다.

발표 기술도 중요하지만 지금은 제대로 된 분석 결과를 도출하는 것이 나에게는 제일 중요하다.

지금까지 이해가 되지 않은 부분은 이번주가 지나가기 전에 다시한번 심도있는 복습을 진행 해야겠다.