나는 N 개의 관측치와 F 특징을 가진 timeseries 데이터 세트를 가지고 있습니다. 모든 기능은 매니페스트 (1) 또는 매니페스트 (0) 중 하나 일 수 있습니다. 그래서 데이터 세트는 다음과 같이 보일 것이다 :keras LSTM timeseries 예측 : 특징 벡터 예측
T F1 F2 F3 F4 F5 ... F
0 1 0 0 1 0 0
1 0 1 0 0 1 1
2 0 0 0 1 1 0
3 1 1 1 1 0 0
...
N 1 1 0 1 0 0
을 나는 관찰 TW에 따라 시간 T + 1에서 매니페스트있는 기능을 예측하는 LSTM 기반 아키텍처를 사용하는 것을 시도하고있다 - W 일부의 폭 T, 시간 창. W = 4 일 경우, LSTM은 예측을하기 위해 과거로 4 타임 스텝을 '본다'. LSTM은 (number_batches, W, F) 형식의 3D 입력을 기대합니다.
이model = Sequential()
model.add(LSTM(128, stateful=True, batch_input_shape=(batch_size, W, F)))
model.add(Dense(F, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
model.fit(x_train, y_train,
batch_size=batch_size, epochs=250, shuffle=False,
validation_data=(x_val, y_val))
나는 데 가장 큰 문제는 이것이다 : 순진 Keras 구현처럼 보일 수 있습니다 전체 데이터 집합 기능 (> 200)의 큰 숫자를 가지고 있으며,이 기능을 발현하는데 상대적으로 드문, 즉 0이 신경망은 모든 값을 0으로 설정하는 것을 단순히 배우므로 고도의 '정확도'를 얻습니다.
본질적으로, 저는 입력 행렬에서 1을 더 중요하게하기 위해 어떤 값으로 가중치를 넣고 싶습니다. 그러나 이것을 Keras에서 어떻게 구현하는지 혼란 스럽습니다. Keras에 sample_weight
옵션이 있다는 것을 알고 있지만 어떻게 작동합니까? 예를 들어이를 구현하는 방법을 알지 못합니다. 이 문제에 대한 합리적인 해결책입니까? 이러한 유형의 문제에 일반적으로 사용되는 옵티 마이저 및 손실 함수는 무엇입니까?
= 1 대신 하나? – DJK