在Weka中做PCA

Nei*_*eil 1 covariance weka correlation pca

我正在尝试在WEKA(分类问题)中进行PCA降维.

我的数据中有200个属性,接近2100行.

以下是我遵循的步骤

  • 在WEKA资源管理器中导入csv文件

  • 在预处理选项卡中,应用,规范化数据(使整个数据的范围为[0,1]

  • 然后实施PCA.

    • 在PCA的选项中,有一个centerData选项,如果设置为False,将在标准化数据后使用相关矩阵计算(如果我错了则纠正我),如果设置为true则使用协方差矩阵.

我怀疑是

  1. 我应该在实施PCA之前对数据进行规范化吗?我尝试在正常化之前和之后做这件事我得到了不同的结果.所以我很困惑.
  2. 我应该标准化数据(将平均值设为0)然后应用PCA.

在任何一种情况下,我应该在PCA WEKA中为centerData选项选择什么选项?

Wal*_*ter 7

这个问题在这里得到了部分回答:首先是PCA还是标准化?

直接回答您的问题:

规范化将是个人选择.如果设置centerData = TRUE,并且不对数据进行规范化或标准化,则某些具有较大值的属性将对PCA产生更大的影响.如果设置centerData = FALSE,Weka会为您标准化数据.

为了确认您的怀疑,在Weka中,centerData执行以下操作:

centerData = TRUE

  • 使您的数据居中(不规范化或标准化,因此如果您决定这样做,则需要先执行此操作)
  • 使用协方差矩阵执行PCA

centerData = FALSE

  • 使用相关矩阵执行PCA (数据通过该方法标准化)