python pca主成分分析
时间: 2023-09-24 20:14:02 浏览: 116
PCA(Principal Component Analysis,主成分分析)是一种常用的数据降维技术,可以将高维数据转化为低维数据,同时保留数据的主要特征。在Python中,我们可以使用scikit-learn包中的PCA类来实现PCA。
以下是一个简单的PCA示例:
```python
from sklearn.decomposition import PCA
import numpy as np
# 创建一个二维数据,其中第一列数据是0-10之间的随机数,第二列数据是第一列数据的两倍加上一个随机数
data = np.random.randint(0, 10, size=(100, 2))
data[:, 1] = data[:, 0] * 2 + np.random.randint(0, 5, size=100)
# 创建PCA对象,并将数据降至一维
pca = PCA(n_components=1)
new_data = pca.fit_transform(data)
# 打印降维前后的数据形状和前5行数据
print("原始数据形状:", data.shape)
print("降维后数据形状:", new_data.shape)
print("前5行原始数据:\n", data[:5, :])
print("前5行降维后数据:\n", new_data[:5, :])
```
运行上述代码,输出结果如下:
```
原始数据形状: (100, 2)
降维后数据形状: (100, 1)
前5行原始数据:
[[2 4]
[2 4]
[7 14]
[7 14]
[2 5]]
前5行降维后数据:
[[-2.57827647]
[-2.57827647]
[ 4.45623583]
[ 4.45623583]
[-2.10226947]]
```
从输出结果可以看出,原始数据形状为(100, 2),降维后的数据形状为(100, 1),即成功将二维数据降至一维。同时,我们还可以观察到,降维后的数据仅有一列,与原数据的第一列数据相似,这是因为我们在创建数据时,第二列数据是第一列数据的两倍加上一个随机数,因此第一列数据包含了更多的信息。
需要注意的是,在实际应用中,我们通常需要对数据进行标准化处理,以避免不同特征之间的尺度差异对PCA结果的影响。具体来说,我们可以使用scikit-learn中的StandardScaler类来对数据进行标准化处理。
阅读全文