2024. 4. 19. 16:35ㆍ프로젝트/빵맛집 추천서비스 웹배포
01 문제 해결 과정
1. PCA plot을 통해 2차원으로 어떤 군집 수가 가장 데이터가 잘 군집이 되는지 확인했다.
2. 상관도가 높은 컬럼, 그래프에 영향을 주지 않는 컬럼은 제거했다.
3. drop했을 때 나쁜 영향을 (데이터 군집이 섞임) 주는 컬럼은 drop하지 않았다.
4. 최대한 군집이 깔끔하게 잘 모일 수 있도록 선정한 결과가 K=4이다.
5. 결과: 군집별로 특성을 설명했고, 군집4는 대한민국 빵맛집이 모여버렸다.🥹👍
6. 후기: 통계적 지식+내주관을 바탕으로 군집화는 답이 없지만 하여튼 재밌다!!
02 버전5, "군집수=6->5" 클러스터링 결과
- 엘보우 포인트=19, 이너샤 값=8~9, 실루엣 계수=4~6를 기준으로 잡고 군집수를 확인해갔다.
03 버전5와 버전4의 "군집수=4" 결과 차이
- 뭐가 좋은지는 또한 정답이 없다.
04 평점, 리뷰수 삭제
1. 경사도를 지워도 변화가 없다.
2. 리뷰수를 지워도 변화가 없다.
3. 비건을 지워도 변화가 없다.
4. 주차도 변화가 없다.
4. 영향 주는 것: 평점, 빵, 음료, 뷰, 분위기, 친절함 등
5. 클린매장, 클린화장실 두 개 중에 하나만 지운 값이 같다.
-> 이렇게 지워서 남은 컬럼이 총 9개이다.
05 컬럼 다이어트 전후 버전 비교
06 다이어트 컬럼 버전5로 결정했을 때, 군집1
- 빵과 음료 맛있지만 가성비가 좋지 않을 수 있음. 가격대가 높을 수 있음.
07 군집2
- 뷰가 좋고, 분위기가 좋고, 빵도 맛있지만, 음료가 확실히 맛있을 확률이 높은 가게 (카페?)
08 군집3
- 빵이 진짜 맛있고, 음료도 어느정도 맛있으면서, 분위기 짱좋고, 짱친절한 가게
09 군집4
- 빵.존.맛, 빵.맛.미.쳤.음이 모여있는 가게
10 위의 그래프에 대한 피드백
- 중심점에서 맞춰져서 하나의 점에서 빠져나오는 군집이 잘된 군집이다. (헉)
- 군집 내에서는 밀도가 높아야 한다. 고로 땅따먹기 군집은 잘못된 걸 보여주려고 한 것이다.
- 컬럼 다이어트 한 후 밀도가 낮아진 걸 보니 컬럼 다이어트 전이 낫다. (헉)
- 이렇게 색깔이 잘 분배됐다면 번호를 붙여서 그래프를 그려본다. = 라인 그래프 (헉)
- 바그래프나 히스토그램 그래프가 아니고 라인그래프는 현업에서 많이 보고 결정한다.
- 특성별 이름을 붙이는 작업 또한 많은 시간이 걸릴 것이다.
- 다른 군집하고 진짜 차이가 있는지 확인한다. (필수는 아니고, 바로 라벨링만 해도 된다.)
- 그럼 라인 그래프는 어떻게 할지 고민해보기🥹 (pca표랑 다르게 그려야겠다)
11 클러스터링 피드백
# 클러스터링이 아이리스와 다르다는 질문
- 특정 컬럼을 기준으로 군집들이 나뉘는 것이다.
- 완전히 떨어지는 경우는 잘못된, 오히려 잘못된 경우이다.
- 업계 경험상 베스트는 4~7개
- 같은 컬럼이 존재하는데 붙어있는게 정상이다.
- 군집별로 띄우면 이상한 거다.
- 띄우면 있을 수 없는 일이다. 군집별로 모든 컬럼이 다 있잖아. 컬럼이 갈라질 수 없다.
- '0'값 표준화하면 알아서 수렴한다.
# 다음 스텝은?
- 우리는 이제 비교를 하는 것이다.
- 어떤 친구들이 예쁘게 뭉쳐있는지를 봐야한다.
- 우리가 전처리를 다하고 이렇게 잘한거다.
1. 라벨링을 해주고,
2. 어떤 친구들이 차이가 명확하게 나는지 본다.
3. 'k=6'일땐 1번 군집과 2번 군집 10만큼 차이났는데,
4. 색깔은 랜덤하게 랜덤하지 않게 하기 위해 매핑한다.
- 여기서는 매핑까진 필요없다.
- 모델 만들거 아니니까 예측할거 아니니까.
- 다닥다닥 붙어있으면 아예 틀렸다.
- 아이리스는 잊는게 좋겠다.
# 현업에서 클러스터링은?
- 테라바이트 급의 데이터를 다룰 때 군집도 보통 7개 이상으로는 잘 안하고 10개 이상도 잘 안한다. 세그먼테이션(세분화)의 의미가 없다. 유저가 10명있는데 군집 10개로 하면 한명 한명을 보는 것이다. 우리는 공통적으로 묶고 공통점을 찾아내고 해결방안을 내야하기 때문에 그 기준을 이렇게 100만건 처리해도 군집은 5~6개정도이다. 다른 업계에서는 클러스터링을 할 때 (대용량 도메인은 나를 믿어도 됨.) 데이터 자체가 많지 않고 게임 업계는 많이 남음. 예를 들어, 제조업은 클러스터링을 할 정도로 나오지 않을 것이다. 게임 업계 계신 분들도 군집이 10개 넘어가는 정도는 없다. 분석가들도 생각을 하는 것이다. 군집이 너무 많으면 ID별로 그룹바이 한거랑 뭐가 달라라는 질문에 그룹화를 작게함은 방어가 될 수 있다. 메소드를 통해 확인하는 K값은 다 참고치다. 항상 말하지만 통계지식 반+분석가주관 반이 들어간다. 우리는 기준이 없는 새내기니 가이드라인 주겠고 이걸 따라주시면 된다. 컬럼 삭제는 우리끼리 회의를 통해 결정한다. 군집 개수도 가능하면 4~6개 제일 좋다. (만오천건? 7개도 많다.) 테스트 해보고 결과를 확인해봐라. 19개는 너무 많아서 특징을 찾을 수 없다. 군집을 줄이게 되면 데이터들이 밀집을 하면서 이 친구들의 특징을 찾을 수 있을 것이다.
# 현업에서도 기피대상이다. 힘들거 아니끼 분석가끼리도 힘들어 한다. 저 사람 표정이 왜 이렇게 안좋지 하면 클러스터링 업무를 맡고 있을 것이다😂
# 팀원 질문
- 컬럼 개수가 많아질수록 이게 누적 분산이니까 누적 분산의 기본 그래프가 이렇게 된건 알고 계시죠? 저거는 우리가 하나씩 추가함에 따라서 1이되고 있기 때문에 분산은 컬럼 개수가 많아질수록 퍼질 수 밖에 없다. 위에는 우리가 스크리도표를 그려서 이거는?
# pca한 결과에 대해서는 pca 2차원 진행이 안된다?
스케일 > scree plot(elbow_method) > pca 2차원으로진행
12 스터디 팀원분이 알려주신 논문👍
https://www.kais99.org/jkais/journal/Vol23No12/vol23no12p020.pdf
13 전담 튜터님 피드백
- 줄인 거에 따라서 배리언스가 얼마나 남았냐 정보량으로 보는 거다.
- 스크리도표 분산 70~80퍼센트도 많이 한다. 90퍼 15개가 많은 감은 있으니까.
- 차원 축소하면 컬럼삭제 안해도 되나? 상관성은 pca가 해주니까 안해도 된다.
14 수준별 튜터님의 피드백
# 궁금한 점
1. pca에 난수하는게 맞나? 맞다. 단, PCA랑 KMANS 난수 달라도 된다.
- 난수마다 엘보우포인트가 달라지는 이유는 다른 초깃값을 잡아서이다.
2. pca하면 또 못하는지? 된다.
3. pca안에 값이 특성을 설명할 수 있는지?
- 로우 데이터를 봐야한다.
4. 컬럼 삭제를 하고 싶다면 어디서 멈춰야 하는지?
- 정답 없다.
5. 엘보, 이너샤(이건 맞음), 실루엣은 pca한거에 맞추는지?
- 다이어트한 데이터프레임인 'X'를 봐야한다.
# 2차원으로 볼 수 있어서 축소한거다라고 설명할 수 있음.
- 내 데이터 같은 경우엔 안해도 된다.
- 차원 축소를 하면 할수록 정보가 소실된다.
- 최대한 살리려고 하는 방법이긴 한데,
- 어쨌든 데이터가 손실되는 방법이라, 아까움.
- 잘 사용하지 않아서, 설명 못하는 부분도 존재.
# 튜터님의 클러스터링은?
- 차원 축소 안함.
- 최대한 있는 데이터를 가져간다.
- 클러스터 별로 해석을 한다.
- 근데 잘 안나온다.
- 근데 될 때까지 찾아내야 한다.
# 신입분의 업무
- 만들어 놓은 모델을 인터페이스.
- 잘 알고 계시긴 한데 그냥 만들어진거 보고 있음.
# 튜터님이 한다면?
- 중요 피쳐를 "선정"해서, K지표를 보고 정해서, PCA로 2차원 시각화를 보여준다.
- 우리는 17차원을 눈으로 볼 수 없으니까 다들 이렇게 본다.
- PCA>PCA 가능! 차원 축소로 모델을 만드는 게 아니니까 알겠죵?
- 그리고 나서 마지막에 군집이 잘 됐는지는 실루엣 계수로 구하면 된다.
- 이거도 절대적인 기준은 아니다. 이거로 정답을 찾아야지는 아니다.
15 클러스터링 오후 피드백
# 라이브한 데이터를 판단하는게 아니니까 이상치, 결측치 제거는 중요하지 않을 수 있다.
# 레이블을 달아서 로우 데이터를 보고 파악한다. 모르겠으면 컬럼을 늘린다.
# 컬럼이 6개인데 군집도 6개니까 컬럼을 늘리는게 맞다.
# 레이더 보는 법: 군집별로 특성이 가장 도드라져 보였어요!
- 길게 뻗은 부분이 있었거든요.
- 그 부분이 아마 군집을 결정하는 컬럼이였을 거예요.
# 이건 팀원분이 알려주셨다.
- pca 합계가 높아야 기존의 분산을 잘 반영한 결과이다.
'프로젝트 > 빵맛집 추천서비스 웹배포' 카테고리의 다른 글
04.21 Streamlit 시각화 (0) | 2024.04.21 |
---|---|
04.20 군집화 마무리 -> ux/ui관점 회의 -> streamlit 공부 (0) | 2024.04.20 |
04.18 PCA plot 피드백, 클러스터링 실습 (0) | 2024.04.18 |
04.17 K-means++ clustering, 데이터 클렌징은 계속 된다. (0) | 2024.04.17 |
04.16 프롬프트 활용한 파생변수 완성 -> 전처리 (0) | 2024.04.17 |