我正在使用朴素贝叶斯解决文本分类机器学习问题。我把每个词当作一个特征。我已经能够实现它并且获得了很好的准确性。

我可以使用单词元组作为特征吗?

例如,如果有两个课程:政治和体育。政府这个词可能出现在他们两个身上。然而,在政治中我可以有一个元组(政府,民主),而在体育类中我可以有一个元组(政府,运动员)。因此,如果出现一篇新的政治文章,则元组(政府、民主)的概率比元组(政府、运动员)的概率更大。

我问这个问题是因为这样做我违反了朴素贝叶斯问题的独立性假设,因为我也将单个单词视为特征。

另外,我正在考虑为特征添加权重。例如,3 元组特征的权重比 4 元组特征的权重小。

从理论上讲,这两种方法不会改变朴素贝叶斯分类器的独立性假设吗?另外,我还没有开始使用我提到的方法,但这会提高准确性吗?我认为准确性可能不会提高,但获得相同准确性所需的训练数据量会更少。

有帮助吗?

解决方案

即使不添加二元组,真实文档也已经违反了独立性假设。以奥巴马出现在文件中为条件,总统出现的可能性要大得多。尽管如此,朴素贝叶斯在分类方面仍然做得不错,即使它给出的概率估计完全错误。因此,我建议您继续向分类器添加更复杂的特征,看看它们是否可以提高准确性。

如果用更少的数据获得相同的准确度,那么基本上相当于用相同数量的数据获得更好的准确度。

另一方面,随着数据量的减少,使用更简单、更常见的功能效果会更好。如果您尝试将太多参数拟合到太少数据中,则往往会严重过度拟合。

但最重要的是尝试一下看看。

其他提示

不,从理论观点来看,您没有改变独立性假设。您只是创建一个修改后的(或新的)样本空间。通常,一旦您开始使用较高的n-gram作为样本空间中的事件,数据稀疏就会成为问题。我认为使用元组将导致同一问题。您可能需要更多的培训数据,而不是更少。您可能还需要对使用的平滑类型进行更多的思考。简单的拉普拉斯平滑可能不是理想的。

我认为,最重要的是:无论您使用哪种分类器,这些功能都高度依赖于域(有时甚至是数据集)。例如,如果您根据电影评论对文本进行分类,则仅使用杂物似乎是违反直觉的,但是它们的性能比仅使用形容词更好。另一方面,对于Twitter数据集而言,发现杂物和大型的组合很好,但是更高的n-gram却没有用。根据此类报告(参考文献Pang和Lee, 意见挖掘和情感分析),我认为使用较长的元素会显示出相似的结果,因为毕竟,单词的元素仅仅是较高维的空间中的点。基本算法的行为相同。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top