/BMS

Bitacademy project - SPS(Stock Predict Service)

Primary LanguageJavaScript

BMS (Bigdata Marketing Service)

프로젝트 명 : SPC(Stock Predict Service)

  • 주가 예측 시스템 📈

1. 프로젝트 개요 📝

  • 농작물 가격 예측으로 시작. 하지만 사용자에게 서비스 제공함에 충분하지 않은 아이템으로 판단
  • 사용자에게 필요한 서비스에 대해 고민하던 중 농작물과 농업 관련 주식과 연관성이 있음을 확인
  • 농작물과 농업 관련 주식들의 상관관계 확인 후 주식별 상관관계가 있는 농작물을 추가해 주식 예측을 진행했을 때 주식만으로 예측했을 때보다 예측률이 더 높아짐
  • 더 나아가 유제품, 원유가격, 환율, 코스피 등 다양한 변수와 그에 관련된 주식을 추가해 사용자에게 주식 예측 서비스를 제공하고자 함

2. 팀 소개 및 역할 👬

  • 마케팅에 대해 관심도가 있어 사용자에게 예측 서비스를 제공하기 위해 만들어진 팀

민병혁(팀장)

  • Web Service 구현

최현수(팀원)

  • Data 수집 및 적재

권태양(팀원)

  • Data 처리 및 분석

3. 시스템 구성도

4. 구현 과정

1) 데이터 수집

2) 데이터 분석

1) 전처리

  • 수집된 데이터를 하나의 DataFrame으로 처리

2) 모델링

  • 각 주식 별 상관관계가 있는 변수 확인 후 모델 학습할 조합 생성
  • GRU(Gated recurrent unit) 모델 선정 과정
    • 주식은 대략 20개 / 주식 별 조합은 3-4개
    • 총 7-80개의 모델 학습이 필요
    • 시간 별 데이터가 아닌 일별 데이터로 주식 별 데이터의 수가 많지 않다고 판단
    • RNN, LSTM이 아닌 GRU인 이유
      • RNN : 장기 의존성 문제(과거 데이터의 정보를 기억하는 기능이 떨어짐)
      • LSTM : 많은 모델 학습이 필요하기 때문에 학습이 빠른 GRU 선택, 소량의 데이터에 더 잘 학습되는 GRU 선택
  • 모든 조합의 모델링 후 주식별 예측률, 수익률 비교
    • ex) 아시아종묘의 경우 우유와 모델링 했을 때 예측률이 약 60%로 가장 높은 것을 확인
  • 주식 별 최종 모델 학습 후 예측데이터를 MariaDB에 적재

3) 시각화

  • MVC 패턴으로 Spring Boot 웹서버 구현
  • JPA : 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
  • Hibernate : JPA의 구현체이며 DB에 있는 데이터를 JAVA의 POJO로 인식하여 접근하게 해주는 역할
  • JDBC : DB에 접근할 수 있도록 JAVA에서 제공하는 API