본문 바로가기

삼성 SDS Brightics

[삼성 SDS Brightics] 개인 분석 과제 - 3. 군집 분석 (3) Mean Shift 군집 분석

안녕하세요, 은서예요!

저번 포스팅에서 시련을 겪고,, 주말에 서포터즈 사무국 측으로 문의 메일을 드렸지만

연휴가 겹쳐 아직까지 답을 못 받은 관계로

이번 포스팅에서는 새로운 군집 분석 방법을 사용해 보려고 합니다 !_!

그럼 가 볼까욧

평균 이동 군집화 (Mean Shift Clustering)

이번에 사용해 볼 방법은 바로바로

평균 이동 군집화 (Mean Shift Clustering)

입니다 !_!

k-means clustering이 데이터 간 거리를 이용해서 중심을 잡았다면,

평균 이동 군집화는 데이터의 밀도를 이용해 중심을 잡는 방법입니다

또한 KDE 방식을 이용하여 데이터 포인트들이 데이터 분포가 가장 높은 곳으로 이동하면서 군집화를 하는데,

k-means와 다르게 별도의 군집 개수를 지정하지 않고 데이터 분포도에 기반하여 자동으로 군집의 개수를 지정하게 됩니다

그런데, 여기서 KDE 방식이란 무엇일까요 ?

KDE는 커널 함수를 통해 어떤 함수의 확률밀도 함수를 추정하는 방식입니다

확률밀도함수는 확률 변수의 분포를 나타내는 함수로 가우시안 분포, 감마 분포, t-분포 등이 있죠 ?

추정하는 방식은 데이터가 특정 분포를 따른다는 가정하에 데이터 분포를 찾는 모수적 추정

데이터가 특정 분포를 따르지 않는다는 가정 하에 데이터의 분포를 찾는 비모수적 추정으로 나뉩니다

kde는 비모수적 추정 방법으로 개별 데이터들에 커널함수를 적용한 뒤, 커널함수들의 적용 값을 모두 합한 뒤에 개별 관측 데이터 건수로 나누어 확률밀도 함수를 추정하는 방식입니다

[출처] 머신러닝 - 군집화 Mean Shift|작성자 파플

그럼 바로 제 데이터셋에 적용해 볼까요?

지금까지 데이터셋의 소비자 개인 정보 및 구매량을 기준으로 군집을 나누어 봤다면,

이번에는 소비자의 구매처 정보를 이용해 군집 분석을 해 보려고 합니다!

그럼 특정 군집을 타겟으로 하는 홍보 매체를 특정하는 데 도움이 되겠죠?

Brightics 실습

사실 프로젝트를 계속 진행하면서,, 제 데이터셋이 과연 좋은 군집 분석 예시가 될 수 있을지 아주 의심스러운데요,,

일단 부딪혀 보도록 하겠습니다 ! !

먼저 고뇌의 흔적부터 보고 가실게요 ^_^...

mean shift clustering에 들어가기 전에 우선 컬럼들을 좀 살펴보고자 히스토그램으로 시각화를 해 보았는데

아니나 다를까 구매처 컬럼들도 모두 오른 꼬리가 긴 Positive skewness 형태를 띄고 있더라고요

그래서 normalization부터 해 보았습니닷

저번과 같이 min-max scaler로 선택해 준 뒤 돌려 줬고요

mean shift 함수를 불러왔습니다

그런데 bandwidth라는 옵션이 보이더라고요

mean shift clustering에서는 이 Bandwidth(대역폭)이 아주 중요한 요소입니다 !

대역폭은 각각에 적용할 커널 함수를 얼마나 부드럽게 만들 것인지를 결정하며, 클수록 부드러워집니다

bandwidth가 작게 되면 그만큼 데이터를 잘 나타낼 수 있으나 과적합 문제가 발생할 수 있어요

저는 Brightics Tutorial을 참고했을 때 0.05를 쓰는 것을 보고 일단! 0.05로 설정해 주었습니다 (무책임)

(오늘도 Tutorial 링크를 첨부해 드리겠슴니다~!)

https://www.brightics.ai/kr/docs/ai/s1.0/tutorials/224_py_mean_shift?type=insight

 

Tutorial | Brightics Studio

Mean Shift 군집 분석 Studio 1.1 Studio 1.0 오피스텔 거래집중 지점 추출 분석 프로세스 c l u s t e r i n g 산업군 e t c 난이도 Advanced 시나리오 오피스텔에 투자하고자 하는 영광이는 서울 오피스텔 매매 현황을 파악하려고 한다. 영광이 사정상 조만간 큰 돈이 필요할 수 있을지도 모르기 때문에, 원할 때 팔 수 있도록 거래량이 많은 지역을 찾아 투자하려고 한다. 목표 Query Executor를 통해 필요한 데이터를 필터링하고 주소-위치 정보를 Join하여 거래물건의 위치를 알아낸다.

www.brightics.ai

결과가 나왔는데요,,,?

빨간색 x가 데이터가 모여있는 지점을 표시한 것인데

어째 많아도 너무 많은 느낌............

출처: Brightics Tutorial

분명 튜토리얼 예시에는 이렇게 나왔거든요,,?

이것도 질문을 드려야겠네요.......... 오엠지


아무래도 쉽지 않은 놈을 건드린 기분입니다...? (그걸 이제서야 앎)

그래도 제출까지 얼마 남지 않았으니

최대한!!!! 얻어갈 것은 얻어 가려고 해요

비록 유의미한 결과가 나오지 않는다고 하더라도

제 인생 처음으로 군집 분석을 공부할 수 있었던 순간이니 좋게 생각하려고 합니다 ^_^

다음 포스팅에서는 추가로 진행한 계층적 군집분석 + 피드백을 바탕으로 보완 과정을 보여 드리려고 해요 ㅎ.ㅎ

끝까지 많은 기대 부탁드려용

그럼 안농~!

본 포스팅은 삼성 SDS Brightics 서포터즈 활동의 일환으로 작성되었습니다.

#삼성SDS #Brightics #BrighticsAI #브라이틱스 #데이터분석 #데이터사이언스 #인공지능 #브라이틱스서포터 #EDA #군집분석 #서포터즈#대외활동#분석프로그램 #meanshift #Clustering #Silhouette계수 #Kaggle #KaggleCompetition #로그변환 #Normalization #데이터시각화 #R#Rstudio#Python#SamsungSDS#삼성서포터즈#코딩#통계#iris#삼성#분석플랫폼#모델링#머신러닝#데이터분석툴#빅데이터#브라이틱스서포터즈2기#서포터즈2기#삼성SDSBrightics #BrighticsStudio #브라이틱스 #모델링 #데이터분석 #데이터 #브라이틱스서포터즈 #Brightics서포터즈 #브라이틱스다운 #모델링 #데이터시각화 #프로그램설치

#Brightics설치방법 #파이썬 #python #R #Rstudio #코딩 #코딩없이분석 #삼성SDS #삼성서포터즈 #데이터분석대외활동 #대외활동 #코딩하는법