In [1]:
import numpy
import re
import os
import matplotlib.pyplot as pyplot
%matplotlib inline

from collections import namedtuple
from collections import defaultdict

ExpStatsOLD = namedtuple('Stats_old', ['train_X_Y', 'train_X', 'train_Y', 'train_Y_X',
                             'test_X_Y', 'test_X', 'test_Y', 'test_Y_X',
                            'acc_mpe', 'ham_mpe', 'ext_mpe',
                            'acc_marg', 'ham_marg', 'ext_marg'])

ExpStats = namedtuple('Stats', ['train_X_Y', 'train_X', 'train_Y', 'train_Y_X',
                             'test_X_Y', 'test_X', 'test_Y', 'test_Y_X',
                            'train_acc_mpe', 'train_ham_mpe', 'train_ext_mpe',
                            'train_acc_marg', 'train_ham_marg', 'train_ext_marg',
                               'test_acc_mpe', 'test_ham_mpe', 'test_ext_mpe',
                            'test_acc_marg', 'test_ham_marg', 'test_ext_marg',
                               'x_y_edges', 'y_y_edges', 'x_x_edges'])

USE_NOTEBOOK = True

In [2]:
def parse_ll_from_log(log_str, ll_prefix='Train:', n_folds=5, newline='\n'):
    
    p_X_Y_lls = []
    p_X_lls = []
    p_Y_lls = []
    p_Y_X_lls = []
    
    lines = log_str.split(newline)
    for line in lines:
        if ll_prefix in line:
            stats = re.findall(r"[-+]?\d*\.\d+|\d+", line)
            assert len(stats) == 4
            
            p_X_Y_lls.append(float(stats[0]))
            p_X_lls.append(float(stats[1]))
            p_Y_lls.append(float(stats[2]))
            p_Y_X_lls.append(float(stats[3]))
            
    assert len(p_X_Y_lls) == 5
    assert len(p_X_lls) == 5
    assert len(p_Y_lls) == 5
    assert len(p_Y_X_lls) == 5
    
    return numpy.array(p_X_Y_lls), numpy.array(p_X_lls), numpy.array(p_Y_lls), numpy.array(p_Y_X_lls)

In [3]:
if USE_NOTEBOOK:
    file_path = 'newcsn/l0.6ts0/arts.log'
    with open(file_path, 'r') as f:
        log_contents = f.read()
        
    train_X_Y, train_X, train_Y, train_Y_X = parse_ll_from_log(log_contents, 'Train:', 5)
    print(train_X_Y)
    print(train_X)
    print(train_Y)
    print(train_Y_X)
    
    test_X_Y, test_X, test_Y, test_Y_X = parse_ll_from_log(log_contents, 'Test:', 5)
    print(test_X_Y)
    print(test_X)
    print(test_Y)
    print(test_Y_X)


[-26.85714962 -26.65849524 -26.85600933 -26.61176421 -26.62904252]
[-23.1369752  -22.76179664 -23.14640876 -22.94594425 -22.86228867]
[-4.62170623 -4.71037673 -4.59397574 -4.5913171  -4.636254  ]
[-3.72017441 -3.8966986  -3.70960057 -3.66581996 -3.76675385]
[-28.42492085 -30.35267217 -28.54861664 -29.68318685 -30.37089305]
[-23.97000886 -25.86773568 -24.03973844 -25.0265959  -25.76909386]
[-4.59778773 -4.65549616 -4.68432662 -4.64594702 -4.67789959]
[-4.45491199 -4.48493649 -4.5088782  -4.65659095 -4.60179918]

In [4]:
def parse_scores_from_log_old(log_str, stat_prefix='Accuracy', n_folds=5, newline='\n'):
    scores = []
    lines = log_str.split(newline)
    for line in lines:
        if stat_prefix in line:
            stats = re.findall(r"[-+]?\d*\.\d+|\d+", line)
            if len(stats) == n_folds:
                scores.extend([float(s) for s in stats])
                
    assert len(scores) == n_folds * 2
    return numpy.array(scores[:n_folds]), numpy.array(scores[n_folds:])

In [5]:
def parse_scores_from_log(log_str, stat_prefix='Train Accuracy mpe', n_folds=5, newline='\n'):
    scores = []
    lines = log_str.split(newline)
    for line in lines:
        if stat_prefix in line:
            stats = re.findall(r"[-+]?\d*\.\d+|\d+", line)
            if len(stats) == n_folds:
                scores.extend([float(s) for s in stats])
                
    assert len(scores) == n_folds
    return numpy.array(scores)

In [6]:
if USE_NOTEBOOK:
    file_path = 'newcsn/l0.6ts0/arts.log'
    with open(file_path, 'r') as f:
        log_contents = f.read()
        
    acc_mpe = parse_scores_from_log(log_contents, 'Train Accuracy mpe', 5)
    print(acc_mpe)
    
    ham_mpe = parse_scores_from_log(log_contents, 'Train Hamming Score mpe', 5)
    print(ham_mpe)
    
    ext_mpe = parse_scores_from_log(log_contents, 'Train Exact match mpe', 5)
    print(ext_mpe)


[ 0.453216  0.431883  0.452115  0.455306  0.436364]
[ 0.941909  0.940698  0.941868  0.942006  0.940484]
[ 0.355162  0.332053  0.35527   0.360721  0.344689]

In [7]:
def parse_edges_from_log(log_str, edge_prefix='Xs with Y parent', n_folds=5, newline='\n'):
    edges = []
    lines = log_str.split(newline)
    for line in lines:
        if edge_prefix in line:
            edge_count = re.findall(r"\d+", line)
            assert len(edge_count) == 1
            edges.append(int(edge_count[0]))
                
    assert len(edges) == n_folds
    return numpy.array(edges)

In [8]:
if USE_NOTEBOOK:
    file_path = 'newcsn/l0.6ts0/arts.log'
    with open(file_path, 'r') as f:
        log_contents = f.read()
        
    x_y_edges = parse_edges_from_log(log_contents, 'Xs with Y parent', 5)
    print(x_y_edges)
    
    y_y_edges = parse_edges_from_log(log_contents, 'Ys with Y parent', 5)
    print(y_y_edges)


[82 82 83 88 86]
[13 15 14 15 14]

In [9]:
def parse_stats_from_log(log_path, n_folds=5, tot_edges=None, newline='\n'):
    """
    From a string representing a log file content,
    Extract these information:
    For each fold:
        - train log likelihoods:
            - p(X, Y)
            - p(X)
            - p(Y)
            - p(Y|X)
        - test log likelihoods:
            - p(X, Y)
            - p(X)
            - p(Y)
            - p(Y|X)
        - MPE scores:
            - accuracy
            - hamming loss
            - exact match
        - MARG scores:
            - accuracy
            - hamming loss
            - exact match
    they are put into a ExpStats namedtuple
    """
    log_str = None
    with open(log_path, 'r') as log_file:
        log_str = log_file.read()
        
    train_X_Y, train_X, train_Y, train_Y_X = parse_ll_from_log(log_str, 'Train:', n_folds=n_folds, newline=newline)
    test_X_Y, test_X, test_Y, test_Y_X = parse_ll_from_log(log_str, 'Test:', n_folds=n_folds, newline=newline)
    
    train_acc_mpe = parse_scores_from_log(log_str, 'Train Accuracy mpe', n_folds=n_folds, newline=newline)
    train_ham_mpe = parse_scores_from_log(log_str, 'Train Hamming Score mpe', n_folds=n_folds, newline=newline)
    train_ext_mpe = parse_scores_from_log(log_str, 'Train Exact match mpe', n_folds=n_folds, newline=newline)
    train_acc_marg = parse_scores_from_log(log_str, 'Train Accuracy marg', n_folds=n_folds, newline=newline)
    train_ham_marg = parse_scores_from_log(log_str, 'Train Hamming Score marg', n_folds=n_folds, newline=newline)
    train_ext_marg = parse_scores_from_log(log_str, 'Train Exact match marg', n_folds=n_folds, newline=newline)
    
    test_acc_mpe = parse_scores_from_log(log_str, 'Test Accuracy mpe', n_folds=n_folds, newline=newline)
    test_ham_mpe = parse_scores_from_log(log_str, 'Test Hamming Score mpe', n_folds=n_folds, newline=newline)
    test_ext_mpe = parse_scores_from_log(log_str, 'Test Exact match mpe', n_folds=n_folds, newline=newline)
    test_acc_marg = parse_scores_from_log(log_str, 'Test Accuracy marg', n_folds=n_folds, newline=newline)
    test_ham_marg = parse_scores_from_log(log_str, 'Test Hamming Score marg', n_folds=n_folds, newline=newline)
    test_ext_marg = parse_scores_from_log(log_str, 'Test Exact match marg', n_folds=n_folds, newline=newline)
    
    x_y_edges = parse_edges_from_log(log_str, 'Xs with Y parent', n_folds=n_folds, newline=newline)
    y_y_edges = parse_edges_from_log(log_str, 'Ys with Y parent', n_folds=n_folds, newline=newline)
    x_x_edges = None
    if tot_edges is not None:
        x_x_edges = [tot_edges - x_y - y_y for x_y, y_y in zip(x_y_edges, y_y_edges)]
        
    return ExpStats(train_X_Y, train_X, train_Y, train_Y_X, 
                   test_X_Y, test_X, test_Y, test_Y_X,
                   train_acc_mpe, train_ham_mpe, train_ext_mpe,
                   train_acc_marg, train_ham_marg, train_ext_marg,
                   test_acc_mpe, test_ham_mpe, test_ext_mpe,
                   test_acc_marg, test_ham_marg, test_ext_marg,
                   x_y_edges, y_y_edges, x_x_edges)

In [10]:
def print_stats(exp_stats):
    print('train log p(X,Y):\t', exp_stats.train_X_Y)
    print('train log p(X):\t', exp_stats.train_X)
    print('train log p(Y):\t', exp_stats.train_Y)
    print('train log p(Y|X):\t', exp_stats.train_Y_X)

    print('test log p(X,Y):\t', exp_stats.test_X_Y)
    print('test log p(X):\t', exp_stats.test_X)
    print('test log p(Y):\t', exp_stats.test_Y)
    print('test log p(Y|X):\t', exp_stats.test_Y_X)
    
    print('train accuracy MPE:\t', exp_stats.train_acc_mpe)
    print('train hamming MPE:\t', exp_stats.train_ham_mpe)
    print('train extact match MPE:\t', exp_stats.train_ext_mpe)
    print('train accuracy Marg:\t', exp_stats.train_acc_marg)
    print('train hamming Marg:\t', exp_stats.train_ham_marg)
    print('train extact match marg:\t', exp_stats.train_ext_marg)
    
    print('test accuracy MPE:\t', exp_stats.test_acc_mpe)
    print('test hamming MPE:\t', exp_stats.test_ham_mpe)
    print('test extact match MPE:\t', exp_stats.test_ext_mpe)
    print('test accuracy Marg:\t', exp_stats.test_acc_marg)
    print('test hamming Marg:\t', exp_stats.test_ham_marg)
    print('test extact match marg:\t', exp_stats.test_ext_marg)
    
    print('n edges X -> Y:\t', exp_stats.x_y_edges)
    print('n edges Y -> Y:\t', exp_stats.y_y_edges)
    print('n edges X -> X:\t', exp_stats.x_x_edges)

In [11]:
if USE_NOTEBOOK:
    file_path = 'newcsn/l0.6ts0/arts.log'
    exp_stats = parse_stats_from_log(file_path)
    print_stats(exp_stats)


train log p(X,Y):	 [-26.85714962 -26.65849524 -26.85600933 -26.61176421 -26.62904252]
train log p(X):	 [-23.1369752  -22.76179664 -23.14640876 -22.94594425 -22.86228867]
train log p(Y):	 [-4.62170623 -4.71037673 -4.59397574 -4.5913171  -4.636254  ]
train log p(Y|X):	 [-3.72017441 -3.8966986  -3.70960057 -3.66581996 -3.76675385]
test log p(X,Y):	 [-28.42492085 -30.35267217 -28.54861664 -29.68318685 -30.37089305]
test log p(X):	 [-23.97000886 -25.86773568 -24.03973844 -25.0265959  -25.76909386]
test log p(Y):	 [-4.59778773 -4.65549616 -4.68432662 -4.64594702 -4.67789959]
test log p(Y|X):	 [-4.45491199 -4.48493649 -4.5088782  -4.65659095 -4.60179918]
train accuracy MPE:	 [ 0.453216  0.431883  0.452115  0.455306  0.436364]
train hamming MPE:	 [ 0.941909  0.940698  0.941868  0.942006  0.940484]
train extact match MPE:	 [ 0.355162  0.332053  0.35527   0.360721  0.344689]
train accuracy Marg:	 [ 0.457195  0.440069  0.457556  0.458024  0.446364]
train hamming Marg:	 [ 0.943631  0.942388  0.943795  0.943991  0.942629]
train extact match marg:	 [ 0.349816  0.330215  0.353934  0.353039  0.341182]
test accuracy MPE:	 [ 0.385391  0.411938  0.418159  0.414396  0.394681]
test hamming MPE:	 [ 0.934836  0.937953  0.936771  0.936754  0.935392]
test extact match MPE:	 [ 0.303738  0.315965  0.329325  0.332219  0.301471]
test accuracy Marg:	 [ 0.386499  0.406131  0.424784  0.414603  0.402825]
test hamming Marg:	 [ 0.936402  0.938133  0.938878  0.938066  0.937217]
test extact match marg:	 [ 0.293057  0.303941  0.328657  0.323529  0.299465]
n edges X -> Y:	 [82 82 83 88 86]
n edges Y -> Y:	 [13 15 14 15 14]
n edges X -> X:	 None

In [12]:
DATASETS = [
    #'arts', 
            'birds', 'business', 'cal', 'emotions', 'flags', 'health', 'human', 'plant', 'scene', 'yeast']

DATASET_LENGTH = {
    'arts':525,
    'birds':None,
    'business':529,
    'cal':241,
    'emotions':77,
    'flags':25,
    'health':531,
    'human':453,
    'plant':451,
    'scene':299,
    'yeast':116
}

def parse_stats_for_exp(exp_dir, datasets=DATASETS, n_folds=5, newline='\n'):
    """
    Parse the stats for each dataset log file in a dir
    """
    stats_dict = {}
    
    for d in datasets:
        print('\n\tconsidering dataset {}'.format(d))
        data_path = os.path.join(exp_dir, '{}.log'.format(d))
        exp_stats = parse_stats_from_log(data_path, n_folds=n_folds,tot_edges=DATASET_LENGTH[d], newline=newline)
        stats_dict[d] = exp_stats
        
    return stats_dict

In [13]:
if USE_NOTEBOOK:
    exp_dir = './newcsn/l0.6ts0'
    
    stats = parse_stats_for_exp(exp_dir)
    for k, v in stats.items():
        print(k)
        print_stats(v)


	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast
business
train log p(X,Y):	 [-18.98063005 -18.86251016 -18.52317187 -19.08767016 -18.8278306 ]
train log p(X):	 [-17.12571493 -17.02592134 -16.68093677 -17.22897032 -16.95430913]
train log p(Y):	 [-2.33266923 -2.30522974 -2.32804474 -2.31278003 -2.29292182]
train log p(Y|X):	 [-1.85491512 -1.83658883 -1.8422351  -1.85869985 -1.87352148]
test log p(X,Y):	 [-20.46293907 -21.02593143 -22.10833355 -19.92713995 -21.18333333]
test log p(X):	 [-17.97434686 -18.63815631 -19.36328688 -17.27851953 -18.47351794]
test log p(Y):	 [-2.23773471 -2.36688149 -2.27928944 -2.35831053 -2.42072127]
test log p(Y|X):	 [-2.48859222 -2.38777512 -2.74504667 -2.64862042 -2.70981539]
train accuracy MPE:	 [ 0.752458  0.751378  0.752173  0.754036  0.744155]
train hamming MPE:	 [ 0.977124  0.977245  0.977152  0.97763   0.97665 ]
train extact match MPE:	 [ 0.604905  0.603723  0.606844  0.608114  0.595074]
train accuracy Marg:	 [ 0.747065  0.749728  0.750041  0.750136  0.740819]
train hamming Marg:	 [ 0.977191  0.977394  0.97752   0.97772   0.976839]
train extact match marg:	 [ 0.596098  0.599487  0.601717  0.601761  0.586268]
test accuracy MPE:	 [ 0.721515  0.704756  0.70968   0.715445  0.695849]
test hamming MPE:	 [ 0.973856  0.972373  0.973027  0.972733  0.970919]
test extact match MPE:	 [ 0.574421  0.553723  0.55506   0.566905  0.545495]
test accuracy Marg:	 [ 0.716079  0.703425  0.704947  0.712579  0.691114]
test hamming Marg:	 [ 0.973856  0.972626  0.973354  0.973238  0.971469]
test extact match marg:	 [ 0.567291  0.54971   0.549264  0.558876  0.533452]
n edges X -> Y:	 [102  87  87  87  88]
n edges Y -> Y:	 [21 20 21 20 21]
n edges X -> X:	 [406, 422, 421, 422, 420]
emotions
train log p(X,Y):	 [-26.20989937 -25.8636526  -25.77160558 -25.99682828 -26.17489011]
train log p(X):	 [-23.91293451 -23.67515438 -23.65600351 -23.74004977 -23.8879151 ]
train log p(Y):	 [-2.83570773 -2.82188149 -2.79135222 -2.82806043 -2.84099863]
train log p(Y|X):	 [-2.29696486 -2.18849822 -2.11560207 -2.25677851 -2.28697501]
test log p(X,Y):	 [-28.79493467 -30.41029836 -29.74853733 -30.3882927  -28.06213068]
test log p(X):	 [-26.0757485  -27.19483569 -26.97366066 -27.5139348  -25.45104229]
test log p(Y):	 [-2.89286608 -2.77742393 -2.94443588 -2.8916102  -2.72415054]
test log p(Y|X):	 [-2.71918616 -3.21546267 -2.77487668 -2.8743579  -2.61108838]
train accuracy MPE:	 [ 0.524402  0.566174  0.59135   0.567333  0.550456]
train hamming MPE:	 [ 0.765471  0.773558  0.787975  0.780351  0.765614]
train extact match MPE:	 [ 0.28481   0.308017  0.35865   0.36      0.307368]
train accuracy Marg:	 [ 0.513889  0.533579  0.552567  0.540772  0.524456]
train hamming Marg:	 [ 0.78481   0.79571   0.793601  0.790526  0.787719]
train extact match marg:	 [ 0.280591  0.246835  0.28903   0.313684  0.265263]
test accuracy MPE:	 [ 0.472269  0.508683  0.526891  0.474153  0.515819]
test hamming MPE:	 [ 0.732493  0.747899  0.759104  0.724576  0.742938]
test extact match MPE:	 [ 0.184874  0.277311  0.277311  0.262712  0.305085]
test accuracy Marg:	 [ 0.460784  0.45028   0.497199  0.47387   0.469915]
test hamming Marg:	 [ 0.7507    0.757703  0.764706  0.75565   0.761299]
test extact match marg:	 [ 0.210084  0.184874  0.201681  0.254237  0.262712]
n edges X -> Y:	 [9 4 4 7 4]
n edges Y -> Y:	 [4 4 5 4 5]
n edges X -> X:	 [64, 69, 68, 66, 68]
human
train log p(X,Y):	 [-130.10174823 -130.00220724 -130.04189869 -130.43323208 -130.45934706]
train log p(X):	 [-127.13207437 -127.05564779 -127.06622702 -127.4641643  -127.48677954]
train log p(Y):	 [-3.11828038 -3.13859445 -3.13525161 -3.13112774 -3.1151526 ]
train log p(Y|X):	 [-2.96967386 -2.94655945 -2.97567167 -2.96906778 -2.97256752]
test log p(X,Y):	 [-135.79636012 -135.94958896 -135.78515562 -134.40194361 -133.81794214]
test log p(X):	 [-132.61968849 -132.88107459 -132.60104625 -131.18352193 -130.61071782]
test log p(Y):	 [-3.18011292 -3.04860699 -3.15460164 -3.12732038 -3.17129876]
test log p(Y|X):	 [-3.17667163 -3.06851437 -3.18410938 -3.21842168 -3.20722432]
train accuracy MPE:	 [ 0.317968  0.336655  0.324111  0.314889  0.320126]
train hamming MPE:	 [ 0.896854  0.898637  0.897413  0.895631  0.896765]
train extact match MPE:	 [ 0.270934  0.290258  0.278471  0.266801  0.274336]
train accuracy Marg:	 [ 0.313708  0.330247  0.325755  0.322468  0.319523]
train hamming Marg:	 [ 0.896969  0.898522  0.898247  0.897471  0.896765]
train extact match marg:	 [ 0.261272  0.277778  0.276056  0.270423  0.27313 ]
test accuracy MPE:	 [ 0.311495  0.324759  0.291734  0.294015  0.309543]
test hamming MPE:	 [ 0.893546  0.899058  0.891764  0.89349   0.894816]
test extact match MPE:	 [ 0.268489  0.27492   0.243156  0.252818  0.26129 ]
test accuracy Marg:	 [ 0.302921  0.332262  0.294149  0.25416   0.311962]
test hamming Marg:	 [ 0.892857  0.901011  0.893145  0.888774  0.895046]
test extact match marg:	 [ 0.255627  0.278135  0.238325  0.207729  0.264516]
n edges X -> Y:	 [4 2 3 5 2]
n edges Y -> Y:	 [11 10 11 12 10]
n edges X -> X:	 [438, 441, 439, 436, 441]
flags
train log p(X,Y):	 [-9.7043003  -9.74445277 -9.61255559 -9.64695603 -9.87314018]
train log p(X):	 [-6.79732067 -6.86875132 -6.76973694 -6.7381361  -6.82580516]
train log p(Y):	 [-3.76885968 -3.73796438 -3.70146151 -3.70460754 -3.80120952]
train log p(Y|X):	 [-2.90697963 -2.87570144 -2.84281866 -2.90881994 -3.04733503]
test log p(X,Y):	 [-11.15974002 -11.64118497 -12.44799897 -12.02990131 -10.96014309]
test log p(X):	 [-7.20566471 -7.52346371 -8.01502589 -7.70651294 -7.41626709]
test log p(Y):	 [-3.82759166 -3.91677038 -4.17906559 -4.05454914 -3.74480215]
test log p(Y|X):	 [-3.95407532 -4.11772126 -4.43297308 -4.32338837 -3.543876  ]
train accuracy MPE:	 [ 0.63944   0.647972  0.651982  0.632585  0.627503]
train hamming MPE:	 [ 0.769944  0.775115  0.764055  0.765568  0.750916]
train extact match MPE:	 [ 0.305195  0.316129  0.296774  0.288462  0.25    ]
train accuracy Marg:	 [ 0.647449  0.642166  0.646697  0.638767  0.63576 ]
train hamming Marg:	 [ 0.777365  0.771429  0.767742  0.774725  0.770147]
train extact match marg:	 [ 0.266234  0.245161  0.277419  0.269231  0.224359]
test accuracy MPE:	 [ 0.524048  0.498352  0.539988  0.528446  0.622807]
test hamming MPE:	 [ 0.682143  0.663004  0.692308  0.672932  0.740602]
test extact match MPE:	 [ 0.2       0.153846  0.179487  0.210526  0.315789]
test accuracy Marg:	 [ 0.539464  0.534676  0.555495  0.53985   0.595614]
test hamming Marg:	 [ 0.692857  0.681319  0.714286  0.680451  0.740602]
test extact match marg:	 [ 0.15      0.205128  0.179487  0.184211  0.236842]
n edges X -> Y:	 [3 6 5 4 3]
n edges Y -> Y:	 [1 3 2 2 2]
n edges X -> X:	 [21, 16, 18, 19, 20]
scene
train log p(X,Y):	 [-100.11225567  -99.78257184 -100.15591744 -100.2068322  -100.13090683]
train log p(X):	 [-98.54349561 -98.23735346 -98.5940657  -98.6457224  -98.56100839]
train log p(Y):	 [-2.19082433 -2.17127021 -2.19394491 -2.18800314 -2.18144029]
train log p(Y|X):	 [-1.56876006 -1.54521838 -1.56185175 -1.5611098  -1.56989844]
test log p(X,Y):	 [-103.1361335  -104.55640006 -102.8798233  -102.4054884  -102.72650493]
test log p(X):	 [-101.06684144 -102.20336878 -100.22905807 -100.18544097 -100.30304743]
test log p(Y):	 [-2.16581192 -2.25711744 -2.1538311  -2.17857825 -2.20371779]
test log p(Y|X):	 [-2.06929206 -2.35303128 -2.65076522 -2.22004743 -2.4234575 ]
train accuracy MPE:	 [ 0.704242  0.705455  0.69671   0.704223  0.712852]
train hamming MPE:	 [ 0.896623  0.897143  0.895152  0.896677  0.900969]
train extact match MPE:	 [ 0.622338  0.625455  0.617143  0.623053  0.639336]
train accuracy Marg:	 [ 0.710649  0.714892  0.70355   0.716771  0.712161]
train hamming Marg:	 [ 0.89974   0.901299  0.897662  0.902129  0.900796]
train extact match marg:	 [ 0.635325  0.643117  0.624416  0.647975  0.638817]
test accuracy MPE:	 [ 0.661826  0.664592  0.666321  0.660083  0.635764]
test hamming MPE:	 [ 0.881743  0.882089  0.883126  0.880804  0.872222]
test extact match MPE:	 [ 0.582988  0.580913  0.60166   0.5842    0.554167]
test accuracy Marg:	 [ 0.665629  0.673237  0.672545  0.675329  0.631597]
test hamming Marg:	 [ 0.883817  0.886584  0.885201  0.887734  0.870833]
test extact match marg:	 [ 0.595436  0.595436  0.607884  0.611227  0.552083]
n edges X -> Y:	 [1 1 1 1 1]
n edges Y -> Y:	 [0 0 0 0 0]
n edges X -> X:	 [298, 298, 298, 298, 298]
yeast
train log p(X,Y):	 [-26.64638336 -26.60771702 -26.61731903 -26.63078738 -27.16625895]
train log p(X):	 [-22.38466295 -22.38420546 -22.40924908 -22.46107163 -22.63404098]
train log p(Y):	 [-4.46761095 -4.45088412 -4.43643642 -4.43764814 -4.69460434]
train log p(Y|X):	 [-4.26172041 -4.22351156 -4.20806996 -4.16971575 -4.53221797]
test log p(X,Y):	 [-27.51295018 -27.68599561 -27.60639406 -27.78572656 -28.13095962]
test log p(X):	 [-22.8756583  -22.98683751 -22.80057983 -22.70433227 -23.30442997]
test log p(Y):	 [-4.40193689 -4.47039431 -4.51221588 -4.53587016 -4.74612703]
test log p(Y|X):	 [-4.63729188 -4.6991581  -4.80581423 -5.08139429 -4.82652965]
train accuracy MPE:	 [ 0.511885  0.513703  0.507732  0.507785  0.494395]
train hamming MPE:	 [ 0.781908  0.78468   0.780652  0.780027  0.772204]
train extact match MPE:	 [ 0.201759  0.200207  0.188826  0.195967  0.182946]
train accuracy Marg:	 [ 0.490152  0.501646  0.493658  0.490067  0.454784]
train hamming Marg:	 [ 0.792366  0.795654  0.792144  0.792879  0.786748]
train extact match marg:	 [ 0.122607   0.153647   0.126746   0.110134   0.0563307]
test accuracy MPE:	 [ 0.478465  0.497256  0.47351   0.488307  0.474367]
test hamming MPE:	 [ 0.767267  0.769776  0.761659  0.770038  0.764671]
test extact match MPE:	 [ 0.167355  0.204545  0.163223  0.180124  0.161826]
test accuracy Marg:	 [ 0.465427  0.482134  0.453039  0.46191   0.436503]
test hamming Marg:	 [ 0.778926  0.779368  0.770366  0.777876  0.779194]
test extact match marg:	 [ 0.103306   0.152893   0.119835   0.0890269  0.0394191]
n edges X -> Y:	 [15 12 13  9 12]
n edges Y -> Y:	 [13 13 13 13 13]
n edges X -> X:	 [88, 91, 90, 94, 91]
health
train log p(X,Y):	 [-17.72133438 -17.70470205 -17.69328991 -17.61374293 -17.49884848]
train log p(X):	 [-14.88976024 -14.89495935 -14.90204746 -14.79385754 -14.70285743]
train log p(Y):	 [-3.59451443 -3.58828044 -3.59189758 -3.58637952 -3.59139444]
train log p(Y|X):	 [-2.83157414 -2.80974269 -2.79124245 -2.81988539 -2.79599105]
test log p(X,Y):	 [-18.40784871 -18.47013345 -18.74014073 -19.01912869 -19.44894425]
test log p(X):	 [-15.27748986 -15.32610227 -15.45121706 -15.74026814 -16.20564842]
test log p(Y):	 [-3.61223119 -3.60289947 -3.61402436 -3.63459478 -3.60078969]
test log p(Y|X):	 [-3.13035885 -3.14403119 -3.28892366 -3.27886055 -3.24329584]
train accuracy MPE:	 [ 0.589919  0.590906  0.592633  0.594438  0.592984]
train hamming MPE:	 [ 0.964132  0.964226  0.96432   0.964769  0.96438 ]
train extact match MPE:	 [ 0.454842  0.458039  0.461434  0.462385  0.45852 ]
train accuracy Marg:	 [ 0.582714  0.584246  0.588487  0.581989  0.588822]
train hamming Marg:	 [ 0.965117  0.965249  0.965487  0.965058  0.965665]
train extact match marg:	 [ 0.432161  0.439163  0.440114  0.436991  0.441141]
test accuracy MPE:	 [ 0.575021  0.573405  0.556148  0.582811  0.576885]
test hamming MPE:	 [ 0.962812  0.96252   0.960891  0.963081  0.962517]
test extact match MPE:	 [ 0.450054  0.445953  0.425856  0.443237  0.446196]
test accuracy Marg:	 [ 0.572021  0.571     0.545239  0.572453  0.571332]
test hamming Marg:	 [ 0.96422   0.963912  0.961926  0.963776  0.963689]
test extact match marg:	 [ 0.429425  0.43346   0.391635  0.420967  0.428804]
n edges X -> Y:	 [100  92  95  99  94]
n edges Y -> Y:	 [19 18 19 19 20]
n edges X -> X:	 [412, 421, 417, 413, 417]
birds
train log p(X,Y):	 [-38.62538652 -38.56117211 -38.02959539 -37.76557398 -37.96159637]
train log p(X):	 [-36.34803223 -36.43060236 -35.82220328 -35.67161078 -35.79214002]
train log p(Y):	 [-3.67334521 -3.60084337 -3.62437348 -3.58560841 -3.53219685]
train log p(Y|X):	 [-2.27735429 -2.13056976 -2.20739211 -2.0939632  -2.16945635]
test log p(X,Y):	 [-45.55682204 -43.79546414 -46.69700246 -48.65483862 -48.39615411]
test log p(X):	 [-42.57420244 -40.55426767 -43.35794417 -44.93351583 -44.6313436 ]
test log p(Y):	 [-3.35635946 -3.57548812 -3.69423603 -3.69455168 -3.96980232]
test log p(Y|X):	 [-2.98261959 -3.24119647 -3.33905829 -3.7213228  -3.76481051]
train accuracy MPE:	 [ 0.253999  0.28708   0.254734  0.274354  0.246003]
train hamming MPE:	 [ 0.934492  0.939616  0.935333  0.939412  0.936068]
train extact match MPE:	 [ 0.149515  0.186047  0.158915  0.156977  0.137331]
train accuracy Marg:	 [ 0.253999  0.28708   0.254734  0.274354  0.246003]
train hamming Marg:	 [ 0.934492  0.939616  0.935333  0.939412  0.936068]
train extact match marg:	 [ 0.149515  0.186047  0.158915  0.156977  0.137331]
test accuracy MPE:	 [ 0.199359  0.149483  0.209561  0.185788  0.236979]
test hamming MPE:	 [ 0.933198  0.921257  0.928193  0.922481  0.928454]
test extact match MPE:	 [ 0.115385   0.0620155  0.100775   0.100775   0.140625 ]
test accuracy Marg:	 [ 0.199359  0.149483  0.209561  0.185788  0.236979]
test hamming Marg:	 [ 0.933198  0.921257  0.928193  0.922481  0.928454]
test extact match marg:	 [ 0.115385   0.0620155  0.100775   0.100775   0.140625 ]
n edges X -> Y:	 [34 34 34 33 34]
n edges Y -> Y:	 [0 0 0 0 0]
n edges X -> X:	 None
cal
train log p(X,Y):	 [-47.84352102 -47.13038598 -47.6850303  -47.61707794 -47.5381562 ]
train log p(X):	 [-5.96100797 -5.64511394 -5.76851101 -5.69640031 -5.90845064]
train log p(Y):	 [-42.36567172 -42.05549316 -42.38628444 -42.40521035 -42.09442356]
train log p(Y|X):	 [-41.88251305 -41.48527204 -41.91651929 -41.92067764 -41.62970556]
test log p(X,Y):	 [-56.97881805 -61.52883457 -57.6998384  -57.99660304 -57.19432622]
test log p(X):	 [-6.83055486 -8.55787697 -7.59452218 -7.89208379 -6.48619715]
test log p(Y):	 [-48.38926282 -51.34463906 -48.3459723  -48.52636303 -50.07788633]
test log p(Y|X):	 [-50.1482632  -52.9709576  -50.10531622 -50.10451925 -50.70812907]
train accuracy MPE:	 [ 0.189329  0.218567  0.193198  0.216335  0.199221]
train hamming MPE:	 [ 0.86161   0.846791  0.851733  0.850589  0.863041]
train extact match MPE:	 [ 0.  0.  0.  0.  0.]
train accuracy Marg:	 [ 0.218897  0.2184    0.218882  0.221062  0.225981]
train hamming Marg:	 [ 0.864276  0.865695  0.865114  0.867616  0.866229]
train extact match marg:	 [ 0.  0.  0.  0.  0.]
test accuracy MPE:	 [ 0.190687  0.205808  0.175133  0.185814  0.180503]
test hamming MPE:	 [ 0.861955  0.843291  0.84546   0.838046  0.859138]
test extact match MPE:	 [ 0.  0.  0.  0.  0.]
test accuracy Marg:	 [ 0.225566  0.199127  0.207079  0.180882  0.203891]
test hamming Marg:	 [ 0.867361  0.859622  0.86      0.855     0.861839]
test extact match marg:	 [ 0.  0.  0.  0.  0.]
n edges X -> Y:	 [4 3 5 8 4]
n edges Y -> Y:	 [173 171 168 172 173]
n edges X -> X:	 [64, 67, 68, 61, 64]
plant
train log p(X,Y):	 [-95.58111949 -95.86588794 -96.35820574 -95.62772347 -95.95749516]
train log p(X):	 [-93.19814837 -93.41996814 -93.97653898 -93.14007491 -93.56678187]
train log p(Y):	 [-2.95167462 -2.95640805 -2.9645475  -2.96681836 -2.97546788]
train log p(Y|X):	 [-2.38297112 -2.44591979 -2.38166676 -2.48764857 -2.39071329]
test log p(X,Y):	 [-114.54355441 -113.07662792 -111.41303714 -114.02846103 -113.42380267]
test log p(X):	 [-111.06123718 -109.93765725 -108.28228152 -110.88816314 -110.18947507]
test log p(Y):	 [-3.03174504 -3.01572364 -2.96474871 -2.92833453 -2.91553171]
test log p(Y|X):	 [-3.48231723 -3.13897067 -3.13075562 -3.1402979  -3.2343276 ]
train accuracy MPE:	 [ 0.462441  0.438832  0.458493  0.424649  0.464027]
train hamming MPE:	 [ 0.90653   0.903133  0.906237  0.899425  0.907088]
train extact match MPE:	 [ 0.43662   0.41688   0.429119  0.402299  0.43295 ]
train accuracy Marg:	 [ 0.469484  0.454817  0.466156  0.434866  0.467859]
train hamming Marg:	 [ 0.908024  0.906436  0.907833  0.90198   0.908046]
train extact match marg:	 [ 0.446863  0.430946  0.438059  0.411239  0.438059]
test accuracy MPE:	 [ 0.34687   0.346088  0.360684  0.37094   0.346154]
test hamming MPE:	 [ 0.886633  0.885204  0.890171  0.889744  0.887607]
test extact match MPE:	 [ 0.329949  0.331633  0.323077  0.353846  0.328205]
test accuracy Marg:	 [ 0.331641  0.346088  0.337607  0.337607  0.330769]
test hamming Marg:	 [ 0.884095  0.886054  0.885897  0.884615  0.885043]
test extact match marg:	 [ 0.314721  0.326531  0.307692  0.323077  0.312821]
n edges X -> Y:	 [ 9 12 11 16 15]
n edges Y -> Y:	 [7 7 8 8 7]
n edges X -> X:	 [435, 432, 432, 427, 429]

In [14]:
TREE_STRUCTURES = [0, 1, 2, 3]
CL_CSN = ['0.6', '1.0']
Y_LEAVES = [False, True]

def parse_stats_for_models_exps(exp_dir, 
                                tree_structures=TREE_STRUCTURES,
                                splits=CL_CSN,
                                leaves=Y_LEAVES,
                                datasets=DATASETS, 
                                n_folds=5, 
                                newline='\n'):
    
    dataset_assoc = defaultdict(dict)
    model_assoc = {}
    
    for ts in tree_structures:
        for s in splits:
            exp_prefix = 'l{}ts{}'.format(s, ts)
            for l in leaves:
                if l:
                    exp_prefix += 'l'
                print('\n\nConsidering exp: {}'.format(exp_prefix))
                exp_path = os.path.join(exp_dir, exp_prefix)
                
                stats_dict = parse_stats_for_exp(exp_path, datasets=datasets, n_folds=n_folds, newline=newline)
                
                # for k, v in stats_dict.items():
                #    print('\t{}'.format(k))
                #    print_stats(v)
                
                model_assoc[exp_prefix] = stats_dict
                
                for dataset, v in stats_dict.items():
                    dataset_assoc[dataset][exp_prefix] = v
                    
    return dataset_assoc, model_assoc

In [15]:
if USE_NOTEBOOK:
    exp_dir = './newcsn'
    dataset_assoc, model_assoc = parse_stats_for_models_exps(exp_dir, datasets=DATASETS)



Considering exp: l0.6ts0

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts0l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts0

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts0l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts1

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts1l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts1

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts1l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts2

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts2l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts2

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts2l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts3

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts3l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts3

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts3l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast

In [16]:
def tiling_sizes(n_images, n_cols=None):

    n_rows = None

    if n_cols is None:
        n_rows = int(numpy.sqrt(n_images))
        n_cols = n_rows
    else:
        n_rows = max(n_images // n_cols, 1)

    rem_tiles = n_images - n_rows * n_cols

    if rem_tiles > 0:
        n_rem_rows, n_rem_cols = tiling_sizes(rem_tiles, n_cols)
        return n_rows + n_rem_rows, n_cols

    return n_rows, n_cols

In [17]:
def plot_model_boxplot_stat(model_assoc, 
                            stat_names=['train_X_Y', 'test_X_Y'],
                            model_names=None,
                            n_rows=1,
                           fig_size=(16, 18)):
    
    n_models = len(model_assoc)
    n_stats = len(stat_names)
    
    labels = list(k for k in model_assoc)
        
    if n_rows > 1:
        n_cols = int(numpy.ceil(n_stats / n_rows))
    elif n_rows == 1:
        n_cols = n_stats
        
    print('\nPlotting into {} rows and {} cols'.format(n_rows, n_cols))
        
    fig, axes = pyplot.subplots(nrows=n_rows, ncols=n_cols, figsize=fig_size)

    if model_names is None:
        model_names = [k for k in model_assoc]
    
    for k in range(n_stats):
        # print('Considering stat {}'.format(stat_names[k]))
        data = []
        # for model, stats in model_assoc.items():
        for model in model_names:
            stats = model_assoc[model]
            data.append(getattr(stats, stat_names[k]))
        data = numpy.array(data).T

    
        i = k // n_cols
        j = k - i * n_cols
        
        # for i in range(n_models):
        ax = None
        if n_rows == 1:
            ax = axes[k]
        else:
            ax = axes[i, j]
        ax.boxplot(data, 
                        #labels=labels,
                   showmeans=True
                       )
        ax.set_title(stat_names[k])
        ax.set_xticklabels(model_names, rotation=90)
        
    pyplot.show()

In [18]:
if USE_NOTEBOOK:
    exp_dir = './newcsn'
    dataset_assoc, model_assoc = parse_stats_for_models_exps(exp_dir, datasets=DATASETS)
    
    for d in DATASETS:
        print('\n\n\n\t{}'.format(d))
        plot_model_boxplot_stat(dataset_assoc[d],
                                stat_names=['train_X_Y', 'train_X', 'train_Y', 'train_Y_X', 
                                            'test_X_Y', 'test_X', 'test_Y', 'test_Y_X',
                                            'train_acc_mpe', 'train_acc_marg', 
                                            'train_ham_mpe', 'train_ham_marg',
                                            'test_acc_mpe', 'test_acc_marg', 
                                            'test_ham_mpe', 'test_ham_marg',
                                            'train_ext_mpe', 'train_ext_marg',
                                           'test_ext_mpe', 'test_ext_marg'],
                                            
                                            n_rows=5,
                            model_names=['l1.0ts0l', 'l1.0ts1l', 'l1.0ts2l', 'l1.0ts3l'])



Considering exp: l0.6ts0

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts0l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts0

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts0l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts1

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts1l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts1

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts1l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts2

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts2l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts2

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts2l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts3

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts3l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts3

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts3l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast



	birds

Plotting into 5 rows and 4 cols


	business

Plotting into 5 rows and 4 cols


	cal

Plotting into 5 rows and 4 cols


	emotions

Plotting into 5 rows and 4 cols


	flags

Plotting into 5 rows and 4 cols


	health

Plotting into 5 rows and 4 cols


	human

Plotting into 5 rows and 4 cols


	plant

Plotting into 5 rows and 4 cols


	scene

Plotting into 5 rows and 4 cols


	yeast

Plotting into 5 rows and 4 cols

In [19]:
if USE_NOTEBOOK:
    exp_dir = './newcsn'
    dataset_assoc, model_assoc = parse_stats_for_models_exps(exp_dir, datasets=DATASETS)
    
    for d in DATASETS:
        print('\n\n\n\t{}'.format(d))
        plot_model_boxplot_stat(dataset_assoc[d],
                                stat_names=['train_X_Y', 'train_X', 'train_Y', 'train_Y_X', 
                                            'test_X_Y', 'test_X', 'test_Y', 'test_Y_X',
                                            'train_acc_mpe', 'train_acc_marg', 
                                            'train_ham_mpe', 'train_ham_marg',
                                            'test_acc_mpe', 'test_acc_marg', 
                                            'test_ham_mpe', 'test_ham_marg',
                                            'train_ext_mpe', 'train_ext_marg',
                                           'test_ext_mpe', 'test_ext_marg'],
                                            
                                            n_rows=5,
                            model_names=['l0.6ts0l', 'l0.6ts1l', 'l0.6ts2l', 'l0.6ts3l'])



Considering exp: l0.6ts0

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts0l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts0

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts0l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts1

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts1l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts1

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts1l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts2

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts2l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts2

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts2l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts3

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l0.6ts3l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts3

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast


Considering exp: l1.0ts3l

	considering dataset birds

	considering dataset business

	considering dataset cal

	considering dataset emotions

	considering dataset flags

	considering dataset health

	considering dataset human

	considering dataset plant

	considering dataset scene

	considering dataset yeast



	birds

Plotting into 5 rows and 4 cols


	business

Plotting into 5 rows and 4 cols


	cal

Plotting into 5 rows and 4 cols


	emotions

Plotting into 5 rows and 4 cols


	flags

Plotting into 5 rows and 4 cols


	health

Plotting into 5 rows and 4 cols


	human

Plotting into 5 rows and 4 cols


	plant

Plotting into 5 rows and 4 cols


	scene

Plotting into 5 rows and 4 cols


	yeast

Plotting into 5 rows and 4 cols

In [ ]:
print(dataset_assoc['human']['l1.0ts1l'].ham_mpe.mean())
print(dataset_assoc['human']['l1.0ts1l'].ham_marg.mean())
print(dataset_assoc['human']['l1.0ts2l'].ham_mpe.mean())
print(dataset_assoc['human']['l1.0ts2l'].ham_marg.mean())
print(dataset_assoc['human']['l1.0ts1l'].ext_mpe.mean())
print(dataset_assoc['human']['l1.0ts1l'].ext_marg.mean())
print(dataset_assoc['human']['l1.0ts2l'].ext_mpe.mean())
print(dataset_assoc['human']['l1.0ts2l'].ext_marg.mean())

for dataset in DATASETS:
    print(dataset)
    print('train_X_Y')
    print(dataset_assoc[dataset]['l1.0ts0l'].train_X_Y)
    print(dataset_assoc[dataset]['l1.0ts1l'].train_X_Y)
    print(dataset_assoc[dataset]['l1.0ts2l'].train_X_Y)
    print('train_X')
    print(dataset_assoc[dataset]['l1.0ts0l'].train_X)
    print(dataset_assoc[dataset]['l1.0ts1l'].train_X)
    print(dataset_assoc[dataset]['l1.0ts2l'].train_X)
    print('train_Y')
    print(dataset_assoc[dataset]['l1.0ts0l'].train_Y)
    print(dataset_assoc[dataset]['l1.0ts1l'].train_Y)
    print(dataset_assoc[dataset]['l1.0ts2l'].train_Y)
    print('train_Y_X')
    print(dataset_assoc[dataset]['l1.0ts0l'].train_Y_X)
    print(dataset_assoc[dataset]['l1.0ts1l'].train_Y_X)
    print(dataset_assoc[dataset]['l1.0ts2l'].train_Y_X)

In [ ]: