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

다시 2차로 도전하는 기계학습으로 주가 예측하기 -3-

by 인터넷떠돌이 2022. 1. 22.
반응형

안녕하세요?

 

결국 하다하다 무엇이 제대로 되지 않아서 어디가 문제인가 해서 또 찾아봤더니, 제가 듣도보도 못한 것이 하나 나오는 것을 확인할 수 있었습니다. 정말 사람이 모든 것을 다 알고있는 상황에서 적재적소에 무언가를 쓰면 좋지만, 모든걸 다 알수도 없을 뿐더러, 이런건 하면서 익혀 나가는 수 외에는 없다는 생각이 듭니다.

 

지난번 20 에포크의 기계학습이 영 좋지 않은 결과를 보여주었기 때문에, 이번에는 좀 나은 결과를 만들어 내기 위해서 어떻게 2만 에포크라는 엄청나게 많은 학습을 시작했습니다.

 

그리고 나서 여기서도 학습이 제대로 이루어졌는지 한번 보기 위해서 cost값을 봤지만, 예측과 실제 타겟의 값차이를 수정하는 메서드에서 어째서 인지 계속해서 nan을 내놓는데, 입력된 값이 적절하지 않다는 의미가 됩니다.

 

그래서 이번에는 예측결과인 prediction이 과연 어떻게 나오길래 이런 결과만이 나오는지 알아보기 위해서 한번 print함수를 써서 알아보기로 했습니다.

 

일단 어떻게 된 것인지 모르겠습니다만, 에포크가 5까지는 그럭저럭 값이 나오다가, 6에포크부터 무언가 이상하게 nan아니면 inf값으로 나오는 기현상을 보았습니다.

 

 

그래서 한번 자료를 검색해 봤더니, 위 스크린샷에서 볼 수 있는 첫번째 사항이 바로 normalize라는 것이 있습니다. 처음에는 이게 뭔지 몰라서 헤메었지만, 아무튼 필요하다는 생각이 들었습니다.

 

먼저 선택한 방법은, z-score라고 해서, 일단 하나하나 column의 값을 평균에서 빼준다음, 이 값을 표준편차로 나누어 주는 것으로 실행하였습니다.

 

이것이 어떤 효과가 있는지 알아보기 위해서, 먼저 위 스크린샷에서 볼 수 있는 것처럼, 일단은 하나하나 normalize를 하기 전의 데이터를 먼저 보도록 합니다.

 

그리고 z-score로 normalize를 시킨 결과인데, 이 결과를 보면, 어떻게 해서든 무언가 서로서로 모든 변수들이 근접한 값으로 변환이 된 것을 볼 수 있었습니다.

 

일단 이렇게 하였더니, 그래도 nan이라고 해서 제대로 값이 나오지 않는 경우는 답이 없기는 없다는 생각이 들었습니다만, 문제는...............

 

그래도 이번에는 제대로 무언가가 나오는 것을 확인할 수 있는 결과물이 나오는 것을 확인할 수 있었습니다. 이렇게 해서 이 결과물을 가지고서 이제 예측을 해 보도록 합니다.

 

그리고 나서 다음으로 일단 그럭저럭 뭐가 나오기는 나온 것으로 보이는 것을 확인할 수 있는 결과도 나왔습니다만, 문제가 있습니다.

 

아예 예측이 안되는 지경으로 나오는 결과물도 확인할 수 있었습니다. 이런 경우는 왜 생기는지 모르겠습니다만, 무언가 z-score를 만들어 내는 과정에서 잘못된 것인지 모르겠습니다. 그리고 나서 다음으로 진행하기 위해서는 일단......... 프로그램을 대대적으로 개편해서 타이핑이 아니라 경로를 더 편하게 지정할 수 있도록 어떻게 개선해 주어야 할 듯 합니다.

반응형