我知道PCA 不会告诉您数据集的哪些特征最重要,而是哪些特征组合保持最大差异。
您如何利用 PCA 旋转数据集以使其沿第一维具有最大方差、沿第二维具有最大方差等这一事实来降低数据集的维数?
我的意思是,更深入地说,前 N 个特征向量如何用于将特征向量转换为保持大部分方差的低维表示?
我知道PCA 不会告诉您数据集的哪些特征最重要,而是哪些特征组合保持最大差异。
您如何利用 PCA 旋转数据集以使其沿第一维具有最大方差、沿第二维具有最大方差等这一事实来降低数据集的维数?
我的意思是,更深入地说,前 N 个特征向量如何用于将特征向量转换为保持大部分方差的低维表示?
让X
是一个N x d
矩阵,其中每一行X_{n,:}
都是来自数据集的向量。
然后X'X
是协方差矩阵,并且特征分解给出X'X=UDU'
其中U
是d x d
特征向量的矩阵,U'U=I
并且D
是特征值的d x d
对角矩阵。
特征分解的形式U'X'XU=U'UDU'U=D
意味着如果你转换你的数据集,U
那么新的数据集XU
, 将有一个对角协方差矩阵。
如果特征值从大到小排序,这也意味着第一个变换特征的均方值(由表达式 给出U_1'X'XU_1=\sum_n (\sum_d U_{1,d} X_{n,d})^2
)将大于第二个,第二个大于第三个,等等。
如果我们将数据集的特征从平均值最大值到最小值排序,那么如果我们只是去掉平均值小的特征(并且大平均值的相对大小比小的平均值大得多),那么我们有没有丢失太多信息。这就是概念。