在Python中,您可以使用`scikit-learn`库来完成聚类任务。以下是使用K-means算法和层次聚类算法进行聚类的示例代码:
K-means聚类
from sklearn.cluster import KMeans
import numpy as np
生成随机数据集
X = np.random.rand(100, 2)
创建KMeans对象,指定簇数K=3
kmeans = KMeans(n_clusters=3)
训练模型,并进行聚类
kmeans.fit(X)
获取聚类结果
labels = kmeans.labels_
centers = kmeans.cluster_centers_
print("簇标签:", labels)
print("簇中心:", centers)
层次聚类
from scipy.cluster.hierarchy import linkage, dendrogram
import numpy as np
import matplotlib.pyplot as plt
生成随机数据集
X = np.array([[1, 2], [2, 2], [2, 3], [4, 5], [5, 6], [7, 8]])
创建linkage对象,指定距离度量方式为欧几里得距离,并指定簇数K=3
Z = 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`参数来选择不同的距离度量方式。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/146142.html