先前的分配在分类中是否重要?

时间:2012-10-28 01:36:33

标签: machine-learning classification

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

4 个答案:

答案 0 :(得分:2)

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

有些解决方法可能会或可能不会对您的特定问题起作用,例如对两个类赋予相同的权重(从而加强稀有类的实例更强),对稀有类进行过采样(即多次学习每个实例) ,产生轻微变化的稀有物体,以恢复平衡等.SMOTE等。

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

答案 1 :(得分:0)

如果您被迫从一个组中选择一个,那么先前在类上的分配将无关紧要,因为它将对该组的所有成员保持不变。如果您必须依次查看每个问题并对其是第一级还是第二级做出独立决定,则先前可能会更改决策,具体取决于您选择进行分类的方法。我建议你尽可能多地掌握稀有类的例子,但要注意,盲目地训练将50-50分割给分类器可能会使它隐含地适合一个模型,假设这是测试时的分布。 / p>

答案 2 :(得分:0)

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

$$ P(C_1 | X_I)= \压裂{P(X_I | c_1)为P(c_1)为} {P(X_I)} $$

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

$$ \ LAMBDA = \压裂{P(X_I | c_1)为} {P(X_I | C_0)} $$

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

答案 3 :(得分:0)

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

设A为99%先验概率等级,B为1%等级。

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

如果相反,我们声明宣布" B"事实上,当实例的时候 是" A"比相反的错误的成本大得多,然后是决策逻辑 从某种意义上说,变得对特征中较小的差异更加敏感。

这种情况经常出现在故障检测中 - 被监控的故障 系统将是罕见的,但你想确保,如果我们看到任何指向的数据 错误情况,需要采取行动(即使只是审查数据)。