首页 > 解决方案 > 马修斯相关性引发除零错误

问题描述

我正在使用经过训练的模型对一些样本(类数: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 = 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 出于某种原因。我仔细检查了预测和训练阶段,但没有发现错误。

标签: pythonscikit-learnnlpclassificationtext-classification

解决方案


推荐阅读