- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在对现有数据框执行 k-fold XV,我需要获得 AUC 分数。问题是 - 有时测试数据只包含 0,而不包含 1!
我尝试使用 this例如,但数字不同:
import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 0, 0])
y_scores = np.array([1, 0, 0, 0])
roc_auc_score(y_true, y_scores)
我得到这个异常:
ValueError: Only one class present in y_true. ROC AUC score is not defined in that case.
在这种情况下是否有任何解决方法可以使其正常工作?
最佳答案
您可以使用 try-except 来防止错误:
import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 0, 0])
y_scores = np.array([1, 0, 0, 0])
try:
roc_auc_score(y_true, y_scores)
except ValueError:
pass
现在,如果只有一类,您还可以将 roc_auc_score
设置为零。但是,我不会这样做。我猜你的测试数据是高度不平衡的。我建议改用分层 K 折,这样您至少可以同时使用这两个类。
关于python - roc_auc_score - y_true 中只有一类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139163/
编辑:请参阅此问题的末尾以获取解决方案 TL;DR:我需要找到一种方法来计算每批处理的标签分布,并更新学习率。有没有办法访问当前模型的优化器来更新每批处理的 learning_rate? 下面是如何计
我想根据y_test和pred_test得到一个混淆矩阵,但是提出了一个问题“At least one label specified must be in y_true”,我不知道为什么 metri
我正在对现有数据框执行 k-fold XV,我需要获得 AUC 分数。问题是 - 有时测试数据只包含 0,而不包含 1! 我尝试使用 this例如,但数字不同: import numpy as np
假设我有一个这样的模型。 M1和M2是连接模型左右两侧的两层。 The example model: Red lines indicate backprop directions 在训练过程中,我希望
我有一个具体问题,但在 stackoverflow 上没有找到答案。 首先,我想向您概述我的问题。 我正在使用 CNN 和图像进行二元分类。对于每张图像,我在 csv 文件中都有与其关联的信息。 为了
我正在 Keras 中实现三元组损失函数。通常,损失函数将具有基本事实的预测值作为参数。但是 triplet loss 不使用标签,只使用输出。我试着用一个参数编写函数: def triplet_lo
是否有可能从 Keras 中的 y_true 和 y_pred 张量得到真负数? 我知道我们可以从以下代码中得到真阳性: true_positive = K.sum(y_true*y_pred) 如何
我正在使用此 data 实现 SVM 项目 这是我提取特征的方法: import itertools import matplotlib.pyplot as plt import pandas as
我手头有一个问题,它优化了一个不是 y_pred 和 y_true 函数的损失函数。在浏览了 Keras 文档后,我发现所有自定义损失函数必须是 y_pred 和 y_true 的函数。 有没有其他方
我正在使用 Scikit 学习包装器 KerasClassifier 通过 RandomizedSearchCV 对我的 LSTM 模型进行超参数调整。以下是我正在做的事情的总结:1. xtrain的
我收到这个警告 UndefinedMetricWarning: No positive samples in y_true, true positive value should be meaning
我对深度学习真的很陌生。我想做一个任务:根据测试数据评估模型并计算预测混凝土强度和实际混凝土强度之间的均方误差。您可以使用 Scikit-learn 中的 mean_squared_error 函数。
我正在编写一个 keras 自定义损失函数,其中我想将以下内容传递给该函数: y_true、y_pred(这两个无论如何都会自动传递)、模型内部层的权重和一个常量。 像下面这样: def Custom
我想在 Keras 中实现我的自定义指标。根据文档,我的自定义指标应定义为一个函数,该函数接受两个张量 y_pred 和 y_true 作为输入,并返回单个张量值。 但是,当优化运行时,我对这些张量
我试图在每个纪元结束时获取 y_true 和 y_pred。我使用 fit_generator 来训练我的模型。我试图找到每个时代之后的特异性。 class LossHistory(keras.cal
我目前有一个多输出模型 model=Model(inputs=x1, outputs=[y1,y2]) model.compile((optimizer='sgd', loss=[cutom_loss
我正在研究多标签分类器。我有很多输出标签 [1, 0, 0, 1...],其中 1 表示输入属于该标签,0 表示其他。 在我的例子中,我使用的损失函数是基于 MSE 的。我想以一种方式更改损失函数,即
def charbonnier(I_x, I_y, I_t, U, V, e): loss = K.sqrt(K.pow((U*I_x + V*I_y + I_t), 2) + e)
我搜索了谷歌,看到了一些关于这个错误的 StackOverflow 帖子。他们不是我的情况。 我使用 keras 来训练一个简单的神经网络,并对拆分的测试数据集进行一些预测。但是使用时roc_auc_
我想定义自定义损失,但似乎无法将 keras 张量 K.sum(y_true) 与单个值 0 进行比较。 def custom_loss_keras(y_true, y_pred): if(K
我是一名优秀的程序员,十分优秀!