这里是 python 新手,对 Keras 顺序模型构建有一系列问题,得到不同的方法,具体取决于我如何计算它们。
将相关代码粘贴到下面,问题随之而来。
def regression_model():
model = Sequential() # build an instance of a model
model.add(Dense(10, activation = 'relu', input_shape=(n_cols,)))
model.add(Dense(1)) # Output layer with 1 node
model.compile(optimizer='adam', loss = 'mean_squared_error', metrics=['accuracy']) return model
X_train, X_test, y_train, y_test = train_test_split(predictors, target, test_size=0.3) model = regression_model() # call the function to create a model
model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs = 50)
scores = model.evaluate(X_test, y_test, verbose=0)
_y_test = model.predict(X_test)
from sklearn.metrics import mean_squared_error
mean_square_error = mean_squared_error(y_test.values, _y_test)
print("Mean Squared error by formula: ", mean_square_error)
mean1 = np.mean(mean_square_error)
print("Mean of mean Squared Error by scikit: ", mean1)
mean2=np.mean((y_test.values - _y_test) ** 2)
print("Mean of mean Squared Error by formula: ", mean2)
standard_deviation = np.std(mean_square_error)
关键变量输出:
意思是:882.13
均方误差:119.21
平均值1:119.21
平均值2:516.47
标准偏差:0
问题:
我期望mean1和mean2相同,并且标准差非零。
mean_square_error
是单个数字,因此 mean1
取该数字的平均值,从而返回该数字。
再次强调,由于
mean_square_error
是单个数字,因此它的标准差为零。