PCA 和朴素贝叶斯分类器

Posted

技术标签:

【中文标题】PCA 和朴素贝叶斯分类器【英文标题】:PCA and Naive Bayes Classifier 【发布时间】:2018-07-17 00:58:43 【问题描述】:

我正在 Python 中试验 。

简而言之,我使用数字灰度图像数据库,使用 PCA 减少维度,然后使用朴素贝叶斯进行分类。

我分别使用 2,4,10,30,60,200,500,784 个组件。 我分别得到的分类错误率是: 0.25806452、0.15322581、0.06290323、0.06451613、0.06451613、0.10322581、0.28064516和0.31774194。我认为采用更多的组件总是可以提高分类的准确性。这是真的?如果是这样,那么我做错了什么。

【问题讨论】:

【参考方案1】:

我认为您的问题没有一个有效的答案,但减少输入的维度可以防止过度拟合。更多特征并不总是让你的分类器更准确。详细解释可以看这里:http://www.visiondummy.com/2014/04/curse-dimensionality-affect-classification/

【讨论】:

【参考方案2】:

确实,减少维度可以减少过度拟合,但如果您不向数据集添加额外数据,总有一个组件的最佳数量可以提供最佳准确度。在您的情况下,它是 10,因为它给出了0.06290323 的最低错误率。因此,如果您要增加维度,您还应该增加用于训练的数据集,以便获得更高的准确性。否则,您应该在它附近尝试Grid search 以获得更高的准确性。

此外,如果您的数据集是平衡的,那么accuracy 可能是评估您的表现的一个很好的衡量标准。如果数据集不平衡,请尝试Precision、Recall 或f-score。

如果还是这样,你对分类器不满意使用其他分类算法。

【讨论】:

以上是关于PCA 和朴素贝叶斯分类器的主要内容,如果未能解决你的问题,请参考以下文章

机器学习系列-朴素贝叶斯分类器

动态朴素贝叶斯分类器和朴素贝叶斯分类器有啥区别

机器学习:贝叶斯分类器——高斯朴素贝叶斯分类器代码实现

朴素贝叶斯分类器原理

19贝叶斯分类器:半朴素贝叶斯分类器(属性之间存在依赖)

用Java编写的开源朴素贝叶斯分类器[关闭]