작성일: 2026-03-10

용도: 백엔드 ERD 설계 시 ML 출력 데이터 구조 참조

키 식별자: (ticker, date) 조합으로 모든 테이블 조인 가능


소수점 정밀도 가이드

모델 원시 출력 vs 유효 정밀도

모든 모델은 내부적으로 float64 (소수점 16~17자리)를 출력하지만, 실질적으로 유효한 자릿수는 훨씬 적습니다. 패킷 JSON에서는 round(f, 6)으로 6자리 반올림 적용됩니다.

데이터 유형 원시 출력 예시 유효 자릿수 ERD 권장 타입 이유
확률값 (0~1) 0.4129498324862139 4자리 DECIMAL(6,4) 확률 합=1 제약, 4자리 이후는 노이즈
변동성 (%) 32.19986106597954 2자리 DECIMAL(7,2) 30.70% vs 30.695%는 무의미한 차이
백분위 (0~100) 91.26984126984127 1자리 DECIMAL(4,1) 91.3% 수준의 정밀도면 충분
GARCH 파라미터 0.2583477525079521 6자리 DECIMAL(10,6) 모델 재현성을 위해 보존
이진 플래그 1.0 or 0.0 0자리 BOOLEAN 0 또는 1만 존재

필드별 상세 정밀도

모델 필드 원시 자릿수 유효 자릿수 근거
LightGBM prob_up/down/sideways 16자리 4자리 softmax 확률, 합=1 제약
LightGBM confidence 16자리 4자리 max(prob)이므로 동일
LSTM prob 16자리 4자리 sigmoid 출력, 0~1
GARCH vol_1d/3d/5d 14자리 2자리 연환산 변동성(%), 소수점 2자리면 충분
GARCH percentile_vs_1y 14자리 1자리 백분위(0~100)
GARCH omega/alpha/beta 16~17자리 6자리 모델 파라미터, 재현성 필요
앙상블 ensemble_confidence 16자리 4자리 LogisticRegression 확률
앙상블 signal_agreement 1자리 0자리 0.0 또는 1.0 (이진)
앙상블 confidence_gap 16자리 4자리 확률 차이값
패킷 JSON 모든 float 6자리 6자리 _safe_float(round(f, 6)) 적용

1. LightGBM — 방향성 분류 예측

파일: processed/lgbm_features/lgbm_predictions_2021_01.parquet

인덱스: MultiIndex (date, ticker)

갱신 주기: 학습 시 1회 (일별 추론 시 매일)

컬럼 타입 범위 유효 소수점 설명
predicted_class int 0, 1, 2 - 예측 클래스 (0=하락, 1=횡보, 2=상승)
confidence float 0.33~1.0 4자리 최대 확률값
prob_down float 0.0~1.0 4자리 하락 확률
prob_sideways float 0.0~1.0 4자리 횡보 확률
prob_up float 0.0~1.0 4자리 상승 확률
predicted_label string "down", "sideways", "up" - 예측 클래스 라벨
true_class int 0, 1, 2 - 실제 클래스 (검증용)
true_label string "down", "sideways", "up" - 실제 클래스 라벨 (검증용)

제약: prob_down + prob_sideways + prob_up = 1.0

ERD 제안

CREATE TABLE ml_lgbm_prediction (
    id            BIGSERIAL PRIMARY KEY,
    ticker        VARCHAR(10) NOT NULL,
    date          DATE NOT NULL,
    predicted_class INT NOT NULL,           -- 0=하락, 1=횡보, 2=상승
    confidence    DECIMAL(6,4) NOT NULL,    -- 0.3300~1.0000
    prob_down     DECIMAL(6,4) NOT NULL,    -- 0.0000~1.0000
    prob_sideways DECIMAL(6,4) NOT NULL,    -- 0.0000~1.0000
    prob_up       DECIMAL(6,4) NOT NULL,    -- 0.0000~1.0000
    created_at    TIMESTAMP DEFAULT NOW(),
    UNIQUE(ticker, date)
);

2. LSTM — 패턴 인식 예측

파일: processed/lstm_sequences/lstm_predictions_2021_01.parquet