如何在Keras中实现Sklearn Metric作为度量?

use*_*540 2 python machine-learning scikit-learn keras

尝试谷歌搜索,但无法找到如何实现像kehen kappa,roc,f1score中的Sklearn指标作为不平衡数据的指标.

如何在Keras中实现Sklearn Metric作为度量?

Man*_*ngo 5

Keras和Sklearn中的度量标准意味着不同的东西.

在Keras中,指标几乎与损失相同.它们在每个批次结束时的训练期间被调用,并且每个时期用于报告和记录目的.使用示例是丢失'mse',但您仍然希望看到'mae'.在这种情况下,您可以将"mae"作为指标添加到模型中.

在Sklearn中,度量函数根据定义"度量模块实现为特定目的评估预测误差的函数"应用于预测.虽然存在重叠,但Sklearn的统计函数不适合Keras中度量的定义.Sklearn指标可以返回两个维度大于1的浮点数组,数组,二维数组.预测方法在Keras中没有这样的对象.

回答你的问题:
这取决于你想要触发的地方:

  1. 每个批次或每个纪元的结束
    您可以编写在批处理结束时触发的自定义回调.
  2. 预测之后
    这似乎更容易.让Keras预测整个数据集,捕获结果,然后将y_true和y_pred数组提供给相应的Sklearn指标.