Skip to content

Commit eb35fe0

Browse files
committed
Merge branch 'develop'
2 parents f9e3d31 + 7fb914d commit eb35fe0

File tree

5 files changed

+45
-35
lines changed

5 files changed

+45
-35
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ The package integrates a wide range of probabilistic generative models tailored
2727

2828
| **Name** | **Description** | **Network Properties** |
2929
|-----------------|----------------------------------------------------------------------------------------------------|----------------------------------------|
30-
| **MTCOV** | Extracts overlapping communities in multilayer networks using topology and node attributes [CPDB20]. | Weighted, Multilayer, Attributes, Communities |
3130
| **CRep** | Models directed networks with communities and reciprocity [CSDB22]. | Directed, Weighted, Communities, Reciprocity |
3231
| **JointCRep** | Captures community structure and reciprocity with a joint edge distribution [SCDB21]. | Directed, Communities, Reciprocity |
3332
| **DynCRep** | Extends CRep for dynamic networks [SCDB22]. | Directed, Weighted, Dynamic, Communities, Reciprocity |
3433
| **ACD** | Identifies anomalous edges and node community memberships in weighted networks [SDB22]. | Directed, Weighted, Communities, Anomalies |
34+
| **MTCOV** | Extracts overlapping communities in multilayer networks using topology and node attributes [CPDB20]. | Weighted, Multilayer, Attributes, Communities |
3535

3636
For more details on each model, please refer to the [documentation](https://mpi-is.github.io/probinet/). References to the original papers can be found [here](https://mpi-is.github.io/probinet/references.html).
3737

publication/jats/paper.jats

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,21 @@ Network Analysis</article-title>
2929
<given-names>Diego</given-names>
3030
</name>
3131
<xref ref-type="aff" rid="aff-1"/>
32+
<xref ref-type="aff" rid="aff-2"/>
3233
</contrib>
3334
<contrib contrib-type="author">
3435
<name>
3536
<surname>Contisciani</surname>
3637
<given-names>Martina</given-names>
3738
</name>
38-
<xref ref-type="aff" rid="aff-2"/>
39+
<xref ref-type="aff" rid="aff-3"/>
3940
</contrib>
4041
<contrib contrib-type="author">
4142
<name>
4243
<surname>Bacco</surname>
4344
<given-names>Caterina De</given-names>
4445
</name>
45-
<xref ref-type="aff" rid="aff-3"/>
46+
<xref ref-type="aff" rid="aff-4"/>
4647
</contrib>
4748
<contrib contrib-type="author">
4849
<name>
@@ -59,11 +60,16 @@ Germany.</institution>
5960
</aff>
6061
<aff id="aff-2">
6162
<institution-wrap>
62-
<institution>Central European University, Vienna, Austria.</institution>
63+
<institution>Graz University of Technology, Graz, Austria</institution>
6364
</institution-wrap>
6465
</aff>
6566
<aff id="aff-3">
6667
<institution-wrap>
68+
<institution>Central European University, Vienna, Austria.</institution>
69+
</institution-wrap>
70+
</aff>
71+
<aff id="aff-4">
72+
<institution-wrap>
6773
<institution>Delft University of Technology, Delft,
6874
Netherlands.</institution>
6975
</institution-wrap>
@@ -171,19 +177,6 @@ a Creative Commons Attribution 4.0 International License (CC BY
171177
</tr>
172178
</thead>
173179
<tbody>
174-
<tr>
175-
<td><bold>MTCOV</bold></td>
176-
<td>Extracts overlapping communities in multilayer networks
177-
using topology and node attributes
178-
(<xref alt="Contisciani et al., 2020" rid="ref-contisciani2020community" ref-type="bibr">Contisciani
179-
et al., 2020</xref>).</td>
180-
<td>Weighted, Multilayer, Attributes, Communities</td>
181-
</tr>
182-
<tr>
183-
<td></td>
184-
<td></td>
185-
<td></td>
186-
</tr>
187180
<tr>
188181
<td><bold>CRep</bold></td>
189182
<td>Models directed networks with communities and reciprocity
@@ -229,6 +222,19 @@ a Creative Commons Attribution 4.0 International License (CC BY
229222
&amp; De Bacco, 2022</xref>).</td>
230223
<td>Directed, Weighted, Communities, Anomalies</td>
231224
</tr>
225+
<tr>
226+
<td></td>
227+
<td></td>
228+
<td></td>
229+
</tr>
230+
<tr>
231+
<td><bold>MTCOV</bold></td>
232+
<td>Extracts overlapping communities in multilayer networks
233+
using topology and node attributes
234+
(<xref alt="Contisciani et al., 2020" rid="ref-contisciani2020community" ref-type="bibr">Contisciani
235+
et al., 2020</xref>).</td>
236+
<td>Weighted, Multilayer, Attributes, Communities</td>
237+
</tr>
232238
</tbody>
233239
</table>
234240
</table-wrap>
@@ -330,14 +336,6 @@ a Creative Commons Attribution 4.0 International License (CC BY
330336
</tr>
331337
</thead>
332338
<tbody>
333-
<tr>
334-
<td><bold>MTCOV</bold></td>
335-
<td>300</td>
336-
<td>724-1340</td>
337-
<td>4</td>
338-
<td>2</td>
339-
<td>1.51 ± 0.14</td>
340-
</tr>
341339
<tr>
342340
<td><bold>CRep</bold></td>
343341
<td>600</td>
@@ -370,6 +368,14 @@ a Creative Commons Attribution 4.0 International License (CC BY
370368
<td>3</td>
371369
<td>27.8 ± 3.2</td>
372370
</tr>
371+
<tr>
372+
<td><bold>MTCOV</bold></td>
373+
<td>300</td>
374+
<td>724-1340</td>
375+
<td>4</td>
376+
<td>2</td>
377+
<td>1.51 ± 0.14</td>
378+
</tr>
373379
</tbody>
374380
</table>
375381
</table-wrap>

publication/paper.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,24 @@ authors:
1212
- name: Diego Baptista
1313
orcid: 0000-0003-2994-0138
1414
#equal-contrib: true
15-
affiliation: 1
15+
affiliation: 1,2
1616
- name: Martina Contisciani
1717
#corresponding: true # (This is how to denote the corresponding author)
18-
affiliation: 2
18+
affiliation: 3
1919
- name: Caterina De Bacco
2020
#equal-contrib: true # (This is how you can denote equal contributions between multiple authors)
21-
affiliation: 3
21+
affiliation: 4
2222
- name: Jean-Claude Passy
2323
affiliation: 1
2424
affiliations:
2525
- name: Max Planck Institute for Intelligent Systems, Tübingen, Germany.
2626
index: 1
27-
- name: Central European University, Vienna, Austria.
27+
- name: Graz University of Technology, Graz, Austria
2828
index: 2
29-
- name: Delft University of Technology, Delft, Netherlands.
29+
- name: Central European University, Vienna, Austria.
3030
index: 3
31+
- name: Delft University of Technology, Delft, Netherlands.
32+
index: 4
3133
date: 22 January 2025
3234
bibliography: paper.bib
3335

@@ -42,7 +44,9 @@ to analyze and model complex network data. The package integrates code implement
4244
# Statement of need
4345

4446
Network analysis is central to social sciences, biology, and fraud detection, where
45-
understanding relationships is essential. Probabilistic generative models [@contisciani2020community; @safdari2021generative; @contisciani2022community; @safdari2022anomaly; @safdari2022reciprocity] reveal hidden patterns, detect communities, identify anomalies, and generate synthetic data. Their broader use is limited by fragmented implementations that hinder comparisons and reproducibility.
47+
understanding relationships is essential. Probabilistic generative models
48+
[@safdari2021generative; @contisciani2022community; @safdari2022anomaly; @safdari2022reciprocity; @contisciani2020community
49+
] reveal hidden patterns, detect communities, identify anomalies, and generate synthetic data. Their broader use is limited by fragmented implementations that hinder comparisons and reproducibility.
4650
ProbINet addresses this gap by unifying recent approaches in a single framework, improving accessibility and usability across disciplines.
4751

4852
ProbINet stands out among network analysis tools. Graph-tool [@peixoto_graph-tool_2014] provides community detection and general graph analysis tools, but it uses a different model family than our mixed-membership framework and does not account for reciprocity. CDlib [@rossetti_cdlib_2019] offers detection algorithms and evaluation routines, but ProbINet extends this with probabilistic MLE models, optional node attributes, and anomaly detection. pgmpy [@ankan_pgmpy_2024] focuses on Bayesian network structure learning, while ProbINet uncovers latent patterns like communities and reciprocity.
@@ -57,15 +61,15 @@ generative models. Key features include:
5761

5862
| **Algorithm's Name**&nbsp; | **Description** | **Network Properties** |
5963
|----------------------------|-------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|
60-
| **MTCOV** | Extracts overlapping communities in multilayer networks using topology and node attributes [@contisciani2020community]. | Weighted, Multilayer, Attributes, Communities |
61-
| | | |
6264
| **CRep** | Models directed networks with communities and reciprocity [@safdari2021generative]. | Directed, Weighted, Communities, Reciprocity |
6365
| | | |
6466
| **JointCRep** | Captures community structure and reciprocity with a joint edge distribution [@contisciani2022community]. | Directed, Communities, Reciprocity |
6567
| | | |
6668
| **DynCRep** | Extends CRep for dynamic networks [@safdari2022reciprocity]. | Directed, Weighted, Dynamic, Communities, Reciprocity |
6769
| | | |
6870
| **ACD** | Identifies anomalous edges and node community memberships in weighted networks [@safdari2022anomaly]. | Directed, Weighted, Communities, Anomalies |
71+
| | | |
72+
| **MTCOV** | Extracts overlapping communities in multilayer networks using topology and node attributes [@contisciani2020community]. | Weighted, Multilayer, Attributes, Communities |
6973

7074
- **Synthetic Network Generation**: Ability to generate synthetic networks that closely resemble real ones for further analyses (e.g., testing hypotheses).
7175

@@ -110,11 +114,11 @@ and **K** represents the number of communities.
110114

111115
| **Algorithm** | **N** | **E** | **L/T** | **K** | **Time (mean ± std, in seconds)** |
112116
|---------------|-------|----------|---------|-------|-----------------------------------|
113-
| **MTCOV** | 300 | 724-1340 | 4 | 2 | 1.51 ± 0.14 |
114117
| **CRep** | 600 | 5512 | 1 | 3 | 3.00 ± 0.35 |
115118
| **JointCRep** | 250 | 2512 | 1 | 2 | 3.81 ± 0.69 |
116119
| **DynCRep** | 100 | 234-274 | 5 | 2 | 1.48 ± 0.06 |
117120
| **ACD** | 500 | 5459 | 1 | 3 | 27.8 ± 3.2 |
121+
| **MTCOV** | 300 | 724-1340 | 4 | 2 | 1.51 ± 0.14 |
118122

119123

120124
These benchmarks were performed on a 12th Gen Intel Core i9-12900 CPU, using `hyperfine` [@Peter_hyperfine_2023] and 10 runs.

publication/paper.pdf

112 Bytes
Binary file not shown.

tests/test_model_selection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def run_cv_and_check_results(self, model_name):
5858
except ValueError:
5959
continue
6060

61-
self.assertAlmostEqual(generated_value, ground_truth_value, places=4)
61+
self.assertAlmostEqual(generated_value, ground_truth_value, places=3)
6262

6363
def test_dyncrep_cross_validation(self):
6464
self.run_cv_and_check_results("DynCRep")

0 commit comments

Comments
 (0)