2 Star 7 Fork 4

linbo / Cluster_Algorithm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
hierarchical_cluster.py 1.39 KB
一键复制 编辑 原始数据 按行查看 历史
linbo 提交于 2018-02-11 15:46 . 层次聚类算法
# coding=utf-8
from max_min_cluster import get_distance
def hierarchical_cluster(data, t):
# N个模式样本自成一类
result = [[aData] for aData in data]
step2(result, t)
return result
def step2(result, t):
# 记录类间最小距离
min_dis = min_distance(result[0], result[1]) # 初始为1,2类之间的距离
# 即将合并的类
index1 = 0
index2 = 1
# 遍历,寻找最小类间距离
for i in range(len(result)):
for j in range(i+1, len(result)):
dis_temp = min_distance(result[i], result[j])
if dis_temp < min_dis:
min_dis = dis_temp
# 记录即将合并的聚类位置下标
index1 = i
index2 = j
# 阈值判断
if min_dis <= t:
# 合并聚类index1, index2
result[index1].extend(result[index2])
result.pop(index2)
# 迭代计算,直至min_dis>t为止
step2(result, t)
def min_distance(list1, list2):
# 计算两个聚类之间的最小距离:
# 遍历两个聚类的所有元素,计算距离(方法较为笨拙,有待改进)
min_dis = get_distance(list1[0], list2[0])
for i in range(len(list1)):
for j in range(len(list2)):
dis_temp = get_distance(list1[i], list2[j])
if dis_temp < min_dis:
min_dis = dis_temp
return min_dis
Python
1
https://gitee.com/iss2015302580266/Cluster_Algorithm.git
git@gitee.com:iss2015302580266/Cluster_Algorithm.git
iss2015302580266
Cluster_Algorithm
Cluster_Algorithm
master

搜索帮助