Cell FLOWer processes edge flows using cell complexes. It was developed for the paper Representing Edge Flows on Graphs via Sparse Cell Complexes. You can find the evaluation workflow here. Install it using:
pip install cell-flower
How to use it (Also check out the complete examples):
import cell_flower as cf
import networkx as nx
G = ... # nx.Graph
CC, node_list, node_index_map = cf.nx_graph_to_cc(G) # converts nodes in G to int and also returns the mapping
flows = ... # np.ndarray, shape (samples, edges)
CC_prime = cf.cell_inference_approximation(CC, flows, 2, 2, n_clusters=5)
# Check to see the cells that were recovered; map back to node labels
[ cf.index_to_cell(cell, node_list) for cell in CC_prime.get_cells(2) ]
If you use Cell FLOWer, please cite the following paper:
@InProceedings{hoppe2024representing,
title = {Representing Edge Flows on Graphs via Sparse Cell Complexes},
author = {Hoppe, Josef and Schaub, Michael T},
booktitle = {Proceedings of the Second Learning on Graphs Conference},
pages = {1:1--1:22},
year = {2024},
editor = {Villar, Soledad and Chamberlain, Benjamin},
volume = {231},
series = {Proceedings of Machine Learning Research},
month = {27--30 Nov},
publisher = {PMLR},
pdf = {https://proceedings.mlr.press/v231/hoppe24a/hoppe24a.pdf},
url = {https://proceedings.mlr.press/v231/hoppe24a.html},
}
Funded by the European Union (ERC, HIGH-HOPeS, 101039827). Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Research Council Executive Agency. Neither the European Union nor the granting authority can be held responsible for them.