如何在Keras中实现Sklearn指标作为评估指标?

我在谷歌上搜索过,但没有找到如何在Keras中将Sklearn的指标(如Cohen Kappa、ROC、F1分数)作为不平衡数据的评估指标实现的方法。

如何在Keras中实现Sklearn指标作为评估指标?


回答:

Keras和Sklearn中的指标含义不同。

在Keras中,指标几乎与损失函数相同。它们在训练过程中会在每个批次和每个周期结束时被调用,用于报告和记录目的。例如,你可以使用’mse’作为损失函数,但你可能还想查看’mae’。在这种情况下,你可以将’mae’作为评估指标添加到模型中。

在Sklearn中,指标函数是根据预测结果应用的,定义为“指标模块实现了用于特定目的评估预测误差的函数”。虽然有一定的重叠,但Sklearn的统计函数并不符合Keras中指标的定义。Sklearn的指标可以返回浮点数、数组、二维数组(两个维度都大于1)。在Keras中,预测方法没有这样的对象。

回答你的问题:
这取决于你想在哪里触发:

  1. 每个批次或每个周期结束时
    你可以编写一个自定义回调函数,在批次结束时触发。
  2. 预测之后
    这似乎更简单。让Keras对整个数据集进行预测,捕获结果,然后将y_true和y_pred数组输入到相应的Sklearn指标中。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注