1、 凝聚层次聚类算法实现(非聚类库函数调用)python实现
时间: 2023-08-22 10:03:41 浏览: 141
Python聚类算法之凝聚层次聚类实例分析
5星 · 资源好评率100%
凝聚层次聚类算法是一种自下而上的聚类方法,它将每个数据点视为一个独立的簇,然后将它们逐步合并成更大的簇,直到满足某个停止准则为止。以下是一个非聚类库函数调用的 Python 实现:
```python
import numpy as np
# 定义距离函数
def distance(x, y):
return np.sqrt(np.sum((x - y) ** 2))
# 定义凝聚层次聚类函数
def agglomerative_clustering(X, n_clusters):
# 初始化簇
clusters = [[x] for x in X]
# 循环合并簇
while len(clusters) > n_clusters:
min_distance = float('inf')
# 找到距离最近的两个簇
for i in range(len(clusters)):
for j in range(i + 1, len(clusters)):
for x in clusters[i]:
for y in clusters[j]:
d = distance(x, y)
if d < min_distance:
min_distance = d
merge_clusters = (i, j)
# 合并最近的两个簇
i, j = merge_clusters
clusters[i].extend(clusters[j])
del clusters[j]
return clusters
# 测试
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]])
n_clusters = 3
clusters = agglomerative_clustering(X, n_clusters)
print(clusters)
```
以上代码实现了一个简单的凝聚层次聚类算法,可以通过输入样本和聚类数来得到聚类结果。
阅读全文