Learning - label propagation

Learning propagation is one of the simplest learning processes one can conduct on labeled networks. Py3plex offers off-the-shelf validation procedures for evaluating multiple variants of LP!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
     from py3plex.core import multinet
     from py3plex.algorithms.network_classification import *
     from py3plex.visualization.benchmark_visualizations import *
     import scipy
     import pandas as pd

     multilayer_network = multinet.multi_layer_network().load_network("../datasets/cora.mat",directed=False, input_type="sparse")

     ## WARNING: sparse matrices are meant for efficiency. Many operations with standard px objects are hence not possible, e.g., basic_stats()...

     ## different heuristic-based target weights..
     normalization_schemes = ["freq","basic","freq_amplify","exp"]
     result_frames = []

     for scheme in normalization_schemes:
             result_frames.append(validate_label_propagation(multilayer_network.core_network,multilayer_network.labels,dataset_name="cora_classic",repetitions=5,normalization_scheme=scheme))

     ## results frame
     validation_results = pd.DataFrame()

     ## construct a single dataframe
     for x in result_frames:
             validation_results = validation_results.append(x,ignore_index=True)

     validation_results.reset_index()

     ## plot results
     plot_core_macro(validation_results)
_images/learning_lp.png