일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 머신러닝
- 1D CNN
- 의료데이터
- 나이브베이즈
- edge computing
- CNN
- 생체신호
- R
- GE B650
- 회귀분석
- 데이터
- 회귀
- nvidia
- 2D CNN
- Undersampling
- 알고리즘
- 정보화진흥원
- VitalRecorder
- 딥러닝
- MAE
- 빅데이터
- 공부
- NIA
- 경진대회
- 엣지컴퓨팅
- Jetson
- 데이터불균형
- Data Imbalance
- 데이터분석
- VitalDB
- Today
- Total
Doyun-lab
[Competition] 한국정보화진흥원 데이터 크레에이터 캠프 예선 본문
Subject : Classification of Positives and Negatives by Review of Restaurants
Language : R, Python
Data : Document-Term Matrix(DTM) Data for Review
Team : 주구장창 (권도윤, 김병훈, 박명석, 박성아)
문제
Q > 다음은 맛집 평점 리뷰를 크롤링한 데이터이다. 당신은 포털회사 A사의 데이터 분석팀으로 긍정리뷰가 많은 맛집을 상단에 실시간으로 노출시키고자 한다. 기존의 데이터를 활용하여 미래 리뷰 글을 얼마나 긍정/부정을 잘 분류하는지 평가하고자 한다. 긍정/부정을 분류하는 모델을 만드시오.
- Feature는 DTM 구조로 총 300개의 Word가 존재하면 1, 아니면 0으로 입력되어있다. 따라서 Feature는 300개의 Word로 존재한다.
- Label 긍정(1), 부정(0)을 예측해야 한다.
- Train Data의 개수는 9452개, Test Data의 개수는 9000개이다.
1. Problem Definition
> 긍정 리뷰가 많은 맛집을 상단에 노출 시키기
> 생성한 모델을 바탕으로 새로운 데이터에 대해 긍정/부정 분류하기
- 이 문제는 Classification이며, 모델링 전에 긍정에 많이 등장한 단어와 부정에 많이 등장한 단어를 비교해 보았다. 그리고, 결측치 확인 및 Label의 분포를 확인하는 과정을 거쳤다.
2. EDA
> 결측치 확인
결측치가 존재하지 않는다
> Label 분포 확인
- 긍정이 5402개, 부정이 4050개인 것을 알 수 있다.
> 긍정 & 부정 단어 순위
- 공통적으로 진짜, 정말, 너무 등이 존재함을 알 수 있다.
3. Modeling
> Random Forest = 분류, 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종으로, 훈련 과정에서 구성한 다수의 결정 트리로부터 분류 또는 회귀 분석을 출력함으로써 동작한다
- Input Data : 모든 Train Data, 독립성 검정을 통해 독립이지 않은 변수들만 추출한 Data, GLM에서 나온 중요 Feature만 추출한 Data
> 여러가지 Input Data 중 모든 Train Data를 넣었을 때 성능이 가장 좋음
> XGBoost = Gradient Boosted Decision Trees(속칭 GBM)을 속도와 성능면에서 향상시킨 트리 기반의 앙상블 기법
- Input Data : 모든 Train Data, 독립성 검정을 통해 독립이지 않은 변수들만 추출한 Data, Importance 상위 50개(200개) Data
> 여러가지 Input Data 중 모든 Train Data를 넣었을 때 성능이 가장 좋음
- 5-fold Cross Validation, 점점 Error가 줄어드는 것을 확인
- 파라미터 튜닝
> 최적의 파라미터 값은 eta = 0.3, gamma = 1이 선정
- 중요 Feature로는 맛있어요, 그냥 등이 가장 중요한 것으로 나타났다.
> DNN (Deep Neural Network)
- DNN의 구조와 Accuracy는 줄어들지만 Loss가 증가하는 문제 발생
4. Conclusion
- 최종 모델은 XGBoost로 선정하였다.
- 긍정에서는 맛있어요, 너무 / 부정에서는 그냥, 정말이 중요했다.
> 아쉬운점
데이터가 TF 형태로 주어지고 raw 데이터로 주어지지 않아서, 다른 모델 (LSTM 및 순차적 모델)을 쓰지 못한 점이 아쉽다. 또한, EDA를 어떤 것을 해야 할지 감이 잡히지 않고 그 결과를 토대로 긍/부정 단어 중요도에 따른 Feature 추출로 모델을 구축했더라면 더욱 좋은 성능이 나왔을 것이라 기대된다. 마지막으로, 이 모델을 구축함으로써발전 방향과 인사이트 도출을 하지 않아 부족했던 점으로 남았던 것 같다
> 발전 방향
- 문제 정의를 확실하게 하자
- EDA를 공부하여 깊은 분석을 하자
- 성능뿐만 아니라 인사이트와 모델 선정 이유에 대해 구체적으로 작성 하자
'Project > Competitions' 카테고리의 다른 글
[Competition] 한국정보화진흥원 데이터 크리에이터 캠프 본선 (0) | 2021.06.21 |
---|---|
[Competition] 포스트 코로나 데이터 시각화 경진대회 (Dacon) (0) | 2021.06.21 |