import numpy as np
import random
def minMaxCluster(data, ratio=0.5):
"""
最小最大距离聚类法
参数
--------------
:param data: 待聚类样本
:param ratio: 创建新聚类中心的距离系数
:return: result:聚类标签
"""
# 计算样本间距离,储存在距离矩阵distanceArray中
def computerDistance(data):
distanceArray = np.zeros((data.shape[0], data.shape[0]))
for i in range(data.shape[0]):
for j in range(i, data.shape[0]):
distanceArray[i, j] = np.sum(np.square(data[i] - data[j]))
distanceArray[j, i] = distanceArray[i, j]
return distanceArray
# 初始化2个聚类中心点
def initialCluster(data, distanceArray):
cluster1 = random.randint(0, data.shape[0] - 1)
cluster2 = np.argmax(distanceArray[cluster1])
clusters = [cluster1, cluster2]
return clusters
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载