【发布时间】:2012-10-10 10:08:49
【问题描述】:
我编写了一个分类器(高斯混合模型)来对五种人类行为进行分类。对于每个观察,分类器都会计算属于某个集群的后验概率。
我想用阈值来评估我的系统的性能,阈值从 0 到 100。对于每个阈值,对于每个观察,如果属于某个集群的概率大于阈值,我接受结果分类器,否则我将其丢弃。
对于每个阈值,我计算真阳性、真阴性、假阳性、假阴性的数量。
比我计算两个函数:敏感性和特异性为
sensitivity = TP/(TP+FN);
specificity=TN/(TN+FP);
在matlab中:
plot(1-specificity,sensitivity);
拥有 ROC 曲线。但结果不是我所期望的。
这是改变一个动作的阈值的丢弃、错误、纠正、敏感性和特异性的函数图。
这是一个动作的ROC曲线图
这是同一动作的 ROC 曲线的主干
我错了,但我不知道在哪里。也许我做错了FP,FN,TP,TN的计算,特别是当分类器的结果小于阈值时,所以我有一个丢弃。有丢弃时我必须增加什么?
【问题讨论】:
-
关心显示您的一些代码和数据...很难知道最终产品发生了什么。作为旁注,您展示的第一个数字看起来不正确(不知道机械原理,很难说 sens 的任何一个规范是否错误)
-
你可以看看下面的例子。 saedsayad.com/flash/RocGainKS.html 这个动画展示了如何计算不同阈值的 TPR 和 FPR 并绘制它。
标签: matlab classification threshold false-positive roc