SVM-Light显示的精确度/召回率结果出现异常

我运行了SVM-Light分类器,但它输出的召回率/精确度行似乎出现了异常:

Reading model...OK. (20 support vectors read)Classifying test examples..100..200..doneRuntime (without IO) in cpu-seconds: 0.00Accuracy on test set: 95.50% (191 correct, 9 incorrect, 200 total)Precision/recall on test set: 0.00%/0.00%

我应该如何配置才能获得有效的精确度和召回率?


回答:

例如,如果你的分类器总是预测”-1″——即负类;然而,你的测试数据集中包含191个”-1″和9个”+1″作为黄金标签,你将正确分类191个,错误分类9个。

True positives : 0        (TP)True negatives : 191      (TN)False negatives: 9        (FN)False positives: 0        (FP)Thus:               TP             0Precision = -----------  = --------- = undefined             TP + FP         0 + 0               TP             0Recall    = -----------  = --------- = 0             TP + FN        0 + 9

从上面的公式可以看出,只要你的TP为零,你的精确度/召回率要么为零,要么为未定义。

为了调试,你应该输出(对于每个测试样本)黄金标签和预测标签,以便你知道问题出在哪里。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注