以下是一个使用PCA进行聚类的代码示例:
import numpy as np
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
# 生成随机数据
np.random.seed(0)
n_samples = 1000
n_features = 50
X = np.random.rand(n_samples, n_features)
# 使用PCA进行降维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 使用K-Means进行聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(X_pca)
# 可视化聚类结果
import matplotlib.pyplot as plt
# 绘制原始数据
plt.scatter(X_pca[:, 0], X_pca[:, 1], c='blue', alpha=0.5, marker='o')
# 绘制聚类中心
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1],
c='red', marker='x')
plt.show()
在这个示例中,我们首先生成了一个随机的高维数据集X。然后,我们使用PCA进行降维,将数据降到二维空间。然后,我们使用K-Means算法对降维后的数据进行聚类。最后,我们使用matplotlib库将聚类结果可视化出来,其中原始数据点用蓝色圆圈表示,聚类中心用红色叉表示。