blu*_*fer 17 python r classification machine-learning
这是我的问题的简要描述:
我绘制了几个分类器的ROC图,并且都表现出很好的AUC,这意味着分类很好.但是,当我测试分类器并计算f-measure时,我得到一个非常低的值.我知道这个问题是由数据集的类偏度引起的,到现在为止,我发现了两个处理它的选项:
我选择了第一个选项,解决了我的问题(f-measure令人满意).但是,现在,我的问题是:哪种方法更可取?有什么区别?
PS:我正在使用Python和scikit-learn库.
cde*_*man 29
加权(成本敏感)和阈值处理都是成本敏感学习的有效形式.简而言之,您可以将两者想象如下:
基本上有人断言,对稀有类别进行错误分类的"成本"比对普通类进行错误分类更糟糕.这在诸如SVM,ANN和随机森林之类的算法中应用于算法级别.这里的限制包括算法是否可以处理权重.此外,这方面的许多应用试图解决进行更严重错误分类的想法(例如,将患有胰腺癌的人分类为无癌症).在这种情况下,您知道为什么要确保即使在不平衡的设置中也要对特定类进行分类.理想情况下,您希望像任何其他模型参数一样优化成本参数.
如果算法返回概率(或其他一些分数),则可以在构建模型后应用阈值.基本上,您将分类阈值从50-50更改为适当的权衡级别.这通常可以通过生成评估度量的曲线(例如,F-度量)来优化.这里的限制是你正在做出绝对的权衡.截止值的任何修改都将降低预测其他类别的准确性.如果您的大多数普通班级的概率非常高(例如大多数超过0.85),那么您更有可能使用此方法取得成功.它也与算法无关(假设算法返回概率).
采样是应用于不平衡数据集的另一种常见选项,可为类分布带来一些平衡.基本上有两种基本方法.
欠采样
提取较小的多数实例集并保留少数实例.这将导致较小的数据集,其中类之间的分布更接近; 但是,您丢弃了可能有价值的数据.如果您拥有大量数据,这也可能是有益的.
过采样
通过复制它们来增加少数群体实例的数量.这将导致更大的数据集保留所有原始数据,但可能会引入偏差.但是,随着您增加大小,您可能也会开始影响计算性能.
高级方法
还有一些更复杂的方法可以帮助解决潜在的偏见.这些方法包括如SMOTE,SMOTEBoost和EasyEnsemble在此引用之前问题就不平衡数据集和CSL.
关于使用不平衡数据构建模型的另一个注意事项是,您应该牢记您的模型指标.例如,F-measures等指标未考虑真实的负利率.因此,通常建议在不平衡设置中使用Cohen的kappa指标等指标.
| 归档时间: |
|
| 查看次数: |
7835 次 |
| 最近记录: |