All Projects → benedekrozemberczki → Littleballoffur

benedekrozemberczki / Littleballoffur

Licence: gpl-3.0
Little Ball of Fur - A graph sampling extension library for NetworKit and NetworkX (CIKM 2020)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Littleballoffur

Libgrape Lite
🍇 A C++ library for parallel graph processing 🍇
Stars: ✭ 169 (-66.53%)
Mutual labels:  graph, graph-algorithms
C Sharp Algorithms
📚 📈 Plug-and-play class-library project of standard Data Structures and Algorithms in C#
Stars: ✭ 4,684 (+827.52%)
Mutual labels:  graph, graph-algorithms
Quiver
A reasonable library for modeling multi-graphs in Scala
Stars: ✭ 195 (-61.39%)
Mutual labels:  graph, graph-algorithms
Data Structures
Common data structures and algorithms implemented in JavaScript
Stars: ✭ 139 (-72.48%)
Mutual labels:  graph, graph-algorithms
Ngraph.graph
Graph data structure in JavaScript
Stars: ✭ 295 (-41.58%)
Mutual labels:  graph, graph-algorithms
Sparkling Graph
SparklingGraph provides easy to use set of features that will give you ability to proces large scala graphs using Spark and GraphX.
Stars: ✭ 139 (-72.48%)
Mutual labels:  graph, graph-algorithms
Grakn
TypeDB: a strongly-typed database
Stars: ✭ 2,947 (+483.56%)
Mutual labels:  graph, graph-algorithms
Cracking The Coding Interview
Solutions for Cracking the Coding Interview - 6th Edition
Stars: ✭ 35 (-93.07%)
Mutual labels:  graph, graph-algorithms
Rgl
RGL is a framework for graph data structures and algorithms in Ruby.
Stars: ✭ 279 (-44.75%)
Mutual labels:  graph, graph-algorithms
Javascript Datastructures Algorithms
📚 collection of JavaScript and TypeScript data structures and algorithms for education purposes. Source code bundle of JavaScript algorithms and data structures book
Stars: ✭ 3,221 (+537.82%)
Mutual labels:  graph, graph-algorithms
Ogre
Clojure library for querying Apache TinkerPop graphs
Stars: ✭ 118 (-76.63%)
Mutual labels:  graph, graph-algorithms
Communities
Library of community detection algorithms and visualization tools
Stars: ✭ 348 (-31.09%)
Mutual labels:  graph, graph-algorithms
Verse
Reference implementation of the paper VERSE: Versatile Graph Embeddings from Similarity Measures
Stars: ✭ 98 (-80.59%)
Mutual labels:  graph, graph-algorithms
Hgp Sl
Hierarchical Graph Pooling with Structure Learning
Stars: ✭ 159 (-68.51%)
Mutual labels:  graph, graph-algorithms
Deepwalk C
DeepWalk implementation in C++
Stars: ✭ 88 (-82.57%)
Mutual labels:  graph, graph-algorithms
Yfiles For Html Demos
Contains demo sources for the JavaScript diagramming library yFiles for HTML
Stars: ✭ 202 (-60%)
Mutual labels:  graph, graph-algorithms
Fxgraphalgorithmsimulator
Visualizes specific Graph Algorithms like BFS, DFS, MST etc. on interactive user input graphs.
Stars: ✭ 22 (-95.64%)
Mutual labels:  graph, graph-algorithms
Leaderboardx
A tool for building graphs quickly
Stars: ✭ 13 (-97.43%)
Mutual labels:  graph, graph-algorithms
Graph Data Science
Source code for the Neo4j Graph Data Science library of graph algorithms.
Stars: ✭ 251 (-50.3%)
Mutual labels:  graph, graph-algorithms
Vivagraphjs
Graph drawing library for JavaScript
Stars: ✭ 3,442 (+581.58%)
Mutual labels:  graph, graph-algorithms

Version repo size Arxiv build badge coverage badge benedekrozemberczki


Little Ball of Fur is a graph sampling extension library for Python.

Please look at the Documentation, relevant Paper, Promo video and External Resources.

Little Ball of Fur consists of methods that can sample from graph structured data. To put it simply it is a Swiss Army knife for graph sampling tasks. First, it includes a large variety of vertex, edge, and exploration sampling techniques. Second, it provides a unified application public interface which makes the application of sampling algorithms trivial for end-users. Implemented methods cover a wide range of networking (Networking, INFOCOM, SIGCOMM) and data mining (KDD, TKDD, ICDE) conferences, workshops, and pieces from prominent journals.


Citing

If you find Little Ball of Fur useful in your research, please consider citing the following paper:

@inproceedings{littleballoffur,
               title={{Little Ball of Fur: A Python Library for Graph Sampling}},
               author={Benedek Rozemberczki and Oliver Kiss and Rik Sarkar},
               year={2020},
               pages = {3133–3140},
               booktitle={Proceedings of the 29th ACM International Conference on Information and Knowledge Management (CIKM '20)},
               organization={ACM},
}

A simple example

Little Ball of Fur makes using modern graph subsampling techniques quite easy (see here for the accompanying tutorial). For example, this is all it takes to use Diffusion Sampling on a Watts-Strogatz graph:

import networkx as nx
from littleballoffur import DiffusionSampler

graph = nx.newman_watts_strogatz_graph(1000, 20, 0.05)

sampler = DiffusionSampler()

new_graph = sampler.sample(graph)

Methods included

In detail, the following sampling methods were implemented.

Node Sampling

Edge Sampling

Exploration Based Sampling

Head over to our documentation to find out more about installation and data handling, a full list of implemented methods, and datasets. For a quick start, check out our examples.

If you notice anything unexpected, please open an issue and let us know. If you are missing a specific method, feel free to open a feature request. We are motivated to constantly make Little Ball of Fur even better.


Installation

Little Ball of Fur can be installed with the following pip command.

$ pip install littleballoffur

As we create new releases frequently, upgrading the package casually might be beneficial.

$ pip install littleballoffur --upgrade

Running examples

As part of the documentation we provide a number of use cases to show how to use various sampling techniques. These can accessed here with detailed explanations.

Besides the case studies we provide synthetic examples for each model. These can be tried out by running the scripts in the examples folder. You can try out the random walk sampling example by running:

$ cd examples
$ python ./exploration_sampling/randomwalk_sampler.py

Running tests

$ python setup.py test

License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].