AP近邻传播聚类算法(Affinity Propagation)程序

参考链接

最近看了聚类传播算法,对于Affinity Propagation算法,大家可以参考以下链接,个人推荐的阅读顺序是:

  1. Affinity Propagation: AP聚类算法:先简要了解一下大概的流程;
  2. 浅谈AP聚类算法-matlab:与论文一起阅读这篇博客;另外,论文可以去本博客下方的GitHub链接上下载;
  3. AP聚类算法使用详解(scikit-learn):以较少的内容进行概括总结。

算法缺点:

  1. 虽然AP算法不用提前设置聚类中心的个数,但是需要事先设置参考度,而参考度的大小与聚类中心的个数正相关;
  2. 由于AP算法每次迭代都需要更新每个数据点的吸引度值和归属度值,算法复杂度较高,在大数据量下运行时间较长。

至于第2点,本人体会颇深,因为我所运行的数据集相较较大(46000*13左右),在matlab和python运行时都会报错,便想解决memory error的问题,参考了这个解决Python memory error的问题(四种解决方案)
链接进行修改,虽然程序可以运行了,但是matlab跑了2天依然不能出结果,便将其手动结束,结果发现自己的C盘存储已满(原来还空余200多个G啊啊啊啊),网上搜锁**“matlab运行完C盘变红**”、“matlab缓存在哪里”、“diary文件”等相关问题,但是网上现存的方法都不起作用。
最终的最终,终于发现是因为自己改了虚拟内存的设置,几乎将全部的硬盘空间都设成了虚拟内存,都怪自己不懂操作系统啊啊啊,没有明白虚拟内存的真正内涵,其实将硬盘空间设置成虚拟内存之后,就算那部分地址没有被任何程序使用,其显示也是被占用的,这就是为什么自己找不到硬盘里的大文件,但是显示已经没有空间的原因,只要将虚拟内存的设置设成原来的就行了。
最终只能将原来的数据集进行筛选变小,才可以得到运行结果。

整理的相关程序见链接:

GitHub下载链接AP(Affinity Propagation)、matlab、python
或者CSDN下载链接

链接内容:
1. 论文《Clustering by Passing Messages Between Data Points》
   是AP算法的详细介绍,包括原理、优势、应用、展望等内容。
2. 论文《基于近邻传播聚类和遗传优化的非侵入式负荷分解方法_徐青山》是AP算法应用于非侵入式负荷分析的介绍。
3. AP_main是matlab实现AP的程序,读者可以自己修改输入数据
   运行结果为AP_main.jpg。
4. AP1-AP3是Python运行程序,都可实现算法功能,读者可以自己修改输入数据,运行结果为AP1-AP3.jpg。
5. 因在网上学习的相关内容,如有侵权,请及时联系本人。

你可能感兴趣的:(机器学习,算法,python)