在Python中,您可以使用`scikit-learn`库来完成聚类任务。以下是使用K-means算法和层次聚类算法进行聚类的示例代码:
K-means聚类
from sklearn.cluster import KMeansimport numpy as np生成随机数据集X = np.random.rand(100, 2)创建KMeans对象,指定簇数K=3kmeans = KMeans(n_clusters=3)训练模型,并进行聚类kmeans.fit(X)获取聚类结果labels = kmeans.labels_centers = kmeans.cluster_centers_print("簇标签:", labels)print("簇中心:", centers)
层次聚类
from scipy.cluster.hierarchy import linkage, dendrogramimport numpy as npimport matplotlib.pyplot as plt生成随机数据集X = np.array([[1, 2], [2, 2], [2, 3], [4, 5], [5, 6], [7, 8]])创建linkage对象,指定距离度量方式为欧几里得距离,并指定簇数K=3Z = linkage(X, method='ward')绘制树形图(谱系图)来可视化聚类结果plt.figure(figsize=(10, 6))dendrogram(Z)plt.title('Hierarchical Clustering Dendrogram')plt.xlabel('Sample Index')plt.ylabel('Distance')plt.show()
在上述代码中,`KMeans`类用于执行K-means算法,而`linkage`函数用于执行层次聚类算法。您可以根据需要调整参数,例如`n_clusters`来指定要分成的簇数,以及`method`参数来选择不同的距离度量方式。

