Python package for link prediction in bipartite graphs and networks
Project description
Bipartite link prediction
Predicting links in bipartite networks on top of networkx
Node based similarities and Katz has been implemented. you can find algorithms in prediction directory. Algorithms untill now:
Number | Algorithm |
---|---|
1. | adamic adar |
2. | common neighbors |
3. | preferential attachment |
4. | jaccard |
5. | katz similarity |
How to use the code
you can run the code by placing your data in inputs folder and use predict methodes iplemented in "predict" file or directly call provided functions in the evaluation file.
from bigraph import bigraph as bg
def main():
"""
Link prediction on a bipartite network
:return: Predicted linkes
"""
df, df_nodes = import_files()
G = make_graph(df)
pr.aa_predict(G) # Here we have called Adamic Adar method from bigraph module
or you can run evaluation methods directly which calls its peer method automatically
from bigraph.evaluation import evaluation as ev
def main():
"""
Link prediction on a bipartite network
:return: Predicted linkes
"""
df, df_nodes = import_files()
G = make_graph(df)
ev.evaluate(G, k=10,
method='all') # Here we have evaluated all methods using evaluation module. Methods are 'jc', 'aa', 'pa', 'cn'
Metrics
Metrics that are calculated during evaluation:
Number | Evaluattion metrics |
---|---|
1. | Precision |
2. | AUC |
3. | ROC |
4. | returns fpr* |
5. | returns tpr* |
- For further usages and calculating different metrics
Dataset format
Your dataset should be in the following format:
Row | Left side element | Right side element | Weight* |
---|---|---|---|
1. | ll0 |
rl1 |
1 |
2. | ll2 |
rl1 |
1 |
3. | ll1 |
rl2 |
1 |
4. | ll3 |
rl3 |
1 |
5. | ll4 |
rl3 |
2 |
- Although the weight has not been involved in current version, but, the format will be the same.
More examples
from bigraph import bigraph as bg
def main():
"""
Link prediction on a bipartite network
:return: Predicted linkes
"""
df, df_nodes = import_files()
G = make_graph(df)
pr.aa_predict(G) # Here we have called Adamic Adar method from bigraph module
pr.pa_predict(G) # Prefferencial attachment
pr.jc_predict(G) # Jaccard coefficient
pr.cn_predict(G) # Common neighbors
References
Number | Reference |
---|---|
1. | Yang, Y., Lichtenwalter, R.N. & Chawla, N.V. Knowl Inf Syst (2015) 45: 751. https://doi.org/10.1007/s10115-014-0789-0 |
2. | Liben-nowell, David & Kleinberg, Jon. (2003). The Link Prediction Problem for Social Networks. Journal of the American Society for Information Science and Technology. https://doi.org/58.10.1002/asi.20591 |
3. | ... |
TODO
- Modulate the functions
- Make it faster using vectorization etc.
- Unify and reconstruct the architecture and eliminate redundancy
Documentation
I will provide documentations whenever I could make time!:watch: or you can pull a request and help to make it happen together
- After running the main, it will export the graph in .json and .gexf format for furthur usages. For instance: Gephi etc.
If it was helpful then hit the :star:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file bigraph-0.1rc7.tar.gz
.
File metadata
- Download URL: bigraph-0.1rc7.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b78e69ed4a2b3d0fe8231a44dda5eabdb4722e92f9d1bcb9b215395c5a220a8f |
|
MD5 | cfa1893f3cc389655688487264530409 |
|
BLAKE2b-256 | ccbffea13ff9c596e6ad2566a59fb2cdd044e31c17bb2c31378bfbe135d34db8 |
File details
Details for the file bigraph-0.1rc7-py3-none-any.whl
.
File metadata
- Download URL: bigraph-0.1rc7-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03ee7d7fc6bfa27b26f293d576718f82b5cc0f0d2c124f34173d573ddc4223a6 |
|
MD5 | 1a4ca693ab44a1ff944441758a8cf12a |
|
BLAKE2b-256 | 47d58722dfc52302089f937161228a286008caadbee594b1c174e4ad73cfd85f |