求问:是否存在与自定义k-reduce聚类功能相同的已有算法?
k-reduce聚类算法相关咨询
给定N个点的集合,需将其划分为k个子集S₁,…,Sₖ。每个子集Sᵢ对应一个代表点Rᵢ,目标是找到这些R₁,…,Rₖ,以最小化子集成员相对于聚类代表点的任意代价函数,即:
min ∑_{i=1}^k ∑_{Pj ∈ Si} cost(Pj, Ri)
其中聚类代表点Rᵢ由任意归约函数从聚类成员中生成:
Ri = reduce(Si)
受k-means聚类启发,我设计了以下称为k-reduce聚类的算法,现咨询是否存在具备相同功能的算法或算法族:
# 从S中随机选取k个样本初始化,可采用更优的初始化方法 cluster_repr = random_samples(S, k) # 包含k个点的列表 clusters = None while True: # 步骤1:分配阶段 old_clusters = clusters clusters = [[] for i in range(n)] for Pj in S: # 将Pj分配给使其相对于代表点代价最小的聚类 cluster_idx = argmin( cluster_repr, lambda Ri : cost_fn(Pj, Ri) ) clusters[cluster_idx].append(Pj) # 步骤2:更新阶段 cluster_repr = [reduce_fn(clusters[i]) for i in range(n)] total_dist = None if old_clusters == clusters: break
内容的提问来源于stack exchange,提问作者digikar
相关产品推荐
相关产品推荐

