使用朴素贝叶斯进行文本分类

我正在使用朴素贝叶斯进行文本分类的机器学习问题。我将每个单词作为一个特征。我已经实现了这个方法,并且得到了不错的准确率。

我能否使用词组作为特征呢?

例如,如果有两个类别,政治和体育。单词“政府”可能在这两个类别中都出现。然而,在政治类别中,我可以使用词组(政府,民主),而在体育类别中,我可以使用词组(政府,运动员)。因此,如果有一篇新的政治类文章,词组(政府,民主)的概率会比词组(政府,运动员)更高。

我问这个问题是因为这样做是否违反了朴素贝叶斯问题中的独立性假设,因为我也在考虑单个单词作为特征。

另外,我在考虑为特征添加权重。例如,一个3元组特征的权重要比一个4元组特征的权重低。

理论上,这两种方法是否没有改变朴素贝叶斯分类器的独立性假设?此外,我还没有开始尝试我提到的方法,但这会提高准确率吗?我认为准确率可能不会提高,但达到相同准确率所需的训练数据量会减少。


回答:

即使不添加双字组合,真实文档已经违反了独立性假设。如果文档中出现了Obama,那么President出现的可能性就会大大增加。尽管如此,朴素贝叶斯在分类上仍然表现得相当不错,即使它给出的概率估计完全不准确。因此,我建议你继续添加更复杂的特征到你的分类器中,看看它们是否能提高准确率。

如果你用更少的数据获得了相同的准确率,这基本上相当于用相同数量的数据获得了更好的准确率。

另一方面,使用更简单、更常见的特征在数据量减少时效果更好。如果你试图用太少的数据去拟合太多的参数,往往会导致严重的过拟合。

但最重要的是,试一试看看结果如何。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注