#GPT辅助学习 例子: 主成分分析
主成分分析(PCA)是一种用于降维的统计方法。以下是一个包含具体数据的PCA计算例子,包含每一个步骤。
数据集
假设我们有一个2D数据集,如下所示:
X = [[2.5, 2.4],
[0.5, 0.7],
[2.2, 2.9],
[1.9, 2.2],
[3.1, 3.0],
[2.3, 2.7],
[2, 1.6],
[1, 1.1],
[1.5, 1.6],
[1.1, 0.9]]
步骤1:数据标准化
首先,标准化数据,使其均值为0,方差为1。
计算每个特征的均值:
mean_X1 = (2.5 + 0.5 + 2.2 + 1.9 + 3.1 + 2.3 + 2 + 1 + 1.5 + 1.1) / 10 = 1.81
mean_X2 = (2.4 + 0.7 + 2.9 + 2.2 + 3.0 + 2.7 + 1.6 + 1.1 + 1.6 + 0.9) / 10 = 1.91
然后将数据中心化:
X_centered = [[2.5 - 1.81, 2.4 - 1.91],
[0.5 - 1.81, 0.7 - 1.91],
[2.2 - 1.81, 2.9 - 1.91],
[1.9 - 1.81, 2.2 - 1.91],
[3.1 - 1.81, 3.0 - 1.91],
[2.3 - 1.81, 2.7 - 1.91],
[2.0 - 1.81, 1.6 - 1.91],
[1.0 - 1.81, 1.1 - 1.91],
[1.5 - 1.81, 1.6 - 1.91],
[1.1 - 1.81, 0.9 - 1.91]]
X_centered = [[ 0.69, 0.49],
[-1.31, -1.21],
[ 0.39, 0.99],
[ 0.09, 0.29],
[ 1.29, 1.09],
[ 0.49, 0.79],
[ 0.19, -0.31],
[-0.81, -0.81],
[-0.31, -0.31],
[-0.71, -1.01]]
步骤2:计算协方差矩阵
Cov(X_centered) = (1/(n-1)) * (X_centered^T * X_centered)
Cov(X_centered) = [[0.61655556, 0.61544444],
[0.61544444, 0.71655556]]
步骤3:计算协方差矩阵的特征值和特征向量
特征值, 特征向量 = eig(Cov(X_centered))
特征值 = [0.0490833989, 1.28402771]
特征向量 = [[-0.73517866, 0.6778734 ],
[ 0.6778734 , 0.73517866]]
步骤4:选择主成分
选择具有最高特征值的特征向量作为主成分。这里特征值1.28402771对应的特征向量是[0.6778734, 0.73517866]。
步骤5:转换数据到新空间
将数据投影到选择的特征向量上:
PCA数据 = X_centered * 选择的特征向量
PCA数据 = [[ 0.69, 0.49],
[-1.31, -1.21],
[ 0.39, 0.99],
[ 0.09, 0.29],
[ 1.29, 1.09],
[ 0.49, 0.79],
[ 0.19, -0.31],
[-0.81, -0.81],
[-0.31, -0.31],
[-0.71, -1.01]] * [0.6778734, 0.73517866]
PCA数据 = [ 0.82797019, -1.77758033, 0.99219749, 0.27421042, 1.67580142,
0.9129491 , 0.09910944, -1.14457216, -0.43804614, -1.22382056]
结果
最终的PCA数据是:
PCA结果 = [[ 0.82797019],
[-1.77758033],
[ 0.99219749],
[ 0.27421042],
[ 1.67580142],
[ 0.9129491 ],
[ 0.09910944],
[-1.14457216],
[-0.43804614],
[-1.22382056]]
这样,我们通过PCA将原始的二维数据降维到一维,同时尽可能保留了数据的主要信息。