머신러닝을 투자에 쓰기 전에 알아야 할 것
머신러닝은 데이터를 보고 패턴을 찾는 기술입니다. 사람이 직접 규칙을 하나하나 정하지 않아도, 과거 데이터에서 반복되는 관계를 찾아 새 데이터에 적용합니다. 예를 들어 과거에 어떤 조건에서 다음 달 수익률이 높았는지 학습한 뒤, 현재 종목들 중 비슷한 조건을 가진 종목을 찾을 수 있습니다.
하지만 여기서 조심해야 합니다. 머신러닝이 패턴을 찾는다는 말은 '미래를 맞힌다'는 뜻이 아닙니다. 특히 주식 시장에서는 더 그렇습니다. 시장에는 수많은 참여자가 있고, 그들의 기대와 행동이 가격을 계속 바꿉니다. 어제 잘 맞던 규칙이 내일도 통한다는 보장이 없습니다.
그래서 이 장의 핵심 질문은 이것입니다.
머신러닝으로 주가를 맞힐 수 있을까?
답은 단순하지 않습니다. 일부 상황에서는 도움이 될 수 있습니다. 그러나 머신러닝을 종목 추천기처럼 믿으면 위험합니다. 이 책에서 머신러닝은 예언 도구가 아니라, 투자 아이디어를 더 넓고 빠르게 실험하는 도구입니다.
AI 생성 이미지
머신러닝의 세 가지 방식
머신러닝은 크게 지도학습, 비지도학습, 강화학습으로 나눌 수 있습니다. 이름은 어렵지만 투자 문제에 연결하면 이해하기 쉽습니다.
지도학습: 정답이 있는 데이터로 배우기
지도학습은 입력과 정답이 함께 있는 데이터를 사용합니다. 예를 들어 다음과 같은 데이터가 있다고 해보겠습니다.
| 입력 데이터 | 정답 |
|---|---|
| 최근 6개월 수익률, PER, 거래량 변화, 변동성 | 다음 달 상승 여부 |
| 이동평균선 위치, 시장 수익률, 기업 실적 변화 | 다음 달 수익률 |
| 팩터 점수, 모멘텀 점수, 재무 지표 | 다음 분기 상위 수익률 종목 여부 |
모델은 입력 데이터와 정답 사이의 관계를 학습합니다. 이후 새로운 종목 데이터를 넣으면 다음 달 상승 확률이나 예상 수익률 같은 값을 출력합니다.
투자에서 가장 자주 쓰이는 방식이 지도학습입니다. 로지스틱 회귀, 랜덤 포레스트, XGBoost, LightGBM 같은 모델이 여기에 속합니다. 이름은 달라도 기본 목표는 비슷합니다. 과거 데이터를 보고 미래의 어떤 값을 예측하려는 것입니다.
비지도학습: 정답 없이 구조를 찾기
비지도학습은 정답이 없습니다. 대신 데이터 안의 구조를 찾습니다. 투자에서는 종목을 비슷한 그룹으로 묶거나, 여러 지표 중 중요한 축을 찾아내는 데 쓸 수 있습니다.
예를 들어 코스피와 코스닥 종목을 대상으로 수익률 패턴, 변동성, 거래량, 재무 지표를 넣으면 모델이 비슷한 종목끼리 묶을 수 있습니다. 어떤 그룹은 고성장 기술주에 가깝고, 어떤 그룹은 안정적인 배당주에 가까울 수 있습니다.
비지도학습은 바로 매수·매도 신호를 주기보다는 시장을 이해하는 보조 도구에 가깝습니다. '내 포트폴리오가 실제로 분산되어 있는가', '서로 다른 종목이라고 생각했는데 같은 위험에 노출되어 있지는 않은가'를 점검할 때 유용합니다.
강화학습: 행동과 보상을 통해 배우기
강화학습은 에이전트가 행동을 선택하고, 그 결과로 보상을 받으며 학습하는 방식입니다. 투자에 적용하면 에이전트는 매수, 매도, 보유 같은 행동을 선택하고, 수익률이나 위험 조정 수익률을 보상으로 받습니다.
개념만 보면 자동매매와 잘 어울립니다. 하지만 현실에서는 매우 어렵습니다. 시장 환경이 계속 바뀌고, 거래비용과 슬리피지, 유동성, 세금 같은 조건을 정확히 반영하기 어렵기 때문입니다. 강화학습 모델은 과거 데이터에 지나치게 맞춰져 실제 시장에서는 기대만큼 작동하지 않을 수 있습니다.
이 책에서는 강화학습을 깊게 다루지 않습니다. 초보 투자자에게 먼저 필요한 것은 복잡한 에이전트를 만드는 것이 아니라, 데이터셋을 올바르게 만들고 예측 결과를 백테스트에 연결하는 기본기입니다.
주식 데이터가 어려운 이유
일반적인 머신러닝 예제에서는 고양이와 강아지 사진을 구분하거나, 고객이 상품을 살지 예측합니다. 이런 문제도 쉽지는 않지만, 주식 시장은 더 까다로운 특징을 가집니다.
첫째, 잡음이 많습니다. 주가에는 기업 실적, 금리, 환율, 뉴스, 수급, 투자자 심리, 정책 변화가 동시에 반영됩니다. 어떤 날은 실적이 좋아도 주가가 떨어지고, 어떤 날은 별다른 이유 없이 급등합니다. 데이터 안에 의미 있는 신호도 있지만, 우연한 움직임도 많습니다.
둘째, 비정상성이 강합니다. 비정상성이란 데이터의 성격이 시간에 따라 바뀐다는 뜻입니다. 과거 저금리 시대에 잘 통하던 성장주 전략이 금리 상승기에는 약해질 수 있습니다. 코로나19 시기의 시장과 그 이후의 시장은 같은 규칙으로 설명하기 어렵습니다.
셋째, 시장 참여자가 학습합니다. 어떤 전략이 널리 알려지면 많은 사람이 따라 합니다. 그러면 그 전략의 초과수익은 줄어들 수 있습니다. 시장은 고정된 시험지가 아닙니다. 참여자들이 서로의 행동을 보며 계속 바뀌는 게임에 가깝습니다.
넷째, 데이터가 적습니다. 겉보기에는 주가 데이터가 많아 보입니다. 하지만 월간 수익률을 예측한다고 생각해보면 10년치 데이터도 120개 정도입니다. 여기에 종목 교체, 상장폐지, 회계 기준 변화, 산업 구조 변화까지 고려하면 깨끗하게 쓸 수 있는 데이터는 생각보다 제한적입니다.
이런 이유로 금융 머신러닝에서 가장 위험한 태도는 '복잡한 모델이면 더 잘 맞히겠지'라고 생각하는 것입니다. 복잡한 모델은 작은 신호를 잘 잡을 수도 있지만, 우연한 잡음까지 진짜 패턴처럼 외울 수도 있습니다.
무엇을 예측할 것인가
주식 예측이라고 하면 보통 '내일 가격'을 떠올립니다. 하지만 투자에서 예측 대상은 여러 가지로 나눌 수 있습니다.
가격 예측
가격 예측은 특정 종목의 미래 가격을 직접 맞히려는 방식입니다. 예를 들어 삼성전자의 한 달 뒤 주가가 8만 원인지 8만 5천 원인지 예측하는 식입니다.
이 방식은 직관적이지만 어렵습니다. 가격은 추세가 있고 단위가 큽니다. 5만 원에서 10만 원으로 오른 주식과 500원에서 1,000원으로 오른 주식은 가격 수준은 다르지만 수익률은 같습니다. 투자자에게 중요한 것은 가격 그 자체보다 얼마나 오르고 내렸는지입니다.
그래서 실전에서는 가격보다 수익률을 예측하는 경우가 많습니다.
방향 예측
방향 예측은 오를지 내릴지를 맞히는 문제입니다. 예를 들어 다음 달 수익률이 0보다 크면 1, 아니면 0으로 표시합니다. 그러면 상승과 하락을 구분하는 분류 문제가 됩니다.
방향 예측은 이해하기 쉽습니다. 하지만 정확도가 높다고 해서 반드시 좋은 전략이 되는 것은 아닙니다. 작은 상승을 자주 맞히고 큰 하락을 한 번 놓치면 실제 수익률은 나쁠 수 있습니다. 반대로 정확도는 낮아도 맞힐 때 크게 벌고 틀릴 때 작게 잃으면 좋은 전략이 될 수 있습니다.
주식 투자에서는 승률보다 손익비와 낙폭이 더 중요할 때가 많습니다.
수익률 예측
수익률 예측은 다음 기간의 수익률을 숫자로 예측합니다. 예를 들어 어떤 종목의 다음 달 수익률을 3%, 다른 종목은 -2%로 예측합니다.
이 방식은 포트폴리오 구성에 활용하기 좋습니다. 예상 수익률이 높은 종목을 더 많이 담거나, 일정 기준 이상인 종목만 선택할 수 있습니다. 하지만 수익률 예측값은 오차가 크기 쉽습니다. 모델이 3%라고 예측했다고 해서 실제로 3%에 가까워질 가능성은 높지 않을 수 있습니다.
따라서 예측값 자체를 절대적인 숫자로 믿기보다, 종목 간 상대 비교에 활용하는 편이 현실적입니다.
랭킹 예측
랭킹 예측은 어떤 종목이 더 나을지를 순서로 판단하는 방식입니다. 예를 들어 다음 달 수익률이 높을 것 같은 종목을 1위부터 100위까지 정렬합니다. 그리고 상위 10개만 매수하는 식입니다.
퀀트 투자에서는 이 방식이 자주 쓰입니다. 정확한 수익률을 맞히지 못해도 상위 그룹이 하위 그룹보다 평균적으로 나으면 전략이 될 수 있기 때문입니다. 팩터 투자도 비슷한 생각을 갖습니다. 저PER, 고ROE, 고모멘텀 같은 기준으로 종목을 줄 세운 뒤 상위 그룹의 성과를 확인합니다.
머신러닝도 마찬가지입니다. '이 종목이 다음 달 4.2% 오른다'보다 '이 종목은 현재 후보군 안에서 상대적으로 매력적이다'라고 판단하는 쪽이 더 실용적일 때가 많습니다.
예측 성과와 투자 성과는 다르다
머신러닝 모델을 만들면 먼저 예측 성과를 확인합니다. 분류 문제라면 정확도, 정밀도, 재현율, AUC 같은 지표를 봅니다. 회귀 문제라면 평균제곱오차나 평균절대오차를 봅니다.
문제는 이 지표들이 투자 성과와 직접 연결되지 않는다는 점입니다.
예를 들어 상승 여부를 맞히는 모델의 정확도가 55%라고 해보겠습니다. 무작위보다 좋아 보입니다. 하지만 이 모델이 예측한 상승 종목을 실제로 매수했을 때 수익이 날지는 따로 검증해야 합니다. 거래비용이 크면 작은 우위는 사라질 수 있습니다. 예측이 맞아도 상승폭이 작고, 틀릴 때 하락폭이 크면 손실이 날 수 있습니다. 매수 신호가 너무 자주 나오면 회전율이 높아져 비용이 커질 수 있습니다.
반대로 정확도가 50%에 가까운 모델도 투자 전략으로는 쓸모가 있을 수 있습니다. 예측 확률이 매우 높은 일부 구간에서만 매매하거나, 하락 위험이 큰 종목을 제외하는 필터로 쓰면 도움이 될 수 있습니다.
즉, 모델 평가와 전략 평가는 다릅니다.
모델 평가는 '예측이 얼마나 맞았는가'를 봅니다. 전략 평가는 '그 예측으로 매매했을 때 돈을 벌었는가, 그리고 감당 가능한 위험이었는가'를 봅니다.
우리가 최종적으로 확인해야 할 것은 백테스트 결과입니다. 누적 수익률, 변동성, MDD, 샤프 비율, 회전율, 거래비용 반영 후 성과를 봐야 합니다. 앞 장에서 배운 백테스트의 함정은 머신러닝 전략에도 그대로 적용됩니다. 오히려 더 엄격하게 적용해야 합니다. 머신러닝은 피처가 많고 선택지가 많아서 과최적화에 빠지기 쉽기 때문입니다.
AI 예측을 사용할 때의 기준
머신러닝을 투자에 쓸 때는 몇 가지 기준을 세워야 합니다.
첫째, 예측 대상을 명확히 정해야 합니다. 내일 종가를 맞힐 것인지, 다음 달 상승 확률을 구할 것인지, 종목 랭킹을 만들 것인지가 다르면 데이터셋도 달라지고 평가 방법도 달라집니다.
둘째, 학습 구간과 검증 구간을 시간 순서대로 나눠야 합니다. 주식 데이터는 시계열 데이터입니다. 미래 데이터를 섞어 학습하면 현실에서는 불가능한 정보를 사용하게 됩니다. 이것은 룩어헤드 바이어스입니다.
셋째, 예측 성과만 보지 말고 매매 규칙으로 바꿔야 합니다. 모델이 상승 확률을 출력한다면 몇 % 이상일 때 매수할지, 몇 종목을 살지, 얼마나 자주 리밸런싱할지 정해야 합니다.
넷째, 비용과 위험을 포함해 평가해야 합니다. 거래비용, 슬리피지, 세금, 유동성 문제를 무시하면 실제 투자 성과와 멀어집니다.
다섯째, 단순한 모델과 비교해야 합니다. 머신러닝 모델이 이동평균선 전략, 모멘텀 전략, 동일비중 포트폴리오보다 나은지 확인해야 합니다. 복잡한 모델이 단순한 기준보다 못하다면 사용할 이유가 없습니다.
마지막으로, 모델의 역할을 제한해야 합니다. 모델은 최종 판단자가 아니라 필터이자 실험 도구입니다. 투자자는 모델이 왜 그런 결과를 냈는지, 어떤 시장에서 약해지는지, 손실이 났을 때 어떻게 대응할지 알고 있어야 합니다.
좋은 질문은 '맞힐 수 있나'가 아니라 '검증할 수 있나'이다
머신러닝을 처음 배우면 자연스럽게 이런 질문을 하게 됩니다.
'AI로 오를 종목을 찾을 수 있을까?'
하지만 이 질문은 너무 큽니다. 더 좋은 질문은 다음과 같습니다.
'최근 6개월 모멘텀, 변동성, 거래량 변화, 밸류에이션 지표를 사용해 다음 달 상위 20% 수익률 종목을 구분할 수 있을까?'
이 질문은 데이터셋으로 만들 수 있습니다. 피처를 정할 수 있고, 타깃도 정할 수 있습니다. 학습 구간과 테스트 구간을 나눌 수 있으며, 예측 결과를 포트폴리오 전략으로 바꿔 백테스트할 수 있습니다.
이것이 AI 퀀트 투자의 기본 태도입니다. 거대한 예측을 꿈꾸기보다, 작고 검증 가능한 질문으로 쪼갭니다. 모델이 맞히면 왜 맞혔는지 확인하고, 틀리면 어떤 조건에서 약한지 살펴봅니다. 그리고 그 결과를 다음 실험의 재료로 사용합니다.
머신러닝은 시장을 완벽히 설명하지 못합니다. 하지만 우리가 세운 가설을 더 빠르게 검토하게 해줍니다. 수많은 종목을 같은 기준으로 비교하게 해줍니다. 사람이 놓치기 쉬운 조합을 발견하게 해줍니다.
중요한 것은 AI가 얼마나 똑똑한지가 아닙니다. 우리가 AI에게 어떤 질문을 던지고, 그 답을 어떻게 검증하느냐입니다.
다음 장에서는 이 질문을 실제 데이터셋으로 바꿔봅니다. 피처를 만들고, 타깃 변수를 정의하고, 학습 데이터와 테스트 데이터를 나누는 과정을 다룹니다. 머신러닝 전략의 성패는 모델을 고르기 전에 이미 절반쯤 결정됩니다. 좋은 데이터셋이 없으면 좋은 모델도 없습니다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
