분류 전체보기 85

10주차 TIL - 예측 잘 좀 해보자

시각화는 **"변동률 회귀 + 급등/급락 분류 하이브리드 모델"**을 적용한 예측 결과✅ 시각화 그래프 설명색상의미🔵 파란선실제 변동률 (실제 BTC 5분봉 기준 수익률)🔴 빨간선예측 변동률 (Transformer 기반 회귀 예측 결과)🔍 분석 포인트1. 예측 변동률 추세 (빨간선)비교적 스무스하고 일관된 방향성을 가지는 추세가 보임특히 100 이후 구간에서 지속적으로 우상향 → 이 구간에서는 실제보다 상대적으로 긍정적인 추세 예측짧은 급등/급락에는 둔감, 하지만 중장기적인 움직임은 부드럽게 포착2. 실제 변동률 (파란선)여전히 0 근처를 중심으로 한 진동 형태 (극단적 변동은 거의 없음)예측선과 비교하면 방향성 일치율은 높지 않지만, 노이즈가 크기 때문에 모델이 평균적인 경향성을 따르려 함이 보임..

카테고리 없음 2025.04.04

10주차 TIL - 하락 예측을 해결해가는데 다시 발생한 문제?!

좋아, 이 결과는 CNN-GRU 모델을 다단계(5-class) 분류 문제에 적용한 성능 분석이야.이전 GRU 모델과 비교하면 일부 클래스에선 recall이 개선되었지만, 정확도는 낮아지는 경향이 있는 혼합된 결과!아래에서 클래스별 성능과 전체 평가를 요약해보면 이렇다✅ 1. 클래스별 성능 요약클래스의미PrecisionRecallF1-score해석0급하락0.190.330.24예측이 상대적으로 많이 개선됨 (GRU 대비)1하락0.260.570.36가장 잘 예측된 클래스, recall 높음2횡보0.540.340.42precision 높지만 recall은 줄어듦3상승0.170.010.03예측 거의 못함 → 패턴 인식 부족4급상승0.060.030.04여전히 예측 거의 안 됨📊 Confusion Matrix 요약..

카테고리 없음 2025.04.03

10주차 TIL - 저점매수 모델 만들다가 하락장 예측이 꼬였다

✅ 1. 클래스별 성능 요약 (5단계 라벨)클래스의미PrecisionRecallF1-score해석0급하락0.240.240.24이전보다 recall 약간 개선1하락0.270.360.31성능 향상. 비교적 잘 잡힘2횡보0.470.640.54모델이 가장 강한 클래스3상승0.230.060.09recall 하락 → 허위 신호 많음4급상승0.110.090.10아직도 거의 못 잡음📊 Confusion Matrix 분석css복사편집 실제 0 1 2 3 4 예측 0 [13, 5, 17, 8, 8] ← 급하락 예측은 여전히 다른 클래스로 많이 퍼짐 예측 1 [19, 56, 51, 57, 27] ← 하락 class는 recall 가장 좋음 예측 2 [ 8, 19, 114, 48, 15] ← 횡보 예측이 전체 중심 예측 3..

카테고리 없음 2025.04.02

10주차 TIL - ✅ 다변량 입력 기반 전체 학습 코드

예측값 조졌따리... 다시 코드 짜야한다!  import pandas as pd import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout from sklearn.preprocessing import MinMaxScaler import matplotlib.pyplot as plt # 1. 데이터 불러오기 df = pd.read_csv("btc_data.csv", parse_dates=["timestamp"], encoding="utf-8-sig") # 2. 지표 계산 def compute_rsi(series, period=14):     delt..

카테고리 없음 2025.04.01

10주차 TIL - 예측 모델 코드를 만들어 보즈아~

import pandas as pd import numpy as np from datetime import datetime from binance.client import Client from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout from sklearn.preprocessing import MinMaxScaler import time import os import plotly.graph_objects as go # Binance API 키 API_KEY = '' API_SECRET = '' client = Client(API_KEY, API_SECRET) symbol..

카테고리 없음 2025.03.31

10주차 TIL - 단기 예측 모델의 단점과 해결법

단기 시계열 예측 모델의 주요 단점과 그에 대한 해결 방안을 조사한 결과를 공유하겠습니다.단기 시계열 예측 모델의 주요 단점장기 예측의 부정확성: 단기 데이터를 기반으로 한 모델은 장기적인 추세를 정확히 예측하지 못하는 경향이 있습니다. 이는 데이터의 시간적 의존성을 충분히 학습하지 못하기 때문입니다.​데이터 노이즈의 영향: 금융 시계열 데이터는 노이즈가 많아 예측 모델의 정확도를 저하시킬 수 있습니다. 노이즈가 많으면 모델이 실제 패턴보다 노이즈에 과도하게 적응하여 일반화 성능이 떨어질 수 있습니다.​비정상성(Non-stationarity) 문제: 시계열 데이터의 평균과 분산이 시간에 따라 변하는 경우, 모델이 이러한 변화를 학습하기 어려워 예측 성능이 저하될 수 있습니다.​해결 방안장기 예측 성능 향..

카테고리 없음 2025.03.28

10주차 TIL- 과적합 발생 여부를 알아보자

과적합(Overfitting)이 발생했다는 걸 인식하는 건 모델 개발의 핵심이죠. 과적합은 모델이 훈련 데이터에는 잘 맞지만, 새로운 데이터(검증 또는 테스트 세트)에는 성능이 떨어지는 현상이에요. 아래와 같은 징후와 진단 방법을 통해 확인할 수 있습니다.✅ 과적합 여부를 판단하는 방법1. 훈련 손실 vs 검증 손실 차이가 큼훈련 손실은 계속 낮아지는데, 검증 손실은 중간부터 정체되거나 증가하면 과적합 가능성 높음2. 예측 성능이 훈련 데이터에서는 높고, 검증/테스트에서는 낮음예: Train R² = 0.95, Test R² = 0.42정확도나 MSE 등 평가 지표가 훈련과 테스트 간 차이가 클수록 과적합 가능성 있음3. 학습 epoch이 길어질수록 검증 성능이 나빠짐손실 시각화 그래프에서 다음처럼 그려..

카테고리 없음 2025.03.27

10주차 TIL - 텐서플로우와 케라스를 이용해서 비트코인 종가예측을 해보자

import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout # 1. 데이터 로딩 df = pd.read_csv("btc_5min_last_60days.csv") df = df[['close']] df.dropna(inplace=True) # 2. 정규화 scaler = MinMaxScaler() scaled_data = scaler.fit_transform(df) # 3...

카테고리 없음 2025.03.26

10주차 TIL - 과적합

비트코인과 같은 금융 시계열 데이터는 변동성이 크고 노이즈가 많기 때문에, 모델의 일반화 성능을 높이기 위해 **임의 데이터 증강(Randomized Data Augmentation)**을 활용하는 건 매우 유효합니다. import pandas as pd import numpy as np import torch import torch.nn as nn from torch.utils.data import Dataset, DataLoader import random from sklearn.preprocessing import MinMaxScaler import matplotlib.pyplot as plt # 1. 데이터 불러오기 df = pd.read_csv("btc_5min_last_60days.csv") ..

카테고리 없음 2025.03.25

10주차 TIL - 각종 하드 코딩

정규장 데이터를 **시간 단위(예: 1시간, 30분, 5분 봉 등)**로 나누는 작업은 복잡하지만, 이를 효율적으로 처리하고 분석 가능한 형태로 만드는 전략적 접근 방법이 있습니다. 아래에 추천하는 방안들을 정리해드릴게요:1. 타임프레임 리샘플링 (Resampling) 전략Pandas 등에서는 리샘플링 기능을 이용해 손쉽게 시간 단위로 데이터를 재구성할 수 있습니다.pythondf = df.set_index('Datetime') # Datetime이 datetime64형으로 되어 있어야 함 hourly = df.between_time('09:30', '16:00').resample('1H').agg({ 'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'l..

카테고리 없음 2025.03.24