如何使用 SVM 找到 Precision、Recall、Accuracy?
Posted
技术标签:
【中文标题】如何使用 SVM 找到 Precision、Recall、Accuracy?【英文标题】:How to find the Precision, Recall, Accuracy using SVM? 【发布时间】:2013-07-09 12:45:43 【问题描述】:Duplicate calculating Precision, Recall and F Score
我有一个包含文本描述和分类级别(即级别 A 和级别 B)的输入文件。我想编写一个 SVM 分类器来测量精度、召回率和准确率。我看了scikit 和LIBSVM 但我想逐步了解更多信息。
任何示例代码或基本教程都会非常好。感谢您提前提出任何建议。
【问题讨论】:
How to calculate precision, recall and F-score with libSVM in python的可能重复 这是libsvm
的扩展名:csie.ntu.edu.tw/~cjlin/libsvmtools/eval/index.html
【参考方案1】:
这些性能指标很容易从预测标签和真实标签中获得,作为后处理步骤:
-
精度 = TP / (TP+FP)
召回 = TP / (TP+FN)
准确度 = (TP + TN) / (TP + TN + FP + FN)
其中TP、FP、TN、FN分别为真阳性、假阳性、真阴性和假阴性的数量。
【讨论】:
谢谢 Marc,但我已经学习了一些基础知识,但我需要更具体的信息逐步实施过程。 步骤是:训练一个 SVM(确保正确调整它),预测测试集,根据预测标签和真实标签计算性能度量。 你能给我推荐任何带有代码 sn-ps 的教程或书籍吗?我不想要确切的整个代码,但出于学习目的,它会非常有用。谢谢。 @Raid 代码很简单。只需保留四个计数器,然后使用 Marc 提供的公式即可。对于每个预测标签:如果预测标签==真标签且真标签为正,则增加TP;如果预测标签 == 真实标签且标签为负,则增加 TN;如果预测标签为正而真实标签为负;增加 FP;否则增加 FN。试试这个视频:youtube.com/watch?v=2akd6uwtowc。以上是关于如何使用 SVM 找到 Precision、Recall、Accuracy?的主要内容,如果未能解决你的问题,请参考以下文章
使用具有不同分类器的 sklearn precision_recall_curve 函数
Python:如何在多标签类的 SVM 文本分类器算法中找到准确度结果