在 运行 个 PCA 之后按行归一化可以吗?
Is it okay to normalize by row after running a PCA?
我有一个包含 50K 行和 26 个特征的数据集。我正在使用 sklearn 的 StandardScaler 对列进行归一化(每列的均值为 0,标准差为 1),然后 运行 使用 PCA 将特征集减少到原始方差的 90% 左右。然后,在 运行 sklearn 的 KMeans 算法之前,我对行进行了规范化。
有什么理由不应该在 运行 执行 PCA 之后对行进行规范化?如果存在,在 PCA 之前对行进行规范化是否会导致任何问题 - 应该在对列进行规范化之前还是之后进行?
规范化行的原因是从每一行中删除 'magnitude' 或 'skill level',而是查看各个 PCA 减少的特征之间的关系。
这个非常依赖数据。由于我不知道这些 "skill level" 数字可能对数据形状有何影响,因此我不愿给出直接答案。例如,某些行的多个归一化分数在 [-1, 1] 范围之外,而其他行的值幅度很小,这是否合理?听起来这就是您要解决的问题。
我担心您会有很多行具有 1-2 范围内的多个值(+ 或 -),但有些行可能只有一个 +1 值,其余项目接近 0 . 当您规范化 "one-hot" 行时,您会得到一个大于 10 的值。您希望它作为异常值聚类,还是包含在 space 的中心区域?对于此数据,具有单一超平庸特征的人是否是 异常值?
PCA 后重新归一化没有错。但是,如果您对之前和之后都进行归一化,您将不会有太大变化,因为您保留了大部分数据,只删除了那些看起来多余的数据。
我有一个包含 50K 行和 26 个特征的数据集。我正在使用 sklearn 的 StandardScaler 对列进行归一化(每列的均值为 0,标准差为 1),然后 运行 使用 PCA 将特征集减少到原始方差的 90% 左右。然后,在 运行 sklearn 的 KMeans 算法之前,我对行进行了规范化。
有什么理由不应该在 运行 执行 PCA 之后对行进行规范化?如果存在,在 PCA 之前对行进行规范化是否会导致任何问题 - 应该在对列进行规范化之前还是之后进行?
规范化行的原因是从每一行中删除 'magnitude' 或 'skill level',而是查看各个 PCA 减少的特征之间的关系。
这个非常依赖数据。由于我不知道这些 "skill level" 数字可能对数据形状有何影响,因此我不愿给出直接答案。例如,某些行的多个归一化分数在 [-1, 1] 范围之外,而其他行的值幅度很小,这是否合理?听起来这就是您要解决的问题。
我担心您会有很多行具有 1-2 范围内的多个值(+ 或 -),但有些行可能只有一个 +1 值,其余项目接近 0 . 当您规范化 "one-hot" 行时,您会得到一个大于 10 的值。您希望它作为异常值聚类,还是包含在 space 的中心区域?对于此数据,具有单一超平庸特征的人是否是 异常值?
PCA 后重新归一化没有错。但是,如果您对之前和之后都进行归一化,您将不会有太大变化,因为您保留了大部分数据,只删除了那些看起来多余的数据。