본문 바로가기
무모한 도전-주식 인공지능 만들기

새롭게 부딪친 문제와 해결방법의 시도-4-

by 인터넷떠돌이 2019. 4. 4.
반응형

안녕하세요?

 

지난번 포스팅에서 어떻게 해서 주식의 데이터를 중간에 가지고 오면서 실종이 되는 바람에 RLTrader가 아무런 결정을 내리지 못한다는 것을 알아냈습니다. 그래서 이번에는 정확하게 어느 부분에서 이런 실종이 생긴 것인지를 알아내기 위해서 한번 작업을 해 보고자 합니다.

 

먼저 위 스크린샷과 같이 while문에서는 에러가 생겼으니, 그 이전단계로 생각이 되는 build_sample항목에서 위 스크린샷과 같은 방식으로 한번 표식을 찍어 보고자 합니다.

 

이번에도 이 이전 단계에서 어딘가에서 데이터가 실종이 되었다는 것을 알 수 있었습니다. 그래서 이 문제를 해결하기 위해서는 더 이전 단계를 살펴보아야 합니다.

 

그래서 한번 policy_learner.py에서 한번 살펴보고자 합니다. 여기서 초기 단계에서 어떻게 데이터가 실종이 되는 지를 한번 살펴 보고자 합니다.

 

여기서도 결과를 보니까, 이 전 단계에서 어딘가에서 데이터가 실종이 되었다는 것을 알 수 있었습니다. 그래서 policy_learner이전에 있는 단계에서 한번 살펴봐야 겠다는 생각이 들었습니다.

 

그래서 이번에는 main.py로 가서, 여기서 한번 어떻게 해서 데이터가 어디서 사라지는 지에 대해서 한번 알아보고자 합니다. 설마하니, 이게 sql에서 부터 읽어오는 것이 문제일 것이라는 생각이 들기도 하지만, 그건 나중이라는 생각이 듭니다.

 

 

그래서 한번 더 실행시켜보고나서 한번 알아보니, 이번에도 역시나 데이터가 완전히 비어 있는 것을 확인할 수 있었습니다. 그래서 더 이전의 단계에서 이걸 처리하는 과정에서 문제가 있다는 것을 알 수 있었습니다.

 

그래서 이번에는 data_manager.py로 가서, 한번 의심이 가는 코드 한줄을 기준으로 해서, 이걸 기점으로 어떻게 데이터가 변경이 되는 지에 대해서 한번 알아보고자 합니다.

 

설마했더니, 여기서 문제가 생긴 것일까요? 저는 분명히 뒤에서 부터 120번째 데이터까지 자르라고 명령을 내리고 싶었는데, 그게 무언가가 잘못되어서 데이터가 이걸 기점으로 해서 완전히 사라진 것을 확인할 수 있었습니다.

 

그래서 한번 위 스크린샷처럼 아예 마지막 행(row)부터 한번 선택을 하라는 식으로 명령을 내려서, 어떻게 변경이 되는 지에 대해서 먼저 탐사전 격으로 알아봅니다.

 

그래서 이렇게 했더니, 먼저 자르기 전에는 위 스크린샷과 같이 760개의 행이 들어온 것을 확인할 수 있기는 있었습니다. 그럼 자르기를 하고 나면......

 

 

위 스크린샷에서 보면 알 수 있듯이, 제일 마지막 행을 제외하고는 모두 선택을 한 것을 볼 수 있었습니다. 그래서 여기서 무언가 조그만한 조작을 가해서 어떻게 결과를 도출할 수 있어 보입니다.

 

먼저 위 스크린샷처럼 문제가 되었던 항목으로 가서, 한번 pandas[-n:] 이라는 형식으로 지정을 해서 뒤에서 121번째를 제외하고 모두 선택하라는 식으로 명령을 내입니다.

 

다음으로는 한번 확인을 해 보니까, 639행부터 짤려서 딱 120행의 데이터만이 선택이 되어 있다는 것을 알 수 있었습니다. 그런데 한가지 문제가 생겼습니다.

 

먼저 위 스크린샷과 같이, 결정을 내리기 위한 데이터의 행이 2행이 되었는데, 이게 왜 문제가 되느냐 하면, 이대로 가며는......

 

위 스크린샷에 보이는 것처럼 출력이 2행으로 나와 버립니다. 여기서 제일 마지막 행을 읽기 때문에 별 상관이 없을 수도 있기는 있습니다만, 이대로만 가서는 제가 의도한 대로 17개의 데어터만 들어가서 행동이 1번 나오는 것은 아니기는 합니다.

 

그래서 한번 -1을 제외하고서 다시금 지정을 하도록 합니다. 이렇게 하면 이제서야 문제가 해결할 수 있으리라 생각이 되었기 때문입니다.

 

이제서야 제대로 RLTrader를 실행시킨 결과, 위 스크린샷에 나오는 것처럼 행동을 결정하기 위한 데이터의 행이 오로지 1행만 나오는 것을 알 수 있습니다.

 

그래서 이번에는 행동을 결정하였나 했더니, 한번 위 스크린샷으 보시면 관망이라고 해서 관망만 하는 행동을 하는 것으로 나와 있는 것을 알 수 있습니다.

 

그리고 나서, 이번에는 제대로 action_list.txt에 제대로 한줄로만 나와 있는 것을 알 수 있습니다. 이것으로 처음에 제가 의도한 대로 나와 있는 것을 알 수 있었으며, 이걸 기점으로 해서 한번 제대로 된 RLTrader를 만들어서 현재 데이터를 기반으로 현재에 맞는 행동을 하는 주식 인공지능을 만들 수 있으리라 생각합니다.

반응형