Я всегда предсказываю отрицательные значения с моей моделью
Я делаю проблему регрессии, и у меня есть 18 функций. Всякий раз, когда я пытаюсь предсказать значения, это всегда дает мне отрицательные значения. Кто-нибудь может помочь?
Я определяю NN
быть этим:
features = Input(shape=(18,))
layer1
X = Dense(1024)(features)
X = BatchNormalization()(X)
X = Dropout(0.1)(X)
X = LeakyReLU(alpha=0.2)(X)
LAYER2
X = Dense(1024)(X)
X = BatchNormalization()(X)
X = Dropout(0.1)(X)
X = LeakyReLU(alpha=0.2)(X)
layer3
X = Dense(1024)(X)
X = BatchNormalization()(X)
X = Dropout(0.1)(X)
X = LeakyReLU(alpha=0.2)(X)
LAYER4
X = Dense(512)(X)
X = BatchNormalization()(X)
X = Dropout(0.1)(X)
X = LeakyReLU(alpha=0.2)(X)
LAYER5
X = Dense(256)(X)
X = BatchNormalization()(X)
X = Dropout(0.1)(X)
X = LeakyReLU(alpha=0.2)(X)
LAYER6
X = Dense(128)(X)
X = BatchNormalization()(X)
X = Dropout(0.1)(X)
X = LeakyReLU(alpha=0.2)(X)
выход
Corr = Dense(1)(X)
model = Model(inputs = features, outputs=Corr)
model.compile(optimizer = 'Sgd', loss=huber_loss, metrics=['mse', 'mae'])
model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=20, batch_size=512, verbose=1)
где потеря Хьюбера:
def huber_loss(y_true, y_pred):
return tf.losses.huber_loss(y_true,y_pred)