我正在尝试将线性判别分析应用于两类问题.据我所知,LDA假设两个类具有相同的协方差矩阵,然后将可能性建模为具有不同均值的高斯分布.
我尝试过的另一个分类器是天真的贝叶斯算法.它忽略了预测变量之间的任何相关性.
现在,我不明白将PCA应用于数据集时会发生什么.根据其定义,PCA算法旋转数据使得协方差矩阵是对角线的.没有什么是迷失在旋转,但由于协方差矩阵对角线现在,不应该朴素贝叶斯是一样LDA一样好,甚至更好,因为LDA将有更多的参数来估算?然而,根据我的数据,朴素贝叶斯的表现优于LDA,有或没有PCA.
实际上,只要我使用所有主要组件,数据就完全相同,这告诉我结果应该确实如此.然而协方差矩阵是对角线... 脑崩溃
有人可以向我解释一下吗?我希望我已经清楚地表达了我的问题.谢谢!
PCA对于减少维数很有用(例如,如果训练集的大小对于数据的维数而言太小).但是如果使用所有主成分,PCA将不会改善线性分类器的结果 - 如果您的类在原始数据空间中不能线性分离,那么通过PCA旋转坐标不会改变它.
关于PCA的另一点需要注意的是,它是基于整个样本集的统计来计算坐标旋转,而不考虑类标签.尽管您的类可以完全线性分离(在PCA之前和之后),但这并不意味着它们可以通过每个变换坐标独立分离(即,线性决策边界与您的任何变换不平行)坐标轴).在这种情况下,我希望朴素贝叶斯能够产生较低的精度,因为根据定义,它会独立地处理每个轴.
据我所知,PCA本身并不能消除变量之间的依赖关系,只是找到数据的重新参数化。如果您随后丢弃除少数最高方差维度之外的所有维度(这称为降维),这可能会有所帮助。然而,我认为,在只有两个类和许多相互依赖的特征的设置中,使用判别性分类器可能比 PCA+贝叶斯效果更好。
| 归档时间: |
|
| 查看次数: |
5076 次 |
| 最近记录: |