No project description provided
Project description
Complex Network Link Prediction
Complex Network Link Prediction is a python library that implements some of the main techniques and algorithms to perform link predictions.
Check out our [home page](docs link)link pages qui for more information.
This library implemented in python allows you to use some of the main algorithms and methods to perform link predictions. It was designed to carry out these tasks in Complex Networks and, specifically, in Social Networks. Each method has its own specific documentation available on the following page ---- where it is possible to see the required parameters and the output of the method itself.
The methods are distinguished by belonging to categories and subcategories, below is an example image with all the categories.
The speed of computation differs both from the type of method and from the input graph. However, for convention and efficiency we have chosen to use the csr_matrix
sparse matrix structure from the scipy library in each algorithm.
Install
pip install cnlp
How to use
import networkx as nx
import matplotlib.pyplot as plt
from cnlp.utils import to_adjacency_matrix
from cnlp.probabilistich_methods import stochastic_block_model
G = nx.karate_club_graph()
A = to_adjacency_matrix(G)
res = stochastic_block_model(G, 10)
predicted_edges = []
for u in range(res.shape[0]):
for v in range(u + 1, res.shape[1]):
if G.has_edge(u, v):
continue
w = res[u, v]
predicted_edges.append((u, v, w))
# Sort the predicted edges by weight in descending order
predicted_edges.sort(key=lambda x: x[2], reverse=True)
# Print the predicted edges with their weight score
print("Top Predicted edges:")
for edge in predicted_edges[:50]:
print(f"({edge[0]}, {edge[1]}): {edge[2]}")
nx.draw(G)
plt.show()
Contribute 💥
As there are still many methods to implement and, at the same time, maintaining a library takes up a lot of time, we are always happy to accept new willing and able people to contribute and support our project.
If you want to contribute or you've found a bug, you can open a Pull Request.
Check this tutorial if you want to use our preferred Workflow 🦍 for developing.
Otherwise you can open a normal Pull Request using git
and help us to make this project even better!
Help ❓
If you encounter any bug or you have some problem with this package you can open an issue to report it, we will resolve that asap.
Building From Source
???
Dependencies
If your system does not have some or all of this requirements they will be installed during the istallation of this library
- networkx
- scipy
- numpy ecc
References
- Ajay Kumar, Shashank Sheshar Singh, Kuldeep Singh, Bhaskar Biswas. 2020. Link prediction techniques, applications, and performance: A survey Physica A: Statistical Mechanics and its Applications, ISSN 0378-4371, https://doi.org/10.1016/j.physa.2020.124289.
- David Liben-Nowell and Jon Kleinberg. 2003. The link prediction problem for social networks In Proceedings of the twelfth international conference on Information and knowledge management (CIKM '03). Association for Computing Machinery, New York, NY, USA, 556–559, https://doi.org/10.1145/956863.956972.
- Víctor Martínez, Fernando Berzal, and Juan-Carlos Cubero. 2016. A Survey of Link Prediction in Complex Networks ACM Comput. Surv. 49, 4, Article 69 (December 2017), 33 pages. https://doi.org/10.1145/3012704
Authors
Cristian Cosci 🐔 | Nicolò Vescera 🦧 | Fabrizio Fagiolo 🐛 | Tommaso Romani 🦍 | Nicolò Posta 🐒 |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for complex-network-link-prediction-1.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37adfe3f6bfed852422f7c18d65eaf6a2db3cdb633cb690145482a5a4d3237d2 |
|
MD5 | b347017cbbe6517c175a16a4d06d1e88 |
|
BLAKE2b-256 | 8a583fcf8c2ef0f6aae2aa1b96ea9353810955eeb870e1393a2ee90f09f8a727 |