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 数据结构
304 每月下载量
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]
这代表什么
- 图中有一个 ID 为 0 的团(仅提供图)
- 团的核心节点(作者)是 1 和 2
- 团中还有非核心节点 3 和 4
- 两个非核心节点都是文章
- 全局密度为 1(所有可能存在的边都存在)
- 两个核心节点各自的本地区密度为 1.0
- 非核心类型(“文章”)的密度为 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