1

我正在尝试让相关反馈的Rocchio 算法起作用。我有一个查询,一些文件标记为正面和负面。例如,我有 60 个正面和 337 个负面。我想使用该数据集的一部分来训练我的模型(在这种情况下 - 调整查询)并在另一部分进行测试。但是拥有这种不平衡的数据集,我不确定将多少负数和多少正数带入训练集。

另一个问题是,根据测试数据集中的正/负比例,我会得到误导性的精度、召回率和 F1 分数结果。在测试数据集中有 49 个阳性和 17 个阴性给我 Precision=0.742,Recall=1.000 和 F1=0.852,TP=49,FP=17,TN=0,FN=0。

其他查询的正/负比例分布并没有给我任何关于为我的模型选择哪个比例的提示。

所以我问你的是一些关于使用不平衡数据集以获得正确结果的建议。

在此先感谢,对于这样一个菜鸟(-ish?)问题感到抱歉:-)

4

1 回答 1

0

首先,我认为你的算法很难从这么少的例子中概括出来(这当然也取决于特征的数量)。

其次,我认为使用不平衡的数据集不是一个好主意。您的算法似乎没有学到任何东西,因为它的输出始终是“正数”。这意味着如果您的数据集是平衡的,您将有 50% 的准确度。不太好...如果您找不到更大的数据集,我建议您将其拆分为:

  • 训练集(45 个正面 / 45 个负面)
  • 测试集(15 个阳性 / 15 个阴性)

无论如何,我仍然是一名学生,所以这就是我的想法,但如果更有经验的用户能够确认或确认,那就太好了。

希望对您有所帮助!

于 2012-06-01T13:47:05.443 回答