数据挖掘层次聚类算法代码
时间: 2024-06-22 17:02:45 浏览: 110
数据挖掘中的层次聚类算法是一种无监督学习方法,它将数据集中的对象逐步合并成越来越大的类别(簇),形成一棵树形结构。常见的层次聚类算法有凝聚型(自底向上)和分裂型(自顶向下)两种。这里我会简要描述一个基于Python的Scikit-learn库实现的凝聚型层次聚类(Hierarchical Clustering)的代码示例。
```python
from sklearn.cluster import AgglomerativeClustering
import numpy as np
import matplotlib.pyplot as plt
# 假设你有一个二维数据集data
data = np.random.rand(100, 2) # 生成随机数据
# 创建AgglomerativeClustering实例,设置连接方法为ward(默认)以减小内部方差
cluster = AgglomerativeClustering(n_clusters=3, affinity='euclidean', linkage='ward')
# 对数据进行聚类
labels = cluster.fit_predict(data)
# 绘制聚类结果
plt.scatter(data[:, 0], data[:, 1], c=labels, cmap='viridis')
plt.title('Hierarchical Clustering Result')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
```
这个例子中,`AgglomerativeClustering`是主要的类,`n_clusters`参数指定你希望得到的最终簇的数量,`affinity`决定了相似度度量(如欧式距离),`linkage`决定了合并策略。
阅读全文