- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个多标签分类器生成的结果,我想使用 sklearn.metrics
计算微观和宏观精度、召回率和 F1 分数在 python 中,但不太清楚如何。
我有两个二元稀疏矩阵,dataOUT
和dataGT
分别表示同一数据集的分类结果和基本事实。两个矩阵的大小均为 nLabels X nSamples
。每个样本都可以标记一个或多个标签,因此 dataOUT[i,j]
是 1
如果分类器标记为 j
第一个样本 i
th 标签,和 0
否则。
对于任何给定的类 i
,我可以通过提取 i
轻松计算常规精度、召回率和 F 分数来自 dataOUT
的第 3 行和dataGT
可以将它们喂给sklearn.metrics.precision_recall_fscore_support
,例如像这样的东西:
import numpy as np
from sklearn.metrics import precision_recall_fscore_support
iLabel = 5 # some specific label
yOUT = np.asarray(dataOUT[iLabel,:].todense()).reshape(-1)
yGT = np.asarray(dataGT[iLabel,:].todense()).reshape(-1)
ps,rs,fs,ss = precision_recall_fscore_support(yGT,yOUT)
p = ps[1] # Precision for iLabel
r = rs[1] # Recall for iLabel
f1 = fs[1] # F1 for iLabel
但是我如何计算整个数据集的微观和宏观测量,即如何获得单个微观(P,R,F)和单个宏观(P,R,F)三元组(dataOUT,dataGT)
配对而不是分别为每个标签?
谢谢!
最佳答案
scikit-learn 中的大多数指标都支持多标签参数。 sklearn.metrics.precision_recall_fscore_support如果文档说:
1d array-like, or label indicator array / sparse matrix
你可以用整个 y 矩阵和真实矩阵来提供度量。但这些矩阵必须具有形状 [n_samples, n_labels],换句话说,该矩阵的每一行必须对应于同一样本的一组标签,每列必须对应于某个标签。所以你应该转置你的矩阵。
ps,rs,fs,ss = precision_recall_fscore_support(dataGT.T, dataOUT.T)
关于python - 如何使用 sklearn.metrics 计算多标签分类任务的微观/宏观度量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486596/
我需要 #define 方面的帮助来执行以下操作: for (int i = 0; i label1.text = (东西) 当 i == 2--> label2.text = (东西)
我正在尝试从 proc macro workshop 中实现构建器模式我正在创建一个 proc 宏,它解析一个结构,提取它的 name、field_names 和 field_types。它应该重现结
给定: fn main() { println!("{0} {0:?}", 10); } 我得到: main.rs:2:27: 2:29 error: argument redeclared
我想使用带有 String 作为第一个参数的 format! 宏,但是因为宏需要一个字符串文字,所以我无法向它传递任何不同的东西. 我想这样做是为了将字符串动态添加到当前字符串中,以便在 View 引
我正在寻找一种方法来链接 Rust 中 try! 宏的使用,并找到了 this pull request that implements the ? operator . 它好像已经被合并了,但我似乎
我正在使用 Rust 稳定版 1.30 和 Relm。我想出了如何设置默认窗口大小,但不知道如何设置图标,至少在 View 中是这样!宏。 这是我的main.rs extern crate gtk;
我希望通过 format! 宏格式化右对齐 float ,并且符号始终可见。使用 syntax specification我设计了以下格式: format!("{:>10+.1}", 23.3434)
我是一名优秀的程序员,十分优秀!