딥러닝 A to Z · 3-6

시계열·주가 — 기준선부터 이겨 보기

주가를 신경망에 넣으려면 먼저 창으로 자르고, 미래 정보가 섞이지 않게 정규화하고, 무엇을 맞힐지(목표값) 정해야 한다. 이 편은 실제 애플 주가 506거래일로 "내일 = 오늘"이라는 가장 단순한 기준선, 선형 모델, LSTM을 같은 방식(워크포워드)으로 겨룬다. 결과는 좋든 나쁘든 그대로 싣는다. 교육용 예시이며 투자 조언이 아니다.

506일애플 주가 (2015-02-17 ~ 2017-02-16)
1.209%기준선 "내일 = 오늘"의 예측 오차 (RMSE)
1.46 · 1.55%LSTM 두 시드의 예측 오차 — 기준선보다 나쁘다
+37.3%시험 200일 동안 사서 그냥 들고 있었다면
+43.7 → −22.4%p"최고의 무작위 규칙"의 초과 수익: 학습 → 시험
2개Colab에서 바로 돌리는 코드
1창·목표값

창, 정규화, 목표값 — 숫자 줄을 문제로 바꾸기

가격 줄 하나만으로는 학습할 수 없다. "지난 L일을 보고 다음 날을 맞힌다"는 문제로 바꿔야 한다. 창을 한 칸씩 밀면 (입력, 정답) 쌍이 하나씩 생긴다.

보는 값
창 길이

왜 가격이 아니라 수익률인가, 정규화는 어디까지

가격은 시기마다 수준이 달라(2015년 약 120달러, 2016년 약 90달러) 학습 때 본 적 없는 범위가 시험 때 나온다. 그래서 하루 변화율(로그 수익률 = log(오늘/어제) × 100%)로 바꾼다. 정규화(평균을 빼고 표준편차로 나누기)의 기준은 학습 구간에서만 계산한다. 전체 기간의 평균을 쓰면 시험 구간의 정보가 학습에 새어 들어간다(섹션 4의 누수). 목표값도 "다음 날 수익률(숫자)", "오를까 내릴까(방향)", "변동 크기" 가운데 무엇을 맞힐지 먼저 정해야 한다.

2기대와 현실

딥러닝이 기대받는 이유 — 그리고 데이터가 먼저 하는 말

신경망은 여러 신호 사이의 비선형 관계를 스스로 찾는다. 그래서 주가처럼 많은 요인이 얽힌 문제에 기대를 받는다. 그런데 먼저 데이터에 물어볼 것이 있다. "어제의 수익률이 오늘의 수익률과 관련이 있는가?"

무엇의 자기상관
3연구 사례

나아진 사례와 아닌 사례

큰 연구 두 개의 결론이 서로 다르다. 어떤 조건에서 나아졌고 어떤 조건에서 아니었는지를 함께 봐야 한다.

사례
4함정

함정 네 가지 — 누수, 과적합, 구조 변화, 거래 비용

주가 예측에서 "놀라운 성과"의 대부분은 이 네 가지 가운데 하나에서 나온다. 각각을 실제 데이터의 숫자로 본다.

함정
거래 비용 (한 번 바꿀 때)
5워크포워드

워크포워드 검증 — 과거로만 배우고, 한 걸음씩 앞으로

실제로 쓸 때와 똑같이 평가한다. 그날까지의 과거로만 학습하고, 다음 몇 날을 예측하고, 그 날들이 지나면 그것까지 넣어 다시 학습한다. 시험 구간이 학습 구간보다 늘 뒤에 있어야 한다.

나누는 방법
6비교

기준선 → 선형 → LSTM — 같은 시험, 같은 잣대

마지막 200거래일(2016-05-04 ~ 2017-02-16)을 워크포워드로 예측했다. 전략은 "오른다고 보면 보유, 내린다고 보면 현금"이고, 보유와 현금을 바꿀 때마다 0.1%를 뺀다.

보기

Colab 코드 — 이 페이지를 직접 실행해 보기

두 코드 모두 Colab에 기본으로 설치된 라이브러리만 쓴다. "노트북(.ipynb) 내려받기" 후 Colab에서 파일 → 노트북 업로드로 열거나, 복사해서 새 노트북 칸에 붙여 넣는다.

코드 1 · 기준선과 선형 모델을 워크포워드로 평가하기섹션 1·4·5·6과 연결 · numpy, matplotlib · CPU 1초 · 인터넷 필요(데이터 내려받기)

공개 CSV를 내려받아 기준선 2개와 릿지 선형 모델을 워크포워드로 평가하고, 거래 비용을 뺀 전략을 사서 들고 있기와 비교한다. 누수와 과적합 함정도 숫자로 보여 준다. 내 데이터로 바꾸려면 PRICE를 바꾼다.

실행 결과 (2026-10-03 실행, numpy 2.4 · CPU). 데이터가 같으면 언제 실행해도 같다(과적합 실험은 시드 0 고정).
코드 2 · Keras LSTM을 같은 워크포워드로 평가하기섹션 6과 연결 · tensorflow(Keras), numpy · CPU 약 2~4분

지난 20일 수익률로 다음 날을 예측하는 LSTM을 50일마다 다시 학습한다. 시드 2개의 결과를 따로 싣는다. 섹션 6의 표가 이 출력에서 바로 만들어진다.

실행 결과 (2026-10-03 실행, TensorFlow 2.21 · Keras 3.15 · CPU). 시드·버전에 따라 숫자가 달라질 수 있다.

AI 응용 프롬프트 — 이 코드를 출발점으로 삼기

ChatGPT, Qwen, Claude 같은 AI 도우미에 붙여 넣는 프롬프트다. "복사"를 누르면 프롬프트 뒤에 고른 코드가 함께 붙는다. 〔 〕 안을 내 상황으로 바꿔 쓰면 된다.

함께 붙일 코드

AI의 답은 출발점일 뿐이다. 제안된 논문·수치·라이브러리 함수는 반드시 원문과 공식 문서로 확인한다. 공모전·논문에 AI 도움을 받았다면 주최 측과 학술지의 규정에 따라 사용 사실과 범위를 밝힌다.

용어 정리

본문의 노란 점선 밑줄과 같은 사전이다. 시리즈 전체에서 같은 표기를 쓴다. 섹션 이름을 누르면 처음 나온 곳으로 간다.

비유 모음 — 그리고 비유가 틀리는 지점

비유는 이해의 첫걸음이지만 오해의 씨앗도 된다. 초파리·뇌 비유에는 강도를 표시했다. 직접 실제로 같은 일을 한다는 근거가 있음 · 부분 일부 성질만 닮음 · 없음 대응하는 것이 알려지지 않음

개념일상 비유초파리·뇌 비유비유가 틀리는 지점
창지난 일주일 날씨를 보고 내일 날씨 맞히기부분 초파리도 최근 몇 초의 냄새 변화로 방향을 정한다날씨에는 물리 법칙이 있지만, 주가는 사람들의 예측 자체가 가격을 바꾼다
기준선"내일도 오늘과 같다"고 말하는 일기예보관없음단순해 보여도 이기기 어렵다. 모든 모델은 이것부터 이겨야 한다
데이터 누수시험 전에 답안지를 본 학생의 점수없음답안지를 본 줄 모르고 보는 경우가 대부분이다. 정규화·특징 계산에 숨어 든다
과적합(선택 편향)동전 100개를 던져 앞면이 많이 나온 동전을 "행운의 동전"이라 부르기없음"행운"은 다음 던지기에서 사라진다. 그런데 실제 전략은 이것을 가려내기 훨씬 어렵다
구조 변화여름옷 판매 기록으로 겨울 매출을 예측하기부분 환경이 바뀌면 초파리의 학습된 기억도 새로 고쳐진다계절은 예측할 수 있지만 시장 성격의 변화는 언제 올지 모른다
워크포워드매주 지난 기록까지만 보고 다음 주를 예측하는 모의고사없음모의고사와 달리 시장은 내 예측이 맞든 틀리든 기다려 주지 않는다

저자 소개와 레퍼런스

E-1 저자 소개 · E-2 학술 레퍼런스 · E-3 그림 참고 자료

E-1 저자 소개

안상선 ((주)M-Robo 대표)

한국전기안전공사, 매일경제신문을 거쳐 현재 매일경제 사외벤처 (주)M-Robo를 창업해 대표로 재직하고 있다. (주)M-Robo는 언론사 사내 벤처로 시작한 미디어 벤처로, 국민일보에 로봇기자(스톡봇)을 서비스 했으며, 한국인터넷진흥원, 한국언론진흥재단, 한국방송통신전파진흥원 등에서 다수의 프로젝트를 진행했다. 이후 자체 A.I 뉴스 신문인 Money-Robo를 서비스 중이다. 대표 재직 중 아시아오픈 데이터 해커톤 우승, 데이터창업 분야 공로로 행정안전부 장관상을 2회 수상했으며, 인공지능 및 블록체인 분야에 대한 5개 특허 발명 및 등록자이다. 저서로는 “AI범죄와 자기방어”가 있으며, 핀테크분야, 통계학, 인공지능 분야에 대해서 한국기술교육대학교 온라인평생교육원 이러닝 콘텐츠 개발을 진행했다. 최종학위는 경제학 박사(동국대, 미시수리경제학)이다. 국민대학교, 호서대학교 등 여러 대학교에서 데이터 및 인공지능과 관련한 과목을 강의하고 있다. 자세한 프로필

강의

  • 안상선 (2025). 「비즈니스를 위한 데이터 과학」 강의안. 한국열린사이버대학교 인공지능융합학과.
  • 안상선 (2025). [K-디지털] 인공지능 자연어 처리. STEP(스마트직업훈련플랫폼), 한국기술교육대학교 온라인평생교육원.
  • 안상선 (2024). [K-디지털] 핀테크 데이터 분석 기초. STEP(스마트직업훈련플랫폼), 한국기술교육대학교 온라인평생교육원.

STEP 강의 바로가기: link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
사이트 개편으로 접속이 원활하지 않을 경우에는 www.step.or.kr로 접속 바랍니다.

논문과 발표

  • 안상선 (2025). 국민노후보장패널데이터를 활용한 가구지출 예측 모델 연구: 인공지능 모델 기반 접근. 「미래사회」, 16(2). 원문
  • 안상선 (2025). 국민노후보장패널데이터를 활용한 가구지출 예측 모델 연구: 인공지능 접근. 국민노후보장패널 학술대회 발표자료(2025.05.13), 국민연금공단 국민연금연구원. 발표자료
  • 안상선 (2025). SNS 텍스트 기반 마약 의심 거래 탐지 알고리즘에 대한 연구: 패턴 및 맥락 분석을 중심으로. 「미래사회」, 16(1). 원문
  • 안상선 (2024). 금융분야의 이상탐지 모델 보안을 위한 통계 기반의 적대적 데이터 대응 방안: 실증적 분석과 시뮬레이션 결과. 「미래사회」, 15(3). 원문
  • 안상선 (2024). 인공지능을 활용한 가상 캐릭터 특성 기반 SNS 포스팅 탐지 솔루션. 2024 Summer Newmedia Party 포스터 발표(2024.06.19), 서울미디어대학원대학교.
  • 안상선 (2024). 산업재해 패널 데이터를 활용한 머신러닝 모델. 제10회 산재보험패널 학술대회 포스터 발표(2024.05.17), 근로복지공단 근로복지연구원.
  • 안상선 (2024). 가상 자산 시계열 데이터의 분석과 예측: 시계열 모델 및 인공지능 모델의 비교, 개선점 제시. 「미래사회」, 15(1). 원문

E-2 학술 레퍼런스

  1. [R1] Gu, S., Kelly, B., & Xiu, D. (2020). Empirical asset pricing via machine learning. The Review of Financial Studies, 33(5), 2223–2273. doi:10.1093/rfs/hhaa009 — 섹션 3 (트리·신경망이 가장 좋았음, 신경망 롱숏 포트폴리오의 표본 외 샤프 비율 1.35)
  2. [R2] Makridakis, S., Spiliotis, E., & Assimakopoulos, V. (2020). The M4 Competition: 100,000 time series and 61 forecasting methods. International Journal of Forecasting, 36(1), 54–74. — 섹션 3 (순수 머신러닝 방법 6개 모두 부진, 우승은 통계·머신러닝 혼합)

E-3 데이터와 그림 참고 자료

  • 주가 데이터: Plotly 예제 데이터셋 finance-charts-apple.csv (GitHub plotly/datasets). 배당 반영 종가(AAPL.Adjusted)를 썼다

교육자를 위한 TIP

강사, 실무 OJT 담당자, 튜터를 위한 운영 안내다. 시간은 예상치이므로 실제 수업에 맞춰 조정한다. 이 편은 투자 권유로 읽히지 않도록 수업 시작과 끝에 "교육용 예시이며 투자 조언이 아니다"를 분명히 말한다.

대상수요·매출·센서·가격 같은 시계열을 예측하려는 대학생·실무자, 핀테크 입문자
선수 지식평균·표준편차, 3-2의 과적합과 검증, 3-7의 LSTM
학습 목표① 시계열을 창·정규화·목표값으로 학습 문제로 바꾼다 ② 누수·과적합·구조 변화·거래 비용을 숫자로 설명한다 ③ 워크포워드로 기준선과 모델을 같은 잣대로 비교한다
예상 시간읽기 40~50분 · 시연 20분 · Colab 실습 30분 (코드 1 10분, 코드 2 실행 4분 + 해석 15분)

운영안 세 가지

강의형 50분

개념 중심

도입 5분(히어로의 "LSTM이 기준선보다 나쁘다") → 섹션 1·2 15분 → 섹션 4 함정 네 개 15분 → 섹션 5·6 10분 → 확인 문제 5분.

실무 OJT 90분

업무 적용 중심

우리 팀의 예측 대상(수요·매출 등)에서 기준선 정하기 15분 → 섹션 4를 우리 데이터의 누수 점검표로 바꾸기 25분 → 코드 1에 우리 시계열 넣기 35분 → 결과 보고 방식 토론 15분.

1:1 튜터링

수준별 진도

입문자는 섹션 1·4·6만. 중급자는 코드 1의 워크포워드 반복문을 손으로 따라가게 하고, 표준화 기준을 전체 기간으로 바꿨을 때 숫자가 어떻게 달라지는지 직접 확인하게 한다.

섹션별 운영 포인트

섹션멈춰서 물어볼 질문조작 팁
1 창·목표값"가격 그대로 넣으면 무엇이 문제일까?"가격 → 수익률 순서로 누른다
2 기대와 현실"방향과 변동 크기 중 무엇이 더 예측하기 쉬울까?"수익률 → 절댓값 순서로 눌러 띠를 벗어난 막대 수를 비교한다
3 연구 사례"두 연구의 결론이 왜 다를까?"데이터 크기와 문제 종류 행을 나란히 비교한다
4 함정"100개를 시험해 하나를 고르면 그 성적을 믿을 수 있을까?"과적합 → 거래 비용(0 → 0.3%) 순서로 본다
5 워크포워드"무작위로 섞어 나누면 왜 안 될까?"두 방식을 번갈아 누른다
6 비교"LSTM이 기준선보다 나빴다. 무엇을 바꿔 볼 수 있을까?"RMSE → 전략 수익 순서로 본다

흔한 오해 Top 5

오해바른 설명보여 줄 장면
LSTM은 시계열 전문이니 기준선보다 낫다단서가 적은 문제에서는 기준선을 이기기 어렵다. 이 실험에서 LSTM은 기준선보다 나빴다섹션 6
방향 적중률 55%면 돈을 번다틀릴 때 크게 잃으면 손해다. 거래 비용과 들고 있기와의 비교도 필요하다섹션 6의 기준선 행(55.0%)
백테스트에서 좋았으면 실전에서도 좋다여러 번 시도해 고르면 우연이 섞인다. 시장의 성격도 바뀐다섹션 4 과적합·구조 변화
정규화는 전체 데이터로 한 번 하면 된다학습 구간에서만 기준을 계산해야 한다. 아니면 미래 정보가 샌다섹션 1, 섹션 4 누수
신경망은 주가 예측에 쓸모없다큰 데이터·많은 신호·횡단면 문제에서는 나아진 연구가 있다. 조건이 중요하다섹션 3

확인 문제 (해설은 눌러서 펼치기)

Q1. 수익률 505개에 창 5일을 쓰면 (입력, 정답) 쌍은 몇 개인가?

505 − 5 = 500개.

Q2. 시험 200일을 20일마다 다시 학습하면 학습은 몇 번 하나? 첫 학습의 쌍 수는?

10번. 첫 학습은 500 − 200 = 300쌍, 마지막은 480쌍이다.

Q3. 전략이 40번 사고팔았고 거래 비용이 한 번에 0.1%면, 비용으로 깎인 수익은?

40 × 0.1 = 4%p(로그 수익 기준 근사).

Q4. 무작위 규칙 100개 중 학습 구간 최고를 골랐더니 학습 구간 초과 +43.7%p, 시험 구간 −22.4%p였다. 무엇을 보여 주나?

많이 시도해 고른 결과는 우연에 맞춰진 것이라 새 구간에서 재현되지 않는다(과적합·선택 편향). 시험 구간은 마지막에 한 번만 써야 한다.

Q5. 기준선 "내일 = 오늘"이 LSTM보다 예측 오차가 작았다. 보고서에 어떻게 써야 하나?

결과를 그대로 쓴다. "이 데이터(종목 1개, 506일, 신호는 과거 수익률)와 이 설정(창 20일, 50일마다 재학습, 40에폭)에서 LSTM은 기준선을 이기지 못했다(RMSE 1.462%·1.550% 대 1.209%)." 이어서 바꿔 볼 조건과 일반화의 한계를 밝힌다.

Colab 과제

기본

코드 1의 ridge_fit에서 표준화 기준(mu, sd)을 전체 기간(X 전체)으로 바꿔 다시 실행한다. RMSE와 전략 수익이 어떻게 바뀌는지 기록하고, 왜 이것이 누수인지 두 문장으로 쓴다.

도전

코드 2의 목표를 "다음 날 수익률"에서 "다음 날 수익률의 절댓값(변동 크기)"으로 바꾼다. 기준선은 "과거 20일 평균 절댓값"으로 한다. 섹션 2의 자기상관과 연결해, 변동 예측에서 LSTM이 기준선을 이기는지 시드 3개 이상으로 보고한다.

난이도 조절과 더 배우기

입문자섹션 2·3은 건너뛰어도 흐름이 끊기지 않는다. 섹션 4의 과적합과 섹션 6의 표 하나는 꼭 본다
심화여러 번 시도한 백테스트의 성과를 어떻게 보정해야 하는지(다중 검정) 조사하게 한다. 조사한 논문은 원문으로 확인한다
더 배우기안상선, 「비즈니스를 위한 데이터 과학」 강의안 (데이터 과학 전반) · STEP [K-디지털] 핀테크 데이터 분석 기초 (이 편과 직접 연결) · STEP [K-디지털] 인공지능 자연어 처리 (3-5·3-8과 연결)
강사용 자료확인 문제의 채점 기준과 과제 예시 답안은 교육자용 정답 페이지 (3-6)에서 볼 수 있다

수고하셨습니다!

「3-6 시계열·주가」 편을 끝까지 읽었어요. 연구실 식구들이 한마디씩 정리해 드립니다.

박사
박사실제 주가로 기준선부터 이겨 보는 실험을 했어요.
  • 가장 단순한 기준선 "내일 = 오늘"부터 이겨야 한다
  • 이 실험에서 LSTM은 기준선보다 예측 오차가 컸다
  • 누수·과적합·구조 변화·거래 비용을 늘 점검한다 (교육용 예시이며 투자 조언이 아니다)
조수
조수LSTM이 기준선한테 졌어요…
초파리 연구원
초파리 연구원결과를 그대로 적는 게 진짜 실력이야.