#graph #undirected-graph #node #mining #analysis #algorithm

nightly bin+lib dachshund

腊肠犬是一个用 Rust 编写的图挖掘库。它为多种类型的图提供高性能的数据结构,从简单的无向图到类型化的超图。腊肠犬还提供了用于图挖掘和分析的常见任务的算法,从最短路径到图频谱分析。

10 个版本

0.1.10 2023年11月16日
0.1.9 2023年1月30日
0.1.8 2022年10月31日
0.1.6 2022年7月6日
0.1.2 2020年9月17日

#686 in 数据结构

Download history 152/week @ 2024-03-10 132/week @ 2024-03-17 50/week @ 2024-03-24 100/week @ 2024-03-31 72/week @ 2024-04-07 42/week @ 2024-04-14 110/week @ 2024-04-21 167/week @ 2024-04-28 81/week @ 2024-05-05 84/week @ 2024-05-12 199/week @ 2024-05-19 44/week @ 2024-05-26 111/week @ 2024-06-02 55/week @ 2024-06-09 36/week @ 2024-06-16 93/week @ 2024-06-23

304 每月下载量

MIT 许可证

260KB
5.5K SLoC

腊肠犬是一个用 Rust 编写的图挖掘库。它为多种类型的图提供高性能的数据结构,从简单的无向图到类型化的超图。腊肠犬还提供了用于图挖掘和分析的常见任务的算法,从最短路径到图频谱分析。

示例

图特征化器

此应用程序接受一系列图并对其进行特征化。例如

cat example.txt | cut -s -f1-3 | target/debug/simple_graph_featurizer

输出将如下所示

0	{"bet_cent":1.2,"clust_coef":0.0,"evcent":0.868,"num_16_cores":0,"num_17_trusses":0,"num_2_cores":1,"num_3_trusses":0,"num_4_cores":0,"num_5_trusses":0,"num_8_cores":0,"num_9_trusses":0,"num_connected_components":1,"num_edges":5,"size_of_largest_cc":5}

各种 JSON 编码的特性的含义

  • bet_cent: 平均介数中心性。
  • clust_coef: 平均聚类系数。
  • evcent: 平均特征向量中心性。
  • num_{k}_cores: {k}-核心计数。
  • num_{k}_trusses: {k}-三链计数。
  • num_connected_components: 连接组件的数量。
  • num_edges: 边的数量。
  • size_of_largest_cc: 最大连接组件中的节点数量。

团挖掘器

此应用程序在图中查找最大的(准)团。例如

cargo build
cat example.txt | target/debug/clique_miner \
  --typespec '[["author", "published", "article"]]' \
  --beam_size 20 --alpha 0.1 --global_thresh 1.0  \
  --local_thresh 1.0 --num_to_search 10 --epochs 200 \
  --max_repeated_prior_scores 3 --debug_mode false \
  --min_degree 1 --core_type author --long_format false

输出应该如下所示

0	2	2	[1,2]	[3,4]	["article","article"]	1	[1.0,1.0]	[1.0]

这代表什么

  1. 图中有一个 ID 为 0 的团(仅提供图)
  2. 团的核心节点(作者)是 1 和 2
  3. 团中还有非核心节点 3 和 4
  4. 两个非核心节点都是文章
  5. 全局密度为 1(所有可能存在的边都存在)
  6. 两个核心节点各自的本地区密度为 1.0
  7. 非核心类型(“文章”)的密度为 1.0

关于各种参数的更好解释

target/debug/clique_miner --help

运行各种测试

cargo test

要求

所有要求都由 cargo 处理。

构建 Dachshund

只需运行 cargo build。可执行文件应出现在 target/debug/clique_miner 中。

Dachshund 的工作原理

clique_miner 是 Dachshund 的第一个应用。它使用一种束搜索算法(以及一些其他优化)来找到它能够找到的最大(准)团。它支持使用已知的团解决方案进行初始化。

查看 ./target/debug/clique_miner --help 了解每个选项的含义。

有关如何帮助的说明,请参阅 CONTRIBUTING 文件。

许可证

Dachshund 是 MIT 许可,如 LICENSE 文件所示。

依赖关系

~8.5MB
~162K SLoC