双集群编辑库

biclustp的Python项目详细描述


双色

用于双集群编辑的python库。

双群集编辑问题

  • 任务:给定一个带正负权重的矩阵weights,通过边插入和删除将由weights诱导的二部图转换为不相交的两个团(双簇)集合,这样总体转换成本最小。
  • weights引起的二部图的节点集是行和列的集合。当且仅当weights[i,k] > 0时,行i和列k之间有一条边。
  • 删除现有的边^ {< CD7> }引起成本^ {< CD8> }。插入一个不存在的边^ {< CD7> }引起代价^ {< CD10> }。

安装

  1. 下载并安装Gurobi,然后按照LinuxMac OSWindows安装指南中的说明获取许可证。
  2. 打开一个shell并执行pip install biclustpy

库使用

安装后,import biclustpy as bp进入python应用程序。然后按如下方式使用:

  • bp.Algorithm:使用此类选择要使用的算法。
  • bp.compute_bi_clusters(weights, algorithm):使用此函数可解决双群集编辑问题。
    • weights:作为numpy.array给定的问题实例。
    • algorithm:指定为bp.Algorithm对象的选定算法。
  • bp.save_bi_clusters_as_xml(filename, bi_clusters, obj_val, is_optimal, instance = ""):使用此函数将获得的解决方案保存为XML文件。
    • filename:XML文件的名称。
    • bi_clusters:由bp.compute_bi_clusters返回的bi集群。
    • obj_val:由bp.compute_bi_clusters返回的bi集群的目标值。
    • is_optimal:由bp.compute_bi_clusters返回的标志,指示计算出的bi集群是否保证是最优的。
    • instance:包含问题实例信息的字符串。

示例

import numpy as np
import biclustpy as bp

algorithm = bp.Algorithm
algorithm.algorith_name = "ILP"
algorithm.ilp_time_limit = 100
algorithm.ilp_tune = True

n = 30
m = 40
t = .95
weights = np.random.rand(n, m) - (t * np.ones((n, m)))

bi_clusters, obj_val, is_optimal = bp.compute_bi_clusters(weights, algorithm)

filename = "bi_clusters.xml"
instance = "random instance with 30 rows and 40 columns"
bp.save_bi_clusters_as_xml(filename, bi_clusters, obj_val, is_optimal, instance)

命令行用法

安装后,可以从命令行运行biclustpy。用法:

biclustpy [-h]
          (--load input-file | --random num-rows num-cols threshold seed)
          [--save output-file] [--alg {ILP,CH}]
          [--ilp_options time-limit tune]

更多信息,请执行biclustpy -h

许可证

您可以根据GNU Lesser General Public License的条款使用和分发biclustpy

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

推荐PyPI第三方库


热门话题
编译器构造为什么在Java中允许初始化对Null的引用?   java手动调用javax的actionPerformed。摆动计时器   使用git分支的java Maven版本控制   Java8句子流   java JPA OneToOne和OneToMany实体实例化/创建   java如何将值添加到列表<Map<String,Object>>?   java如何使用ComboBox在一个框架内更改JPanel。getSelectedIndex()   java在比较XML和xmlunit时忽略文本差异   java无法从其他pc连接到本地主机   Java中分配对象id的优雅方式   Java中静态变量的使用   java试图从Neteller获取OAuth访问令牌时产生错误:“服务器返回HTTP响应代码:401表示URL”   Java:基元类型是否会影响性能?   java可以让hasNext()不区分大小写吗?   基于AutoCompleteTextView建议属性或AutoCompleteTextView值的java Android搜索   java流文件到firefox浏览器有时无法打开应用程序对话框   在没有ArrayList的Java中返回数组中的搜索结果   复制java。木卫一。IOException:数据错误(CRC)   java为什么我在尝试删除Facebook测试用户时会出现“方法未实现”错误   java如何使用JNA调用SetProcessReliationPolicy