作者:坚新
研究方向:自然语言处理
https://github.com/yangjianxin1/PAMAE
编者按:AINLP技术群的坚新同学发布了一个新项目:PAMAE (PAMAE: Parallel k-Medoids Clustering with High Accuracy and Efficiency论文复现 ),以下是来自该项目的详细介绍,欢迎Star。
项目介绍
PAMAE: Parallel k-Medoids Clustering with High Accuracy and Efficiency 是SIGKDD2017一篇关于k-medoids并行聚类的论文,论文中作者使用Spark与Hadoop实现算法的并行化,而本项目使用python并行编程模拟MapReduce的并行,对该论文算法的思想进行复现。
使用本项目复现的代码对中心数量分别为5、10、15、20的数据集进行聚类的效果图如下(数据集大小为1万)
使用方法
直接运行如下命令即可,程序会使用默认参数,生成一个数据集,并对该数据集执行聚类算法
python pamae.py
也可以指定如下参数:
n_points:生成的数据的个数,默认为10000
subset_size:phase 1中采样后子集的大小,默认为100
subset_num:phase 1中采样的子集的数量 ,默认为5
centroid_num:簇中心的数量 ,默认为10
python pamae.py --n_points 10000 --subset_size 100 --subset_num 5 --centroid_num 10
程序产生的Phase 1与Phase 2的聚类结果图,会保存在根目录的results文件夹下,命名方式为"phase[1|2]_数据集大小_采样子集大小_采样子集数量_中心数量",并且在控制台输出每个阶段的的中心集合、耗时、聚类误差等数据
背景介绍
聚类就是将数据集划分为多个簇