2017-09-08 6 views
0

단 변량 시계열 데이터가 있습니다. 나는 다단계 예측을하고 싶다.MLP (multi-layer-perceptron)를 사용하는 단 변량 시계열 예측

시계열 한 단계 예측을 설명하는 this 질문을 발견했습니다. 하지만 다단계 예측에 관심이 있습니다. 나는 앞서 3 단계 예측을 할

time value 
    ---- ------ 
    t1  a1 
    t2  a2 
    .......... 
    .......... 
    t100 a100. 

한다고 가정처럼

예컨대 일반적으로 단 변량 시계열 데이터 보인다. 은 내가

1 층은 50 개 뉴런을 가지고 있으며, 6 개 입력을 기대 백엔드로 keras 및 tensorflow을 사용하고

TrainX     TrainY 
[a1,a2,a3,a4,a5,a6] -> [a7,a8,a9] 
[a2,a3,a4,a5,a6,a7] -> [a8,a9,a10] 
[a3,a4,a5,a6,a7,a8] -> [a9,a10,a11] 
..................  ........... 
..................  ........... 

처럼 내 문제를 프레임 수 있습니다. 은닉층 30 개 뉴런 출력층 3 개 뉴런 즉 (출력 세 시계열 값)를 갖고 보유

model = Sequential() 
model.add(Dense(50, input_dim=6, activation='relu',kernel_regularizer=regularizers.l2(0.01))) 
model.add(Dense(30, activation='relu',kernel_regularizer=regularizers.l2(0.01))) 
model.add(Dense(3)) 
model.compile(loss='mean_squared_error', optimizer='adam') 

model.fit(TrainX, TrainY, epochs=300, batch_size=16) 

내 모델 내 입력 A101, A102, A103 때 A107, A108, A109 를 예측할 수있을 것이다 , a104, a105, a106 이것은 유효한 모델입니까? 내가 놓친 게 있니?

답변

1

해당 모델이이를 수행 할 수도 있지만 LSTM 레이어 (시퀀스의 반복 네트워크)를 사용하면 도움이됩니다.

#TrainX.shape = (total of samples, time steps, features per step) 
#TrainX.shape = (total of samples, 6, 1) 

model.add(LSTM(50,input_shape=(6,1),return_sequences=True, ....)) 
model.add(LSTM(30,return_sequences=True, ....)) 
model.add(LSTM(3,return_sequences=False, ....)) 

예상되는 값의 가능한 범위로 결과를 제한하는 활성화 기능이 누락되었을 수 있습니다.

0에서 1 (activation='sigmoid') 또는 -1에서 1 (activation='tanh') 사이의 값으로 작업하는 경우가 많습니다.
이렇게하면 입력과 출력이 동일하기 때문에 입력 값을이 값으로 제한해야합니다.

관련 문제