python - 马修斯相关性引发除零错误
问题描述
我正在使用经过训练的模型对一些样本(类数: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 出于某种原因。我仔细检查了预测和训练阶段,但没有发现错误。
解决方案
推荐阅读
- powershell - Powershell、提取存档和子目录
- javascript - 如何让 JavaScript 事件监听器检测动态添加的复选框事件
- nestjs - 在 Guard 中访问请求的原始正文?
- c# - 如何在 xamarin 中以离线模式使用 Firebase?
- javascript - 无法在不同的域上设置 cookie
- ios - react-native 警报错误“尝试呈现 UIAlertController
- html - 列和网格的响应式 flexbox 列表
- javascript - 如何将字符串转换为数字javascript
- bootstrap-4 - 使用 Bootstrap 4 在导航栏中创建切换搜索框
- regex - 正则表达式测试函数。可视化代码