我有一个包含50K行和26个特性的数据集。我使用sklearn的StandardScaler对列进行归一化(每列有0个平均值和1个标准偏差),然后运行PCA将特征集减少到原始方差的~90%。然后,在运行sklearn的KMeans算法之前,我将对行进行规范化。
在运行PCA之后,我是否有理由不规范这些行?如果有,在PCA之前对行进行规范化会导致任何问题吗?应该在对列进行规范化之前还是之后进行?
标准化行的原因是从每行中删除"幅度"或"技能水平",而是查看各个PCA减少特征之间的关系。
这非常依赖于数据。由于我不知道这些"技能水平"的数字对数据形状可能有什么影响,我很犹豫是否要给出直接的答案。例如,一些行的几个归一化分数在[-1,1]范围之外,而另一些行的值很小,这合理吗?听起来这就是你想要解决的问题。
我担心会有很多行的几个值在1-2范围内(+或-),但有些行可能只有一个+1值,其余项接近0。当您规范化一个"一个热"行时,您会得到一个扩展到大于10的值。您希望它聚集为异常值,还是包含在空间的中心区域?对于这些数据,具有单一而非平庸特质的人是否是的异类?
PCA后重新规范化没有错。然而,如果在之前和之后都进行规范化,则不会有太大的更改,因为您保留了大部分数据,只删除了那些看起来多余的数据。