✨ Codeit Boost 아티클 세미나 3
(2024.12.18)

🚀 세미나 발표 주제
: 차원 축소 - 주성분 분석(PCA) 데이터 분석
고객의 소비 데이터 분석하기
주성분 분석(PCA)은 고차원 데이터를 저차원으로 축소하는 차원 축소 기법으로, 데이터의 분산(정보)을 최대한 보존한다.
데이터 차원의 증가로 인해 발생하는 차원의 저주(dimensionality curse) 해결하며, 데이터 시각화, 특히 2D/3D 그래프를 활용하여 클러스터링 등 결과 해석할 수 있다.
예: 고객의 소비 데이터를 분석하여 그룹화(클러스터링) 후, 각 그룹의 특성을 이해하여 맞춤형 마케팅 전략을 수립.
차원 축
데이터의 차원(특성의 수)을 줄이며 데이터의 중요한 정보를 최대한 보존하는 것
차원의 저주
머신 러닝에서 데이터의 차원이 증가할수록 해당 공간의 크기가 기하급수적으로 증가하며, 데이터 분석이나 모델 학습에 어려움을 초래하는 현상
PCA
데이터의 주요 패턴을 캡처하면서 차원을 줄이는 분석 기법으로, 핵심 원리는 데이터의 분산을 최대화하는 주성분을 찾는 것이다.
.png)
최적의 기저
PCA를 수행할 때는 데이터의 구조를 가장 잘 반영하는 최적의 기저를 찾는 것이 중요하다.
pca에서는 자동으로 분산이 최대가 되는 방향, 즉 데이터 간의 중복성이 가장 적은 방향을 최적의 기저로 찾아낸다.
📌 PCA를 사용하는 이유?!
클러스터링 모델의 예측 결과에 사용한 독립변수가 너무 많으면 분류 결과를 그래프로 표현하기 어렵다.
그렇다고 일부 독립 변수만 사용하여 그래프를 표현하면 정보가 왜곡된다.
따라서 PCA로 변수를 압축하여 시각화에 활용한다.
📌 주성분 분석(PCA) - 고객 소비 데이터 분석
✅ 데이터 불러오기
📝 코드
.png)
고객별 총 지불 금액과 카테고리별 지출 금액이 스케일링 된 상태로 출력됨.
산점도 그래프를 이용하여 클러스터가 잘 되었는지 확인하기!
📌 그래프 표현을 위한 차원 축소 과정
.png)
📝 코드
.png)
PCA 결과물은 Numpy Array 형태이기 때문에 Pandas DataFrame 형태로 변환해주기!!
.png)
.png)
📌 위 Dataframe에 종속변수(라벨) 붙이고, 산점도 그래프 그리기
.png)
- 산점도로 클러스터들이 얼마나 잘 나뉘었는지 대략적으로 파악한다.
📌 그래프 해석하기
✅ 보라색 클러스터: 대부분 왼쪽 아래에 몰려 있음 - 이 그룹의 고객은 다른 그룹과 구매 행동 패턴이 다르다. 보라색 클러스터에 속하는 고객들은 저가 상품에 관심이 많기 때문에 쿠폰을 제공해볼 수 있다.
✅ 하늘색 클러스터: 오른쪽 위에 위치함 - 특정 제품 카테고리에 집중된 지출을 보여준다.
✅ 연두색 클러스터: 중앙 오른쪽에 흩어짐 - 소비 유형이 비교적 고르게 분포된 성향을 나타냄.
✅ 빨간색 클러스터: 중앙 아래쪽에 위치함
→ 그래프를 통해 고객 그룹 간의 행동 패턴이 다르며, 일부 클러스터 간 구분이 명확함을 알 수 있었다.
📌 Cunclusion
고객 데이터를 시각화하고 클러스터링의 결과를 검증하였다.
주성분 분석(PCA)는 데이터의 주요 정보를 유지하면서도 차원을 축소해주기 때문에 효과적으로 쓰인다.
데이터의 분산을 최대한 보존하면서 차원을 줄이는 이 기법은 고차원 데이터를 다룰 때 차원 감소 기법을 적용하는 데에 활용된다.
따라서 고객 맞춤형 마케팅이나 추천 시스템 등의 데이터 기반 의사결정 과정에서 중요하다.