如果其中一个主题过于宽泛而另一个非常狭窄,如何平衡主题,两个类数据集?

问题描述 投票:1回答:1

我有简单的预测,其中数据集由每个类e.i的2300个样本组成。总计= 4600(二进制分类)。第一类包含除了另一类之外的所有新闻类型,这是非常狭窄的主题。我使用了NLTK的Naive-Bayes classifier来执行任务,其中分类器采用一个热编码的样本。尽管分类器在数据集的测试部分中表现良好(准确率为94%),但在对爬行新闻进行分类时(在生产中)却失败了。 enter image description here我认为这个问题是因为这两个类在真正的单词中是不平衡的。如果这是原因,那么,如何克服这个问题呢?如何平衡我的数据集?假设我可以为广泛的类别(A)另外收集许多样本,但是对于窄类别(B)可以收集很多样本。

python nltk prediction text-classification
1个回答
2
投票

您可以使用Synthetic Minority Oversampling Technique,SMOTE来增加少数类的大小。

from imblearn.over_sampling import SMOTE
sm = SMOTE()
x1, y1 = sm.fit_sample(X_train, Y_train)

此外,朴素贝叶斯不是一个不平衡类的好算法,尝试使用随机森林(没有SMOTE)或梯度提升树(与SMOTE)。

© www.soinside.com 2019 - 2024. All rights reserved.