2

目前我遇到了两个类的分类问题。我想要做的是,给定一堆候选人,找出谁更有可能成为第 1 类。问题是第 1 类非常罕见(大约 1%),我想这使我的预测非常不准确。为了训练数据集,我可以对半类 1 和半类 0 进行采样吗?这样会改变先验分布,但不知道先验分布是否会影响分类结果?

4

4 回答 4

2

事实上,一个非常不平衡的数据集可能会导致分类问题。因为通过默认为多数类 0,您可以获得非常低的错误率。

有一些解决方法可能对您的特定问题有效,也可能无效,例如对两个类赋予相同的权重(因此对稀有类的实例加权更强),对稀有类进行过采样(即多次学习每个实例),产生轻微的稀有物品的变化以恢复平衡等。SMOTE等。

你真的应该拿一些分类或机器学习的书,并检查“不平衡分类”或“不平衡分类”的索引。如果这本书好的话,它讨论这个问题。(我只是假设您不知道他们使用的术语。)

于 2012-10-29T14:50:23.423 回答
0

除非您的分类算法根据训练数据计算(并使用)先验,否则对您的两个类进行均匀抽样不会改变假设的先验。您说您的问题是“给定一堆候选人,找出谁更有可能成为第 1 类”。我读到这意味着你想确定哪个观察最有可能属于第 1 类。为此,你想选择最大化 $p(c_1|x_i)$ 的观察 $x_i$。使用贝叶斯定理,这变为:

$$ p(c_1|x_i)=\frac{p(x_i|c_1)p(c_1)}{p(x_i)} $$

您可以忽略上面等式中的 $p(c_1)$,因为它是一个常数。但是,计算分母仍将涉及使用先验概率。由于您的问题实际上更多是目标检测问题而不是分类问题,因此检测低概率目标的另一种方法是采用两个类的似然比:

$$ \Lambda=\frac{p(x_i|c_1)}{p(x_i|c_0)} $$

要选择最有可能属于第 1 类的候选人,请选择价值最高的 $\Lambda$。如果您的两个类由多元高斯分布描述,您可以将 $\Lambda$ 替换为其自然对数,从而得到更简单的二次检测器。如果您进一步假设目标和背景具有相同的协方差矩阵,则会产生线性判别式 (http://en.wikipedia.org/wiki/Linear_discriminant_analysis)。

于 2012-10-29T15:05:22.443 回答
0

您可能需要考虑贝叶斯效用理论来重新加权不同类型错误的成本,以摆脱先验支配决策的问题。

令 A 为 99% 的先验概率类别,B 为 1% 的类别。

如果我们只是说所有错误都会产生相同的成本(负效用),那么最优决策方法可能总是声明为“A”。许多分类算法(隐含地)假设这一点。

相反,如果我们声明当实例实际上是“A”时声明“B”的成本远大于相反错误的成本,那么决策逻辑在某种意义上变得对更细微的差异更敏感在特征中。

这种情况经常出现在故障检测中——被监控系统中的故障很少见,但你要确定如果我们看到任何指向错误情况的数据,需要采取措施(即使它是只是查看数据)。

于 2012-11-02T17:23:45.183 回答
0

如果你被迫从一个组中选择一个,那么类的先验分布就无关紧要了,因为它对于该组的所有成员都是恒定的。如果您必须依次查看每个并就它们是一类还是二类做出独立决定,则先验可能会改变决定,具体取决于您选择进行分类的方法。我建议您尽可能多地获取稀有类的示例,但请注意,在盲目训练时将 50-50 拆分提供给分类器可能会使其隐式拟合假设这是测试时分布的模型。

于 2012-10-29T09:59:27.553 回答