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

问题描述

我正在使用一个训练模型对一些样本(类数: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 (将#修改为@)