У меня есть набор данных, который выглядит следующим образом:
var1(t-1) var2(t-1) var3(t-1) var4(t-1) var5(t-1) var6(t-1) \
1 0.129779 0.352941 0.245902 0.527273 0.666667 0.002290
2 0.148893 0.367647 0.245902 0.527273 0.666667 0.003811
3 0.159960 0.426471 0.229508 0.545454 0.666667 0.005332
4 0.182093 0.485294 0.229508 0.563637 0.666667 0.008391
5 0.138833 0.485294 0.229508 0.563637 0.666667 0.009912
var7(t-1) var8(t-1) var1(t)
1 0.000000 0.0 0.148893
2 0.000000 0.0 0.159960
3 0.000000 0.0 0.182093
4 0.037037 0.0 0.138833
5 0.074074 0.0 0.109658
Затем я использую keras для прогнозирования значений вывода в момент времени t
.
import keras.models as k_models
import keras.layers as k_layers
# design network
model = k_models.Sequential()
model.add(k_layers.LSTM(50, input_shape=(train_X.shape[1], train_X.shape[2])))
model.add(k_layers.Dense(1))
model.compile(loss='mae', optimizer='adam')
history = model.fit(train_X, train_y, epochs=50, batch_size=72, validation_data=(test_X, test_y), verbose=2, shuffle=False)
Скажем, я у меня есть десять наборов, похожих на этот, каждый из которых представляет разные продукты, а результат - продажи.
Мне нужно попытаться увеличить продажи, варьируя var1 (t) для каждого продукта. У меня есть некоторые неравенства, например, var1 (t) не может быть больше 0,2 для продукта 1, а сумма двух не может превышать 0,3