双集群编辑库

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第三方库


热门话题
IE中的java跨域cookie问题   重复java中已经满足的循环   编译java RMI服务器时出错   JavaServlet POST中作为参数传递的javascript大型JSON数组数据为空   java片段未每次刷新/调用   java无法编译。错误消息   java如何构造大型类?   java Hibernate:TableThingsDB。事情并不存在   java如何操作从匹配项创建的数组。发现   循环以搜索和显示数组Java的某些部分   加载或注册SQLite JDBC驱动程序时出现java问题   活动和服务之间的java连接   JavaGWTG2D:ie8中的drawImage   java在安卓中设置hessian阈值   在Tomcat中使用Logback时发生java错误