加权(成本敏感)和阈值都是成本敏感的学习的有效形式。在简短的术语,你可以认为这两个如下:
加权
基本上一个断言的误分类稀有类的“成本”是不是误分类常见的类更糟。这是在算法级别应用于SVM,ANN和Random Forest等算法。这里的限制包括算法是否可以处理权重。此外,这方面的许多应用试图解决进行更严重错误分类的想法(例如将胰腺癌患者分类为非癌症患者)。在这种情况下,你知道为什么你要确保你分类特定的类,即使在不平衡的设置。理想情况下,您希望像任何其他模型参数一样优化成本参数。
阈值
如果该算法返回概率(或一些其它的分数),阈值可以被施加模型已建成后。从本质上讲,您可以将分类阈值从50-50更改为适当的权衡级别。这通常可以通过生成评估度量的曲线(例如F-度量)来优化。这里的限制是你正在做出绝对的权衡。中断的任何修改都会降低预测其他课程的准确性。如果你对大部分普通班级的概率极高(例如大多数在0.85以上),你很可能会用这种方法取得成功。它也是算法独立的(只要算法返回概率)。
采样
抽样是适用于不平衡数据集带来一些平衡类分布另一种常见的选择。基本上有两种基本方法。
欠采样
提取一组较小的大多数情况,并保持少数。这将导致更小的数据集,其中类之间的分布更接近;但是,您丢弃了可能有价值的数据。如果你有大量的数据,这也可能是有益的。
过采样
通过复制他们提高少数实例的数量。这将产生一个更大的数据集,它保留了所有原始数据,但可能引入偏差。但是,随着您增加尺寸,您可能也开始影响计算性能。
先进方法
但是也有一些更“复杂”来帮助解决潜在的偏见其他方法。这些包括如中引用的有关不平衡数据集和CSL的方法,如SMOTE,SMOTEBoost和EasyEnsemble。
建模
一个关于建筑模型与不平衡数据还值得注意的是,你应该记住你的模型度量。例如,诸如F-度量的度量不考虑真实的负面率。因此,通常建议在不平衡设置中使用诸如Cohen’s kappa metric等指标。
这更多的是一个统计而不是编程问题。目前还不清楚这些模型是如何构建的。你的数据集有多大?你是否使用分层CV或者你如何确定你没有过度配合你的模型(因此F值较低)?也就是说,一般来说,我会服从**对成本敏感的**,因为**阈值**方法对指定截断(IMHO)的用户更主观。 – cdeterman 2014-10-06 17:26:38
我有3000个实例,是的,我使用10倍分层CV来防止过度配合。 – blueSurfer 2014-10-06 18:05:25
我有二元分类问题,其中有97%/ 3%的偏度。平衡培训案例的数量已经大大提高了对3%结果的预测。我以前没有尝试在分类器中设置阈值。 – 2014-10-07 01:58:37