【问题标题】:Creating word embedings from bert and feeding them to random forest for classification从 bert 创建词嵌入并将它们馈送到随机森林进行分类
【发布时间】:2022-06-11 02:15:48
【问题描述】:

我使用了 512 维的 bert 基础预训练模型来生成上下文特征。将这些向量提供给随机森林分类器可以提供 83% 的准确率,但在各种研究中,我发现 bert minimum 可以提供 90% 的准确率。 我还有一些其他功能,例如 word2vec、词典、TFIDF 和标点符号功能。 即使我合并了所有特征,我也得到了 83% 的准确率。我用作基础论文的研究论文提到了 92% 的准确度得分,但他们使用了基于集成的方法,在该方法中,他们通过 bert 进行分类,并训练了权重上的随机森林。 但我愿意做一些创新,因此没有遵循这种方法。 我的数据集偏向于正面评价,因此根据我的说法,准确性较低,因为模型也偏向于正面标签,但我仍在寻找专家建议

bert的代码实现

https://github.com/Awais-mohammad/Sentiment-Analysis/blob/main/Bert_Features.ipynb

独立于所有特征的随机森林

https://github.com/Awais-mohammad/Sentiment-Analysis/blob/main/RandomForestClassifier.ipynb

所有特征的随机森林联合

https://github.com/Awais-mohammad/Sentiment-Analysis/blob/main/Merging_Feature.ipynb

【问题讨论】:

    标签: machine-learning nlp data-science classification bert-language-model


    【解决方案1】:

    基于 BERT 的模型的准确性取决于所使用的数据集,有时数据过于多样化而无法获得满分,例如如果有一些观察实例非常相似,但具有不同的类标签等。您可以在 BERT 论文中看到,准确性在很大程度上取决于任务,例如在某些任务中确实是 90+%,但对于某些任务,例如蒙面语言建模,模型需要从超过 30K 的词汇中选择一个特定的词,在某些情况下,20% 的准确率可能令人印象深刻。因此,为了获得与 bert 论文的可靠比较,您需要选择他们使用过的数据集,然后进行比较。

    关于数据集平衡,对于一般的深度学习模型,经验法则是训练集应该或多或少地平衡 w.r.t。每个类标签覆盖的数据部分。所以如果你有 2 个标签,应该是 ~50-50,如果有 5 个标签,那么每个标签应该占训练数据集的 20% 左右,等等。 这是因为大多数 NN 都是分批工作的,他们根据每批的反馈更新模型权重。因此,如果一个类的值过多,批量更新将由该类主导,从而有效地降低训练质量。

    因此,如果您想提高模型的准确性,平衡数据集可能是一个简单的解决方法。 (除非这是一种情况,例如 1 个类拥有 80% 的数据,4 个类共享剩余的 20%。在这种情况下,您可能应该考虑一些更高级的选项,例如将算法划分为两部分,一个预测是否或不是一个实例在类 1 中(所以是一个二元分类器),另一个用来区分 4 个代表性不足的类。)

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2017-05-28
      • 2019-09-05
      • 2013-09-22
      • 2018-02-18
      • 2016-09-09
      • 2018-03-12
      • 2013-06-12
      • 2018-05-20
      相关资源
      最近更新 更多