首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高查全率但精度太低会导致数据不平衡

高查全率但精度太低会导致数据不平衡
EN

Data Science用户
提问于 2021-04-09 01:43:47
回答 2查看 2.1K关注 0票数 4

我在一个带有232:1二进制类的重不平衡数据库上使用XGBoost分类器训练一个模型。由于我的训练数据包含750 k行和320个特征(在进行了许多特征工程、特征相关滤波和低方差滤波之后),我更喜欢使用scale_pos_weight来处理不平衡而不是过采样的数据。在使用贝叶斯优化方法优化PR参数并进行5倍交叉验证之后,我得到了以下最佳交叉验证分数:PR AUC = 4.87%, ROC AUC = 78.5%, Precision = 1.49%, and Recall = 80.4%,当我试图将结果实现到测试数据集时,结果如下:

代码语言:javascript
复制
accuracy: 0.562
roc_auc: 0.776293
pr_auc: 0.032544
log_loss: 0.706263
F1: 0.713779
Confusion Matrix:    
[[9946 7804]
 [  18   84]]
          precision     recall  f1-score   support

       0       1.00      0.56      0.72     17750
       1       0.01      0.82      0.02       102

    accuracy                           0.56     17852
   macro avg       0.50      0.69      0.37     17852
weighted avg       0.99      0.56      0.71     17852

我要优化的参数范围( 100次迭代消耗2-3天)是:

代码语言:javascript
复制
{'learning_rate':(0.001,0.2),'min_split_loss':(0,20),'max_depth':(3,10),'min_child_weight':(0,50),'max_delta_step':(0,10),'subsample':(0.5,1),'colsample_bytree':(0.5,1),'colsample_bynode':(0.5,1),'colsample_bylevel':(0.5,1),'reg_lambda':(1e-5,100),'reg_alpha':(0,1), 'objective':'binary:logistic','booster':'gbtree','scale_pos_weight':232,'n_estimators':200}

根据业务要求,我们更多的考虑高召回(以挽救那些在积极类),然而,我感到沮丧的是,太低的精度结果(这是对成本的影响,以节省正面类)。有没有办法在不影响召回的情况下,至少将精确度提高10%?

EN

回答 2

Data Science用户

发布于 2021-04-09 09:58:14

考虑到f1-scorePR AUC都很低,即使是~0.45%的流行率也很低,如果这些限制是由数据的性质或模型(特征加上所使用的算法)所造成的,则无法推断。

为了更好地理解和解决问题,我建议将问题分为两部分:

  1. 构建一个对所选功能有效的模型。为此,您可以尝试创建一个稍微平衡的dataset 80-20?,用于培训和测试。一旦您对您的方法的性能感到满意,请移动到下面的2
  2. 使用原始的不平衡数据集,看看情况是否更好。如果不是,现在更清楚的是,问题在于数据的不平衡性质,您应该尝试所有处理不平衡类的标准技术。我希望这能对你有所帮助,因为在其他情况下,只有手头的选项才能为少数族裔阶级综合或收集更多的数据。
票数 1
EN

Data Science用户

发布于 2021-05-15 12:53:27

重要的是要理解,您的精确度和召回与二进制决策阈值相关联。基本上,使用此阈值将模型的输出转换为二进制决策。通常在标准库中实现默认的阈值选择过程,但是对于不平衡的情况,它们并不真正有效。一种选择是使用predict_proba并通过改变循环中的阈值来自己选择一个阈值。这样,您将有不同的选择平衡精度和召回。鉴于你的低预报器,这是没有进驻,你将有任何好的选择。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/92776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档