-
[삼성 SDS Brightics] 개인 분석 프로젝트 : word2vec삼성 Brightics 서포터즈 2022. 11. 9. 01:41
안녕하세요.ㅎㅎ Brightics 서포터즈 3기 정민경입니다.
어느덧 활동이 다음주면 끝나는데요,
여름부터 겨울까지 호다닥 지나가니
이렇게 서포터즈 마지막을 앞두고 있네요
그럼 저번주에 이어 개인분석 마지막 과정을
오늘 정리해보겠습니다!ㅎㅎ
들어가기 앞서,
제가 도서 data를 살펴보면서
줄거리로 장르 예측하기를 도전해보고 싶어했죠!ㅎㅎ
그런데 제가 가져온 데이터를 살펴보았을 때
genres(장르)가 또렷하게 구분되어있기보다
Fiction & Mystery & ...
요런식으로 해당되는 장르가 모두 체크되어있는 형태더라고요.
그래서 그중 'Fiction'을 기준으로
다시말해, 장르 중 소설을 구분해보는 것을 목표로!!
python 코드를 이용해 fiction / not fiction
나누어놓은 col(열)을 더 추가했답니다.ㅎㅎ
그렇게 시작!!
1) Word2vec
브라이틱스가 언제나 그렇듯
'줄거리로 장르 예측하기!?'
복잡할 것 같은데 막상 시도하면
그닥 복잡하지 않아요.
word2vec 함수를 검색하면
2가지가 뜨는데요
하나는 말 그대로 'word2vec'
그리고 word2vecModel
뭔가 해서 설명을 보면
두 함수를 연이어 쓴 사례를 볼 수 있어요.
먼저 어휘를 word2vec으로 벡터화시키면 그 다음,
model로 문장을 그 단어들의 벡터로 나타냅니다!
저는 여기서 단어를 100개로 설정했는데요
그럼 100가지 수치로 문장의 의미가 정의돼요.
해당 100가지의 수치를 추후 train할 요소로 넣기위해
'Array to Column'으로 모두 나열!!
그러면 어떻게 단어이자 문장을 학습시키지?라는 의문이 해결된,
즉 문장의 의미가 수치로 표현된
데이터셋이 완성됩니다.
더 나아가서 'Split Data'로
train과 predict 데이터를 나눠주면 완성!
2) XGB Classification
Train/Predict
그러고는 여러 분류 모델중 xgb를 선택해서
앞선 100개의 벡터값을 train 요소로 넣어줍니다.
그렇게 train_set 을 학습시켜주면!!
이를 통해서 나머지 predict_set의
fiction / not fiction 예측하기
예측만 하고 끝나면 정답인지 아닌지 알 수가 없잖아요!?
'Evaluate Classification'으로
정답률이자 예측률을 측정합니다.
데이터가 총 1150개여서 이거를 또 split 했으니
train이 거의 700개가 조금 넘는다고 보면돼요.
학습이라기에 너무 적은 양이고
실제로 어떻게 split 되느냐에 따라
(train set이 어떻게 설정되느냐에 따라)
정답률이 68~72%를 왔다갔다 했어요.
예전에 10만개의 데이터 분류를 시도했을 당시,
0.1%의 정확도도 올리기가 어려웠던거를 떠올리면
정확도가 불안정한 수치이고
또, 저번주에 오류가 났던 것 치고는 과정이 너무 간단하고 단순하죠!?
하지만 일단 확실히 함수 하나를 돌리는데 오래 걸려요.
기본 20분에서 길면 1시간 넘게..?
그게 그만큼 복잡한 과정을 브라이틱스가 매우
간편하게 구현했다는 반증일텐데
돌려놓고 기다리고를 반복하다가
단순히 fiction 구분이 아닌 다중장르 구분에서
저번주에 말했듯 자꾸 오류가 나더라구요ㅠ
(데이터셋만 다르고 똑같은 과정임에도)
노트북 용량 문제로 추측되어서 해결해보고 시도해보았는데도
완벽하게 완성되지 못해서
임의로 시도했던 간단한 장르 분류 및 예측을 소개했어요.ㅎㅎ
아쉽지만, 위 과정의 확장판이니
마음을 달래보아요!!ㅎㅎ
Review
그렇게 전반적으로
1) 도서의 리뷰
2) 평점과 줄거리의 관계
3) 줄거리로 장르 예측하기
위 3가지 소주제를 다뤄보았는데요,
각각의 분석에 대한 정리와 논의점을
추후 포스팅 할 거 같아요 :)
그리고 거의 반년이죠ㅎㅎ
브라이틱스 서포터즈를 하며
느껴왔던 고맙고, 아쉽고, 뿌듯하고
등등
마지막을 정리하며 담주에 올게요!!
※본 포스팅은 삼성SDS Brightics 서포터즈 3기 활동의 일환으로 작성하였습니다
'삼성 Brightics 서포터즈' 카테고리의 다른 글
[삼성 SDS Brightics] 나의 서포터즈 일대기♥ (1) 2022.11.16 [삼성 SDS Brightics] 개인 분석 프로젝트 : 마무리 및 정리 (0) 2022.11.16 [삼성 SDS Brightics] 개인 분석 프로젝트 : 감정분석 및 분류 (0) 2022.11.02 [삼성 SDS Brightics] 개인 분석 프로젝트 : TF-IDF (0) 2022.10.26 [삼성 SDS Brightics] 개인 분석 프로젝트 : 데이터 EDA (1) 2022.10.19