In [5]:
import os
import csv
import platform
import pandas as pd
import networkx as nx
from graph_partitioning import GraphPartitioning, utils

run_metrics = True

cols = ["WASTE", "CUT RATIO", "EDGES CUT", "TOTAL COMM VOLUME", "Qds", "CONDUCTANCE", "MAXPERM", "NMI", "FSCORE", "FSCORE RELABEL IMPROVEMENT", "LONELINESS"]
#cols = ["WASTE", "CUT RATIO", "EDGES CUT", "TOTAL COMM VOLUME", "Q", "Qds", "CONDUCTANCE", "LONELINESS", "NETWORK PERMANENCE", "NORM. MUTUAL INFO", "EDGE CUT WEIGHT", "FSCORE", "FSCORE RELABEL IMPROVEMENT"]
#cols = ["WASTE", "CUT RATIO", "EDGES CUT", "TOTAL COMM VOLUME", "MODULARITY", "LONELINESS", "NETWORK PERMANENCE", "NORM. MUTUAL INFO", "EDGE CUT WEIGHT", "FSCORE", "FSCORE RELABEL IMPROVEMENT"]

pwd = %pwd

config = {

    "DATA_FILENAME": os.path.join(pwd, "data", "predition_model_tests", "network", "network_$$.txt"),
    "OUTPUT_DIRECTORY": os.path.join(pwd, "output"),

    # Set which algorithm is run for the PREDICTION MODEL.
    # Either: 'FENNEL' or 'SCOTCH'
    "PREDICTION_MODEL_ALGORITHM": "FENNEL",

    # Alternativly, read input file for prediction model.
    # Set to empty to generate prediction model using algorithm value above.
    "PREDICTION_MODEL": "",

    
    "PARTITIONER_ALGORITHM": "FENNEL",

    # File containing simulated arrivals. This is used in simulating nodes
    # arriving at the shelter. Nodes represented by line number; value of
    # 1 represents a node as arrived; value of 0 represents the node as not
    # arrived or needing a shelter.
    "SIMULATED_ARRIVAL_FILE": os.path.join(pwd,
                                           "data",
                                           "predition_model_tests",
                                           "dataset_1_shift_rotate",
                                           "simulated_arrival_list",
                                           "percentage_of_prediction_correct_100",
                                           "arrival_100_$$.txt"
                                          ),

    # File containing the prediction of a node arriving. This is different to the
    # simulated arrivals, the values in this file are known before the disaster.
    "PREDICTION_LIST_FILE": os.path.join(pwd,
                                         "data",
                                         "predition_model_tests",
                                         "dataset_1_shift_rotate",
                                         "prediction_list",
                                         "prediction_$$.txt"
                                        ),

    # File containing the geographic location of each node, in "x,y" format.
    "POPULATION_LOCATION_FILE": os.path.join(pwd,
                                             "data",
                                             "predition_model_tests",
                                             "coordinates",
                                             "coordinates_$$.txt"
                                            ),

    # Number of shelters
    "num_partitions": 4,

    # The number of iterations when making prediction model
    "num_iterations": 10,

    # Percentage of prediction model to use before discarding
    # When set to 0, prediction model is discarded, useful for one-shot
    "prediction_model_cut_off": .0,

    # Alpha value used in one-shot (when restream_batches set to 1)
    "one_shot_alpha": 0.5,
    
    "use_one_shot_alpha": False,
    
    # Number of arrivals to batch before recalculating alpha and restreaming.
    "restream_batches": 1000,

    # When the batch size is reached: if set to True, each node is assigned
    # individually as first in first out. If set to False, the entire batch
    # is processed and empty before working on the next batch.
    "sliding_window": False,

    # Create virtual nodes based on prediction model
    "use_virtual_nodes": False,

    # Virtual nodes: edge weight
    "virtual_edge_weight": 1.0,
    
    # Loneliness score parameter. Used when scoring a partition by how many
    # lonely nodes exist.
    "loneliness_score_param": 1.2,


    ####
    # GRAPH MODIFICATION FUNCTIONS

    # Also enables the edge calculation function.
    "graph_modification_functions": True,

    # If set, the node weight is set to 100 if the node arrives at the shelter,
    # otherwise the node is removed from the graph.
    "alter_arrived_node_weight_to_100": False,

    # Uses generalized additive models from R to generate prediction of nodes not
    # arrived. This sets the node weight on unarrived nodes the the prediction
    # given by a GAM.
    # Needs POPULATION_LOCATION_FILE to be set.
    "alter_node_weight_to_gam_prediction": True,
    
    # Enables edge expansion when graph_modification_functions is set to true
    "edge_expansion_enabled": True,

    # The value of 'k' used in the GAM will be the number of nodes arrived until
    # it reaches this max value.
    "gam_k_value": 100,

    # Alter the edge weight for nodes that haven't arrived. This is a way to
    # de-emphasise the prediction model for the unknown nodes.
    "prediction_model_emphasis": 1.0,
    
    # This applies the prediction_list_file node weights onto the nodes in the graph
    # when the prediction model is being computed and then removes the weights
    # for the cutoff and batch arrival modes
    "apply_prediction_model_weights": True,
    
    "compute_metrics_enabled": True,

    "SCOTCH_LIB_PATH": os.path.join(pwd, "libs/scotch/macOS/libscotch.dylib")
    if 'Darwin' in platform.system()
    else "/usr/local/lib/libscotch.so",
    
    # Path to the PaToH shared library
    "PATOH_LIB_PATH": os.path.join(pwd, "libs/patoh/lib/macOS/libpatoh.dylib")
    if 'Darwin' in platform.system()
    else os.path.join(pwd, "libs/patoh/lib/linux/libpatoh.so"),
    
    "PATOH_ITERATIONS": 5,
        
    # Expansion modes: 'avg_node_weight', 'total_node_weight', 'smallest_node_weight'
    # 'largest_node_weight'
    # add '_squared' or '_sqrt' at the end of any of the above for ^2 or sqrt(weight)
    # i.e. 'avg_node_weight_squared
    "PATOH_HYPEREDGE_EXPANSION_MODE": 'no_expansion',
    
    # Edge Expansion: average, total, minimum, maximum, product, product_squared, sqrt_product
    "EDGE_EXPANSION_MODE" : 'total',
    
    # Whether nodes should be reordered using a centrality metric for optimal node assignments in batch mode
    # This is specific to FENNEL and at the moment Leverage Centrality is used to compute new noder orders
    "FENNEL_NODE_REORDERING_ENABLED": False,
    
    # Whether the Friend of a Friend scoring system is active during FENNEL partitioning.
    # FOAF employs information about a node's friends to determine the best partition when
    # this node arrives at a shelter and no shelter has friends already arrived
    "FENNEL_FRIEND_OF_A_FRIEND_ENABLED": False,
    
    # Alters how much information to print. Keep it at 1 for this notebook.
    # 0 - will print nothing, useful for batch operations.
    # 1 - prints basic information on assignments and operations.
    # 2 - prints more information as it batches arrivals.
    "verbose": 1
}

gp = GraphPartitioning(config)

# Optional: shuffle the order of nodes arriving
# Arrival order should not be shuffled if using GAM to alter node weights
#random.shuffle(gp.arrival_order)

%pylab inline


Populating the interactive namespace from numpy and matplotlib

In [6]:
import scipy
from copy import deepcopy

iterations = 100 # the number of individual networks to run

modes = ['after']

for mode in modes:
#for mode in range(1, 51):

    metricsDataPrediction = []
    metricsDataAssign = []
    
    #config['FENNEL_FRIEND_OF_A_FRIEND_ENABLED'] = mode
    
    print('Mode', mode)
    for i in range(0, iterations):
        if (i % 50) == 0:
            print('Mode', mode, 'Iteration', str(i))
        
        conf = deepcopy(config)

        #if mode == 'no_expansion':
        #    config['edge_expansion_enabled'] = False
                    
        #conf["DATA_FILENAME"] =  os.path.join(pwd, "data", "predition_model_tests", "network", "network_" + str(i + 1) + ".txt")
        conf["DATA_FILENAME"] = conf["DATA_FILENAME"].replace('$$', str(i + 1))
        conf["SIMULATED_ARRIVAL_FILE"] = conf["SIMULATED_ARRIVAL_FILE"].replace('$$', str(i + 1))
        conf["PREDICTION_LIST_FILE"] = conf["PREDICTION_LIST_FILE"].replace('$$', str(i + 1))
        conf["POPULATION_LOCATION_FILE"] = conf["POPULATION_LOCATION_FILE"].replace('$$', str(i + 1))


        #print(i, conf)
        #print('config', config)
        
        with GraphPartitioning(conf) as gp:
            #gp = GraphPartitioning(config)
            gp.verbose = 0
            gp.load_network()
            gp.init_partitioner()
            
            m = gp.prediction_model()
            m = gp.assign_cut_off()
            m = gp.batch_arrival()

            totalM = len(m)
            metricsDataPrediction.append(m[totalM - 1])


    waste = ''
    cutratio = ''
    ec = ''
    tcv = ''
    qds = ''
    conductance = ''
    maxperm = ''
    nmi = ''
    lonliness = ''
    fscore = ''
    fscoreimprove = ''
        
    qdsOv = ''
    condOv = ''

    dataWaste = []
    dataCutRatio = []
    dataEC = []
    dataTCV = [] 
    dataQDS = []
    dataCOND = []
    dataMAXPERM = []
    dataNMI = []
    dataLonliness = []
    dataFscore = []
    dataFscoreImprove = []

    
    for i in range(0, iterations):
        dataWaste.append(metricsDataPrediction[i][0])        
        dataCutRatio.append(metricsDataPrediction[i][1])
        dataEC.append(metricsDataPrediction[i][2])
        dataTCV.append(metricsDataPrediction[i][3])
        dataQDS.append(metricsDataPrediction[i][4])
        dataCOND.append(metricsDataPrediction[i][5])
        dataMAXPERM.append(metricsDataPrediction[i][6])
        dataNMI.append(metricsDataPrediction[i][7])        
        dataFscore.append(metricsDataPrediction[i][8])        
        dataFscoreImprove.append(metricsDataPrediction[i][9])        
        dataLonliness.append(metricsDataPrediction[i][10])


        if(len(waste)):
            waste = waste + ','
        waste = waste + str(metricsDataPrediction[i][0])

        if(len(cutratio)):
            cutratio = cutratio + ','
        cutratio = cutratio + str(metricsDataPrediction[i][1])

        if(len(ec)):
            ec = ec + ','
        ec = ec + str(metricsDataPrediction[i][2])
        
        if(len(tcv)):
            tcv = tcv + ','
        tcv = tcv + str(metricsDataPrediction[i][3])

        if(len(qds)):
            qds = qds + ','
        qds = qds + str(metricsDataPrediction[i][4])

        if(len(conductance)):
            conductance = conductance + ','
        conductance = conductance + str(metricsDataPrediction[i][5])

        if(len(maxperm)):
            maxperm = maxperm + ','
        maxperm = maxperm + str(metricsDataPrediction[i][6])

        if(len(nmi)):
            nmi = nmi + ','
        nmi = nmi + str(metricsDataPrediction[i][7])

        if(len(fscore)):
            fscore = fscore + ','
        fscore = fscore + str(metricsDataPrediction[i][8])

        if(len(fscoreimprove)):
            fscoreimprove = fscoreimprove + ','
        fscoreimprove = fscoreimprove + str(metricsDataPrediction[i][8])
        
        if(len(lonliness)):
            lonliness = lonliness + ','
        lonliness = lonliness + str(dataLonliness[i])
        

    waste = 'WASTE,' + 'mode_' + str(mode) + ',' + str(scipy.mean(dataWaste)) + ',' + str(scipy.std(dataWaste)) + ',' + waste

    cutratio = 'CUT_RATIO,' + 'mode_' + str(mode) + ',' + str(scipy.mean(dataCutRatio)) + ',' + str(scipy.std(dataCutRatio)) + ',' + cutratio
    ec = 'EC,' + 'mode_' + str(mode) + ',' + str(scipy.mean(dataEC)) + ',' + str(scipy.std(dataEC)) + ',' + ec
    tcv = 'TCV,' + 'mode_' + str(mode) + ',' + str(scipy.mean(dataTCV)) + ',' + str(scipy.std(dataTCV)) + ',' + tcv

    lonliness = "LONELINESS," + 'mode_' + str(mode) + ',' + str(scipy.mean(dataLonliness)) + ',' + str(scipy.std(dataLonliness)) + ',' + lonliness
    
    qds = 'QDS,' + 'mode_' + str(mode) + ',' + str(scipy.mean(dataQDS)) + ',' + str(scipy.std(dataQDS)) + ',' + qds
    conductance = 'CONDUCTANCE,' + 'mode_' + str(mode) + ',' + str(scipy.mean(dataCOND)) + ',' + str(scipy.std(dataCOND)) + ',' + conductance
    maxperm = 'MAXPERM,' + 'mode_' + str(mode) + ',' + str(scipy.mean(dataMAXPERM)) + ',' + str(scipy.std(dataMAXPERM)) + ',' + maxperm
    nmi = 'NMI,' + 'mode_' + str(mode) + ',' + str(scipy.mean(dataNMI)) + ',' + str(scipy.std(dataNMI)) + ',' + nmi

    fscore = "FSCORE," + 'mode_' + str(mode) + ',' + str(scipy.mean(dataFscore)) + ',' + str(scipy.std(dataFscore)) + ',' + fscore
    fscoreimprove = "FSCORE_IMPROVE," + 'mode_' + str(mode) + ',' + str(scipy.mean(dataFscoreImprove)) + ',' + str(scipy.std(dataFscoreImprove)) + ',' + fscoreimprove

    print(waste)
    print(cutratio)
    print(ec)
    print(tcv)
    print(lonliness)
    print(qds)
    print(conductance)
    print(maxperm)
    print(fscore)
    print(fscoreimprove)


Mode after
Mode after Iteration 0
Mode after Iteration 50
WASTE,mode_after,7.29157029508,3.51523867225,2.98341232227,10.6414253898,3.77049180328,7.92889908257,9.86150234742,2.49509803922,7.88863636364,2.56064073227,7.14251781473,7.95734597156,8.18518518519,6.07305936073,7.93348623853,5.02483069977,7.28770301624,6.08604651163,6.9535962877,11.4106280193,4.07809110629,18.2152777778,5.85748218527,2.33018867925,7.65476190476,12.8329466357,4.76112412178,2.26490066225,5.51401869159,3.61224489796,7.62441314554,9.04387990762,7.60502283105,11.0204081633,4.50469483568,5.62409638554,3.63087248322,7.86842105263,4.1662817552,7.66981132075,6.82407407407,5.33251231527,10.2348993289,12.0964912281,3.39455782313,14.5429234339,6.46173469388,9.17985611511,4.67139479905,2.34128878282,5.08128078818,2.62703962704,3.83031674208,14.2009237875,8.17339667458,8.70601851852,13.7254004577,10.7620192308,6.7242206235,6.04566210046,5.40610328638,2.23112128146,2.88066825776,8.89885057471,9.92093023256,8.31428571429,4.16099773243,7.44705882353,3.51282051282,2.97465437788,4.29691211401,9.27601809955,9.08791208791,13.0318906606,8.17324561404,4.29512195122,2.62328767123,7.35570469799,9.44578313253,8.09112149533,12.8917647059,14.3537735849,4.91569086651,4.53103448276,11.5384615385,17.2802850356,11.0138888889,10.1995249406,3.39737991266,2.67294117647,4.76777251185,10.2600472813,7.92086330935,11.9836829837,7.54060324826,10.1175115207,6.49419953596,6.49176470588,4.75178997613,9.51824817518,9.42289719626,2.64896073903
CUT_RATIO,mode_after,0.103679343816,0.0240672836122,0.13612565445,0.145922746781,0.12661498708,0.149253731343,0.112781954887,0.0771929824561,0.132608695652,0.123076923077,0.106267029973,0.0734908136483,0.0793650793651,0.12037037037,0.094387755102,0.0858468677494,0.115288220551,0.0792349726776,0.0973236009732,0.0885714285714,0.110891089109,0.103797468354,0.108465608466,0.130057803468,0.0792079207921,0.0676328502415,0.0900243309002,0.149159663866,0.0657894736842,0.0736607142857,0.127071823204,0.105263157895,0.106818181818,0.120283018868,0.111405835544,0.129268292683,0.0681362725451,0.0974212034384,0.0966921119593,0.102493074792,0.141089108911,0.0796178343949,0.0916334661355,0.0755813953488,0.106382978723,0.129533678756,0.046204620462,0.106017191977,0.110552763819,0.118357487923,0.0872727272727,0.0650602409639,0.12962962963,0.0798122065728,0.0979899497487,0.090692124105,0.105831533477,0.105263157895,0.0753246753247,0.124248496994,0.130242825607,0.0949074074074,0.117333333333,0.0909090909091,0.108173076923,0.116531165312,0.132034632035,0.139593908629,0.105386416862,0.170984455959,0.0376470588235,0.130750605327,0.123173277662,0.124454148472,0.0900692840647,0.143302180685,0.0645933014354,0.107865168539,0.131926121372,0.0975609756098,0.121212121212,0.0831234256927,0.0870712401055,0.113022113022,0.0802603036876,0.0973684210526,0.0980861244019,0.0978260869565,0.123667377399,0.100502512563,0.105263157895,0.0833333333333,0.0618556701031,0.0929095354523,0.0997624703088,0.0778301886792,0.125944584383,0.0867052023121,0.11051212938,0.0786516853933,0.0979827089337,0.134246575342
EC,mode_after,41.85,11.5337548093,52,68,49,70,45,22,61,48,39,28,35,52,37,37,46,29,40,31,56,41,41,45,24,28,37,71,25,33,46,38,47,51,42,53,34,34,38,37,57,25,46,39,45,50,14,37,44,49,24,27,56,34,39,38,49,36,29,62,59,41,44,36,45,43,61,55,45,66,16,54,59,57,39,46,27,48,50,40,48,33,33,46,37,37,41,36,58,40,36,30,24,38,42,33,50,30,41,28,34,49
TCV,mode_after,61.88,14.4265588412,78,87,71,102,70,37,83,74,57,45,56,69,59,58,62,49,65,46,80,67,65,71,40,44,53,97,44,51,68,62,72,74,57,62,52,50,58,56,78,40,70,64,64,68,22,56,58,61,43,41,83,54,59,58,72,48,44,70,77,62,61,59,65,65,83,72,70,97,23,78,73,84,60,67,49,78,69,64,71,50,50,71,54,48,67,56,86,60,57,51,34,58,66,51,69,50,60,48,56,75
LONELINESS,mode_after,0.0620016101488,0.0424158198676,0.0255597540151,0.0028054276261,0.00434838726956,0.0483327609767,0.0614560188056,0.099136004663,0.00219525003781,0.0936329301366,0.0524913326531,0.04057784078,0.0259630007571,0.110470205736,0.0717760423387,0.0551616159107,0.0927405131498,0.0667534145385,0.00435151134884,0.0975849177591,0.0447654305534,0.0222536572495,0.081124368576,0.0694980024792,0.0122431480015,0.147049863557,0.0587220399968,0.064047013816,0.0112426624633,0.0382677083422,0.0426868089694,0.0473005757754,0.0390221259737,0.146545767908,0.0682310350949,0.0960970228088,0.0622716977299,0.128726650117,0.122789743401,0.022718752742,0.0283988679245,0.0781901127148,0.0237349829436,0.043680199842,0.0106416094475,0.0313811667704,0.049548154944,0.0408658381723,0.0862595268839,0.0138558377119,0.0799380425188,0.014209880359,0.0292188666138,0.0987252439359,0.0632397421845,0.0,0.0508950853919,0.0113167350799,0.10153349857,0.0550176467364,0.0589390420859,0.0801076844025,0.105795259002,0.0203757370873,0.0811731923309,0.0254901689857,0.0914964096645,0.0459347938855,0.0,0.119230756295,0.100017501479,0.0441305164064,0.0948436231282,0.0,0.0226272388661,0.0885368670922,0.0692411902172,0.0841326774287,0.159771996759,0.15787234182,0.0227295597924,0.057158031753,0.0691100353312,0.113418042142,0.171713384425,0.0413250773286,0.147670641803,0.0474351936181,0.0168694273405,0.0851261266729,0.0376397868029,0.0,0.0531971929042,0.109059946086,0.0540419002222,0.152465166699,0.118755364594,0.112776082369,0.0,0.0831914063996,0.0651696088612,0.0
QDS,mode_after,0.489683044188,0.0301561429578,0.45740331762394665,0.494282862093479,0.5376032684000839,0.48034636826297905,0.48987209540689874,0.5278706193069985,0.4944028009971513,0.5382660990554426,0.4919520230537139,0.4797055718466258,0.46485451506098885,0.5032821198917274,0.469702487426559,0.5077552572161109,0.5230993253527446,0.4978203584698018,0.4961726954931298,0.4947589141414112,0.5134335528406698,0.5074039448819571,0.48872033449523367,0.5270531131206875,0.4585573503654268,0.47952651362684545,0.4673264308876624,0.481624855864664,0.44126433006290433,0.5015363593942435,0.4951498583879433,0.5227582846556873,0.4714843482168755,0.56835271764694,0.49175752600532807,0.48320130889837987,0.4639371255512722,0.5431292202047024,0.4957167122718255,0.4924895908936635,0.5383151729198298,0.5370892223590056,0.44122141274162435,0.4346602348359965,0.5022287781355049,0.5093450549811378,0.5035741499317622,0.5254135582654071,0.46405344126569115,0.5080660639579826,0.5197699610703127,0.48503628404259913,0.47801229959950253,0.48095332571655697,0.4563075890153467,0.5336366921605745,0.4230830823630128,0.501561039864402,0.4586243708180498,0.45947095595525383,0.45240942040865795,0.48013247427891365,0.506407255563142,0.48872232314520075,0.4622044493835535,0.49629450922336743,0.5004960907672394,0.46526861095244815,0.38407338445811956,0.4908313236345538,0.4252048310791596,0.53155335847139,0.47298895512849476,0.5110400363341081,0.5032298279073993,0.4946728161503101,0.487786063409644,0.4769573996978335,0.5001508287204239,0.5319427661415197,0.4841309490826457,0.49965767426412333,0.47140264334289766,0.5131574123805163,0.47380878532548876,0.484701958897288,0.4154747459280039,0.44268266886742574,0.4746571289488396,0.4749629616847392,0.49083044637404866,0.5091324886290453,0.48348500838019326,0.4715779977516842,0.4659405458442584,0.4636089153370154,0.4993425718217823,0.5026054406635737,0.5115144753756948,0.5030442660385143,0.5306548502126653,0.5355668913745879
CONDUCTANCE,mode_after,0.0120643964023,0.00354389092166,0.01117203865961128,0.017047590922902495,0.00940347326742027,0.010978474075371943,0.012826486143018134,0.01606391672289308,0.009945698963404909,0.01566510054523662,0.008318595474341023,0.012175991351477353,0.016320514842420038,0.0122121821836839,0.017260406058644484,0.010705802874781227,0.00545341022194573,0.013639392692583819,0.007403490964219741,0.014978440998220115,0.018231352228644394,0.006162160698319895,0.016161735946682174,0.007970642569511794,0.017725797186406198,0.01004281581389013,0.008016832609642834,0.00653253156016656,0.011835153345716136,0.012744101621819054,0.008394556956098094,0.011336758696927497,0.014730278525244167,0.006846654329031124,0.007394803505717991,0.012327845876852938,0.011350239762566614,0.00762187475585769,0.006934352569313136,0.012678036661535488,0.007195626739462961,0.005869741347224747,0.013187064628085731,0.01988266237396525,0.016594758449086033,0.015417319107588564,0.008939835233373604,0.01084495781121263,0.013312247003658406,0.015861344919226597,0.013170537997071952,0.010418118996804851,0.015408217416646778,0.00965345909749685,0.009713468288124593,0.011255311652155773,0.012929684907531528,0.016615332719495376,0.011667757233024118,0.01582395077172244,0.00786499500046851,0.008875650204938782,0.011497512107063198,0.01317952020111394,0.01276981173612533,0.009661154318507535,0.014148893709829519,0.009536396989811038,0.011520283635017501,0.015749958446504984,0.01483499401476686,0.014156093680072986,0.015977396438755075,0.015544723907482835,0.012040726455050312,0.0115275685827473,0.015518760189226499,0.009791488379921933,0.007378829404606846,0.006270090750913587,0.019804695037399556,0.015786788812138006,0.01056943592554959,0.015389890027478488,0.015665219280244717,0.017424654395620697,0.008354585684541564,0.018406381420041674,0.010720943356696197,0.01785543617072497,0.00951862109790868,0.008101884792209392,0.016124541072432923,0.009847710721772342,0.007099175688171013,0.007658721642097191,0.014308852860712066,0.013253172502977497,0.009372195049376563,0.010411430263774302,0.011983990348487275,0.010565537050564632
MAXPERM,mode_after,-0.278974412119,0.0326072074743,-0.29558934123222746,-0.22868061469933185,-0.26620281264637,-0.25173841743119263,-0.3077914530516432,-0.3366731176470588,-0.23428425,-0.2746078558352403,-0.27449019239904987,-0.2897304218009479,-0.2871424537037037,-0.2482282328767123,-0.29221804587155964,-0.21580668171557563,-0.27863313457076566,-0.29074108837209306,-0.2620776519721578,-0.3170162198067633,-0.2284348806941432,-0.25591406712962966,-0.31054442992874104,-0.2700347783018868,-0.3601759857142858,-0.29345731090487237,-0.28822087587822015,-0.193917059602649,-0.3157076191588785,-0.2599277029478458,-0.28950812206572774,-0.2624949376443418,-0.2686593652968037,-0.22391661224489792,-0.27460112676056336,-0.29976231807228915,-0.23557527293064878,-0.2871991698564593,-0.2685113210161663,-0.3148730353773585,-0.2749995972222222,-0.2984237881773399,-0.2554493020134228,-0.2581011666666667,-0.28091514512471655,-0.26884311368909514,-0.29410613520408163,-0.2721148776978417,-0.3311113593380615,-0.27217370167064436,-0.36751295073891627,-0.2562254428904429,-0.24714033936651583,-0.27372846651270205,-0.30363293111638956,-0.2894975023148148,-0.28412738215102973,-0.3242597139423077,-0.30794767625899283,-0.2601261917808219,-0.2628698145539906,-0.23545879405034326,-0.29730108114558473,-0.2843649264367816,-0.2975689860465116,-0.28898742857142856,-0.20958002267573697,-0.28045856705882355,-0.2871170979020979,-0.29041430414746544,-0.29195015676959624,-0.24220631674208146,-0.23167114065934066,-0.255517132118451,-0.2450355,-0.35014190731707323,-0.23687221461187213,-0.21239811409395973,-0.3264501734939759,-0.26153005841121496,-0.3149738235294118,-0.26353788443396226,-0.3046700023419204,-0.25537668505747124,-0.3098656153846154,-0.2775842589073634,-0.34833831249999997,-0.2825755059382423,-0.22209773580786027,-0.2940351082352941,-0.3020668696682464,-0.2797574089834515,-0.27767452038369306,-0.28107323776223775,-0.29128248491879355,-0.2754071082949309,-0.28045260556844553,-0.3253910847058824,-0.2978917732696898,-0.31454441605839417,-0.2632713831775701,-0.27415488914549657
FSCORE,mode_after,0.0263161828748,0.0109176388317,0.00614889791105,0.0175834083539,0.0228884536605,0.0147004609221,0.016070273697,0.029951136306,0.0211113366686,0.0311711913576,0.0168495271207,0.0352706683701,0.0312573779669,0.0191311706392,0.039804425908,0.0221690802056,0.0222109301099,0.0209843940425,0.0105562248124,0.0308704771029,0.0131482303168,0.0252614491726,0.028067041643,0.0169212418396,0.021848323546,0.032136050047,0.0519896385395,0.0177010823189,0.0270789960145,0.0372279444171,0.0284697092111,0.0188994350938,0.0147283328752,0.0273431129669,0.022772872317,0.0185270368606,0.0274094001666,0.0247975779755,0.0397974518173,0.0212019885984,0.0298383763704,0.0152766076743,0.0422187038207,0.0397573440457,0.0263166193096,0.023898385917,0.051712299712,0.0423386840013,0.0138981086698,0.0179453569972,0.0233960966863,0.0197590708329,0.0193006038968,0.0280739439854,0.0340188766484,0.0101552616999,0.0221838272011,0.0120719890877,0.0395018166754,0.0173034848454,0.0219404624641,0.0340830675987,0.0250590221612,0.00263362020244,0.0335335584214,0.0373672566651,0.0426886147314,0.0184499046955,0.0171859332744,0.0251226305647,0.0457110356858,0.0287438036992,0.0447672870256,0.0385671163382,0.0265279429524,0.0246148384468,0.0191337941024,0.0216625611078,0.0476705644711,0.0381179327074,0.00636795027203,0.0240632443469,0.0215132899698,0.0318883471014,0.0504388862657,0.0112769487426,0.0380283450368,0.0239345651464,0.0266649258758,0.043713616639,0.0221408327526,0.0147340773438,0.026741319875,0.0220684282425,0.0298383861565,0.0245541446975,0.0147625559455,0.0403480301283,0.0545115015747,0.0294446437153,0.0136384659419,0.0143430254218
FSCORE_IMPROVE,mode_after,0.254667414071,0.0390684894661,0.00614889791105,0.0175834083539,0.0228884536605,0.0147004609221,0.016070273697,0.029951136306,0.0211113366686,0.0311711913576,0.0168495271207,0.0352706683701,0.0312573779669,0.0191311706392,0.039804425908,0.0221690802056,0.0222109301099,0.0209843940425,0.0105562248124,0.0308704771029,0.0131482303168,0.0252614491726,0.028067041643,0.0169212418396,0.021848323546,0.032136050047,0.0519896385395,0.0177010823189,0.0270789960145,0.0372279444171,0.0284697092111,0.0188994350938,0.0147283328752,0.0273431129669,0.022772872317,0.0185270368606,0.0274094001666,0.0247975779755,0.0397974518173,0.0212019885984,0.0298383763704,0.0152766076743,0.0422187038207,0.0397573440457,0.0263166193096,0.023898385917,0.051712299712,0.0423386840013,0.0138981086698,0.0179453569972,0.0233960966863,0.0197590708329,0.0193006038968,0.0280739439854,0.0340188766484,0.0101552616999,0.0221838272011,0.0120719890877,0.0395018166754,0.0173034848454,0.0219404624641,0.0340830675987,0.0250590221612,0.00263362020244,0.0335335584214,0.0373672566651,0.0426886147314,0.0184499046955,0.0171859332744,0.0251226305647,0.0457110356858,0.0287438036992,0.0447672870256,0.0385671163382,0.0265279429524,0.0246148384468,0.0191337941024,0.0216625611078,0.0476705644711,0.0381179327074,0.00636795027203,0.0240632443469,0.0215132899698,0.0318883471014,0.0504388862657,0.0112769487426,0.0380283450368,0.0239345651464,0.0266649258758,0.043713616639,0.0221408327526,0.0147340773438,0.026741319875,0.0220684282425,0.0298383861565,0.0245541446975,0.0147625559455,0.0403480301283,0.0545115015747,0.0294446437153,0.0136384659419,0.0143430254218

In [ ]: