오늘은 이 저장소의 메인 주식 AI 교실을 익히는 날입니다. "읽기만 하는 사람"이 아니라 "직접 주가 예측 버튼을 눌러 보는 사람"이 되는 게 목표입니다.
- 메인 학습 허브의 구조를 익힙니다.
- 챕터를 고르고, 설명을 읽고, 실행 결과를 보는 흐름을 몸에 익힙니다.
- 다음 날 모델 비교 실험을 할 준비를 마칩니다.
이 화면은 주식 AI 실습의 메인 관제판 같고,
여러 예측 실험실로 가는 출발 화면 같습니다.
여기서 할 일은 늘 비슷합니다.
- 챕터를 고른다
- 설명을 읽는다
- 실행 버튼을 누른다
- 결과를 본다
| 화면 이름 | 한자·영어 | 쉬운 뜻 |
|---|---|---|
| 챕터 | chapter | 한 번에 배우는 작은 수업 1개. 전체 코스의 작은 단원 |
| 설명 탭 | description tab | 오늘 배울 말과 개념을 적어 둔 화면 |
| 실행 버튼 | run button | 직접 결과를 만드는 버튼. 누르면 서버가 AI 모델을 돌려 결과를 돌려줌 |
| 결과 탭 | result tab | 실행 후 나온 숫자와 내용을 보여 주는 화면 |
| 웹앱 가이드 | webapp guide | 다음에 어디로 이동할지 알려주는 안내 |
| 낱말 | 한자·영어 | 쉬운 뜻 |
|---|---|---|
| 신경망 | 神經網 / neural network | 뇌 신경세포를 흉내 낸 계산 모델. 神(신 신)+經(지날 경)+網(그물 망). 입력층·은닉층·출력층이 그물처럼 연결됨 |
| 은닉층 | 隱匿層 / hidden layer | 입력층과 출력층 사이의 중간 계산 층. 隱(숨을 은)+匿(숨길 닉)+層(층 층). 사람이 직접 들여다보기 어렵기 때문에 '숨겨진 층'이라고 부름. 여기서 복잡한 패턴 인식이 일어남 |
| 상승 확률 | 上昇確率 / probability of rise | 내일 주가가 오를 가능성을 0~1 사이 숫자로 나타낸 값. 上(위 상)+昇(오를 승)+確(확실할 확)+率(비율 률). 0.72라면 "오를 가능성 72%"라는 뜻 |
추천 챕터:
chapter06로지스틱 회귀chapter08랜덤 포레스트chapter21신경망 기초
| 시간 | 할 일 |
|---|---|
| 5분 | 메인 허브의 메뉴와 사이드바를 살펴봅니다. |
| 10분 | 챕터 2개를 골라 설명 -> 실행 -> 결과 흐름을 반복합니다. |
| 5분 | 어떤 챕터가 제일 읽기 쉬웠는지 메모합니다. |
- 메인 학습 허브를 엽니다.
- 왼쪽에서
chapter06을 클릭합니다. 설명탭에서 분류 이야기를 읽습니다.실행버튼을 눌러 결과가 나오는지 봅니다.- 이번에는
chapter08을 눌러 같은 일을 다시 합니다. - 시간이 남으면
chapter21까지 열어 딥러닝 챕터 분위기도 구경합니다.
- 한 챕터를 누르면 내용이 바뀌는가?
- 실행 버튼을 누르면 결과가 생기는가?
- 챕터마다
무슨 문제를 푸는지한 줄로 말할 수 있는가?
- 내가 제일 이해하기 쉬웠던 챕터는 무엇이었나요?
- 설명을 먼저 읽고 실행하니 덜 무서웠나요?
- 메인 허브는 왜 "학습 출발점"이라고 부를 수 있을까요?
| 문서에서 보는 개념 | 주식으로 붙여 보는 예시 |
|---|---|
| 분류 | NAVER가 내일 오를까? |
| 회귀 | 코스피가 다음 주에 몇 포인트쯤일까? |
| 특성 | 가격, 거래량, 이동평균, RSI |
| 추가 힌트 | 금리, 환율, CPI 같은 거시경제 숫자 |
예를 들어 문서에 특성이라는 말이 나오면,
"모델이 보는 힌트 상자"라고 생각하면 쉽습니다.
- 종목 힌트: 삼성전자 종가, 거래량
- 지표 힌트: MA5, MA20, RSI
- 거시 힌트: 미국 금리, 원/달러 환율
문서를 읽다가 어려우면 늘 이렇게 바꿔 읽어 보세요.
이 개념은 어떤 종목을, 어떤 지표를, 어떤 시장 분위기를 설명하려는 걸까?
내일은 같은 데이터로 모델 4개를 바꿔 보며 "모델 선택"이 결과를 어떻게 바꾸는지 본격적으로 비교합니다.
이제 이 저장소에는 DART 공시 투자 파이프라인 화면도 있습니다.
아주 쉽게 말하면:
주가 차트는 운동장 점수판DART 공시는 회사가 직접 낸 성적표
예를 들어 삼성전자 공시를 보면
- 매출: 얼마나 크게 벌었는지
- 영업이익: 장사해서 얼마나 남겼는지
- 부채비율: 빚 가방이 얼마나 무거운지
- 최근 공시: 새 소식이 무엇인지
를 같이 볼 수 있습니다.
매출이 커졌고 영업이익도 좋아졌고 빚 부담이 낮다
라고 나오면
이 회사는 몸집도 크고 체력도 꽤 괜찮아 보이는구나
처럼 읽으면 됩니다.
반대로
매출이 줄고 영업이익이 약하고 정정 공시가 나왔다
면
조금 더 천천히 살펴봐야겠구나
라고 생각하면 됩니다.
- 터미널에서
DART_API_KEY=내키 python scripts/refresh_datasets.py --use-fallback를 실행합니다. - 데이터셋 허브에서
dart_invest_pipeline.csv를 엽니다. - DART 공시 투자 파이프라인에서 삼성전자와 SK하이닉스를 번갈아 눌러 봅니다.
매출,영업이익,부채비율,최근 공시4가지를 한 줄로 말해 봅니다.
➡️ 다음 문서: Day 6. 같은 데이터로 모델 4종 비교
flowchart TD
A["입력 특성 x"] --> B["선형 결합\nz = w·x + b"]
B --> C["시그모이드 변환\np = σ(z)"]
C --> D{p ≥ 0.5?}
D -- 예 --> E["상승 예측 = 1"]
D -- 아니오 --> F["하락 예측 = 0"]
flowchart TD
A["학습 데이터"] --> B["부트스트랩 샘플링"]
B --> C["트리 T₁"]
B --> D["트리 T₂"]
B --> E["트리 Tₙ"]
C --> F["예측₁"]
D --> G["예측₂"]
E --> H["예측ₙ"]
F --> I["다수결 → 최종 예측\n특성 중요도 계산 가능"]
G --> I
H --> I
flowchart TD
A["입력층\n특성 x"] --> B["은닉층 1\na = σ(W₁x + b₁)"]
B --> C["은닉층 2\na = σ(W₂a + b₂)"]
C --> D["출력층\nŷ = σ(Wₙa + bₙ)"]
D --> E{학습 중?}
E -- 예 --> F["손실 계산\nL = loss(y, ŷ)"]
F --> G["역전파\n∂L/∂W 계산"]
G --> H["가중치 업데이트\nW ← W − η·∂L/∂W"]
H --> A
E -- 아니오 --> I["상승 확률 출력"]
flowchart TD
LR["선형 회귀\n(1800s)"]
LogR["로지스틱 회귀\n(1958, Cox)"]
DT["의사결정나무\n(1960~1986, Quinlan)"]
RF["랜덤 포레스트\n(2001, Breiman)"]
P["퍼셉트론\n(1958, Rosenblatt)"]
MLP["신경망 MLP\n(1986, Rumelhart)"]
LR -->|"이진 분류 확장"| LogR
LogR -->|"단일 뉴런화"| P
P -->|"다층 구조 + 역전파"| MLP
DT -->|"배깅·앙상블"| RF
style LR fill:#f5f5f5
style LogR fill:#fff9c4
style DT fill:#fff9c4
style P fill:#fff9c4
style MLP fill:#d4e6ff
style RF fill:#c8e6c9
| 모델 | 수학적 의미 | 탄생 배경 | 주식투자 활용 | 만든 사람/대표 GitHub |
|---|---|---|---|---|
| 로지스틱 회귀 | 선형 결합을 확률로 변환해 이진 분류를 수행합니다. | 해석 가능한 분류 기준이 필요해 통계 실무에서 표준이 되었습니다. | 초보자용 기준 모델로 신호 품질 점검에 적합합니다. | David Cox(현대 통계 정립) · https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/linear_model/_logistic.py |
| 랜덤 포레스트 | 다수 트리 투표로 분류하며 분산을 줄입니다. | 단일 트리 불안정을 줄이기 위한 앙상블 연구의 결과물입니다. | 특성 중요도와 안정적 점수를 함께 얻기 쉬워 학습 허브 실습에 적합합니다. | Leo Breiman · https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/ensemble/_forest.py |
| 신경망(MLP) | 여러 은닉층의 비선형 변환 a^{(l+1)}=σ(W^{(l)}a^{(l)}+b^{(l)})을 학습합니다. |
퍼셉트론 한계를 넘기 위해 역전파 기반 다층 구조가 보편화되었습니다. | 복잡한 비선형 신호(가격×거래량×지표 상호작용) 포착에 유리합니다. | Rumelhart, Hinton, Williams(역전파 대중화) · https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/neural_network/_multilayer_perceptron.py |
| 모델 | 데이터셋 형태 | 헬스케어 | 자율주행 | 주식투자 | 로봇 | AI Ops |
|---|---|---|---|---|---|---|
| 로지스틱 회귀 | 정형 수치·범주 데이터, 이진 레이블 | 질환 유무·재입원 위험 분류, 임상 해석 기준선 | 단순 장애물 유무 분류, 저복잡도 환경 | 초보자용 기준 모델, 신호 품질 점검 | 이상 동작 감지(OK/NG), 안전 판단 기준선 | 장애 발생 여부 분류, 알림 임계값 설정 |
| 랜덤 포레스트 | 정형 수치·범주 데이터, 중간 크기 | 진단 보조, 특성 중요도 기반 임상 지표 해석 | 도로 조건 분류, 다변량 센서 이상 감지 | 특성 중요도·안정 성능 함께 확인 가능 | 상태 분류·고장 예측, 다변량 센서 분석 | 장애 원인 분류·이슈 우선순위 판단 |
| 신경망(MLP) | 정형 수치 데이터, 중간~대용량 | 복잡한 진단 패턴 학습, 의료 영상 특성 분류 | 비선형 센서 융합, 주행 결정 신호 생성 | 다변량 특성 결합 신호 탐지, 복합 패턴 학습 | 복잡한 동작 제어, 다감각 데이터 처리 | 복합 메트릭 이상 탐지, 장애 패턴 인식 |
Day 5에서 배운 세 모델은 복잡도가 다릅니다.
단순한 모델부터 복잡한 모델까지 순서대로 쌓으면, 각 단계에서 무엇이 좋아졌는지 눈에 보입니다.
| 혼합 방법 | 어떻게 섞나요? | 왜 좋을까요? |
|---|---|---|
| 기준선 + 개선 모델 | 로지스틱 회귀를 기준선으로 먼저 실행하고, 랜덤 포레스트와 MLP를 차례로 추가해 AUC가 얼마나 올라가는지 봄 | 복잡한 모델이 정말로 더 좋은지 쉽게 비교할 수 있음 |
| 3모델 평균 앙상블 | 세 모델이 각각 내놓은 상승 확률을 동일 비중(1/3씩)으로 평균 냄 | 어떤 모델이 특정 날짜에 틀려도 평균값이 흔들림을 줄여줌 |
| 성능 기반 가중 앙상블 | 교차 검증에서 AUC가 더 높은 모델에 더 높은 가중치를 부여해 평균 냄 | 잘하는 모델의 의견을 더 많이 반영하는 합리적인 방식 |
- 기준선 비교: 항상 로지스틱 회귀의 점수를 기준점으로 잡고, 랜덤 포레스트·MLP가 기준점보다 얼마나 좋아졌는지 퍼센트로 확인합니다.
- 특성 중요도 일치 확인: 세 모델이 중요하다고 보는 특성이 비슷한지 비교합니다. 공통적으로 중요하게 보는 특성은 실제로 신뢰도가 높습니다.
- 챕터별 실행 점수 기록: 메인 학습 허브에서
chapter06,chapter08,chapter21을 차례로 실행해 각 모델의 점수를 표에 적고 비교합니다. - 과적합 확인: 학습 데이터 점수와 테스트 데이터 점수 차이가 크면 해당 모델이 과적합된 것이므로 주의합니다.
아주 쉽게 말하면: 세 선생님이 같은 문제를 보고 답을 내면, 세 명 모두 맞다고 한 것만 믿으면 더 안전합니다.
그리고 가장 많이 맞히는 선생님의 말을 조금 더 비중 있게 들으면 됩니다.
| 주소 | 하는 일 |
|---|---|
GET /api/chapters |
챕터 목록 읽기 |
GET /api/chapters/{id} |
챕터 설명/메타 정보 읽기 |
POST /api/chapters/{id}/run |
해당 챕터의 practice.py 실행 |
GET /api/chapters/{id}/source |
소스 코드 문자열 보기 |
GET /api/docs |
문서 목록 읽기 |
GET /api/docs/{id} |
문서 본문 읽기 |
POST /api/chapters/{id}/run 이 호출되면 서버는 해당 챕터 폴더의 practice.py 를 읽고, 그 안의 run() 을 실행한 뒤 결과와 실행 시간을 정리해서 돌려줍니다.
GET /api/datasetsGET /api/datasets/{id}GET /api/datasets/{id}/adapted/stock-lab
즉, 메인 허브는 문서 읽기, 챕터 실행, 다음 웹앱 이동을 이어 주는 관제판입니다.