1

当我尝试使用 libsvm 对数据进行分类时遇到问题。我的训练和测试数据非常不平衡。当我对 svm 参数进行网格搜索并使用类的权重训练我的数据时,测试给出了 96.8113% 的准确度。但由于测试数据不平衡,所有正确的预测值都来自负类,大于正类。

我尝试了很多东西,从改变权重到改变 gamma 和成本值,但每次尝试我的归一化精度(考虑了正类和负类)都较低。使用默认的 grid.py 参数训练 50% 的正数和 50% 的负数,我的准确率非常低(18.4234%)。

我想知道问题是在我的描述中(如何构建特征向量),在不平衡中(我应该以其他方式使用平衡数据吗?)还是应该更改我的分类器?

4

1 回答 1

2

更好的数据总是有帮助的。

我认为不平衡是问题的一部分。但问题的更重要部分是您如何评估分类器。考虑到数据中正面和负面的分布来评估准确性几乎没有用。50% 和 50% 的训练以及 99% 和 1% 的分布数据测试也是如此。

现实生活中存在一些问题,就像你正在学习的问题一样(积极与消极之间存在很大的不平衡)。让我举两个例子:

  • 信息检索:给定一个巨大集合中的所有文档,返回与搜索词 q 相关的子集。

  • 人脸检测:这张大图标记了所有有人脸的位置。

这类系统的许多方法都是基于分类器的。为了评估两个分类器,通常使用两种工具:ROC 曲线Precision Recall曲线和F-score。这些工具提供了一种更有原则的方法来评估一个分类器何时比另一个更好。

于 2013-11-12T04:08:17.747 回答