Skip to content

edumgt/python-ml-class

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python 주식투자 머신러닝 실습 커리큘럼

Python 기초부터 Transformer 딥러닝까지 — 주식투자 데이터 분석을 주제로 단계별로 학습합니다.


프로젝트 구조

python-ml-class/
├── src/                    ← 모든 Python 실습 파일
│   ├── korean_font.py      ← 한글 폰트 유틸리티 (모든 파일이 공통 사용)
│   ├── NumpyStockArray.py
│   ├── PandasPortfolio.py
│   ├── ... (총 23개)
│
├── docs/                   ← 각 소스 파일의 초등학생 수준 설명 문서
│   ├── NumpyStockArray.md
│   ├── PandasPortfolio.md
│   ├── ... (총 23개)
│
├── result/                 ← 실행 후 자동 저장되는 PNG + MD 분석 파일
│   ├── NumpyStockArray.png
│   ├── NumpyStockArray.md
│   ├── ... (총 44개)
│
├── requirements.txt        ← 필요한 라이브러리 목록
└── Readme.md               ← 이 파일

빠른 시작 (Quick Start)

1단계: 환경 요구사항

항목 권장 버전
Python 3.10 이상
OS Ubuntu 20.04+ / macOS 12+ / Windows 10+ (WSL2 권장)
RAM 4GB 이상 (딥러닝 파일은 8GB 권장)
인터넷 yfinance 데이터 다운로드에 필요

2단계: 설치

# 1) 저장소 복제
git clone <repo-url>
cd python-ml-class

# 2) 가상환경 생성 및 활성화
python3 -m venv venv
source venv/bin/activate        # Windows: venv\Scripts\activate

# 3) 라이브러리 설치
pip install --upgrade pip
pip install -r requirements.txt

# 4) 한글 폰트 설치 (Linux/Ubuntu)
sudo apt install fonts-nanum -y

3단계: 첫 번째 실행 (5분 소요)

cd src
python NumpyStockArray.py

실행 후 result/NumpyStockArray.png 파일이 생성됩니다.


학습 로드맵

아래 순서대로 실습하면 기초 → 중급 → 고급 순으로 체계적으로 학습할 수 있습니다.

1단계: Python 기초 & 데이터 처리 (입문)

순서 파일 주제 예상 시간
1 korean_font.py 한글 폰트 유틸리티 — import 구조 이해 10분
2 NumpyStockArray.py NumPy 배열 연산, 수익률/변동성 계산 20분
3 PandasPortfolio.py Pandas DataFrame, 결측치 처리, groupby 20분
4 YfinanceNormalize.py 실제 주가 다운로드, Min-Max/Z-점수/로그수익률 25분

학습 포인트: 브로드캐스팅, 슬라이싱, fillna, 정규화의 필요성


2단계: 머신러닝 기초 — 회귀 & 분류 (초급)

순서 파일 주제 예상 시간
5 LinearRegressionFundamental.py 선형 회귀: PER/PBR/ROE → 기대 수익률 25분
6 LinearRegressionReturn.py 선형 회귀: 과거 5일 수익률 → 미래 5일 예측 30분
7 LogisticTradeSignal.py 로지스틱 회귀: RSI/MACD → 매수/매도 분류 30분

학습 포인트: 지도 학습, 오차 함수(MAE/MSE), 결정 경계, 시그모이드


3단계: 머신러닝 심화 — SVM & 비지도 학습 (초급~중급)

순서 파일 주제 예상 시간
8 SvmTradeSignal.py SVM 선형 커널: 매매 신호 분류 30분
9 SvmMarketPhase.py SVM RBF 커널: 시장 국면(상승/하락) 분류 30분
10 KMeansStockCluster.py K-Means: 종목 자동 군집화 25분
11 PcaStockReduce.py PCA: 6차원 → 2차원 차원 축소 25분
12 HyperparamTuning.py Grid Search, K-Fold, 과적합/Dropout 실험 40분

학습 포인트: 마진 최대화, RBF 커널, centroid, 주성분, 교차검증


4단계: 시계열 분석 & ARIMA (중급)

순서 파일 주제 예상 시간
13 TimeSeriesAnalysis.py 이동평균, 볼린저밴드, ACF/PACF, ADF 정상성 검정 35분
14 ArimaStockForecast.py ARIMA(2,1,2): 1개월 미래 주가 예측 35분
15 HeatmapRiskMask.py 히트맵 & 마스킹: 고위험 구간 탐지 20분

학습 포인트: 정상성, 차분, AR/MA 차수, AIC, 95% 신뢰 구간


5단계: 딥러닝 기초 — 신경망 직접 구현 (중급)

순서 파일 주제 예상 시간
16 NeuralNetBackprop.py NumPy만으로 역전파 직접 구현 45분
17 RnnBackprop.py 바닐라 RNN + BPTT 직접 구현 45분

학습 포인트: 순전파/역전파, 체인룰, BPTT, 기울기 소실


6단계: PyTorch 딥러닝 (중급~고급)

순서 파일 주제 예상 시간
18 LstmStockPyTorch.py LSTM: 20일 → 다음 날 주가 예측 45분
19 TimeSeriesWindow.py CLI LSTM: 종목·윈도우·기간 자유 설정 40분
20 CnnTimeSeriesFeature.py 1D CNN: 수익률 시퀀스 패턴 추출 40분
21 CnnCandleChart.py 2D CNN: 캔들차트 이미지 분류 45분
22 CnnLstmHybrid.py CNN + LSTM 하이브리드 45분

학습 포인트: 셀 상태, 게이트, Conv1d/Conv2d, 슬라이딩 윈도우


7단계: Transformer (고급)

순서 파일 주제 예상 시간
23 TransformerAttention.py Multi-Head Self-Attention: 방향 분류 & Attention 히트맵 60분

학습 포인트: Q/K/V, Positional Encoding, Attention 가중치 시각화


▶️ 파일별 실행 가이드

모든 파일은 src/ 폴더에서 실행합니다.

cd src

기본 실행 (대부분의 파일)

python ArimaStockForecast.py
python CnnCandleChart.py
python HyperparamTuning.py
# ... 파일명만 바꾸면 동일하게 실행

CLI 인자를 받는 파일

TimeSeriesWindow.py — 종목·윈도우·예측기간 설정 가능

# 기본값: GS피앤엘(078935.KS), 윈도우=20일, 예측=5일
python TimeSeriesWindow.py

# 삼성전자, 윈도우 30일, 10일 후 예측
python TimeSeriesWindow.py --ticker 005930.KS --window 30 --horizon 10

# 애플, 미국 주식
python TimeSeriesWindow.py --ticker AAPL --window 20 --horizon 5

실행 결과 확인

모든 파일 실행 후 result/ 폴더에 PNG 이미지가 저장됩니다.

ls ../result/          # 생성된 파일 목록 확인

학습 자료 활용법

docs/ 폴더 — 코드를 초등학생 언어로 설명한 문서

각 Python 파일에 대응하는 마크다운 파일이 있습니다.

docs/NumpyStockArray.md     ← NumpyStockArray.py 의 코드 설명
docs/LstmStockPyTorch.md    ← LstmStockPyTorch.py 의 코드 설명
...

활용 방법:

  1. docs/[파일명].md 를 먼저 읽어서 전체 흐름을 파악합니다.
  2. 실제 src/[파일명].py 소스를 열어 코드를 확인합니다.
  3. 코드를 직접 실행해 result/ 폴더에 그래프를 생성합니다.
  4. result/[파일명].md 를 읽어 결과 해석 방법을 확인합니다.

result/ 폴더 — 실행 결과 PNG + 분석 가이드

파일 패턴 설명
[파일명].png 시각화 결과 이미지
[파일명]_078935_KS.png GS피앤엘 실제 주가 기반 결과
[파일명].md 그래프 읽는 법 + 모델 해석 가이드

실습 팁 & 심화 과제

기본 실습 후 해볼 수 있는 심화 과제

1단계 심화

  • NumpyStockArray.py: 종목을 10개로 늘리고 샤프 비율(평균수익률/변동성)을 계산해보세요.
  • YfinanceNormalize.py: 삼성전자(005930.KS)로 종목을 바꿔서 비교해보세요.

2단계 심화

  • LinearRegressionReturn.py: lookback 기간을 5일 → 10일로 바꾸면 R²가 개선되는지 확인해보세요.
  • LogisticTradeSignal.py: 임계값(threshold)을 0.5 → 0.6으로 높이면 정밀도가 어떻게 변하는지 관찰해보세요.

3단계 심화

  • HyperparamTuning.py: C 범위를 [0.001, 0.01, 0.1, 1, 10, 100, 1000]으로 넓혀 최적값을 찾아보세요.
  • KMeansStockCluster.py: k=4, k=5로 바꾸면 군집이 어떻게 달라지는지 비교해보세요.

4단계 심화

  • ArimaStockForecast.py: p=1, q=1p=3, q=3으로 AIC를 비교해보세요.

5~7단계 심화

  • LstmStockPyTorch.py: SEQ_LEN=20SEQ_LEN=60으로 바꿔 성능 변화를 확인해보세요.
  • TimeSeriesWindow.py: 여러 종목(AAPL, 005930.KS, 078935.KS)을 비교 실험해보세요.
  • TransformerAttention.py: d_model=32, nhead=4로 키워서 Attention 패턴 변화를 관찰해보세요.

디버깅 체크리스트

<i class="fa-solid fa-circle-check"></i> yfinance 데이터 오류 → 인터넷 연결 및 종목 코드 확인 (KS종목은 .KS 붙이기)
<i class="fa-solid fa-circle-check"></i> 한글 깨짐 → sudo apt install fonts-nanum 후 재실행
<i class="fa-solid fa-circle-check"></i> CUDA 오류 → torch.device('cpu')로 강제 변경
<i class="fa-solid fa-circle-check"></i> ModuleNotFoundError → pip install -r requirements.txt 재실행
<i class="fa-solid fa-circle-check"></i> result/ 폴더 없음 → src/ 폴더 안에서 실행하고 있는지 확인

딥러닝(DL)과 머신러닝(ML)의 작동 원리 이해

1. 머신러닝/딥러닝의 알고리즘은 모두 오차를 줄이기 위한 것인가?

결론부터 말하자면, 대부분 맞습니다.

머신러닝과 딥러닝의 핵심 목표는 "컴퓨터가 정답과 예측값 사이의 차이(오차)를 최대한 줄이게 만드는 것" 입니다.

쉬운 예시: 과녁 맞히기 처음 화살을 쏘면 과녁 중심에서 멀리 빗나갑니다(오차가 큼). 빗나간 거리를 보고 "조금 더 오른쪽으로, 조금 더 위로" 하며 교정합니다. 여러 번 반복할수록 과녁 중심에 가까워집니다. 머신러닝도 똑같이 틀린 만큼 스스로 교정하며 점점 정확해집니다.

하지만 문제의 종류에 따라 접근 방법이 다릅니다.


① 지도 학습 (Supervised Learning): 정답지가 있는 공부

  • 대상: 선형 회귀, 로지스틱 회귀, 이미지 분류 딥러닝 등
  • 원리: 모델이 예측한 값과 실제 정답을 비교해 오차를 줄입니다.
  • 손실 함수 (Loss Function): 오차를 숫자로 나타내는 공식입니다.
  • 최적화 (Optimization): 오차를 0에 가깝게 줄여나가는 방법입니다.

쉬운 예시: 선생님이 채점해주는 시험 학생(모델)이 시험을 봅니다 → 선생님(정답지)이 채점합니다 → 틀린 문제를 다시 공부합니다. 이 과정을 반복하면 점수(정확도)가 올라갑니다.

주식 예시: "삼성전자 주가가 내일 오를까 내릴까?" 라는 문제를 풀고, 실제 결과와 비교해 계속 교정합니다.


② 비지도 학습 (Unsupervised Learning): 정답지 없이 스스로 분류

  • 대상: 군집화(Clustering), 차원 축소(PCA) 등
  • 원리: 정답 없이 데이터 안에서 비슷한 것끼리 묶거나 패턴을 찾습니다.

쉬운 예시: 과일 분류하기 사과, 바나나, 포도가 섞여 있는 바구니에서 아무도 "이게 사과야"라고 알려주지 않아도, 모양·색깔·크기가 비슷한 것끼리 스스로 그룹을 만듭니다.

주식 예시: 수천 개 주식을 "움직임이 비슷한 종목끼리" 자동으로 묶어 분류합니다.


③ 강화 학습 (Reinforcement Learning): 게임처럼 점수를 높이기

  • 대상: 알파고, 자율주행 등
  • 원리: 행동할 때마다 점수(보상)를 받고, 점수를 최대로 높이는 전략을 배웁니다.

쉬운 예시: 비디오 게임 게임 캐릭터가 적을 잡으면 +10점, 떨어지면 -5점. 점수를 올리려면 어떻게 움직여야 할지 수천 번 게임을 해보며 스스로 배웁니다.

주식 예시: AI가 "주식을 살 때"와 "팔 때"를 수없이 시도하며, 수익이 나는 전략을 스스로 터득합니다.


2. 딥러닝(DL)은 선형회귀를 순차·역순차로 계속 반복하는 것인가?

정확한 핵심입니다!

딥러닝은 "간단한 계산(선형회귀)을 엄청나게 많이 쌓아 올린 뒤, 앞으로 계산하고(순전파) → 뒤로 고치는(역전파) 과정을 반복" 하는 것입니다.


① '선형 회귀'를 거대하게 쌓기 (인공신경망)

선형 회귀의 기본 공식: $$\text{Output} = WX + b$$ (입력값 $X$에 가중치 $W$를 곱하고 편향 $b$를 더함)

딥러닝의 최소 단위인 **퍼셉트론(Perceptron)**이 이 공식과 똑같이 작동합니다. 딥러닝은 이 계산 단위를 수천, 수만 개 연결한 거대한 그물망입니다.

쉬운 예시: 레고 블록 쌓기 레고 블록 하나(선형회귀) 혼자는 단순한 모양만 만들 수 있습니다. 하지만 수천 개를 조립하면(딥러닝) 로봇·성·자동차 같은 복잡한 것도 만들 수 있습니다.

비선형 활성화 함수 (Activation Function) 레고 블록만 단순히 쌓으면 결국 직선 모양밖에 안 됩니다. 중간에 ReLU·시그모이드 같은 "꺾는 함수" 를 끼워 넣으면 구불구불한 곡선도 표현할 수 있습니다. 현실 세계의 복잡한 주가 패턴도 이렇게 표현합니다.


② '앞으로' 계산하기: 순전파 (Forward Propagation)

  • 방향: 입력층 → 은닉층 → 출력층 (앞으로 전진)
  • 역할: 입력 데이터를 받아 최종 예측값을 만들고, 정답과 비교해 오차를 계산합니다.

쉬운 예시: 시험 문제 풀기 문제를 읽고(입력) → 생각하고(은닉층) → 답을 씁니다(출력). 채점하면 몇 점 틀렸는지(오차) 알 수 있습니다.


③ '뒤로' 고치기: 역전파 (Backpropagation)

  • 방향: 출력층 → 은닉층 → 입력층 (뒤로 후진)
  • 역할: 오차를 거꾸로 추적하며 각 계산 단위가 얼마나 틀림에 기여했는지 파악하고, 가중치를 조금씩 수정합니다.

쉬운 예시: 시험 오답 노트 틀린 문제를 다시 보며(역방향) → "어디서 실수했지?" 추적 → 그 부분을 집중 공부(가중치 수정). 이 과정을 반복하면 점점 더 잘 풀게 됩니다.


④ 무한 반복 (Epoch / Iteration)

순전파(문제 풀기)와 역전파(오답 노트)를 수천, 수만 번 반복하면서 최적의 예측 모델이 완성됩니다.

️ 쉬운 예시: 운동 연습 농구 자유투를 처음엔 잘 못 넣습니다. 매일 100번씩 던지고(순전파), 어떻게 틀렸는지 교정하며(역전파) 연습합니다. 수천 번 반복하면 거의 다 넣을 수 있게 됩니다.


요약

개념 쉬운 비유
머신러닝 틀린 만큼 반성하며 공부하는 학생
지도 학습 정답지가 있는 시험 공부
비지도 학습 정답 없이 비슷한 것끼리 스스로 묶기
강화 학습 점수를 높이려고 게임을 계속 연습하기
딥러닝 레고 블록 수만 개를 쌓은 거대한 계산기
순전파 시험 문제 풀기
역전파 오답 노트 작성
반복 학습(Epoch) 매일 꾸준히 연습하기

딥러닝은 비선형성이 추가된 선형 회귀들의 거대한 조립품이며, 순전파(문제 풀기)와 역전파(오답 노트)라는 시계추 운동을 반복해 점점 정확해지는 과정입니다.


파일별 요약 설명

1) 기초 데이터 처리

  • NumpyStockArray.py: 주가 배열, 수익률/변동성 계산, 포트폴리오 기대수익률

    예시: "5종목이 8일 동안 어떻게 올랐나?" 를 숫자 배열로 계산합니다.

  • PandasPortfolio.py: 포트폴리오 결측치 처리, 평가금액/수익률 계산, 섹터별 집계

    예시: 주식 거래 기록표에서 빠진 데이터를 채우고, 내 수익률을 표로 정리합니다.

2) 회귀 (지도 학습)

  • LinearRegressionReturn.py: 이전 5일 수익률 기반 다음 5일 누적 수익률 예측

    예시: "최근 5일이 어떻게 움직였으면 다음 5일이 얼마나 오를까?" 를 직선으로 예측합니다.

  • LinearRegressionFundamental.py: PER/PBR/ROE 기반 기대수익률 예측

    예시: 회사의 성적표(PER, PBR, ROE)를 보고 "이 주식이 얼마나 오를지" 예측합니다.

  • LogisticTradeSignal.py: RSI/MACD 기반 매수/매도 신호 확률 분류 (로지스틱 회귀)

    예시: "RSI 65, MACD 양수 → 매수 확률 78%" 처럼 확률로 매매 신호를 출력합니다.

3) 분류 모델링 (지도 학습)

  • SvmTradeSignal.py: 모멘텀/거래량 변화율 기반 매수/매도 신호 분류 (SVM)

    예시: 두 지표를 보고 "지금 사야 할지, 팔아야 할지" 선 하나로 딱 나눕니다.

  • SvmMarketPhase.py: RSI/MACD/변동성 기반 시장 국면(상승/하락) 분류 (SVM RBF)

    예시: 3가지 지표를 보고 "지금 시장이 오르는 중인지 내리는 중인지" 판단합니다.

4) 비지도 학습

  • KMeansStockCluster.py: 수익률/변동성 기반 주식 유형 자동 군집화 (K-Means)

    예시: 아무도 가르쳐 주지 않아도 60개 종목을 성장주/가치주/방어주로 스스로 분류합니다.

  • PcaStockReduce.py: 6가지 주식 지표를 2차원으로 압축해 시각화 (PCA)

    예시: PER·PBR·ROE·변동성 등 6가지 숫자를 딱 2개로 줄여서 그래프에 표시합니다.

5) 보조 유틸리티

  • korean_font.py: OS별 한글 폰트 자동 설정 유틸리티

    예시: matplotlib 그래프에서 한글 제목/축 라벨이 깨지지 않도록 폰트를 자동으로 지정합니다.

6) 시계열 분석

  • TimeSeriesAnalysis.py: 이동평균·볼린저밴드·ACF/PACF·ADF 정상성 검정

    예시: 주가의 흐름을 여러 기법으로 분석하고, "이 데이터가 규칙적인가?" 를 수학적으로 확인합니다.

  • ArimaStockForecast.py: ARIMA 모델로 미래 주가 예측 (통계 기반 시계열)

    예시: 과거 주가의 패턴과 오차를 수식으로 정리해 1개월 후 주가를 예측합니다.

7) RNN · LSTM (순환 신경망)

  • RnnBackprop.py: 바닐라 RNN을 numpy로 직접 구현 (BPTT)

    예시: "오늘 주가가 오를까?"를 지난 10일 수익률 흐름을 기억하며 판단합니다.

  • LstmStockPyTorch.py: PyTorch LSTM으로 주가 시계열 예측

    예시: 장기 기억(셀 상태)과 단기 기억(은닉 상태)을 분리해 더 정확하게 주가 흐름을 예측합니다.

8) CNN (합성곱 신경망)

  • CnnTimeSeriesFeature.py: 1D CNN으로 30일 수익률 시퀀스에서 패턴 자동 추출 & 상승/하락 분류

    예시: 연속 3일 수익률이 반복 상승하는 패턴 같은 로컬 특징을 필터가 자동으로 찾습니다.

  • CnnCandleChart.py: matplotlib으로 캔들차트를 32×32 컬러 이미지로 렌더링 후 2D CNN 분류

    예시: 캔들차트를 사진처럼 찍어서 "양봉 연속/음봉 반전" 같은 패턴을 이미지로 인식합니다.

  • CnnLstmHybrid.py: CNN이 단기 윈도우 패턴을 벡터로 압축 → LSTM이 시간 순서 학습 (하이브리드)

    예시: CNN = 하루 뉴스 요약, LSTM = 주간 흐름 파악. 두 강점을 합쳤습니다.

9) Transformer · Attention

  • TransformerAttention.py: Multi-Head Self-Attention으로 날짜 간 상관관계 학습 & 방향 분류

    예시: 책을 읽을 때 중요한 단어에 밑줄 긋듯이, 어느 날 주가가 지금 예측에 중요한지 가중치로 학습합니다.

10) 하이퍼파라미터 튜닝 & 검증 전략

  • HyperparamTuning.py: K-Fold 교차검증, Grid Search, 과적합(C값/Dropout) 실험

    예시: 모든 레시피를 다 만들어보고 가장 맛있는 것을 고르듯, 파라미터 조합을 전수 탐색합니다.

11) 데이터 정규화 & 전처리

  • YfinanceNormalize.py: yfinance로 실제 주가 다운로드 → Min-Max / Z-점수 / 로그수익률 비교

    예시: 삼성(70,000원)과 AAPL(150달러)를 같은 그래프에 비교하려면 "단위를 통일"해야 합니다.

12) 시계열 윈도우 예측기 (CLI)

  • TimeSeriesWindow.py: 종목명·윈도우·예측기간·스텝을 입력받아 LSTM으로 예측 (대화형/CLI)

    기본값: GS P&L (078935.KS), 20일 윈도우, 5일 후 예측, 스텝=1 CLI: python TimeSeriesWindow.py --ticker AAPL --window 30 --horizon 5 --step 1

13) 딥러닝 & 시각화

  • NeuralNetBackprop.py: 역전파를 직접 구현한 시계열 주가 예측 (신경망)

    예시: 오답 노트(역전파)를 손으로 직접 구현해 과거 5일 주가로 내일을 예측합니다.

  • HeatmapRiskMask.py: 수익률 히트맵에서 고위험 구간 마스킹

    예시: 주가 수익률을 색깔 지도로 그리고, 위험한 구간을 강조 표시합니다.


결과 이미지 설명 (result 폴더)

각 파일을 실행하면 result/ 폴더에 이미지가 저장됩니다.


SvmTradeSignal_078935_KS.png — SVM 매매 신호 경계선

SvmTradeSignal

무엇을 보여주나요? 그래프가 분홍색 구역파란색 구역으로 나뉘어져 있고, 가운데 대각선이 경계선입니다.

  • 빨간 점 = 매수 신호 (사야 할 타이밍)
  • 파란 점 = 매도/보류 신호 (팔거나 기다려야 할 타이밍)
  • 대각선 경계 = SVM이 찾아낸 "사야 할지 말아야 할지" 기준선

모멘텀이 높고(오른쪽) 거래량 변화율이 높을(위쪽) 수록 매수 신호가 됩니다.


SvmMarketPhase_078935_KS.png — RSI/MACD 기반 시장 국면 예측

SvmMarketPhase

무엇을 보여주나요? 가로축은 RSI(과매수/과매도 지표), 세로축은 MACD(추세 강도 지표)입니다.

  • 빨간 점 = 상승장으로 예측된 날
  • 파란 점 = 하락장으로 예측된 날

RSI가 높고(60 이상) MACD가 양수일 때 빨간 점이 집중되어 있습니다.


NeuralNetBackprop_078935_KS.png — 신경망 역전파 주가 예측 결과

NeuralNetBackprop

무엇을 보여주나요? 파란 실선(실제 주가)과 주황 점선(예측 주가)을 비교합니다.

신경망은 **전체적인 방향(추세)**은 잘 잡지만, 단기 급등락은 놓칩니다.


HeatmapRiskMask.png — 수익률 히트맵 & 고위험 마스킹

HeatmapRiskMask

패널 내용
왼쪽 (원본) 초록=수익, 빨강=손실로 색칠한 원본 수익률 지도
가운데 (마스크) 수익률이 ±2% 초과인 위험 칸만 흰색으로 표시
오른쪽 (강조) 위험 칸을 더 진한 색으로 강조

KMeansStockCluster.png — K-Means 주식 유형 자동 분류

KMeansStockCluster

  • 빨간 점 (성장주) = 수익률 높고 변동성도 높음
  • 파란 점 (가치주) = 수익률·변동성 모두 중간
  • 초록 점 (방어주) = 수익률 낮지만 변동성도 낮음
  • 검정 X = 각 그룹의 중심점(centroid)

PcaStockReduce.png — PCA 차원 축소 결과

PcaStockReduce

  • 왼쪽: 각 주성분이 전체 정보의 몇 %를 담고 있는지
  • 오른쪽: 6차원 지표를 2차원으로 압축한 산점도 (색깔=수익률)

TimeSeriesAnalysis_078935_KS.png — 시계열 분석 종합

TimeSeriesAnalysis

  • 1행: 이동평균(SMA5/20/60) & 볼린저밴드
  • 2행: 일간 수익률 (차분 결과)
  • 3행: ACF & PACF (ARIMA 차수 결정 힌트)

ArimaStockForecast_078935_KS.png — ARIMA 주가 예측

ArimaStockForecast

  • 위 패널: 전체 과거 주가 + 22거래일 미래 예측 + 95% 신뢰 구간(분홍 띠)
  • 아래 패널: 최근 6개월 확대 + 예측 마커

RnnBackprop_078935_KS.png — 바닐라 RNN 학습 결과

RnnBackprop

  • 왼쪽: BCE 손실 곡선 (0.693 근처에서 시작 → 기울기 소실 한계)
  • 오른쪽: 예측 방향 막대 (금색=정답, 검정=오답)

LstmStockPyTorch_078935_KS.png — PyTorch LSTM 주가 예측

LstmStockPyTorch

  • 왼쪽: MSE 손실 곡선 (수직 낙하 후 수렴)
  • 오른쪽: 실제(파랑) vs LSTM 예측(빨강) 비교

LogisticTradeSignal_078935_KS.png — 로지스틱 회귀 매수/매도

LogisticTradeSignal

  • 초록 배경: 매수 확률이 높은 구역
  • 빨간 배경: 매도/관망 확률이 높은 구역

CnnTimeSeriesFeature_078935_KS.png — 1D CNN 시계열 특징 추출

CnnTimeSeriesFeature

  • 학습 손실·정확도 + 예측 확률 막대 + Conv1d 특징 맵 4패널

CnnCandleChart_078935_KS.png — 2D CNN 캔들차트 이미지 분류

CnnCandleChart

  • 캔들차트 샘플 이미지 6장 + 학습 손실·정확도

CnnLstmHybrid_078935_KS.png — CNN+LSTM 하이브리드 분류

CnnLstmHybrid

  • CNN(단기 패턴) → LSTM(시간 흐름) → Linear(분류) 구조

TransformerAttention_078935_KS.png — Transformer Self-Attention

TransformerAttention

  • Self-Attention 히트맵: 모델이 어느 날짜를 참고해 예측하는지 시각화

HyperparamTuning.png — 하이퍼파라미터 튜닝 & 검증

HyperparamTuning

  • Grid Search 히트맵 + C값 과적합 곡선 + Dropout 효과 + K-Fold 결과

YfinanceNormalize_078935_KS.png — yfinance 정규화 비교

YfinanceNormalize

  • 원본 / Min-Max / Z-점수 / 로그수익률 / 분포 5패널 비교

TimeSeriesWindow_078935_KS_w20_h5.png — 시계열 윈도우 예측

TimeSeriesWindow

  • 윈도우 샘플 + LSTM 손실 + 예측 vs 실제 + 실행 설정 요약 4패널

About

주식투자 도메인으로 배우는 Python 머신러닝 실습

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

 
 
 

Contributors

Languages