Skip to main content

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

  1. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bigraph-0.1rc7.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

bigraph-0.1rc7-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

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

Hashes for bigraph-0.1rc7.tar.gz
Algorithm Hash digest
SHA256 b78e69ed4a2b3d0fe8231a44dda5eabdb4722e92f9d1bcb9b215395c5a220a8f
MD5 cfa1893f3cc389655688487264530409
BLAKE2b-256 ccbffea13ff9c596e6ad2566a59fb2cdd044e31c17bb2c31378bfbe135d34db8

See more details on using hashes here.

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

Hashes for bigraph-0.1rc7-py3-none-any.whl
Algorithm Hash digest
SHA256 03ee7d7fc6bfa27b26f293d576718f82b5cc0f0d2c124f34173d573ddc4223a6
MD5 1a4ca693ab44a1ff944441758a8cf12a
BLAKE2b-256 47d58722dfc52302089f937161228a286008caadbee594b1c174e4ad73cfd85f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page