需要帮助了解计算回归模型中平均误差的不同方法

问题描述 投票:0回答:1

这里是 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

问题:

  1. 为什么mean1和mean2不同
  2. 为什么“mean”与mean1或mean2不同
  3. 为什么 std dev 是 0
  4. 用模型拟合数据时,为什么精度总是显示为0.0000e+00?损失迭代看起来不错。

我期望mean1和mean2相同,并且标准差非零。

python scikit-learn mean
1个回答
0
投票
  1. mean_square_error
    是单个数字,因此
    mean1
    取该数字的平均值,从而返回该数字。

  2. 再次强调,由于

    mean_square_error
    是单个数字,因此它的标准差为零。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.