2013-10-16 170 views
1

我正在尝试在WEKA(分类问题)中进行降维的PCA。在Weka做PCA

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

这里是我遵循

  • 导入CVS文件中WEKA探险

  • 在预处理标签的步骤,被套,规范化数据(要在的范围带来整个数据[0,1]

  • 然后实现PCA。

    • 在对PCA的选择,我有是centerData的一个选项,如果设置为False,则在标准化数据后使用相关矩阵进行计算(如果我错了,更正我),如果设置为true,则使用协方差矩阵。

我的疑问是

  1. 我应该实现PCA与否之前正火的数据?我试着在正常化之前和之后做这件事,我得到了不同的结果。所以我很困惑。
  2. 我应该标准化数据(使平均值为0),然后应用PCA。

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

回答

5

这个问题已经回答了在这里的部分:PCA first or normalization first?

直接回答你的问题:

正常化将是一个个人的选择。如果设置centerData = TRUE,并且不规范或标准化数据,那么一些具有较大值的属性将对PCA产生较大影响。如果您设置centerData = FALSE,Weka会为您标准化数据。

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

centerData = TRUE

  • 中心的数据(不规范或规范,因此,如果您决定做这一点,你需要之前做到这一点)
  • PCA与协方差矩阵进行

centerData = FALSE

  • PCA与相关矩阵(数据由方法标准化)@Walter我仍然试图找出哪一个将适合最好的执行
+0

由于对于我的数据集,当我尝试以上选项时,我可以看到几个百分比(2-3%)的准确度偏差。 P.S - 在200个属性中,大约180-185个属性已经在[0-1]范围内。问题是由于其他剩余的属性。 – Neil

+1

这是可以理解的。你必须做什么对你的数据最有意义!但是,请记住2-3%的准确度偏差可能只是您测试方法的一个伪影(可能是过度拟合)。 – Walter