- und
Code: Select all
A = model.evaluate(x_test, y_test)
- , wobei pred_test = model.Predict (x_test) die aus meinem Modell erhaltenen Vorhersagen außerhalb der Stichprobe sind
Code: Select all
B = loss(pred_test, y_test)
import keras
import numpy as np
import random as random # for sims and seed setting
random.seed(10)
x = np.random.normal([0, 1, 2], [2,1,4], (200, 3))
y = x[:,0] + 0.01 * np.power(x[:,1], 2) + np.sqrt(np.abs(x[:,2] - 3)) + np.random.normal(0, 1, (200))
y = y[:,np.newaxis]
x_train = x[0:100,:]
y_train = y[0:100,:]
x_test = x[101:200,:]
y_test = y[101:200,:]
# MSE
def MSE(a,b):
return tf.reduce_mean(tf.pow(a - b, 2))
# layers
Inputs_MLP = tf.keras.Input(batch_shape = (100,3), dtype = tf.float32)
Layer1_MLP = tf.keras.layers.Dense(16)(Inputs_MLP)
Outputs_MLP = tf.keras.layers.Dense(1)(Layer1_MLP)
# keras model
model_MLP = tf.keras.Model(Inputs_MLP, Outputs_MLP)
model_MLP.compile(loss = MSE)
history = model_MLP.fit(x = x_train, y = y_train, epochs=5, batch_size = 25)
# evaluation
# out-of-sample
model_MLP.evaluate(x_test, y_test, 100)
# 5.561294078826904
pred_MLP_test = model_MLP.predict(x_test, batch_size = 100)
MSE(pred_MLP_test, y_test)
#
# in-sample
model_MLP.evaluate(x_train, y_train, 100)
# 5.460160732269287
pred_MLP_train = model_MLP.predict(x_train, batch_size = 100)
MSE(pred_MLP_train, y_train)
#
< /code>
Die Bewertung außerhalb der Stichprobe ergibt einmal und auf der anderen Seite 5.561294078826904 5.561294010797092. In diesem Beispiel ist es nur ein kleiner Unterschied, aber es nervt mich immer noch. Auch für ein anderes Beispiel (länger und komplizierter) ist der Unterschied größer. Ich würde mich über jede Hilfe freuen!