以下是一个示例代码,展示了如何使用Python的scikit-learn库进行主成分分析(PCA)和K均值聚类,并绘制标准化后的主成分的K均值聚类图。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# 生成随机数据
np.random.seed(0)
X = np.random.randn(100, 3) # 100个样本,每个样本有3个特征
# 数据标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 进行PCA降维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
# 使用K均值聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(X_pca)
# 绘制标准化后的主成分的K均值聚类图
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=kmeans.labels_)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='x', color='red')
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.title('K-means Clustering of Standardized Principal Components')
plt.show()
这段代码首先生成了一个随机的3维数据集X,然后使用StandardScaler对数据进行标准化。接下来,使用PCA将数据降维到2维,然后使用KMeans对降维后的数据进行聚类。最后,使用matplotlib库绘制标准化后的主成分的K均值聚类图,其中不同的类别用不同的颜色表示,聚类中心用红色的"x"标记。
你可以根据需要调整生成随机数据的方式、数据集的维度、聚类的数量等参数,以适应你的具体需求。
下一篇:标准化会导致查询过多吗?