- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为我最近准备的数据集计算现成算法的精度和召回率。
这是一个二元分类问题,我希望计算我构建的每个分类器的精度、召回率和 f 分数。
test_x, test_y, predics, pred_prob,score = CH.buildBinClassifier(data,allAttribs,0.3,50,'logistic')
构建分类器方法基本上是构建一个分类器,拟合训练数据并返回 test_x(测试数据的特征)、test_y(真实标签)、predict(分类器做出的预测)、red_prob(预测概率LogisiticRegression.predict_proba
方法)。
下面是计算precision-recall的代码:
from sklearn.metrics import precision_recall_curve
pr, re, _ = precision_recall_curve(test_y,pred_prob,pos_label=1)
pr
(array([ 0.49852507, 0.49704142, 0.49554896, 0.49702381, 0.49850746,
0.5 , 0.5015015 , 0.50301205, 0.50453172, 0.50606061,
. . . . . . .
0.875 , 1. , 1. , 1. , 1. ,
1. , 1. , 1. , 1. ])
re
array([ 1. , 0.99408284, 0.98816568, 0.98816568, 0.98816568,
0.98816568, 0.98816568, 0.98816568, 0.98816568, 0.98816568,
. . . . . . .
0.04142012, 0.04142012, 0.03550296, 0.0295858 , 0.02366864,
0.01775148, 0.01183432, 0.00591716, 0. ]))
我不明白为什么是精度和召回数组?他们不应该只是单个数字吗?
既然精度计算为 tpf/(tpf+fpf)
并且类似地记忆为定义?
我知道通过以下代码计算平均精确召回率,但不知何故看到数组而不是 tpf、fpf、精确率和召回率让我想知道发生了什么。
from sklearn.metrics import precision_recall_fscore_support as prf
precision,recall,fscore,_ = prf(test_y,predics,pos_label=1,average='binary')
编辑:但是如果没有 average
和 pos_label
参数,它会报告每个类的精度。有人可以解释这两种方法的输出之间的区别吗?
最佳答案
来自 precision_recall_curve 的 sklearn 文档:
Compute precision-recall pairs for different probability thresholds.
逻辑回归等分类器模型实际上并不输出类标签(如“0”或“1”),它们输出概率(如 0.67)。这些概率告诉您输入样本属于特定类别的可能性,例如正(“1”)类别。但是您仍然需要选择一个概率阈值,以便算法可以将概率 (0.67) 转换为类别 ("1")。
如果您选择阈值 0.5,则所有计算概率大于 0.5 的输入样本都将被分配到正类。如果您选择不同的阈值,您会得到分配给正类和负类的不同数量的样本,因此会产生不同的准确率和召回率分数。
关于python - sklearn.metrics.precision_recall_curve : Why are the precision and recall returned arrays instead of single values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165273/
我尝试使用 Keras Tuner 进行超参数优化: import keras from kerastuner import HyperModel from kerastuner.tuners imp
它有一些不错的地方(比如它封装了圈复杂度的概念),我想知道是否有人在“现实生活”中使用过它。如果是这样,你有什么经验?它是衡量规模的有用指标吗(相对于 KLOC 或功能点)? 对于那些想知道我在抽什么
我有一个启用了 Actuator 和 Hystrix 的 spring-boot-app。 Spring-Boot-版本:1.3.1.RELEASE org.springframework.
我在尝试使用 metrics for graphite 时收到 carbon 错误: [listener] invalid line received from client HOST:PORT, i
尝试使用谷歌搜索,但找不到如何在 keras 中实现像 cohen kappa、roc、f1score 这样的 Sklearn 指标作为不平衡数据的指标。 如何在 Keras 中将 Sklearn M
Keras 2.x 取消了我需要使用的一堆有用指标,因此我将旧的metrics.py 文件中的函数复制到我的代码中,然后按如下方式包含它们。 def precision(y_true, y_pred)
在某些情况下, tf.metrics.auc 产生的值与 sklearn.metrics.roc_auc_score 非常不同。 我无法确定这种情况的特殊性是什么,但我能够获得一个可重现的例子: 代码
我正在使用 sklearn,我注意到 sklearn.metrics.plot_confusion_matrix 的参数和 sklearn.metrics.confusion_matrix不一致。 p
我正在使用 Prometheus(prometheus-operator Helm chart)进行内存监控。 在调查值时,我注意到内存使用量 ( container_memory_working_s
由于 codahale-metrics 已移至 io. 下。我们代码中的一个实现使用了类: import com.codahale.metrics.JmxReporter 与依赖版本 3.2.2 现在
为什么有两个不同的属性用于指标报告?是什么让它们与众不同? 如果它们不同,那么何时使用哪一个? 谢谢,阿比 最佳答案 Kafka 使用 2 个库作为其指标: "Yammer" metrics : 这些
我的目标是可视化 vertx 指标 - 例如通过 eventbus 发送的消息计数等。(请考虑以下工具都在我的本地主机上,没有任何东西驻留在单独的机器上) 因此,我使用了 vertx 的 Hawkul
我观察到一件奇怪的事情。 heap.used 随着每次后续的/metrics api 调用而增加。我是唯一使用此应用程序的客户。不知道为什么会发生。有人可以解释一下吗? “堆.已使用”:62495 “
在使用 kubeadm 安装 Kubernetes 后,我试图创建一个水平 pod 自动缩放。 主要症状是kubectl get hpa返回列 TARGETS 中的 CPU 指标作为“未定义”: $
我在 minikube 上启用了 heapster minikube addons start heapster 和自定义指标 minikube start --extra-config kubele
我尝试序列化我的 Map>对象使用 Gson但我收到 JSON 字符串响应。而且我在内部 Map 中有指标值和名称我的代码如下所示: @GetMapping(path = "/showRawKafka
我们正在尝试在台风kubernetes集群上启动metricbeat。但是由于以下原因,它在启动后无法获得一些特定于Pod的事件,例如重新启动等 对应的metricbeat.yaml代码段 # Sta
我是 k8s 的新手,普罗米修斯。我正在尝试使用 prometheus 收集每个 pod 的指标,但由于错误而无法这样做: API ERROR . { "kind": "Status", "a
我使用 xgboost 进行预测,我的主要代码如下: params={ 'booster':'gbtree', 'object':'binary:logistic', 'ear
来自OTel Metrics specification计数器是用于衡量已完成请求数的推荐工具。这稍后可用于计算吞吐率。 Example uses for Counter: count the num
我是一名优秀的程序员,十分优秀!