List item
模式识别近邻聚类算法python实现
实现思路
代码实现
`import numpy as np
def Nearest_neighbor_clustering_algorithm(data,t):
classfiy=[data[0]]#先将第一个数据作为一个聚类
for indata in data:
intitaldistance = np.sqrt(sum(np.power((np.array(indata) - np.array(classfiy[0])), 2)))
for i in range(len(classfiy)):
distance=np.sqrt(sum(np.power((np.array(indata) - np.array(classfiy[i])), 2)))
if intitaldistance>distance:
intitaldistance=distance
if intitaldistance>t:
classfiy.append(indata)
result = [[] for i in range(len(classfiy))]
for indata in data:
index=0
min_distance=np.sqrt(sum(np.power((np.array(indata) - np.array(classfiy[0])), 2)))
for i in range(len(classfiy)):
distance=np.sqrt(sum(np.power((np.array(indata) - np.array(classfiy[i])), 2)))
if distance<min_distance:
index=i
min_distance=distance
result[index].append(indata)
return result
data = [[0, 1], [4, 2], [3, 5], [6, 7], [8, 9], [10, 5], [1, 5], [6, 3], [4, 7]]
t=4.5
result=Nearest_neighbor_clustering_algorithm(data,t)
for i in range(len(result)):
print("第" + str(i+1) + "个聚类")
print(result[i])
`
如有不足之处还望批评指正!!!