반응형
1. 비시계열데이터
(1) 설명
데이터셋을 보통 (훈련셋:검증셋:테스트셋=6:2:2)로 나눈다.
이때 데이터는 보통 랜덤으로 추출한다.
(2) 코드
from sklearn.model_selection import train_test_split
# test_set의 사이즈를 0.2%로 설정
X_train, X_test, Y_train, Y_test = train_test_split(dataframe[X_colname], dataframe[Y_colname], test_size=0.2, random_state=123)
2. 시계열데이터
(1) 설명
시계열데이터의 경우 랜덤성을 부여하면 안되고 시간축을 유지한다.
과거부터 데이터부터 train,validation,test 순으로 비율을 나눈다
* 주의할점
test set을 비시계열 데이터처럼 한번에 선정 할 경우 train set에서 멀어질 수록 정확도가 떨어질 수 있다.
따라서 train set과 가까운 데이터부터 예측하고, 예측한데이터를 다시 train셋에 추가시켜서 그 다음 데이터를 예측하는 식으로 점진적으로 test set을 구성한다.
(2) 코드
<example>
raw_fe
raw_train = raw_fe.loc[raw_fe.index < '2012-07-01',:]
raw_test = raw_fe.loc[raw_fe.index >= '2012-07-01',:]
print(raw_train.shape, raw_test.shape)
(13128, 29) (4416, 29)
반응형