繁体   English   中英

平衡数据集后的低 F1 分数

[英]Low F1-Score after balancing dataset

我有推文的二元分类问题; 17000 作为正 class 和 122000 作为负 class。 我已经将数据与每个 class 中的 17000 条推文进行了平衡。 我已经实现了 LR、SVM、BERT、LSTM 和 CNN 等模型。 在每次运行中,F1 分数在 0.55-0.66 左右。 难道我做错了什么? F1分数在0.55左右正常吗?

另一个数据集也存在问题。 样本 BERT model 是

trainer = Trainer(
model=model,                      # our loaded pre-trained transformer-based model "DistilBERT"
args=training_args,               # our defined training arguments
train_dataset=train_dataset,      # training dataset
eval_dataset=eval_dataset,        # evaluation dataset
compute_metrics=compute_metrics   # our defined evaluation function 

)

尽管 F1 分数在 0.55-0.66 左右可能是正常的,但它是否足够好取决于您的用例。

F1分数不仅取决于数据平衡,还取决于许多因素。

我建议为您的 ML 管道考虑以下步骤:

  1. 数据准备/清理(标记化、停用词删除等)

  2. 算法/模型选择(根据经验 SVM 和 NN 表现良好)

  3. 特征工程/选择(哪些特征对模型影响更大)

  4. 超参数调整(取决于 model,您必须搜索更好的超参数组合。例如,对于 NN,您必须指定多少层、多少节点、激活 fn、反向传播 fn 等)

许多人喜欢关注最后一步,但我想说数据准备是任何数据管道中最重要的步骤之一。 数据准备/清理在 F1 分数和所有其他指标中也起着重要作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM