运行PCA后按行标准化是否可以?

时间:2017-01-06 14:50:01

标签: scikit-learn normalization pca

我有一个50K行和26个功能的数据集。我使用sklearn的StandardScaler对列进行标准化(每列具有0均值和1标准差),然后运行PCA以将特征集减少到原始方差的约90%。在运行sklearn的KMeans算法之前,我先对行进行规范化。

有没有理由在运行PCA后我不应该对行进行规范化?如果存在,将在PCA引起任何问题之前对行进行规范化 - 是否应该在对列进行规范化之前或之后进行?

对行进行规范化的原因是要删除'幅度'或者'技能水平'从每一行开始,相反,查看各个PCA减少的特征之间的关系。

1 个答案:

答案 0 :(得分:0)

这非常依赖于数据。因为我不知道这些"技能水平"数字可能有数据形态,我对犹豫不决直接回答。例如,在[-1,1]范围之外的某些行具有多个归一化分数是否合理,而其他行具有小幅度的值?听起来你正试图解决这个问题。

我担心你会在1-2范围内有很多行有多个值(+或 - ),但有些行可能有一个+1值,其余项目接近0当你正常化一个热门的"在行中,您将获得一个扩展大于10的值。您是希望将其聚类为异常值,还是包含在空间的中心区域?对于这些数据,是否有一个超过平庸的特征的异常值

在PCA之后重新正常化没有任何问题。但是,如果您在之前和之后都进行了规范化,那么您将无法获得太多变化,因为您保留了大部分数据,只删除那些似乎多余的数据。