6

我正在尝试将线性判别分析应用于二分类问题。据我了解,LDA 假设两个类具有相同的协方差矩阵,然后将似然性建模为具有不同均值的高斯分布。

我尝试过的另一个分类器是朴素贝叶斯。它忽略了预测变量之间的任何相关性。

现在,我不明白将 PCA 应用于数据集时会发生什么。根据其定义,PCA 算法旋转数据使得协方差矩阵是对角线。旋转没有丢失任何东西,但是由于协方差矩阵现在是对角的,朴素贝叶斯不应该和 LDA 一样好,甚至更好,因为 LDA 将有更多的参数来估计?然而,根据我的数据,无论有没有 PCA,LDA 的表现都优于朴素贝叶斯。

确实,只要我使用了所有的主成分,数据是完全一样的,这告诉我结果确实应该是这样的。然而协方差矩阵是对角线的......大脑崩溃

有人可以向我解释一下吗?我希望我已经足够清楚地表达了我的问题。谢谢!

4

3 回答 3

6

PCA 对于降维很有用(例如,如果你的训练集的大小对于数据的维数来说太小了)。但是,如果您使用所有主成分,PCA 不会改善线性分类器的结果 - 如果您的类在原始数据空间中不是线性可分的,那么通过 PCA 旋转坐标不会改变这一点。

关于 PCA 需要注意的另一点是,它是根据整个样本集的统计数据计算坐标旋转,而不考虑类标签。即使您的类可能是完全线性可分的(在 PCA 之前和之后),但这并不意味着它们可以通过每个转换后的坐标独立分离(即,线性决策边界不平行于任何转换后的坐标)坐标轴)。在这种情况下,我预计朴素贝叶斯会产生较低的准确性,因为根据定义,它独立处理每个轴。

于 2012-08-30T13:12:04.043 回答
1

据我所知,PCA 本身并没有消除变量之间的依赖关系,只是找到了数据的重新参数化。如果您随后丢弃了除少数顶部方差维度之外的所有维度(称为降维),这可能会有所帮助。然而,我认为,在只有两个类和许多相互依赖的特征的环境中,使用判别分类器可能比 PCA+bayes 效果更好。

于 2012-08-30T08:30:35.340 回答
0

@bogatron 只是指出朴素贝叶斯不需要问题在其中一个维度上是线性可分的。在 3-d 空间中的二分类问题中,决策边界在

p(x|1)p(y|1)p(z|1) = p(x|2)p(y|2)p(z|2) 

如果我们先假设一个统一的假设

P(M1)=P(M2)=0.5. 

根据 的具体形式p(.|1) and p(.|2),边界可能是复杂和非线性的,并且不平行于任何轴。

于 2013-03-12T06:55:21.990 回答