sklearn.model_selection.cross_val_score возвращает mean_absolute_percentage_error независимо от того, что я выбираю в оценщике - PullRequest
0 голосов
/ 06 мая 2020

Подскажите, пожалуйста, можно ли поменять скоринг на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...