作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有简单的预测,其中数据集由每个类别的 2300 个样本组成,例如:总计 = 4600(二元分类)。第一类包含除第二类之外的所有新闻类型,第二类是非常狭窄的主题。我用过Naive-Bayes classifier NLTK 来执行任务,其中分类器对样本进行 one-hot 编码。尽管分类器在数据集的测试部分中表现良好(准确度为 94%),但在对爬取的新闻(在生产中)进行分类时却严重失败。 我认为问题是由于这两个类别在实际情况中不平衡。如果是这个原因,那么,如何克服这个问题呢?如何平衡我的数据集?假设我可以为广泛的类别(A)额外收集许多样本,但为狭窄的类别(B)收集很少的样本。
最佳答案
您可以使用合成少数过采样技术 SMOTE 来增加少数类的大小。
from imblearn.over_sampling import SMOTE
sm = SMOTE()
x1, y1 = sm.fit_sample(X_train, Y_train)
此外,朴素贝叶斯对于不平衡类来说并不是一个好的算法,请尝试使用随机森林(不带 SMOTE)或梯度提升树(带 SMOTE)。
关于python - 当一个主题太宽泛而另一个主题非常狭窄时,如何平衡主题、两类数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54960958/
我是一名优秀的程序员,十分优秀!