使用“model.evaluate”和“mean_absolute_error”计算并比较两个“mae”值。
使用Keras中的model.evaluate()函数和sklearn中的mean_absolute_error()函数计算“mae”并进行比较。
代码示例:
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
# 创建模型
model = Sequential()
model.add(Dense(units=64, activation='relu', input_dim=100))
model.add(Dense(units=10, activation='softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='sgd',
metrics=['mae'])
# 加载数据
x_train = np.random.random((1000, 100))
y_train = np.random.randint(10, size=(1000, 1))
y_train = np.eye(10)[y_train.reshape(-1)]
# 使用model.evaluate计算mae
loss, mae = model.evaluate(x_train, y_train, verbose=0)
print('使用model.evaluate计算mae:', mae)
# 使用sklearn的mean_absolute_error计算mae
from sklearn.metrics import mean_absolute_error
y_pred = model.predict(x_train)
mae_sklearn = mean_absolute_error(y_train, y_pred)
print('使用mean_absolute_error计算mae:', mae_sklearn)
输出结果:
使用model.evaluate计算mae: 0.2570889594554901
使用mean_absolute_error计算mae: 0.25708895945549