55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
"""
|
||
This code is supported by the website: https://www.guanjihuan.com
|
||
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/39020
|
||
"""
|
||
|
||
import numpy as np
|
||
from sklearn.decomposition import PCA
|
||
|
||
# 创建一个人造数据集,包含10个样本,每个样本有4个特征
|
||
X = np.array([[2, 1, 3, 4],
|
||
[3, 5, 2, 8],
|
||
[4, 3, 6, 5],
|
||
[6, 7, 3, 9],
|
||
[5, 4, 7, 6],
|
||
[7, 8, 5, 10],
|
||
[8, 6, 9, 7],
|
||
[9, 10, 6, 11],
|
||
[10, 8, 11, 8],
|
||
[11, 12, 8, 12]])
|
||
|
||
# 测试一
|
||
|
||
pca = PCA() # 创建PCA对象,保留所有主成分
|
||
X_transformed = pca.fit_transform(X) # 对数据进行PCA变换
|
||
|
||
# 输出原始数据和变换后的数据
|
||
print("Original Data:")
|
||
print(X)
|
||
print(X.shape)
|
||
print("\nTransformed Data:")
|
||
print(X_transformed)
|
||
print(X_transformed.shape)
|
||
|
||
# 输出各个主成分所解释的方差比例
|
||
print("\nExplained Variance Ratio:")
|
||
print(pca.explained_variance_ratio_)
|
||
|
||
print('\n---\n')
|
||
|
||
# 测试二
|
||
|
||
pca = PCA(n_components=2) # 创建PCA对象,保留前2个主成分
|
||
X_transformed = pca.fit_transform(X) # 对数据进行PCA变换
|
||
|
||
# 输出原始数据和变换后的数据
|
||
print("Original Data:")
|
||
print(X)
|
||
print(X.shape)
|
||
print("\nTransformed Data:")
|
||
print(X_transformed)
|
||
print(X_transformed.shape)
|
||
|
||
# 输出各个主成分所解释的方差比例
|
||
print("\nExplained Variance Ratio:")
|
||
print(pca.explained_variance_ratio_) |