我是机器学习和构建模型的新手,但是很多教程让我有机会了解更多关于这个主题的信息。我正在尝试建立一个预测模型来检测假新闻。标签为 1 e 0 的数据百分比如下:
T
0 2015
1 798
如您所见,不幸的是,它的平衡并不好。我将数据集拆分如下:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30, stratify=y)
即 70% 的训练和 30% 的测试。我希望这是有道理的,尽管我的课程不平衡。然后,在通过删除停用词和标点符号(我应该做其他事情吗?)来清理文本之后,我运行了不同的模型,特别是 MultiNaive Bayes、SVM 和 Logistic Regression,得到以下结果:
MNB : 84%
precision recall f1-score support
0 0.88 0.90 0.89 476
1 0.45 0.40 0.42 95
accuracy 0.82 571
macro avg 0.66 0.65 0.66 571
weighted avg 0.81 0.82 0.81 571
支持向量机:准确度: 0.8336252189141856
精度:0.5 召回率:0.2736842105263158(可怕的结果!)
逻辑回归: 0.8546409807355516
所有教程都表明,当你有一些文本时,构建一个好的模型的步骤是删除停用词、标点符号和多余的词。我已经完成了所有这些事情,但可能会有一些我可以做更多的事情来改善结果。我读到,一般来说,谁得到高于 99% 的结果会遇到过拟合等问题:然而,我真的很想得到 92%(至少)。你怎么看?我怎样才能进一步改进模型?你认为不平衡的班级会影响结果吗?
任何建议将不胜感激。