관리 메뉴

솜씨좋은장씨

DACON 금융문자분석 공모전 - 도전 6일차 본문

DACON/KB 금융문자 분석 경진대회

DACON 금융문자분석 공모전 - 도전 6일차

사용자 솜씨좋은장씨 2019. 12. 19. 14:09

첫번째 제출 (Google Colab -TPU)

오늘은 형태소 분석기에서 morphs 메소드가아닌 nouns 메소드를 사용해보기로 했습니다.

형태소 분석기는 Mecab 메소드는 nouns를 사용하여 전처리한 데이터를 학습시켜 보았습니다.

model3 = Sequential()
model3.add(Embedding(max_words, 100))
model3.add(LSTM(128))
model3.add(Dense(2, activation='sigmoid'))

model3.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
history3 = model3.fit(X_train, y_train, epochs=2, batch_size=32, validation_split=0.1)
epoch2batch_size32
optimizeradamvalidation_split0.1

 

 

첫번째 제출 결과 

 

 

 

두번째 제출 (Google Colab -TPU)

이번에는 순환 컨볼루션 모델을 적용해 보았습니다.

형태소 분석기는 Mecab에서 Okt로 메소드도 nouns에서 morphs로 다시 바꾸어 시도해보았습니다.

단어의 길이가 2이상인 단어만 남기고 만든 학습데이터를 학습시켜 보았습니다.

model14 = Sequential()
model14.add(Embedding(max_words, 128, input_length=max_len))
model14.add(Dropout(0.2))
model14.add(Conv1D(256,
                 3,
                 padding='valid',
                 activation='relu',
                 strides=1))
model14.add(GlobalMaxPooling1D())
model14.add(Dense(128, activation='relu'))
model14.add(Dropout(0.2))
model14.add(Dense(2, activation='sigmoid'))
model14.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
history14 = model14.fit(X_train3, y_train3, epochs=2, batch_size=32, validation_split=0.1)
epoch2batch_size32
optimizeradamvalidation_split0.1

 

 

두번째 제출 결과

 

 

 

세번째 제출 (Google Colab -TPU)

이번에는 두번째 제출할때 데이터를 정제하고 학습시켰던 방법에서 형태소 분석기만 Okt에서 Mecab으로 바꾸어 도전해보았습니다.

model15 = Sequential()
model15.add(Embedding(max_words, 128, input_length=max_len))
model15.add(Dropout(0.2))
model15.add(Conv1D(256,
                 3,
                 padding='valid',
                 activation='relu',
                 strides=1))
model15.add(MaxPooling1D(pool_size=4))
model15.add(LSTM(128))
model15.add(Dense(2, activation='sigmoid'))
model15.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
history15 = model15.fit(X_train3, y_train3, epochs=2, batch_size=32, validation_split=0.1)
epoch2batch_size32
optimizeradamvalidation_split0.1

 

 

 

세번째 제출 결과

 

 

 

순위점수epoch / batchoptimizerval_splittrain_data특수문자제거colab
10.9822791022 / 32adam0.1model_kb_dacon02_trainset.csvOTPUOkt14
20.9745792432 / 32adam0.1model_kb_dacon02_trainset.csvOTPUOkt8
30.9729803652 / 32adam0.1model_kb_dacon02_trainset.csvOTPUMecab9
40.9728506313 / 32adam0.1model_kb_dacon02_trainset.csvOTPUOkt13
50.972629735 / 32adam0.1
6
70.9720301542 / 32adam0.1model_kb_dacon02_trainset.csvOTPUOkt10
80.968734225 / 32adam0.1model_kb_dacon01_trainset.csvXGPUOkt6
9
10
110.965490885 / 32rmspropXmodel_kb_dacon01_trainset.csvXTPUOkt2
120.96089065 / 32adamXmodel_kb_dacon01_trainset.csvXTPUOkt3
13
140.951970545 / 32adam0.1model_kb_dacon01_trainset.csvXTPUMecab 5
15
16
170.886882889 2 / 32adam0.1model_kb_dacon02_trainset.csvOTPUMecab18
180.7013884993 / 32adamXmodel_kb_dacon01_trainset.csXGPUELMo7

 

 

순위는 전날보다 하나 떨어진 19위가 되었습니다.

 

앞으로 아직 도전해보지 않은 bi-LSTM 모델이나 한글만 추려서 도전해보려고합니다.

 

읽어주셔서 감사합니다.

8 Comments
  • 프로필사진 데이콘 2020.02.02 09:34 안녕하세요 솜장님. 데이콘은 코드 공유와 토론에도 올려주시면 감사하겠습니다. 멋진 도전을 응원합니다. 데이코니오 드림.
  • 프로필사진 BlogIcon 사용자 솜씨좋은장씨 2020.02.02 09:43 신고 읽어주셔서 감사합니다! 내용들이 정리가 되는대로 공유해보도록 하겠습니다!
  • 프로필사진 BlogIcon 사용자 솜씨좋은장씨 2020.02.11 22:14 신고 공유해보았습니다! 읽어주셔서 감사합니다!
  • 프로필사진 BlogIcon Bill's 2020.05.28 23:08 신고 글 잘봤습니다! 도움이 많이 되었습니다. 질문 하나 남겨도 될까요?
    max_words를 35,000으로 정하신 기준이나 이유가 궁금합니다

    또 한가지는, colab에서 TPU를 사용하셨다 했는데 런타임 유형을 TPU로 변경하는것말고 다른 설정하지 않아도 TPU가 적용되나요??

    좋은글 공유해주셔서 너무 감사합니다~
  • 프로필사진 BlogIcon 사용자 솜씨좋은장씨 2020.05.29 08:36 신고 안녕하세요! 글 잘 읽어주셔서 감사합니다.

    먼저 max_words를 35,000으로 준 이유는 학습데이터를 구성하는 단어의 총 개수 내에서 여러가지 수를 max_words로 설정하여 사용해보았는데 약 90회 정도의 제출 결과를 보니 35,000이 그래도 가장 좋은 성능을 내었어서 그렇게 사용했었습니다.

    그리고 TPU를 활용했다고 적었었는데 수정을 못하여서 잘못적혀있습니다.

    저 당시에는 TPU로만 변경하면 바로 적용이 되는 것으로 알고 있었는데 최근에 들어서 별도로 코드를 통해 연결을 해주여야 하는 것을 알게되었습니다.

    https://colab.research.google.com/notebooks/tpu.ipynb

    TPU를 제대로 사용하는 방법은 Colab에서 제공하는 내용을 참고하시면 좋을 것 같습니다. 감사합니다!
  • 프로필사진 BlogIcon Bill's 2020.05.30 23:21 신고 답변 감사합니다! 저는 텍스트 다중분류 문제를 풀고있는데 생각보다 쉽지 않네요ㅠㅠ
    블로그에서 여러가지 팁 얻어갑니다!
  • 프로필사진 lavi 2020.08.05 16:41 안녕하세요 저는 데이콘에서 진행한 대회 중 금융 문자 데이터로 스미싱 탐지를 하는 대회가 있어서 흥미가 생겨 검색하다가 문의드립니다.
    저도 한번 해보고 싶어서요 대회는 끝나도 참여는 할 수 있더라구요 근데 현재 대회 종료로 데이터 다운로드가 안되서
    혹시 대회때 사용한 데이터를 받을 수 있을 까 하고 문의드립니다.
  • 프로필사진 BlogIcon 사용자 솜씨좋은장씨 2020.08.06 17:00 신고 안녕하세요! 데이터에 대해서는 대회에서 데이터를 다운받을 당시 본인인증과 함께 추후 데이터에 대해서 유출을 하지 않겠다고 서약을 하여 따로 데이터를 보내드릴수는 없는 점 양해 부탁드립니다. 저보다는 대회 스폰서였던 KB금융지주 쪽에 문의를 해보시는 것이 좋을 것 같습니다!
댓글쓰기 폼
Prev 1 2 3 4 5 6 7 Next