LSTM 5

[4] GAN으로 데이터 늘리기 (feat.행복)

GAN 모델을 활용해 결측치 데이터를 불려 보기로 했다. 수업 시간에 배운 GAN 모델의 네트워크 구조를 그대로 사용한다. 이후 이전의 시계열 모형 Baseline을 수정하고, 늘린 데이터를 활용해 시계열 모델을 학습한다. 이전에도 계속 나타났던 primary key와 결측치 문제로 인해, 강사님의 조언을 얻어 데이터 feature의 개수를 3개로 제한했다. # GAN 모델링 데이터를 전처리한 후, GAN 네트워크를 사용해 데이터를 불린다. 1. 전처리 연령대(AGE), 성별(SEX_CTGO_CD), 생애주기(FLC) 피쳐만 사용한다. 사용한 피쳐에 맞게 데이터를 groupby를 통해 집계한다. 집계 후 생긴 결측치는 각 피쳐의 평균값(mean)으로 채워 주었다. 2. GAN 모델 빌드 수업 때 사용했던..

[3] LSTM으로 시계열 모형 만들기 (feat.시행착오)

2019년 1월부터 2020년 3월까지의 데이터를 가지고 2020년 4월, 7월의 데이터를 예측하는 문제이기 때문에, 시계열 모델을 만들어 보았다. 이 모델을 활용해 결측치 채우는 방법, feature engineering 방식 등을 변경해 가며 다양한 경우를 시도해 본다. # 데이터 준비 1. 곱연산 템플릿 만들기 대회 주최 측에서 제공한 데이터는 이미 각 feature(년월, 카드 이용지역, 업종, 고객 거주지역, 연령대, 성별, 가구생애주기)별로 집계된 AMT(이용금액), CSTMR_CNT(이용고객), CNT(이용건수)이다. 데이터를 이해할 때부터 힘들었던 부분이기도 한데, 각 feature별로 합계를 집계했을 때 합이 0이면, 즉, 해당하는 데이터가 없으면 제공된 데이터에 들어있지 않다. 전부 결..

[4] 포털 댓글 감성 분석_1. 순환신경망_3. Word2Vec 임베딩층

Keras Embedding 레이어가 아닌, 팀 데이터셋에 맞는 Word2Vec 임베딩 층을 사용해 임베딩 층으로 주입한다. 이전의 LSTM 모델에서 임베딩 층만 달라지기 때문에, 해당 부분만 기록한다. # Word2Vec Embedding 모든 데이터셋(커뮤니티, 포털 게시글 및 댓글)을 mecab 형태소 분석기를 사용해 형태소 단위로 분석하고, Word2Vec 임베딩을 진행했다. Gensim라이브러리의 Word2Vec 모델을 사용했고, skip-gram 방식을 적용했다. 최소 등장 빈도는 5, 윈도우 사이즈는 10으로 설정하였으며, 100차원으로 임베딩하였다. 임베딩 품질을 확인하기 위해 다음의 작업을 진행했다. 첫째, 몇 가지 키워드를 선정하여 코사인 유사도가 높은 단어들을 추출했다. 어느 정도 유..

[4] 포털 댓글 감성 분석_1. 순환신경망_2. 모델링 및 예측

앞 단에 이어 모델링을 진행한다. 긍정, 중립, 부정의 3 class로 각각의 텍스트를 분류하는 작업을 수행한다. RNN과 LSTM의 성능 차이를 보기 위해 초기에 RNN, LSTM 모델을 설계했으며, 시행착오를 통해 여러 층으로 구성된 LSTM, GRU 모델을 구성했다. 본격적으로 파라미터, 층을 조정한 것은 여러 층으로 구성된 LSTM, GRU 모델에 한정하였다. 그리고 20200418 현재, 가장 좋은 정확도를 보인 모델은 양방향 LSTM 층을 적용한 모델이다. 테스트 셋에 대한 정확도는 0.9056이다. 이 모델을 통해 포털 댓글에 대한 감성 분석 분류 작업을 수행한다. # 공통 사항 임베딩 : Keras의 Embedding 레이어 사용. 100차원 임베딩. 옵티마이저 : adam. loss 측정..

[4] 포털 댓글 감성 분석_1. 순환신경망_1. 사전 작업

앞 단에서 감성어 사전(0417 현재 기준 ver3), 긍/부정 라벨링된 커뮤니티 게시글 및 댓글 데이터셋을 구축했다. 감성분석 모델링을 수행할 준비를 마쳤다. 이제 네이버, 다음, 유튜브 등 포털에서 수집한 180만 건의 댓글 데이터를 대상으로 감성분석을 수행한다. 우선 자연어 처리에 많이 활용되는 딥러닝의 순환신경망 알고리즘을 사용한다. 그 중에서도 RNN 알고리즘을 개선/변형한 LSTM, GRU 알고리즘을 적용한다. (각 모델에 대한 공부는 StudyLog에서...) 본격적으로 모델을 설계하고 적용하기에 앞서, 문장 토큰화, 불용어 처리 등의 작업을 진행한다. 참고 : 「케라스 창시자에게 배우는 딥러닝」, 「딥러닝을 이용한 자연어 처리 입문」 # 사전 작업 # install KoNLPy ! pip3..