강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

gnb1202님의 프로필 이미지
gnb1202

작성한 질문수

알고리즘 트레이딩의 비밀, AI가 주가를 맞추는 법

Transformer 모델 개발 완료 및 코드 리뷰

섹션4의 10강 질문이 있습니다.

작성

·

12

0

train_size = int(len(data) * 0.8) 
train_data = data.iloc[:train_size]       test_data = data.iloc[train_size:]       

훈련과 테스트 8:2로 잘 나누고

for i in range(lookback, len(data_scaled) - forecast_horizon):

이렇게 돌리면 그냥 전체 데이터를 학습한거 아닌가요?

결국 안나누고 학습한 것 같은데, 그럼 이 프로젝트는 그냥 데이터를 모두 학습한거죠?

LR 버전으로 리팩토링해서 돌려보고 있는데 과적합뜨는 것 보니까 그냥 완전 똑같이 나오더라구요.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
gnb1202님, 데이터셋을 훈련과 테스트로 8:2로 나누신 방식은 정확히 사용하신 것 같습니다.
두 개의 데이터프레임, train_datatest_data를 만드셨는데요,

train_size = int(len(data) * 0.8)
train_data = data.iloc[:train_size]
test_data = data.iloc[train_size:]

나누신 이후에, 전체 데이터를 학습 데이터와 비슷하게 학습하고 싶지 않다면, for 루프의 데이터 사용 범위를 조정하셔야 합니다.

for 루프에서 lookbackforecast_horizon을 사용한 코드는 특정 범위를 제외하고 데이터를 사용하는 것으로 보입니다. 하지만, 이 부분이 전체 데이터에서 사용되었므로 훈련 데이터 범위 내에서만 실행되도록 코드를 조정하셔야 합니다. 그렇지 않으면 전체 데이터를 학습하게 될 가능성이 있습니다.

과적합에 대한 문제는 학습 데이터와 테스트 데이터 간의 경계를 명확히 하고, lookbackforecast_horizon 변수를 조정하여 해결할 수 있습니다. 모델의 과적합을 방지하려면 모델의 복잡성을 낮추거나 정규화 등의 기법을 사용하는 것도 고려해보세요.

이미지를 참고하시려면 문의 게시판에서 직접 질문을 올리신 후, 공유 공유자님께 추가적인 설명을 받아보는 것도 좋은 방법입니다. 수강 전 문의 게시판에서 정보를 확인해 문의를 남기시면 보다 정확한 피드백을 받으실 수 있습니다.

gnb1202님의 프로필 이미지
gnb1202

작성한 질문수

질문하기