- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑具有以下混淆矩阵的三类分类问题。
cm_matrix =
predict_class1 predict_class2 predict_class3
______________ ______________ ______________
Actual_class1 2000 0 0
Actual_class2 34 1966 0
Actual_class3 0 0 2000
Multi-Class Confusion Matrix Output
TruePositive FalsePositive FalseNegative TrueNegative
____________ _____________ _____________ ____________
Actual_class1 2000 34 0 3966
Actual_class2 1966 0 34 4000
Actual_class3 2000 0 0 4000
我用过的公式是:
Accuracy Of Each class=(TP ./total instances of that class)
(公式基于此处的答案:Individual class accuracy calculation confusion)
Sensitivity=TP./TP+FN ;
它在Matlab中的实现是:
acc_1 = 100*(cm_matrix(1,1))/sum(cm_matrix(1,:)) = 100*(2000)/(2000+0+0) = 100
acc_2 = 100*(cm_matrix(2,2))/sum(cm_matrix(2,:)) = 100*(1966)/(34+1966+0) = 98.3
acc_3 = 100*(cm_matrix(3,3))/sum(cm_matrix(3,:)) = 100*(2000)/(0+0+2000) = 100
sensitivity_1 = 2000/(2000+0)=1 = acc_1
sensitivity_2 = 1966/(1966+34) = 98.3 = acc_2
sensitivity_3 = 2000/2000 = 1 = acc_3
问题 1) 我的每个类别的准确性公式是否正确?为了计算每个单独类别的准确性,比如对于正类别,我应该将 TP 放在分子中。同样,对于只有负类的准确性,我应该在公式中的分子中考虑 TN 以提高准确性。同一个公式是否适用于二元分类?我的实现是否正确?
问题 2) 我的灵敏度公式是否正确?那我怎么会得到与个别类(class)准确度相同的答案?
最佳答案
Question1) Is my formula for Accuracy of each class correct?
不,您使用的公式是针对灵敏度(召回率)的。见下文。
For calculating accuracy of each individual class, say for positive class I should take the TP in the numerator. Similarly, for accuracy of only the negative class, I should consider TN in the numerator in the formula for accuracy. Is the same formula applicable to binary classification? Is my implementation of it correct?
准确率是正确分类的实例数与实例总数的比率。 TN,或者被正确识别为不在一个类中的实例数,也是正确分类的实例。你不能简单地将它们排除在外。
准确性通常也仅用于评估所有类的整个分类器,而不是单个类。但是,您可以将精度公式概括为处理单个类,如所做的那样here用于计算多类分类器的平均分类精度。 (另请参阅 referenced article。)
他们为每个类(class)使用的公式是:
如您所见,它与通常的准确性公式相同,但我们只考虑了个别类(class)的 TP 和 TN 分数(分母仍然是观察总数)。将其应用于您的数据集,我们得到:
acc_1 = (2000+3966)/(2000+34+0+3966) = 0.99433
acc_2 = (1966+4000)/(1966+0+34+4000) = 0.99433
acc_3 = (2000+4000)/(2000+0+0+4000) = 1.00000
这至少更直观,因为前两个类有错误分类的实例,而第三个没有。这些措施是否有用是另一个问题。
Question2) Is my formula for sensitivity correct?
是的,灵敏度给出如下:
TP / TP+FN
这是正确识别属于此类的实例与该类实例总数的比率。在二元分类器中,您默认计算正类的敏感度。负类的敏感性是错误率(在维基百科文章中也称为未命中率或假阴性率)并且简单地说:
FN / TP+FN === 1 - Sensitivity
FN无非就是负类的TP! (TP 的含义同样是相反的。)因此很自然地像您所做的那样将其扩展到所有类。
Then how come I am getting same answer as individual class accuracies?
因为您对两者使用相同的公式。
看看你的混淆矩阵:
cm_matrix =
predict_class1 predict_class2 predict_class3
______________ ______________ ______________
Actual_class1 2000 0 0
Actual_class2 34 1966 0
Actual_class3 0 0 2000
1级的TP显然是2000
cm_matrix(1,1)
FN 是该行中其他两列的总和。所以TP+FN是第1行的和
sum(cm_matrix(1,:)
这正是您用于计算准确性的公式。
acc_1 = 100*(cm_matrix(1,1))/sum(cm_matrix(1,:)) = 100*(2000)/(2000+0+0) = 100
关于classification - 计算多类分类的准确度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60725812/
由于我正在为 iPhone 进行开发,所以我刚刚购买了 iPhone 4 来测试我的应用程序,该应用程序需要测量我的位置坐标。我的 iPhone 上没有任何互联网(3GS、GPRS 或其他...),问
我正在尝试构建一个正则表达式,对于“人类导航的浏览器”的User-Agent:计算结果为 true,但对于机器人则为 false。不用说,匹配不会精确,但如果在 90% 的情况下都能正确匹配,那就足够
我将使用 Python 中的 OpenCV 和 pytesseract 的 OCR 从图片中提取文本。我有这样一张图片: 然后我编写了一些代码来从该图片中提取文本,但它没有足够的准确性来正确提取文本。
我正在尝试使用 vars 学习向量自回归模型R 中的包。这个包没有任何方法来衡量返回模型的准确性。 具体来说,我想使用 accuracy 中定义的 MASE来自 forecast 的函数R 中的包,以
我的工作是计划使用UIMA集群运行文档以提取命名实体,而不提取命名实体。据我了解,UIMA打包的NLP组件很少。我已经测试GATE一段时间了,对此相当满意。在普通文本上还可以,但是当我们通过一些代表性
我正在使用 libSVM(带有线性内核)训练和交叉验证(10 倍)数据。 数据由 1800 个 fMRI 强度体素组成,表示为单个数据点。svm-train 的训练集文件中约有 88 个数据点。 训练
我正在运行一个很大的单元测试列表,这些单元测试正在检查各种不同的类获取和设置。我遇到了一些错误,因为我的测试运行太快?!? 举个简单的例子,单元测试从模拟一个带有评论的博客开始; Blog b = n
我正在进行一项实验,其目标是将脑电图时间序列数据分为 3 类。然而,每当我进行训练时,我的损失都是 NaN,准确度是 0.0。 我的数据有 150 步长,有 4 个 channel 。全部归一化在 0
我已经编写了一个检测 IBeacons 的应用程序(swift,IOS)。虽然我可以正确检测到另一部 iPhone 的 RSSI、准确性和接近度,但在检测到我的信标 (Qualcomm) 时,它会被发
我有包含两列的 csv 文件: category, description 文件中有 1030 个类别,只有大约 12,600 行 我需要获得一个文本分类模型,并根据这些数据进行训练。我使用 kera
问题描述 我正在阅读 François Chollet ( publisher webpage , notebooks on github ) 的“Python 中的深度学习”。复制第 6 章中的示例
我对深度学习非常陌生:我正在 Udemy 上学习深度学习类(class)。一旦我执行我的代码,它会说: ValueError:模型未配置为计算准确性。您应该将 metrics=["accuracy"]
我是一名优秀的程序员,十分优秀!