한림대학교 2024-1학기 강화학습 과목의 기말 프로젝트 팀H 레포지토리 입니다.
주식시장에서의 불안정성을 강화학습으로 해결 해 보고자 프로젝트를 진행하게 되었습니다.
3년치의 뉴스 데이터와 나스닥 상위 10개 종목의 주가를 가지고 학습을 진행하였습니다.
- 3년치 뉴스 데이터를 크롤링 합니다.
- BERT 모델을 사용하여 감성분석을 진행합니다.
- yfinance 라이브러리를 활용하여 3년치 주가 데이터를 가져옵니다.
- 매수, 매도, 대기 세 가지의 행동을 하는 강화학습 에이전트를 학습 시킵니다. 하루에 최대 1주씩 매매합니다.
- 진행 된 학습 결과 모델을 10 에피소드 마다 체크포인트로 저장하여 matplotlib 라이브러리의 pyplot 을 활용하여 시각화합니다.
- 결과를 분석하고 개선사항을 도출합니다.
-
Reinforcement Learning, 학습 코드가 있는 파일입니다. 환경과 상태에 따라 액션을 학습시켜 체크포인트로 저장합니다.
-
뉴스기사 감성분석을 진행한 csv 파일과 yfinance 에서 가져온 주가 데이터를 활용합니다.
-
학습 된 체크포인트들을 활용하여 시각화된 그래프를 그리는 코드입니다.
-
전체 체크포인트 시각화, 특정 체크포인트 에피소드 상세 시각화가 가능합니다.
- Google News RSS 피드에서 특정 종목코드와 특정 기간으로 관련 뉴스를 검색하여 링크를 수집 한 뒤, 각 링크에서 기사 본문을 크롤링 하여 저장합니다.
-
BERT 모델을 활용하여 뉴스 기사에 대한 감성분석을 진행합니다.
-
특정 종목별로 검색되어 그룹이 나뉜 뉴스 본문은 긍정/부정을 계산하여 날짜를 레이블링 한 뒤 csv 파일로 내보내집니다.
- 500번의 에피소드 중 10번마다 총 50개의 체크포인트를 저장하였습니다.
-
3년치 뉴스 기사 본문을 크롤링 한 데이터 입니다. 용량문제로 깃허브에 업로드 하지 않습니다.
-
필요 시 [email protected] 으로 연락 바랍니다.
- 뉴스 기사로 감성분석을 진행 한 감성분석 데이터 값이 csv 파일로 담겨있습니다.
- 강화학습 최종 보고서와 영상이 담겨있습니다.
- 2024년 6월 14일 금요일