亲和传播聚类的可扩展并行编程实现

Concurrent_A的Python项目详细描述


概述

一种可伸缩的并行亲和性编程实现 传播群集。

关联传播是一种基于消息传递的聚类算法 在数据点之间。

存储和更新“亲缘关系”、“责任”和 样本之间的“相似性”可能是记忆密集型的。我们解决这个问题 通过使用hdf5数据结构发出,允许关联 任意大数据集的传播群集,其中 在大多数机器上,实现都会返回一个memoryerror。

我们还通过将它们分开来显著地加快计算速度 跨子流程,从而充分利用 多核处理器并绕过 标准的python解释器cpython。

安装和要求

concurrent_ap需要python 2.7以及以下包和 标准python库中的几个模块:

  • numpy>;=1.9
  • psutil
  • Pytables
  • SCIKIT学习
  • 设置工具

建议您检查是否安装了所需的依赖项,尽管下面的pip命令应自动为您执行此操作。您确实可以最方便地从官方python包索引(pypi)下载并发的ap,如下所示:

  • 打开终端窗口;
  • 输入命令pip install Concurrent_AP

这里的代码已经在fedora、os x和ubuntu上测试过了,应该 在类unix操作系统系列的任何其他成员上都可以正常工作。

用法和命令行选项

查看与并发应用程序的每个函数关联的docstrings 模块以获取更多信息并了解不同任务 在子流程之间组织和共享。

用法:Concurrent_AP [options] file_name,其中file_name 表示要通过关联传播处理的数据的路径 群集被保留。数据必须包含在以制表符分隔的示例行中,每个列对应于特定功能。

  • -c--convergence:指定不带 表示聚合的群集数的更改(默认值 15);
  • -d--damping:关联的阻尼参数 传播(默认为0.5);
  • -f--file:指定文件名或文件句柄的选项 所涉及矩阵的层次数据格式 将存储关联传播群集(默认为 临时文件);
  • ^ TT11} $或^ {TT12}$:消息传递的最大数目 迭代次数(默认为200次);
  • -m--multiprocessing:要使用的进程数;
  • -p--preference:关联的首选参数 传播(如果未指定,将确定为 样本间成对l2欧氏距离的分布);
  • -s--similarities:确定相似矩阵是否 已预先计算并存储在HDF5数据结构中,可在 通过命令行选项指定的位置-f--file(见上文);
  • -v--verbose:是否冗长。

并发ap的演示

以下几行说明了在 “IRIS数据集”来自UCI机器学习库。而 这里的样品数量太少,不利于现在 多任务实现和hdf5数据结构的使用 充分发挥作用,这个数据集的优点是 与scikit learn的版本进行快速比较 亲和力传播聚类。

  • 在python解释器控制台中,输入以下几行 目的是创建一个包含iris数据集的文件 之后通过 同意者电子地图:
>>> import numpy as np
>>> from sklearn import datasets

>>> iris = datasets.load_iris()
>>> data = iris.data
>>> with open('./iris_data.txt', 'w') as f:
       np.savetxt(f, data, fmt = '%.4f', delimiter = '\t')
  • 打开终端窗口。
  • 键入Concurrent_AP --preference 5.47 --v iris_data.txt或 只需Concurrent_AP iris_data.txt

后者将自动从 数据集。

当数据点之间的消息传递轮次完成时, 包含群集标签文件和群集中心文件的文件夹 以制表符分隔格式创建的索引都是在当前工作中创建的 目录。

参考

布伦丹·J·弗雷和德尔伯特·杜克。“通过传递消息进行群集 数据点之间”,科学2007年2月

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过弹出消息或警报对话框验证多个edittext字段?   九人莫里斯游戏的java比特板表示法   java处理:如何阻止所有侦听器捕获鼠标事件   selenium我无法单击元素,没有错误WebDriver/Java/Firefox   多线程Java ReentrantLock,无法解锁锁   java将数据发送到Wampserver Android   Java 2D阵列和扫描仪   java在使用apache commons csv读取csv文件时跳过双引号   java Liberty Buildpack在部署War时偶尔暂停/冻结   java JavaFX日期选择器未更新值   java如何获取移动电话的公共IP地址?   java Mockito检查对象上是否调用了任何方法(对象已被访问)   java这个maven认证错误表明了什么?   java如何使用特殊字体(单元格中的文本以粗体、下划线甚至不同的字体颜色)添加到Jtable?   实例化可以是具体类或接口类的Java类   Java准备语句的Oracle错误“SQL命令未正确结束”(ORA0033)