从分区集合确定一致聚类的包

Cluster_Ensembles的Python项目详细描述


用于将多个分区合并为一个 集群。获得这样一个最优解的组合优化问题 共识聚类在近似方面被重新表述。 图或超图分区的算法。

安装

集群集成是用python和c编写的。 它的标准库和以下软件包:

  • numexpr(2.4.0或更高版本)
  • numpy(1.9.0版或任何其他版本)
  • scipy
  • SCIKIT学习
  • 设置工具
  • Pytables

下面提到的pip install Cluster_Ensembles命令应该自动检测并(如果适用)安装或更新上述任何依赖项。

作为运行集群集成的又一个预备,您还应该 按照下面的几条说明操作。

在CentOS、Fedora或某些Red Hat Linux发行版上:

  • 打开终端控制台;
  • 键入:sudo dnf install glibc.i686

这将安装运行32位所需的gnu c库 带有64位Linux内核的可执行二进制文件。此可执行文件的任务是 使用超图分区。跳过此步骤将导致 bad ELF interpreter随后尝试运行时出现错误消息 集群集成包。

在debian或ubuntu平台上,以下命令应该产生 相同的结果:

  • 打开终端控制台;
  • 键入:sudo dpkg --add-architecture i386以添加对 i386体系结构;
  • 输入:sudo apt-get install libc6:i386

完成上述步骤后,安装集群集成 向python包索引(pypi)发送如下请求:

  • 打开终端控制台;
  • 输入pip install Cluster_Ensembles

任何丢失的第三方依赖项都应自动解决。 请注意,作为此软件包安装的一部分,有些代码 用C编写,稍后集群将需要它 用于确定图形分区的包在 引擎盖和根据你的机器规格。你 因此需要确保上的CMakeGNU make可用 你的操作系统。

用法

假设您有一个shape数组(m,n),其中每一行对应一个向量,该向量报告组成数据集的n个样本中的每个样本的集群标签。其中一些样本可能是由于某些m clustering而忽略掉的;在本例中,相应的条目被标记为nan(numpy.nan)。

下面几行说明了如何提交一致性聚类分析,例如集群运行(m,n)集群标签数组。返回一个向量,其中包含数据集中每个n个样本的一致聚类标识consensus_clustering_labels

请注意,聚类标签的m向量可以对应于将样本划分成不同数量的整体聚类。因此,集群集成提供了从将数据集聚合为10个组、将一小部分样本聚合为5个集群、将数据集另一个划分为20个集群等来寻求一致集群的可能性。这些选择完全取决于您。集群集成所需要的几乎就是一组集群向量。

>>> import numpy as np
>>> import Cluster_Ensembles as CE
>>> cluster_runs = np.random.randint(0, 50, (50, 15000))
>>> consensus_clustering_labels = CE.cluster_ensembles(cluster_runs, verbose = True, N_clusters_max = 50)

参考文献

  • 吉考德,G.,马可,E.,特里帕,L.和袁,G.-C., “基于高维单细胞数据的稳健谱系重建”。 arxiv预印本[q-bio.qm,stat.ap,stat.co,stat.ml]:http://arxiv.org/abs/1601.02748
  • A.Strehl和J.Ghosh,“集群集成-知识重用 组合多个分区的框架”。输入:机器轴颈 学习研究,3,第583-617页。2002年

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

推荐PyPI第三方库


热门话题
图形Java仿射变换以旋转通用路径   IntelliJ IDEA中的java代码标记为编译器错误,在Eclipse中可以正常工作   java ArrayList的containsAll返回了错误的值   如何在安卓中的片段活动中添加java代码   java通过使用netbeans调用jbutton,将带有行的jbutton添加到jtable中   java在更新arrayAdapter/listView之前更新最终列表   java如何在另一个项目中导入包含AspectJ方面和注释的项目   为什么我的java布尔测试总是失败?   Eclipse中的java自动激活   在Bluetooth for Java(更具体地说是Android)之上是否有TCP/IP协议栈实现?   java Android Studio通过intent传递ArrayList并填充ListView