- 설명: os.makedirs 함수를 사용하여 모델을 저장할 디렉토리를 생성한다.
exist_ok=True를 통해 디렉토리가 이미 존재해도 에러가 발생하지 않도록 설정한다. - 의미: 학습한 모델을 파일로 저장하여 재사용 가능하도록 설정한다. 이 코드는 base/model 경로에 모델을 저장한다.
- 설명:
1주부터 10주까지 총 10개의 모델을 생성하기 위해 반복문을 사용한다. 각 반복에서 개별 주차 데이터를 활용하여 랜덤포레스트 모델을 학습한다. - 의미:
주차별 데이터를 독립적으로 처리하여 모델을 생성함으로써 특정 기간의 데이터에 특화된 예측 모델을 생성할 수 있다.
- 설명:
RandomForestClassifier는 랜덤포레스트 모델을 생성하며, base_params를 통해 하이퍼파라미터를 설정한다.
이후, fit 메서드를 사용하여 훈련 데이터를 학습한다. - 의미:
주어진 훈련 데이터 X_train과 y_trains[i]를 사용하여 랜덤포레스트 모델을 학습하며, 이는 주가 상승/하락 예측에 사용된다.
- 설명:
- pipe.predict를 통해 테스트 데이터 X_tests[i]에 대한 예측을 수행한다.
- pipe.score는 훈련 데이터와 테스트 데이터에 대한 모델의 정확도를 계산한다.
- 각 주차별로 훈련 정확도와 테스트 정확도를 출력하여 모델 성능을 확인한다.
- 의미:
훈련 데이터에서의 성능과 테스트 데이터에서의 성능을 비교함으로써 모델이 과적합(overfitting)되었는지 확인할 수 있다.
높은 훈련 정확도와 낮은 테스트 정확도는 과적합 가능성을 의미한다.
- 설명:
joblib.dump를 사용하여 학습된 모델을 파일로 저장한다. 모델 파일은 pipe_1, pipe_2, ..., pipe_10과 같은 형식으로 저장된다. - 의미:
각 주차별로 학습된 모델을 저장하여 추후 예측 또는 재학습 시 사용 가능하다. 이 방법은 데이터가 변경되지 않는 한 모델을 재생성할 필요를 없앤다.
이 코드는 랜덤포레스트 모델을 이용하여 주가 상승/하락을 예측하는 머신러닝 모델을 학습하고 저장하는 과정을 자동화한 예제이다. 각 주차별 데이터를 독립적으로 학습하여 총 10개의 예측 모델을 생성한다. 훈련된 모델은 테스트 데이터에서의 정확도를 평가하며, 이를 joblib를 사용해 파일로 저장한다.
- 모델 저장 경로 지정: 학습된 모델을 저장할 디렉토리를 생성하여 파일로 관리.
- 주차별 모델 학습: 10주 동안 데이터를 학습하여 개별적인 모델 생성.
- 훈련 및 테스트 성능 확인: 각 주차의 훈련 및 테스트 정확도를 출력해 성능 평가.
- 모델 저장: joblib 라이브러리를 활용해 모델을 파일로 저장하여 재사용 가능.
이 10개의 모델로 각 주차별 비교를 늘려가면서 예측을 수행하도록 하는 방법을 사용했다.