在建立loss
模型时metrics
,scoring
和keras
有什么区别?它们应该不同还是相同?在典型模型中,我们将所有三个用于GridSearchCV
。
这是使用这三个模型的典型回归模型的快照。
def create_model():
model = Sequential()
model.add(Dense(12, input_dim=1587, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mean_squared_error'])
return model
model = KerasRegressor(build_fn=create_model, verbose=0)
batch_size = [10, 20, 40, 60, 80, 100]
epochs = [10, 50, 100]
param_grid = dict(batch_size=batch_size, epochs=epochs)
grid = GridSearchCV(estimator=model,param_grid=param_grid, scoring='r2' n_jobs=-1)
grid_result = grid.fit(X, Y)
答案 0 :(得分:2)
不,它们都是用于代码中不同目的的不同东西。
您的代码分为两部分。
1)Keras部分:
model.compile(loss='mean_squared_error',
optimizer='adam',
metrics=['mean_squared_error'])
a)loss
:在Compilation section of the documentation here中,您可以看到:
损失函数是模型试图达到的目标 最小化。
因此,它实际上与optimizer
一起用于实际训练模型
b)metrics
:根据documentation:
度量函数类似于损失函数,除了 训练模型时不使用评估指标的结果。
这仅用于报告度量标准,以便使用的(您)可以判断模型的性能。它不会影响模型的训练方式。
2)网格搜索部分:
scoring
:再次检查the documentation
单个字符串或可调用项,用于评估测试集上的预测。
这用于查找您在param_grid
中定义的参数组合,从而给出最佳的score
。
根据您的需求,它们可以很好地(在大多数情况下)有所不同。