假设你有一家理发店,已经记录了过去一年中所有顾客的头发长度和发型偏好的数据。现在你想从这些数据中提取一些主要的信息,比如顾客最常选择的发型类型,以及不同发型之间的相关性等。这对于你未来开展有针对性的营销活动很有帮助。
具体来说,我们可以将每个顾客的发型偏好用一个多维向量来表示,每一维度对应一种发型类型的喜好程度(比如评分1-5分)。这样,所有顾客就形成了一个海量的、高维的数据集。
这时候,我们可以对这个数据集进行主成分分析(PCA)。PCA的核心就是找到数据的主要特征向量,即那些能够最大程度解释数据方差的方向向量。
例如,假设经过PCA分析,发现主要有两个显著的特征向量:
沿着这两个特征向量方向投影,就可以非常准确地还原出原始的高维数据。
这意味着,尽管原始数据有很多维度(发型类型),但是顾客的实际偏好可以用"时尚发型"和"保守发型"这两个主成分来概括和解释。
利用这两个主要特征向量,你可以:
所以,通过PCA分析得到的特征向量,可以帮助我们从高维复杂的数据中提取出主要的信息,发现数据背后的内在结构和群体特征,从而指导后续的决策。
一个主成分分析(PCA)的具体计算过程示例。我们继续用理发店的发型偏好数据作为例子。
假设我们有5个顾客,每个顾客对5种发型(A,B,C,D,E)的喜好程度用1-5分评分,数据如下:
顾客1: [5, 4, 2, 1, 3]
顾客2: [4, 5, 1, 2, 3]
顾客3: [2, 1, 5, 4, 3]
顾客4: [1, 2, 4, 5, 2]
顾客5: [3, 3, 3, 3, 3]
我们的目标是找到能最大程度解释这些数据方差的主要特征向量。计算步骤如下:
具体计算:
[2 1 -1 -2 0 ]
[1 2 -2 -1 0 ]
[-1 -2 2 1 0 ]
[-2 -1 1 2 -1 ]
[0 0 0 0 0 ]
[3.2 0.8 -0.8 -0.8 -0.8]
[0.8 3.2 -0.8 -0.8 -0.8]
[-0.8 -0.8 3.2 0.8 0.8]
[-0.8 -0.8 0.8 3.2 0.8]
[-0.8 -0.8 0.8 0.8 0.8]
计算Σ的特征值和对应特征向量(略去具体过程):
特征值1 = 6.828, 对应特征向量v1 = [0.456, 0.456, -0.456, -0.456, -0.364]
特征值2 = 2.172, 对应特征向量v2 = [0.556, -0.282, -0.282, 0.718, 0.166]
...
由于前两个特征值最大,所以选取v1和v2作为主成分
v1对应"时尚发型"的主成分, v2主要对应"保守发型"
通过将原始5维数据投影到由v1和v2张成的2维空间,就能很好地概括原始数据的主要模式和差异。
通过矩阵运算来计算每个数据点在v1和v2方向上的投影分量。
原始的5维数据为X = (x1, x2, x3, x4, x5),其中x1-x5分别是顾客对5种发型的评分。
现在我们想将X投影到由v1和v2张成的2维平面上,可以通过下面的矩阵运算:
X' = [v1 v2]T * X
其中:
具体运算就是:
通过这样的矩阵投影运算,我们就能将任意一个原始5维数据X,映射到一个二维坐标点(x1',x2')上。
不同顾客对应的二维坐标点(x1',x2')分布在2D平面上,散点分布的模式就能很好地展示:
这种将原始高维数据投影到主成分2维平面的方法,我们既降低了维度,又能很好地保留和展示数据中的主要模式和差异信息,这正是PCA的精髓所在。
这个例子展示了如何通过PCA的数学计算过程,从复杂数据中发现主要的特征向量,并利用它们提取主成分信息。