Вычислите mse после модели keras.Предсказание выглядит неправильно - обновленный необходимо сначала изменить форму массива - PullRequest
0 голосов
/ 22 мая 2019

Итак, я бы хотел вычислить R2 = 1 - residual_ss/y_ss после кераса.Я использовал прогноз model.predict() для вычисления residual_ss.Тем не менее, residual_ss намного больше, чем y_ss, что приводит к отрицательному значению R2.Так как residual_ss = n*mse и mse также являются функцией потерь, код показывает вычисление для mse после модели:


import keras
keras.__version__
from keras.datasets import boston_housing
import pandas as pd
import numpy as np

(train_data, train_targets), (test_data, test_targets) =  boston_housing.load_data()
mean = train_data.mean(axis=0)
train_data -= mean
std = train_data.std(axis=0)
train_data /= std

test_data -= mean
test_data /= std

from keras import models
from keras import layers

def build_model():
    # Because we will need to instantiate
    # the same model multiple times,
    # we use a function to construct it.
    model = models.Sequential()
    model.add(layers.Dense(64, activation='relu',
                           input_shape=(train_data.shape[1],)))
    model.add(layers.Dense(64, activation='relu'))
    model.add(layers.Dense(1))
    model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
    return model

model=build_model()
model.fit(train_data,  train_targets, epochs=200, batch_size=32)

#try to get mse
y_pred = model.predict(train_data)
mse=np.mean((train_targets-y_pred)*(train_targets-y_pred))
print(mse)

Вот последние 3 эпохи и mse в конце

Epoch 198/200
404/404 [=======] - 0s 17us/step - loss: 3.4695 - mean_absolute_error: 1.3338
Epoch 199/200
404/404 [=======] - 0s 22us/step - loss: 3.5412 - mean_absolute_error: 1.3260
Epoch 200/200
404/404 [=======] - 0s 20us/step - loss: 3.2775 - mean_absolute_error: 1.2858
162.25934358457062

Я использую только train_data и train_targets здесь.Почему я получил mse, даже не близкий к потере (mse), зарегистрированной в каждой эпохе?Так что прогноз не близок к цели.Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...