2

我目前正在尝试在 R 中进行 PCA。这是我在数据挖掘方面的第一个项目。我有大约 200 个特征和大约 3000 行数据。

数据不是标准化形式,我需要进行降维,所以我使用 PCA 来做同样的事情。这就是我到目前为止所做的

x <- princomp(data,scores=TRUE,cor=TRUE)

我想进行降维,我应该查看分值。所以我确实得到了前几个值

head(x$scores)

这是输出

       Comp.1     Comp.2     Comp.3     Comp.4    ...
[1,]  6.831452 -4.4316218 -1.9226226 -0.8344245 
[2,] -1.808007 -4.2743390  1.0173944  0.4527465
[3,] -7.750329 -4.9523056 -1.6750438  1.6247354 
.
.
.

现在我不确定如何解释这些矩阵并获得最佳属性(并进行降维)。如果有人可以帮助我解决这个问题,那就太好了。

PS - 我搜索了很多,但没有得到相同的答案。

4

1 回答 1

4

scores只是其中的一部分。一般公式为:

original_data =~ approximation = (scores * loadings) * scale + center

在哪里:

1. `scores` are the coordinates in your new orthogonal base
1. `loadings` are the directions of the new axis in the old base
1. `scale` are the scaling applied to the dimensions
1. `center` are the coordinates of the new base origin in the old base

使用 R 对象,上面的公式是

data =~ t(t(x$scores %*% t(x$loadings)) * x$scale + x$center)

您将希望仅通过第一次i加载来减小尺寸:

data =~ t(t(x$scores[, 1:i] %*% t(x$loadings[, 1:i ])) * x$scale + x$center)
于 2013-10-13T11:05:10.613 回答