Подскажите, пожалуйста, можно ли поменять скоринг на sklearn.model_selection.cross_val_score
? Он возвращает отрицательное значение mean_absolute_percentage_error
независимо от моего выбора в оценщике. Например, если я выберу metrics=['mean_absolute_error']
, он будет изменен во время обучения ИНС, но cross_val_score
все равно вернет отрицательное значение mean_absolute_percentage
.
Мой код:
def create_network():
model = models.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(X.shape[1],)))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(1))
model.compile(optimizer='rmsprop',
loss='mse',
metrics=['mean_absolute_error'])
return model
from keras.wrappers.scikit_learn import KerasRegressor
neural_network = KerasRegressor(build_fn=create_network,
epochs=20,
batch_size=10,
verbose=1)
X=feature_normalization(X)[0]
from sklearn.model_selection import cross_val_score
scores = cross_val_score(neural_network, X, y, cv=4)
print ('Scores:',scores)
print ('Average score:',np.average(scores))
Результатов:
Epoch 20/20
380/380 [==============================] - 0s 82us/step - loss: 18.5750 - mean_absolute_error: 2.9808
126/126 [==============================] - 0s 124us/step
Scores: [-27.60875144 -15.73322312 -35.57359647 -21.53566427]
Average score: -25.112808823950544