본문 바로가기

삼성 SDS Brightics

[삼성 SDS Brightics] 개인 분석 과제 - 3. 군집 분석 (4) log 변환 오류 해결, Brightics add function column 꿀팁

안녕하세요, 은서예요!

드디어 질문에 대한 답변을 받았습니다~!

두 분의 멘토님께서 정말 성심성의껏 해결책을 모색해 주셨더라고요 ㅜ.ㅜ

더 열심히 해야겠다는 생각도 들고 너무 감사했습니다...

Brightics를 사용하다가 저처럼 어려움을 겪으신 분들은 오늘의 포스팅을 주목해 주세욧


로그 변환 오류 해결

저번 포스팅에서 계속해서 로그 변환이 이상하게 되는 (?) 오류가 있었죠?

저는 혹시나 프로그램의 문제인가 싶어 멘토님들께 바로 연락을 드렸었습니다!

그런데 답변으로 혹시 데이터에 0값이 있는 게 아니냐고 하시더라구요

0값에 로그 변환을 취했을 때 무한대가 나온다고 합니다...!

 

그리고 여기서 한 가지 알게 된 점이 또 있습니다 ! ! !

Brightics에서 컬럼을 추가해 주는 방법은 두 가지가 있었죠?

여러 열을 생성해 주는 Add funciton columns,

하나의 열을 생성해 주는 Add function column이 있는데요

Add funciton columns SQL 문법만을 쓰기 때문에

무한대 값이 나오면 에러가 뜨는 것이고

Add funciton columnSQL, python 문법을 모두 사용할 수 있기 때문에

파이썬 문법으로 돌렸을 경우 무한대 값을 만들어 주는 것입니다...!

이것을 해결하는 방법은 아래에서 Brightics 화면과 함께 설명해 드리도록 하겠습니다 ㅎ.ㅎ

저번에 에러가 났었던 Add Function Columns를 이용해서 해결해 볼게요

이렇게 로그 변환을 해 준 모습입니다!

***여기서 중요한 점***

SQL 문법에서는 결과값과 입력값의 이름이 동일하면 돌아가지 않는다고 합니다!!!

혹시나 에러가 났다면 이 컬럼 이름을 다르게 설정해 보세요

안정적으로 변환이 된 감동적인 모습,,,

이렇게 또 배워 가네요 ㅜ.ㅜ

K-means 군집 분석 재도전

자, 이제 컬럼들도 제대로 변환했겠다!

k-means 군집 분석에 다시 도전해 보도록 하겠습니다 (비장)

정규화에 들어가기 전에!!

피드백을 받았던 부분을 한 번 더 확인하려고 해요

Min-Max 표준화를 할 시에, 굉장히 큰 값이 아웃라이어로 들어가 있다면

이 매우 큰 값에 영향을 받아 다른 값들이 별 의미가 사라지는 성격이 반영될 수 있다고 합니다

그래서 로그 변환까지 해 준 뒤 컬럼들의 그래프를 확인해 보며 아웃라이어가 있는지 확인해 보았습니다!

먼저 로그 변환이 끝난 구매량 변수들과 소비자 신상 정보 변수들을 넣고 정규화를 진행했습니다

정상적으로 작동하네욧

그리고 K-means를 진행하려고 하는데, 문득 이런 생각이 들더라고요

왜 지금까지 구매량 변수들을 몽땅 넣고 군집을 분석하려고 했을까..............

항목 별로 나누어서 군집을 분석해도 되는 거잖아요 ?!

그래서 이번에는 구매량 변수 중 와인 컬럼과 소비자 신상 정보만 넣고 돌려 보았습니다 !!

그랬더니 이런!! 결과가 나오더라구요

실루엣 계수가 한 K에서만 눈에 띄게 높았던 경우는 처음이네요

이거 나름 괜찮을지도 , , ,

한번 군집들의 특성을 파악해 보겠습니다

먼저 Statistic Summary를 불러와서 group by를 prediction 컬럼으로 설정해 준 뒤 살펴보도록 할게요

흠... 평균값을 보니 집단 간 차이가 좀 있는 것 같아서 q1, median, q3를 확인해 봤더니

군집 2의 구매량이 가장 크고 그 뒤를 0, 4 군집이 따르고 있습니다

2, 5 군집은 성질이 비슷해 보이기도 하네요!

과연 이 군집들의 데이터는 비슷한 성질을 보일지.........

다음 시간에 공개됩니다

멘토님의 피드백

군집 분석 포스팅을 하면서 계속해서 유의미한 결과가 나오지 않을 것 같다는 생각이 들었고,

걱정되는 마음에 멘토님께 질문 메일을 드렸었습니다!

하지만 멘토님께서 해 주신 말씀들이 너무 마음에 와닿기도 하고 감사하더라구요

군집 분석은 분석가의 경험이 중요한 기법이라고 합니다

정답이 없는 상태에서 데이터 집단 간의 관련성을 찾는 문제기 때문이죠!

그래서 제가 특정 상품의 소비량과 관련이 있을 거라고 생각한 특성값을 입력하고 실행시켜도

실제로 소비량과 특성값이 무관하다면 의미가 없는 분석 결과가 나오게 되는 것입니다 ㅜ.ㅜ

멘토님께서는 유의미한 결과가 나오면 더 좋겠지만, 시간과 자원이 한정되어 있는 서포터즈 활동으로서는

데이터 분석의 과정을 진행해 본다는 것에 더 큰 의미가 있다고 말씀해 주셨습니다

이 말씀을 듣고 용기를 내서 죽이 되든 밥이 되든! 끝까지 부딪혀 보기로 했습니다 ㅎ ㅎ

그리고 벌써 다음 포스팅이 마지막이 될 것 같네요...ㅠ

그래도 매주 블로그를 쓰면서 소소한 뿌듯함을 느꼈었는데, 이제 마지막이라니 너무 아쉽습니다

하지만 끝까지 열심히 해서 유종의 미를 거두도록 할게요

다음 포스팅도 기대해 주세요

그럼 안농~!

본 포스팅은 삼성 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 #삼성서포터즈 #데이터분석대외활동 #대외활동 #코딩하는법