我正在尝试在WEKA(分类问题)中进行PCA降维。
我的数据中有 200 个属性和接近 2100 行。
以下是我遵循的步骤
在WEKA资源管理器中导入csv文件
在"预处理"选项卡中,应用,规范化数据(使整个数据在 [0,1] 范围内
然后实施 PCA。
- 在 PCA 的选项中,有一个 centerData 选项,如果设置为 False,将在标准化数据后使用相关矩阵进行计算(如果我错了,请纠正我),如果设置为 true,将使用协方差矩阵。
我的疑问是
- 我是否应该在实现 PCA 之前规范化数据?我尝试在规范化之前和之后这样做,我得到了不同的结果。所以我很困惑。
- 我是否应该标准化数据(使平均值为0),然后应用PCA。
这两种情况下,我应该在PCA WEKA中为中心数据选项选择什么选项?
这个问题在这里得到了部分回答:首先是PCA还是首先规范化?
要直接回答您的问题:
规范化将是个人选择。 如果设置 centerData=TRUE,并且不规范化或标准化数据,则某些具有较大值的属性在 PCA 中的影响将更大。 如果您设置 centerData=FALSE,Weka 会为您标准化数据。
为了证实您的怀疑,在Weka中,centerData执行以下操作:
中心数据=真
- 居中您的数据(不会规范化或标准化,因此如果您决定这样做,则需要事先执行此操作)
- PCA 使用协方差矩阵执行
中心数据=假
- PCA使用相关矩阵执行(数据通过该方法标准化)