基于线性模式的图形内核python库

py-graphs的Python项目详细描述


py图

一个用于图形内核的python包。

要求

  • python==3.6.5
  • numpy==1.15.2
  • scipy==1.1.0
  • matplotlib==3.0.0
  • 网络x==2.2
  • scikit learn==0.20.0
  • 表格==0.8.2
  • tqdm==4.26.0
  • 控件==0.8.0(仅适用于广义随机游走内核)
  • slycot==0.3.3(仅适用于广义随机游走内核,它需要Fortran编译器,例如gfortran)

如何使用?

只需克隆这个存储库,就可以了!然后查看演示目录:

  • 笔记本目录包含基于线性模式的图形内核测试代码;
  • 笔记本/测试目录包含测试某些库和函数的代码;
  • 笔记本/utils目录中包含一些有用的工具,如gram矩阵检查器和获取数据集属性的函数;
  • 笔记本/else目录包括我们用于实验的其他代码。

图形内核列表

  • 基于步行
    • 公共行走核[1]
      • 指数型
      • 几何
    • 边缘化的肯雷尔
      • 摇摇晃晃的[2]
      • 不摇晃[7]
    • 广义随机游动核[3]
      • 西尔维斯特方程
      • 共轭梯度
      • 定点迭代
      • 光谱分解
  • 基于路径
    • 最短路径核[4]
    • 结构最短路径核[5]
    • 最长h[6]的路径内核
      • Tanimoto内核
      • minmax内核
  • 非线性核
    • treelet内核[10]
    • 魏斯费勒雷曼核心[11]
      • 子树

计算优化方法

  • python的多处理.pool模块用于对所有内核的计算和模型选择执行并行化
  • 最短路径核(fcsp)方法的快速计算在随机游走核、最短路径核和结构最短路径核(fcsp同时应用于顶点核和边核)中实现。
  • 在路径核中使用trie数据结构来存储图形中的路径。

问题

  • 此库使用multiprocessing.pool.imap_unordered函数进行并行化,这可能无法在Windows系统下正确运行。目前,windows用户可能需要注释并行代码,并取消注释它们下面串行运行的代码。我们将考虑根据需要添加一个参数来控制串行或并行计算。

  • 一些模块(如numpyscipysklearn)默认应用openblas来执行并行计算,这会导致与其他并行模块(如multipassing.pool)发生冲突,极大地增加了计算时间。。通过将其线程设置为1,openblas将强制使用单个线程/cpu,从而避免冲突。目前,这个过程必须手动完成。在linux下,在terminal befor中键入此命令e运行代码:

$ export OPENBLAS_NUM_THREADS=1

或者在~/.bashrc文件末尾添加export openblas_num_threads=1,然后运行

$ source ~/.bashrc

使之永久有效。

结果

查看本文,了解图核的详细描述和实验结果:

贾琳琳,盖泽尔,和保罗。基于线性模式的图核:理论和实验比较。工作文件或预印本,2019年3月。urlhttps://hal-normandie-univ.archives-ouvertes.fr/hal-02053946

参考文献

[1]托马斯·格特纳、彼得·弗莱克和斯特凡·弗罗贝尔。关于图核:硬度结果和有效的选择。学习理论与核心机器,第129-1432003页。

[2]鹿岛县H.Kashima、津田县K.Tsuda和井口县A.Inokuchi。标记图之间的边缘核。《第20届机器学习国际会议记录》,华盛顿特区,美国,2003年。

[3]Vishwanathan,S.V.N.,Schraudolph,N.N.,Kondor,R.,Borgwardt,K.M.,2010年。图形内核。机器学习研究杂志11201-1242。

[4]K.M.Borgwardt和H.-P.Kriegel。图的最短路径核。《数据挖掘国际会议记录》,第74-81页,2005年。

[5]利娃·拉莱沃拉,桑杰·J·斯瓦迈达斯,西戈和皮埃尔·巴尔迪。化学信息学图形核。神经网络,18(8):1093–1110,2005。

[6]Suard F,Rakotomamonjy A,Bensrhair A.测量形状相似性的路径袋上的核。2007年4月25日(第355-360页)。

[7]Mahé,P.,Ueda,N.,Akutsu,T.,Perret,J.L.,Vert,J.P.,2004年。边缘化图核的扩展,in:proc.第二十一届机器学习国际会议。70、

[8]徐立凡,王伟,阿尔瓦雷斯,卡瓦佐斯,张东平.多核cpu和gpu上最短路径图核的并行化。异构多核(多道程序)可编程性问题会议记录,维也纳,奥地利,2014年。

[9]爱德华弗雷德金。记忆。ACM通讯,3(9):490–4991960。

[10]Gaüzere,B.,Brun,L.,Villemin,D.,2012年。化学信息学中的两个新图核。模式识别字母332038–2047。

[11]Shervashidze,N.,Schweitzer,P.,Leeuwen,E.J.V.,Mehlhorn,K.,Borgwardt,K.M.,2011年。魏斯费勒-雷曼图核心。机器学习研究杂志12,2539–2561。

作者

引文

仍在等待…

致谢

这项研究得到了CSC(中国奖学金委员会)和法国国家研究机构(ANR)的资助,资助项目为API(ANR-18-CE23-0014)。作者要感谢criann(le centre réregional informatique et d'applications numériques de normandie)提供计算资源。

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

推荐PyPI第三方库


热门话题
java如何创建比较器   java将所有接口读入列表   java Android Studio在Webview中隐藏特定URL的操作栏   java如何在春季从云存储中生成URL文件而无需持续时间   icalendar如何使用Java以日历格式发送ics电子邮件附件?   如果textfield包含数字,则在运行时进行java检查   java util日志属性中何时需要“.level”?   java在一个字符串中显示json   跨平台日志系统的java Log4j替代方案   coldfusion在Lucee上安装Cassandra Java驱动程序   SpringWebMVC4Java配置不工作   windows使用java程序添加环境变量,并且能够在我从计算机打开“环境”选项卡时看到   java未设置变量和方法   mysql在java中通过查询更改数据库的现有行   java如何使用递归方法查找所有可能的数字   java如何使非原语类成员不可变   java将信息从输入按钮传递到标签