当一个主题过于宽泛而另一个主题过于狭窄时,如何平衡两个主题的主题数据集?

时间:2019-03-02 17:09:46

标签: python nltk prediction text-classification

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

1 个答案:

答案 0 :(得分:2)

您可以使用SMOTE综合少数族裔过采样技术来增加少数族裔类别的人数。

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

此外,对于不平衡的类,朴素贝叶斯也不是一种好的算法,请尝试使用随机森林(不使用SMOTE)或梯度增强树(使用SMOTE)。