title:主成分分析
作用
降维
主成分分析(Principal Component Analysis,PCA)是一种常用的降维技术,用于从高维数据中提取主要特征,并将数据投影到一个新的低维空间。
主成分分析能降低所研究的数据空间的维数。即用研究m维的Y空间代替p维的X空间(m<p),而低维的Y空间代替高维的x空间所损失的信息很少。即:使只有一个主成分Yl(即 m=1)时,这个Yl仍是使用全部X变量(p个)得到的。例如要计算Yl的均值也得使用全部x的均值。在所选的前m个主成分中,如果某个Xi的系数全部近似于零的话,就可以把这个Xi删除,这也是一种删除多余变量的方法。
变量解释
有时可通过因子负荷aij的结论,弄清X变量间的某些关系。
图形分析
多维数据的一种图形表示方法。我们知道当维数大于3时便不能画出几何图形,多元统计研究的问题大都多于3个变量。要把研究的问题用图形表示出来是不可能的。然而,经过主成分分析后,我们可以选取前两个主成分或其中某两个主成分,根据主成分的得分,画出n个样品在二维平面上的分布况,由图形可直观地看出各样品在主分量中的地位,进而还可以对样本进行分类处理,可以由图形发现远离大多数样本点的离群点。
回归分析
由主成分分析法构造回归模型。即把各主成分作为新自变量代替原来自变量x做回归分析。
降低计算量
用主成分分析筛选回归变量。回归变量的选择有着重的实际意义,为了使模型本身易于做结构分析、控制和预报,好从原始变量所构成的子集合中选择最佳变量,构成最佳变量集合。用主成分分析筛选变量,可以用较少的计算量来选择量,获得选择最佳变量子集合的效果。
以下是一个使用 Python 的示例代码,演示如何使用 scikit-learn
库进行主成分分析:
首先,确保已安装 scikit-learn
库,可以通过以下命令安装:
1
| pip install scikit-learn
|
接下来,使用下面的代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import numpy as np from sklearn.decomposition import PCA import matplotlib.pyplot as plt
np.random.seed(0) X = np.random.randn(100, 2)
pca = PCA(n_components=1) X_pca = pca.fit_transform(X)
plt.scatter(X[:, 0], X[:, 1], label='Original Data') plt.scatter(X_pca, np.zeros(X_pca.shape), label='PCA') plt.legend() plt.xlabel('Feature 1') plt.ylabel('Feature 2') plt.title('PCA Example') plt.show()
print("Explained Variance Ratio:", pca.explained_variance_ratio_)
|
在上述代码中,我们首先生成了一个随机样本数据 X
,其中每个样本有两个特征。然后,使用 PCA
类进行主成分分析,将数据降维到一个维度。通过绘制散点图,您可以观察原始数据和降维后的数据之间的关系。最后,我们打印出主成分分析后的方差解释比例,这是降维后保留的信息量。
请注意,PCA 的应用范围不仅限于这个简单的示例,它可以用于处理更复杂的数据,如图像、文本等。在实际应用中,您可能需要根据数据的特点进行调整和优化。