所有变量都近似正交的数据集的降维是否有任何价值?

机器算法验证 主成分分析 降维
2022-03-24 13:14:20

假设我有一个维数据集,其中维大致正交(相关性为零)。NN

在以下方面是否有任何效用:

  1. 可视化
  2. 表示(用于分类器效率)
  3. 或其他标准

对数据执行降维?

3个回答

您可以尝试更通用的非线性降维流形学习方法,例如局部线性嵌入、拉普拉斯特征图或 t-SNE。

完全有可能在您的数据中存在较低维度的子空间(流形),从而在 N 基维度之间留下 0 相关性。例如这里看到的关于原点或波形的圆点。PCA 不会选择这个,但其他方法会。

对于可视化和探索性数据分析,查看此类方法特别有趣且常见。要在分类器或其他模型中使用,您需要将自己限制在可以适合训练并应用于排除许多这些方法的测试的方法。如果这是您的主要兴趣,您还应该研究无监督预训练和(监督)特征工程的方法。

我想澄清我在@Peter-Flom 的回答下留下的评论,但可能值得写在答案中。通过对近正交数据运行 PCA,您可以在多大程度上减少维度?答案是“这取决于”您是对相关矩阵还是协方差矩阵执行 PCA

如果您在相关矩阵上使用 PCA,那么由于这与单位矩阵仅略有不同,因此存在球对称性,它使所有方向都“具有相同的信息量”。将变量的方差重新调整为 PCA 之前的方差是一种数学上等效的方法,它会产生相同的结果。虽然 PCA 输出将识别出一些方差比其他分量略低的分量,但这可以归因于(如果我们假设总体中的相关性为零)只不过是样本中的偶然变化,因此不是抛弃这些的好理由组件。事实上,当我们增加样本量时,组件标准偏差之间的这种差异应该会减少。我们可以在模拟中确认这一点。

set.seed(123)
princompn <- function(n, sd1=1, sd2=1, sd3=1, sd4=1, cor=TRUE) {
    x1 <- rnorm(n, mean=0, sd=sd1)
    x2 <- rnorm(n, mean=0, sd=sd2)
    x3 <- rnorm(n, mean=0, sd=sd3)
    x4 <- rnorm(n, mean=0, sd=sd4)
    prcomp(cbind(x1,x2,x3,x4), scale.=cor)
}

输出:

> pc100 <- princompn(100)
> summary(pc100)
Importance of components:
                          PC1    PC2    PC3    PC4
Standard deviation     1.0736 1.0243 0.9762 0.9193
Proportion of Variance 0.2882 0.2623 0.2382 0.2113
Cumulative Proportion  0.2882 0.5505 0.7887 1.0000
> 
> pc1m <- princompn(1e6)
> summary(pc1m)
Importance of components:
                          PC1    PC2    PC3    PC4
Standard deviation     1.0008 1.0004 0.9998 0.9990
Proportion of Variance 0.2504 0.2502 0.2499 0.2495
Cumulative Proportion  0.2504 0.5006 0.7505 1.0000

但是,如果您使用协方差矩阵而不是相关矩阵进行 PCA(等效地:如果我们在应用 PCA 之前不将标准差缩放为 1),那么答案取决于变量的分布。如果您的变量具有相同的方差,那么我们仍然具有球对称性,因此没有“特权方向”并且无法实现降维。

> pcEqual <- princompn(n=1e6, sd1=4, sd2=4, sd3=4, sd4=4, cor=FALSE)
> summary(pcEqual)
Importance of components:
                          PC1    PC2    PC3    PC4
Standard deviation     4.0056 4.0010 3.9986 3.9936
Proportion of Variance 0.2507 0.2502 0.2499 0.2492
Cumulative Proportion  0.2507 0.5009 0.7508 1.0000

然而,在混合了高方差和低方差变量的情况下,对称性更像是一个具有一些宽轴和一些细轴的椭球体。在这种情况下,高方差变量(椭圆体较宽)上将加载高方差分量,而低方差变量(椭圆体在其方向较窄)上将加载低方差分量。

> pcHiLo <- princompn(n=1e6, sd1=4, sd2=4, sd3=1, sd4=1, cor=FALSE)
> summary(pcHiLo)
Importance of components:
                          PC1    PC2    PC3     PC4
Standard deviation     4.0018 3.9985 1.0016 1.00005
Proportion of Variance 0.4709 0.4702 0.0295 0.02941
Cumulative Proportion  0.4709 0.9411 0.9706 1.00000
> round(pcHiLo$rotation, 3)
      PC1   PC2    PC3    PC4
x1  0.460 0.888  0.000  0.000
x2 -0.888 0.460  0.000  0.000
x3  0.000 0.000 -0.747 -0.664
x4  0.000 0.000  0.664 -0.747

如果变量具有非常不同的方差(几何上又是一个椭圆体,但所有轴都不同),那么正交性允许第一台 PC 非常重地加载最高方差变量,依此类推。

> pc1234 <-  princompn(n=1e6, sd1=1, sd2=2, sd3=3, sd4=4, cor=FALSE)
> summary(pc1234)
Importance of components:
                          PC1    PC2    PC3     PC4
Standard deviation     3.9981 3.0031 1.9993 1.00033
Proportion of Variance 0.5328 0.3006 0.1332 0.03335
Cumulative Proportion  0.5328 0.8334 0.9667 1.00000
> round(pc1234$rotation, 3)
     PC1    PC2    PC3   PC4
x1 0.000  0.000 -0.001 1.000
x2 0.001 -0.001  1.000 0.001
x3 0.003 -1.000 -0.001 0.000
x4 1.000  0.003 -0.001 0.000

在最后两种情况下,您可能会考虑丢弃低方差分量以实现降维,但这样做完全等同于首先丢弃最低方差变量本质上,正交性允许您识别具有低方差变量的低方差分量,因此如果您打算以这种方式降低维度,则不清楚使用 PCA 这样做是否会受益。

注意事项:讨论变量未重新调整为单位方差的情况(即使用协方差而不是相关矩阵)的时间长度不应被视为这种方法更重要的指示,当然也不是更好”。这种情况的对称性更加微妙,因此需要更长的讨论时间。

如果所有 N 个变量都是大致正交的,那么降维将做相对较小的降维。例如在R

set.seed(123)
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- rnorm(100)
x4 <- rnorm(100)
x5 <- rnorm(100)
x6 <- rnorm(100)
x7 <- rnorm(100)
x8 <- rnorm(100)
x9 <- rnorm(100)
x10 <- rnorm(100)

df1 <- cbind(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)

pcsol <- princomp(df1)
loadings(pcsol)

本质上,“正交”意味着“已经是最小尺寸”。