_empty_ 2019. 9. 16. 20:24

추석 연휴 포함 주말까지 4일이 지나고 월요일

 

오전 - 연휴동안 박사님께 메일로 문의한 내용 직접 개인방문하여 멘토링

오후 - 멘토링 받은 내용 토대로 user_id로 Word2Vec 성공 (plot은 여전히 commit중), DBSCAN 새연이 코드 긁어다 적용

각자 오늘 한 내용 간단히 공유하고 퇴근

 

 

:: 오전

박사님께 여쭤본 내용은

1) product_id로는 Word2Vec이 잘 되는데 user_id로 진행하려하면 unsupported 에러가 발생

 input type이 int64여서 str로 변환해서 넣어야 한다고는 생각하는데 의도한 대로 형변환이 되지 않는 문제

→ pandas를 사용해서 Series타입이 끼여 문제가 발생하는 것 같다고 판단

Word2Vec에 굳이 Series가 들어갈 필요 없이 list in list 형태의 input이기만 하면 되므로

str인 list를 생성하면 되겠다 진단하여 아래 코드를 작성했고 잘 돌아갔다.

all_user_str[]
for i in range(0, len(group7.user_list)):
	user = group7.user_list[i].tolist()
    user_str = [str(s) for s in user]
    all_user_str.append(user_str)

But. user_id로 진행하니 데이터 양이 많아진건지 무엇이 문제인건지

plot 띄우는 것도 네시간 째 돌아가는 중이고 DBSCAN에 넣으려면 Kaggle에서 제공하는 RAM이 꽉 차 커널이 죽어버려서

로컬 pc로 돌리거나 다른 더 큰 사양의 가상머신을 찾아 돌려야 할 듯 하다.

 

2) K-Means 분석한 내용을

원래는 tsne plot에 색을 입히거나 하여 코어를 분리해내고 싶었으나 잘 안 되는 중이고

단순히 클러스터 갯수를 지정하여 라벨링 하는 것은 무리 없이 돌아가는데 이게 유의미하게 잘 된 것인지를 판단하기 힘들다

→ 대부분의 scatter plot 형태가 아주 큰 덩어리 가운데 코어가 작게 떨어진 모양새니 K-means보다는 DBSCAN에 집중하길 권장

 

 

 

::오후

우선 문제없이 돌아가는 product별로 분류한 Word2Vec에 대해 DBSCAN을 실시했다.

원형 거리기반 K-means와 달리 DBSCAN은 밀도 기반 클러스터링이라 원형이 아닌 형태로도 클러스터링이 가능한데

이 부분을 맡은 새연이가 연휴동안 DBSCAN 코드를 완성해왔다.

파라미터는 원래 있던 예제의 것을 가져왔다고도 했고 아직 코드에 대한 파악이 다 된 건 아니어서

적혀있던 파라미터 그대로 eps = 0.75, min_cluster = 6으로 진행했을 때 위 처럼 나온다.

사진은 붙여넣은 것이다 보니 해상도가 깨져 여기선 뭐가 뭔지 읽을 수 없지만

원본은 바로 첨부가 잘 안 될 만큼 고해상도라 내용 파악이 가능하다.

또한 클러스터 별로 분류된 dataframe 저장이 가능 해 이걸로 새로운 인사이트를 도출하거나 심도있는 분석을 진행할 수 있을 것 같다.

작게 뭉친 것들만 말해보자면 Yogurt끼리 묶인 것과 Baby용 식품 (이유식으로 추정)으로 제법 유의미하게 묶이지 않았나 싶다.

→ 다만 이 부분도 왜인지는 모르겠으나 commit하고 보니 내가 처음 돌렸을 때와 달리 5개의 클러스터로 분류된다.

model을 만들 때 파라미터를 넣고 안 넣고의 차이인가 싶어 이 부분은 실험을 해 봐야 알 듯 하다.

 

 

 

:: 해야 할 일 

1) 수요일 아침 발표 내용 정리(3주차 완료, 4주차 진행 내용), 지난 발표 때 지적받은 부분 보완할 것

2) 수요일 멘토링 시간 정하고 발표할 내용 정리 → 시나리오 작성 완료 필요

3) (개인) DBSCAN 결과로 도출할 내용 생각하기 + 원래와 다른 방향이지만 예측할 내용이 있을지, 모델학습 가능할지 찾아보기