微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

马修斯相关性提高除以零误差

如何解决马修斯相关性提高除以零误差

我正在使用一个训练模型对一些样本(类数:117)进行分类,该模型输出一个形状为 n_samples x n_classes 的矩阵。每一行是一个样本的输出,每一列是我模型输出层中一个神经元给出的输出。类似的东西:

[[0.3,-0.47,0.1],#sample 1
 [0.124,0.442,-0.111],#sample 2
  ... # and so on
]

然后计算最终预测:

pred_labels = np.argmax(predictions,axis=1).flatten()

然后我使用 sklearn.metrics.matthews_corrcoef 计算 matthews 相关性:

matthews = mattews_corrcoef(true_labels,pred_labels)

这是一个警告:

invalid value encountered in double_scalars

在 SO 中做了一些研究,这主要是由除以零操作引起的。然后我设置 np.seterr('raise) 来调试这个操作在哪里,然后我到达这一行:

--> 900 mcc = cov_ytyp / np.sqrt(cov_ytyt * cov_ypyp)

这让我相信这个操作的分母出于某种原因是 0。我仔细检查了预测和训练阶段,但没有发现错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。