Skip to main content

Python implementation of the Multilayer Personalized Page Rank algorithm

Project description

MuLP

This repository/package includes a python script that implements the MultilayerCreditScoring (MCS) algorithim presented in the paper Evolution of Credit Risk Using a Personalized Pagerank Algorithm for Multilayer Networks.

Installation

pip install MuLP

Input instructions

There are four primary input files:

  • Individual layer files (.ncol)
  • Common Nodes file (csv)
  • Personal Node file (csv)

Each layer in the multilayer network requires it's own .ncol file with the appropriate ncol file format.

Example ncol layer file (.ncol):

CommonNodeA SpecificNodeA
CommonNodeB SpecificNodeA
CommonNodeC SpecificNodeB
CommonNodeD SpecificNodeC

The inter-layer connections are only allowed between common nodes as to follow the structure layed out by Bravo & Óskarsdóttir, due to this one must specify what are the common nodes in the following format:

Example input file(.csv):

CommonNode1
CommonNode2
CommonNode3

To construct the personal matrix one must specify the influential or personal nodes in the following format:

Example input file(.csv):

InfluentialNode1
InfluentialNode2
InfluentialNode3

Usage

Multilayer Network Initialization

To create a Multilayer Network the following arguments are available:

layer_files (list): list of layer files

common_nodes_file (str): csv file to common nodes

personal_file (str): file to create personal matrix

biderectional (bool, optional): wheter edges are biderectional or not. Defaults to False.

sparse (bool, optional): use sparse or desnse matrix. Defaults to True.

from MultiLayerRanker import MultiLayerRanker
ranker = MultiLayerRanker(layer_files=['products.ncol','districts.ncol'],
                           common_nodes_file= './common.csv',
                           personal_file= './personal.csv' ,
                           biderectional=True,
                           sparse = True)

Ranking

The rank method of the MultiLayerRanker class runs the MultiLayer Personalized Page Rank Algorithm. One can choose to run different experiments with varyin alphas by specifying it in the method call:

alpha (int,optional): page rank exploration parameter, defaults to .85

eigs = ranker.pageRank(alpha = .85)

This method returns the leading eigenvector corresponding to the each node's rank.

Output Formatting

The formattedRanks method allows you to get the rankings with appropriate node labels in a dictionary format: x

eigs (ndarray): corresponding eigenvector to format

ranker.formattedRanks(eigs)

The adjDF method allows you to view format a personal or adjacency matrix with corresponding labels as a dataframe:

matrix (ndarray) : an adj matrix or personal matrix to transform

f (str,optional): Optional if you wish to write the df to an output csv

#for persoanl matrix
personalDF = ranker.toDf(ranker.personal)
#for adj matrix
adjDf = ranker.toDf(ranker.matrix)

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

MuLP-0.0.5.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

MuLP-0.0.5-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file MuLP-0.0.5.tar.gz.

File metadata

  • Download URL: MuLP-0.0.5.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for MuLP-0.0.5.tar.gz
Algorithm Hash digest
SHA256 a66b0a399da2a1fe5e046edd7955480bd52e393bdeea286b572335f54ad327b8
MD5 3ced676414c77302f34c5cd43377b130
BLAKE2b-256 10db00734ba23ed88699df8d8771e4c5c77b59c18ca1cf5841dbcede146e1681

See more details on using hashes here.

File details

Details for the file MuLP-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: MuLP-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for MuLP-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2c38c1e1c4a37cb4707cc4bd3eec166677d1fe1084bb005f8bb1f91191837c40
MD5 654133b71b55c3ca7618a62815fba451
BLAKE2b-256 36bce6cf4a90c5a5797b67a9a982d3e610fcdc1d3651ce70dbca5369d885af5c

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