小编abh*_*bhi的帖子

tf.nn.ctc_greedy_decoder 如何在 tensorflow 中生成输出序列?

给定 logits(从 RNN/Lstm/Gru 以时间主要格式输出,即 (maxTime, batchSize, numberofClasses)),ctc 贪婪解码器如何进行解码以生成输出序列。

我在其网页https://www.tensorflow.org/api_docs/python/tf/nn/ctc_greedy_decoder上发现了“对输入(最佳路径)中给出的对数进行贪婪解码” 。

一种可能性是在每个时间步选择具有最大值的输出类,折叠重复并生成相应的输出序列。是 ctc 贪婪解码器在这里做的还是别的什么?使用示例进行解释将非常有用。

python tensorflow

2
推荐指数
1
解决办法
2045
查看次数

解释不平衡数据集上的 AUC、准确度和 f1 分数

我试图了解在数据集不平衡的情况下,AUC 为何是比分类准确性更好的指标。
假设数据集包含 3 个类别的 1000 个示例,如下所示:

a = [[1.0, 0, 0]]*950 + [[0, 1.0, 0]]*30 + [[0, 0, 1.0]]*20
Run Code Online (Sandbox Code Playgroud)

显然,这个数据是不平衡的。
一个幼稚的策略是预测属于第一类的每个点。
假设我们有一个具有以下预测的分类器:

b = [[0.7, 0.1, 0.2]]*1000
Run Code Online (Sandbox Code Playgroud)

使用列表中的真实标签a和列表中的预测b,分类精度为 0.95。
因此,人们会认为该模型确实在分类任务上表现良好,但这并不是因为该模型正在预测一个类别中的每个点。
因此,建议使用 AUC 指标来评估不平衡的数据集。如果我们使用 TF Keras AUC
指标 预测 AUC ,我们会得到 ~0.96。 如果我们通过设置 来使用 sklearn f1-score指标来预测 f1-score ,我们会得到 0.95。
b=[[1,0,0]]*1000

现在我有点困惑,因为所有指标(准确度、AUC 和 f1-score)都显示出很高的价值,这意味着该模型非常擅长预测任务(但这里的情况并非如此)。

我在这里遗漏了哪一点以及我们应该如何解释这些价值观?
谢谢。

python scikit-learn auc multiclass-classification tensorflow2.0

2
推荐指数
1
解决办法
1548
查看次数