Pada sesi ini, hasil eksperimen besar dengan variasi banyak fitur unigram frequency akan dianalisis. Pertama-tama, import tools yang dibutuhkan dan atur matplotlib agar memplot secara inline.


In [1]:
import pandas as pd
import numpy as np
%matplotlib inline

Baca hasil eksperimen dan tampilkan hasilnya.


In [2]:
df = pd.read_hdf('../reports/large-exp-unigram-limited-feats.h5', 'df')
df


Out[2]:
num_norm 10 ... 80
num_oot 1 ... 8
num_top 1 3 5 ... 5
result base perf base perf base ... base perf
k 0 1 0 1 0 1 0 1 0 1 ... 2 3 4 5 0 1 2 3 4 5
method feature max_features metric norm_dir oot_dir
txt_comp_dist unigram 7 euclidean bbs152930 bbs57549 0.909091 0.090909 0.066667 0.933333 0.727273 0.272727 0.133333 0.866667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.000000 0.066667 0.100000 0.833333
mus10142 0.909091 0.090909 0.033333 0.966667 0.727273 0.272727 0.100000 0.900000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000
phy40008 0.909091 0.090909 0.166667 0.833333 0.727273 0.272727 0.100000 0.900000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000
phy17301 bbs57549 0.909091 0.090909 0.033333 0.966667 0.727273 0.272727 0.000000 1.000000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.000000 0.000000 0.033333 0.966667
mus10142 0.909091 0.090909 0.033333 0.966667 0.727273 0.272727 0.000000 1.000000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000
phy40008 0.909091 0.090909 0.100000 0.900000 0.727273 0.272727 0.133333 0.866667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.133333 0.266667 0.333333 0.166667 0.100000
mus1139 bbs57549 0.909091 0.090909 0.133333 0.866667 0.727273 0.272727 0.133333 0.866667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.033333 0.066667 0.000000 0.200000 0.700000
mus10142 0.909091 0.090909 0.766667 0.233333 0.727273 0.272727 0.400000 0.600000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.033333 0.266667 0.233333 0.200000 0.200000 0.066667
phy40008 0.909091 0.090909 0.200000 0.800000 0.727273 0.272727 0.166667 0.833333 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.100000 0.100000 0.133333 0.233333 0.433333
20 euclidean bbs152930 bbs57549 0.909091 0.090909 0.133333 0.866667 0.727273 0.272727 0.133333 0.866667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.133333 0.233333 0.300000 0.200000 0.133333
mus10142 0.909091 0.090909 0.066667 0.933333 0.727273 0.272727 0.033333 0.966667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000
phy40008 0.909091 0.090909 0.133333 0.866667 0.727273 0.272727 0.200000 0.800000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.100000 0.300000 0.266667 0.333333
phy17301 bbs57549 0.909091 0.090909 0.033333 0.966667 0.727273 0.272727 0.033333 0.966667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.100000 0.200000 0.133333 0.300000 0.266667
mus10142 0.909091 0.090909 0.000000 1.000000 0.727273 0.272727 0.000000 1.000000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.033333 0.200000 0.266667 0.266667 0.233333
phy40008 0.909091 0.090909 0.366667 0.633333 0.727273 0.272727 0.066667 0.933333 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.033333 0.433333 0.333333 0.133333 0.066667 0.000000
mus1139 bbs57549 0.909091 0.090909 0.266667 0.733333 0.727273 0.272727 0.166667 0.833333 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.066667 0.100000 0.166667 0.233333 0.200000 0.233333
mus10142 0.909091 0.090909 0.366667 0.633333 0.727273 0.272727 0.433333 0.566667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.233333 0.433333 0.100000 0.166667 0.033333 0.033333
phy40008 0.909091 0.090909 0.266667 0.733333 0.727273 0.272727 0.033333 0.966667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.266667 0.033333 0.300000 0.233333 0.166667 0.000000
50 euclidean bbs152930 bbs57549 0.909091 0.090909 0.166667 0.833333 0.727273 0.272727 0.066667 0.933333 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.033333 0.400000 0.500000 0.033333 0.033333
mus10142 0.909091 0.090909 0.033333 0.966667 0.727273 0.272727 0.000000 1.000000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.000000 0.300000 0.200000 0.500000
phy40008 0.909091 0.090909 0.133333 0.866667 0.727273 0.272727 0.033333 0.966667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.033333 0.733333 0.233333 0.000000
phy17301 bbs57549 0.909091 0.090909 0.133333 0.866667 0.727273 0.272727 0.000000 1.000000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.066667 0.133333 0.533333 0.200000 0.066667
mus10142 0.909091 0.090909 0.100000 0.900000 0.727273 0.272727 0.000000 1.000000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.033333 0.100000 0.466667 0.233333 0.166667
phy40008 0.909091 0.090909 0.466667 0.533333 0.727273 0.272727 0.100000 0.900000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.200000 0.266667 0.433333 0.066667 0.033333 0.000000
mus1139 bbs57549 0.909091 0.090909 0.066667 0.933333 0.727273 0.272727 0.033333 0.966667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.200000 0.400000 0.300000 0.000000 0.100000 0.000000
mus10142 0.909091 0.090909 0.400000 0.600000 0.727273 0.272727 0.533333 0.466667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.133333 0.600000 0.133333 0.100000 0.033333 0.000000
phy40008 0.909091 0.090909 0.133333 0.866667 0.727273 0.272727 0.066667 0.933333 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.266667 0.333333 0.333333 0.033333 0.033333 0.000000
100 euclidean bbs152930 bbs57549 0.909091 0.090909 0.200000 0.800000 0.727273 0.272727 0.033333 0.966667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.100000 0.266667 0.366667 0.266667 0.000000
mus10142 0.909091 0.090909 0.000000 1.000000 0.727273 0.272727 0.000000 1.000000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.000000 0.100000 0.800000 0.100000
phy40008 0.909091 0.090909 0.233333 0.766667 0.727273 0.272727 0.066667 0.933333 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.133333 0.166667 0.333333 0.366667 0.000000
phy17301 bbs57549 0.909091 0.090909 0.133333 0.866667 0.727273 0.272727 0.000000 1.000000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.033333 0.100000 0.233333 0.466667 0.166667
mus10142 0.909091 0.090909 0.000000 1.000000 0.727273 0.272727 0.000000 1.000000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.000000 0.000000 0.100000 0.333333 0.433333 0.133333
phy40008 0.909091 0.090909 0.233333 0.766667 0.727273 0.272727 0.066667 0.933333 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.133333 0.300000 0.400000 0.133333 0.033333 0.000000
mus1139 bbs57549 0.909091 0.090909 0.100000 0.900000 0.727273 0.272727 0.033333 0.966667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.133333 0.466667 0.300000 0.100000 0.000000 0.000000
mus10142 0.909091 0.090909 0.400000 0.600000 0.727273 0.272727 0.500000 0.500000 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.166667 0.333333 0.333333 0.166667 0.000000 0.000000
phy40008 0.909091 0.090909 0.266667 0.733333 0.727273 0.272727 0.033333 0.966667 0.545455 0.454545 ... 0.058722 0.004517 0.000143 0.000001 0.366667 0.300000 0.300000 0.033333 0.000000 0.000000

36 rows × 116 columns

Buat agak lebih rapi sedikit.


In [3]:
df = df.swaplevel('max_features', 'metric').T
df


Out[3]:
method txt_comp_dist
feature unigram
metric euclidean
max_features 7 20 ... 50 100
norm_dir bbs152930 phy17301 mus1139 bbs152930 ... mus1139 bbs152930 phy17301 mus1139
oot_dir bbs57549 mus10142 phy40008 bbs57549 mus10142 phy40008 bbs57549 mus10142 phy40008 bbs57549 ... phy40008 bbs57549 mus10142 phy40008 bbs57549 mus10142 phy40008 bbs57549 mus10142 phy40008
num_norm num_oot num_top result k
10 1 1 base 0 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 ... 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091
1 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 ... 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909
perf 0 0.066667 0.033333 0.166667 0.033333 0.033333 0.100000 0.133333 0.766667 0.200000 0.133333 ... 0.133333 0.200000 0.000000 0.233333 0.133333 0.000000 0.233333 0.100000 0.400000 0.266667
1 0.933333 0.966667 0.833333 0.966667 0.966667 0.900000 0.866667 0.233333 0.800000 0.866667 ... 0.866667 0.800000 1.000000 0.766667 0.866667 1.000000 0.766667 0.900000 0.600000 0.733333
3 base 0 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273 ... 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273 0.727273
1 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727 ... 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727 0.272727
perf 0 0.133333 0.100000 0.100000 0.000000 0.000000 0.133333 0.133333 0.400000 0.166667 0.133333 ... 0.066667 0.033333 0.000000 0.066667 0.000000 0.000000 0.066667 0.033333 0.500000 0.033333
1 0.866667 0.900000 0.900000 1.000000 1.000000 0.866667 0.866667 0.600000 0.833333 0.866667 ... 0.933333 0.966667 1.000000 0.933333 1.000000 1.000000 0.933333 0.966667 0.500000 0.966667
5 base 0 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455 ... 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455 0.545455
1 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545 ... 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545 0.454545
perf 0 0.133333 0.033333 0.033333 0.000000 0.000000 0.033333 0.033333 0.266667 0.033333 0.033333 ... 0.033333 0.100000 0.000000 0.133333 0.000000 0.000000 0.133333 0.000000 0.266667 0.000000
1 0.866667 0.966667 0.966667 1.000000 1.000000 0.966667 0.966667 0.733333 0.966667 0.966667 ... 0.966667 0.900000 1.000000 0.866667 1.000000 1.000000 0.866667 1.000000 0.733333 1.000000
4 1 base 0 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 ... 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286
1 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714 ... 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714 0.285714
perf 0 0.100000 0.100000 0.066667 0.033333 0.100000 0.266667 0.166667 0.366667 0.366667 0.033333 ... 0.233333 0.100000 0.066667 0.333333 0.033333 0.000000 0.233333 0.133333 0.100000 0.300000
1 0.900000 0.900000 0.933333 0.966667 0.900000 0.733333 0.833333 0.633333 0.633333 0.966667 ... 0.766667 0.900000 0.933333 0.666667 0.966667 1.000000 0.766667 0.866667 0.900000 0.700000
3 base 0 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670 ... 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670 0.329670
1 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505 ... 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505 0.494505
2 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835 ... 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835 0.164835
3 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989 ... 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989 0.010989
perf 0 0.033333 0.033333 0.033333 0.000000 0.033333 0.066667 0.000000 0.200000 0.033333 0.000000 ... 0.200000 0.000000 0.033333 0.066667 0.066667 0.033333 0.000000 0.066667 0.100000 0.266667
1 0.266667 0.100000 0.233333 0.100000 0.000000 0.300000 0.266667 0.600000 0.266667 0.100000 ... 0.566667 0.133333 0.033333 0.133333 0.100000 0.066667 0.400000 0.200000 0.333333 0.233333
2 0.166667 0.133333 0.366667 0.233333 0.066667 0.333333 0.366667 0.100000 0.433333 0.400000 ... 0.066667 0.466667 0.366667 0.400000 0.333333 0.433333 0.400000 0.400000 0.333333 0.366667
3 0.533333 0.733333 0.366667 0.666667 0.900000 0.300000 0.366667 0.100000 0.266667 0.500000 ... 0.166667 0.400000 0.566667 0.400000 0.500000 0.466667 0.200000 0.333333 0.233333 0.133333
5 base 0 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874 ... 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874 0.125874
1 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580 ... 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580 0.419580
2 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640 ... 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640 0.359640
3 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910 ... 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910 0.089910
4 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995 ... 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995 0.004995
perf 0 0.033333 0.000000 0.033333 0.000000 0.000000 0.100000 0.000000 0.000000 0.066667 0.000000 ... 0.066667 0.000000 0.000000 0.066667 0.000000 0.000000 0.000000 0.000000 0.066667 0.066667
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
80 4 5 base 4 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003 ... 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003 0.000003
perf 0 0.033333 0.000000 0.000000 0.000000 0.000000 0.266667 0.000000 0.100000 0.000000 0.133333 ... 0.400000 0.000000 0.000000 0.033333 0.033333 0.000000 0.366667 0.400000 0.400000 0.433333
1 0.033333 0.000000 0.000000 0.000000 0.000000 0.333333 0.266667 0.466667 0.166667 0.433333 ... 0.366667 0.333333 0.000000 0.233333 0.433333 0.066667 0.433333 0.433333 0.466667 0.500000
2 0.233333 0.000000 0.000000 0.100000 0.000000 0.333333 0.433333 0.333333 0.300000 0.300000 ... 0.233333 0.533333 0.000000 0.266667 0.366667 0.300000 0.100000 0.166667 0.133333 0.066667
3 0.466667 0.000000 0.066667 0.300000 0.266667 0.033333 0.233333 0.066667 0.300000 0.100000 ... 0.000000 0.133333 0.400000 0.400000 0.133333 0.500000 0.100000 0.000000 0.000000 0.000000
4 0.233333 1.000000 0.933333 0.600000 0.733333 0.033333 0.066667 0.033333 0.233333 0.033333 ... 0.000000 0.000000 0.600000 0.066667 0.033333 0.133333 0.000000 0.000000 0.000000 0.000000
8 1 base 0 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 ... 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091 0.909091
1 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 ... 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909
perf 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.033333 0.000000 0.066667 ... 0.333333 0.366667 0.133333 0.400000 0.100000 0.000000 0.400000 0.400000 0.333333 0.500000
1 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.966667 1.000000 0.933333 ... 0.666667 0.633333 0.866667 0.600000 0.900000 1.000000 0.600000 0.600000 0.666667 0.500000
3 base 0 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706 ... 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706 0.748706
1 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371 ... 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371 0.230371
2 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413 ... 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413 0.020413
3 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510 ... 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510 0.000510
perf 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.033333 ... 0.266667 0.033333 0.000000 0.000000 0.033333 0.000000 0.233333 0.300000 0.333333 0.433333
1 0.033333 0.000000 0.000000 0.000000 0.000000 0.133333 0.033333 0.333333 0.066667 0.166667 ... 0.366667 0.300000 0.033333 0.100000 0.000000 0.100000 0.266667 0.600000 0.500000 0.366667
2 0.000000 0.000000 0.000000 0.000000 0.000000 0.200000 0.200000 0.266667 0.133333 0.333333 ... 0.266667 0.600000 0.700000 0.900000 0.533333 0.333333 0.466667 0.066667 0.100000 0.166667
3 0.966667 1.000000 1.000000 1.000000 1.000000 0.666667 0.766667 0.400000 0.800000 0.466667 ... 0.100000 0.066667 0.266667 0.000000 0.433333 0.566667 0.033333 0.033333 0.066667 0.033333
5 base 0 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645 ... 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645 0.613645
1 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971 ... 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971 0.322971
2 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722 ... 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722 0.058722
3 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517 ... 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517 0.004517
4 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143 ... 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143 0.000143
5 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001 ... 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001 0.000001
perf 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.033333 0.000000 0.000000 ... 0.266667 0.000000 0.000000 0.000000 0.000000 0.000000 0.133333 0.133333 0.166667 0.366667
1 0.000000 0.000000 0.000000 0.000000 0.000000 0.133333 0.033333 0.266667 0.100000 0.133333 ... 0.333333 0.100000 0.000000 0.133333 0.033333 0.000000 0.300000 0.466667 0.333333 0.300000
2 0.000000 0.000000 0.000000 0.000000 0.000000 0.266667 0.066667 0.233333 0.100000 0.233333 ... 0.333333 0.266667 0.000000 0.166667 0.100000 0.100000 0.400000 0.300000 0.333333 0.300000
3 0.066667 0.000000 0.000000 0.000000 0.000000 0.333333 0.000000 0.200000 0.133333 0.300000 ... 0.033333 0.366667 0.100000 0.333333 0.233333 0.333333 0.133333 0.100000 0.166667 0.033333
4 0.100000 0.000000 0.000000 0.033333 0.000000 0.166667 0.200000 0.200000 0.233333 0.200000 ... 0.033333 0.266667 0.800000 0.366667 0.466667 0.433333 0.033333 0.000000 0.000000 0.000000
5 0.833333 1.000000 1.000000 0.966667 1.000000 0.100000 0.700000 0.066667 0.433333 0.133333 ... 0.000000 0.000000 0.100000 0.000000 0.166667 0.133333 0.000000 0.000000 0.000000 0.000000

116 rows × 36 columns

Hitung rata-rata untuk semua pasang thread normal dan OOT.


In [4]:
df = df.groupby(axis=1, level=['method','feature','metric','max_features']).mean()
df


Out[4]:
method txt_comp_dist
feature unigram
metric euclidean
max_features 7 20 50 100
num_norm num_oot num_top result k
10 1 1 base 0 0.909091 0.909091 0.909091 0.909091
1 0.090909 0.090909 0.090909 0.090909
perf 0 0.170370 0.181481 0.181481 0.174074
1 0.829630 0.818519 0.818519 0.825926
3 base 0 0.727273 0.727273 0.727273 0.727273
1 0.272727 0.272727 0.272727 0.272727
perf 0 0.129630 0.122222 0.092593 0.081481
1 0.870370 0.877778 0.907407 0.918519
5 base 0 0.545455 0.545455 0.545455 0.545455
1 0.454545 0.454545 0.454545 0.454545
perf 0 0.062963 0.044444 0.062963 0.070370
1 0.937037 0.955556 0.937037 0.929630
4 1 base 0 0.714286 0.714286 0.714286 0.714286
1 0.285714 0.285714 0.285714 0.285714
perf 0 0.174074 0.100000 0.122222 0.144444
1 0.825926 0.900000 0.877778 0.855556
3 base 0 0.329670 0.329670 0.329670 0.329670
1 0.494505 0.494505 0.494505 0.494505
2 0.164835 0.164835 0.164835 0.164835
3 0.010989 0.010989 0.010989 0.010989
perf 0 0.048148 0.040741 0.059259 0.070370
1 0.237037 0.185185 0.244444 0.181481
2 0.244444 0.344444 0.285185 0.388889
3 0.470370 0.429630 0.411111 0.359259
5 base 0 0.125874 0.125874 0.125874 0.125874
1 0.419580 0.419580 0.419580 0.419580
2 0.359640 0.359640 0.359640 0.359640
3 0.089910 0.089910 0.089910 0.089910
4 0.004995 0.004995 0.004995 0.004995
perf 0 0.025926 0.037037 0.029630 0.022222
... ... ... ... ... ... ... ... ...
80 4 5 base 4 0.000003 0.000003 0.000003 0.000003
perf 0 0.044444 0.122222 0.155556 0.185185
1 0.140741 0.285185 0.307407 0.322222
2 0.192593 0.300000 0.244444 0.214815
3 0.192593 0.196296 0.259259 0.185185
4 0.429630 0.096296 0.033333 0.092593
8 1 base 0 0.909091 0.909091 0.909091 0.909091
1 0.090909 0.090909 0.090909 0.090909
perf 0 0.003704 0.051852 0.203704 0.292593
1 0.996296 0.948148 0.796296 0.707407
3 base 0 0.748706 0.748706 0.748706 0.748706
1 0.230371 0.230371 0.230371 0.230371
2 0.020413 0.020413 0.020413 0.020413
3 0.000510 0.000510 0.000510 0.000510
perf 0 0.000000 0.070370 0.092593 0.151852
1 0.066667 0.114815 0.351852 0.251852
2 0.088889 0.159259 0.259259 0.429630
3 0.844444 0.655556 0.296296 0.166667
5 base 0 0.613645 0.613645 0.613645 0.613645
1 0.322971 0.322971 0.322971 0.322971
2 0.058722 0.058722 0.058722 0.058722
3 0.004517 0.004517 0.004517 0.004517
4 0.000143 0.000143 0.000143 0.000143
5 0.000001 0.000001 0.000001 0.000001
perf 0 0.003704 0.066667 0.088889 0.088889
1 0.059259 0.140741 0.192593 0.185185
2 0.074074 0.181481 0.207407 0.218519
3 0.081481 0.196296 0.303704 0.200000
4 0.103704 0.166667 0.122222 0.262963
5 0.677778 0.248148 0.085185 0.044444

116 rows × 4 columns

Persiapan untuk melakukan plotting.


In [5]:
dfplot = df.unstack(level='result')
dfplot


Out[5]:
method txt_comp_dist
feature unigram
metric euclidean
max_features 7 20 50 100
result base perf base perf base perf base perf
num_norm num_oot num_top k
10 1 1 0 0.909091 0.170370 0.909091 0.181481 0.909091 0.181481 0.909091 0.174074
1 0.090909 0.829630 0.090909 0.818519 0.090909 0.818519 0.090909 0.825926
3 0 0.727273 0.129630 0.727273 0.122222 0.727273 0.092593 0.727273 0.081481
1 0.272727 0.870370 0.272727 0.877778 0.272727 0.907407 0.272727 0.918519
5 0 0.545455 0.062963 0.545455 0.044444 0.545455 0.062963 0.545455 0.070370
1 0.454545 0.937037 0.454545 0.955556 0.454545 0.937037 0.454545 0.929630
4 1 0 0.714286 0.174074 0.714286 0.100000 0.714286 0.122222 0.714286 0.144444
1 0.285714 0.825926 0.285714 0.900000 0.285714 0.877778 0.285714 0.855556
3 0 0.329670 0.048148 0.329670 0.040741 0.329670 0.059259 0.329670 0.070370
1 0.494505 0.237037 0.494505 0.185185 0.494505 0.244444 0.494505 0.181481
2 0.164835 0.244444 0.164835 0.344444 0.164835 0.285185 0.164835 0.388889
3 0.010989 0.470370 0.010989 0.429630 0.010989 0.411111 0.010989 0.359259
5 0 0.125874 0.025926 0.125874 0.037037 0.125874 0.029630 0.125874 0.022222
1 0.419580 0.114815 0.419580 0.085185 0.419580 0.114815 0.419580 0.151852
2 0.359640 0.225926 0.359640 0.285185 0.359640 0.218519 0.359640 0.251852
3 0.089910 0.225926 0.089910 0.255556 0.089910 0.288889 0.089910 0.270370
4 0.004995 0.407407 0.004995 0.337037 0.004995 0.348148 0.004995 0.303704
8 1 0 0.555556 0.066667 0.555556 0.125926 0.555556 0.118519 0.555556 0.103704
1 0.444444 0.933333 0.444444 0.874074 0.444444 0.881481 0.444444 0.896296
3 0 0.147059 0.037037 0.147059 0.051852 0.147059 0.025926 0.147059 0.044444
1 0.441176 0.125926 0.441176 0.159259 0.441176 0.162963 0.441176 0.155556
2 0.343137 0.355556 0.343137 0.318519 0.343137 0.337037 0.343137 0.362963
3 0.068627 0.481481 0.068627 0.470370 0.068627 0.474074 0.068627 0.437037
5 0 0.029412 0.014815 0.029412 0.029630 0.029412 0.018519 0.029412 0.033333
1 0.196078 0.081481 0.196078 0.085185 0.196078 0.081481 0.196078 0.085185
2 0.392157 0.200000 0.392157 0.181481 0.392157 0.218519 0.392157 0.181481
3 0.294118 0.248148 0.294118 0.255556 0.294118 0.200000 0.294118 0.218519
4 0.081699 0.222222 0.081699 0.248148 0.081699 0.288889 0.081699 0.288889
5 0.006536 0.233333 0.006536 0.200000 0.006536 0.192593 0.006536 0.192593
80 1 1 0 0.987654 0.292593 0.987654 0.559259 0.987654 0.725926 0.987654 0.785185
1 0.012346 0.707407 0.012346 0.440741 0.012346 0.274074 0.012346 0.214815
3 0 0.962963 0.277778 0.962963 0.555556 0.962963 0.566667 0.962963 0.614815
1 0.037037 0.722222 0.037037 0.444444 0.037037 0.433333 0.037037 0.385185
5 0 0.938272 0.281481 0.938272 0.507407 0.938272 0.488889 0.938272 0.514815
1 0.061728 0.718519 0.061728 0.492593 0.061728 0.511111 0.061728 0.485185
4 1 0 0.952381 0.066667 0.952381 0.144444 0.952381 0.322222 0.952381 0.459259
1 0.047619 0.933333 0.047619 0.855556 0.047619 0.677778 0.047619 0.540741
3 0 0.862264 0.040741 0.862264 0.133333 0.862264 0.225926 0.862264 0.251852
1 0.132656 0.133333 0.132656 0.307407 0.132656 0.437037 0.132656 0.325926
2 0.005038 0.181481 0.005038 0.296296 0.005038 0.218519 0.005038 0.385185
3 0.000042 0.644444 0.000042 0.262963 0.000042 0.118519 0.000042 0.037037
5 0 0.778699 0.044444 0.778699 0.122222 0.778699 0.155556 0.778699 0.185185
1 0.204921 0.140741 0.204921 0.285185 0.204921 0.307407 0.204921 0.322222
2 0.015968 0.192593 0.015968 0.300000 0.015968 0.244444 0.015968 0.214815
3 0.000409 0.192593 0.000409 0.196296 0.000409 0.259259 0.000409 0.185185
4 0.000003 0.429630 0.000003 0.096296 0.000003 0.033333 0.000003 0.092593
8 1 0 0.909091 0.003704 0.909091 0.051852 0.909091 0.203704 0.909091 0.292593
1 0.090909 0.996296 0.090909 0.948148 0.090909 0.796296 0.090909 0.707407
3 0 0.748706 0.000000 0.748706 0.070370 0.748706 0.092593 0.748706 0.151852
1 0.230371 0.066667 0.230371 0.114815 0.230371 0.351852 0.230371 0.251852
2 0.020413 0.088889 0.020413 0.159259 0.020413 0.259259 0.020413 0.429630
3 0.000510 0.844444 0.000510 0.655556 0.000510 0.296296 0.000510 0.166667
5 0 0.613645 0.003704 0.613645 0.066667 0.613645 0.088889 0.613645 0.088889
1 0.322971 0.059259 0.322971 0.140741 0.322971 0.192593 0.322971 0.185185
2 0.058722 0.074074 0.058722 0.181481 0.058722 0.207407 0.058722 0.218519
3 0.004517 0.081481 0.004517 0.196296 0.004517 0.303704 0.004517 0.200000
4 0.000143 0.103704 0.000143 0.166667 0.000143 0.122222 0.000143 0.262963
5 0.000001 0.677778 0.000001 0.248148 0.000001 0.085185 0.000001 0.044444

Sisakan hanya satu baseline saja karena semuanya bernilai sama.


In [6]:
del dfplot[('txt_comp_dist','unigram','euclidean',20,'base')]
del dfplot[('txt_comp_dist','unigram','euclidean',50,'base')]
del dfplot[('txt_comp_dist','unigram','euclidean',100,'base')]
dfplot


Out[6]:
method txt_comp_dist
feature unigram
metric euclidean
max_features 7 20 50 100
result base perf perf perf perf
num_norm num_oot num_top k
10 1 1 0 0.909091 0.170370 0.181481 0.181481 0.174074
1 0.090909 0.829630 0.818519 0.818519 0.825926
3 0 0.727273 0.129630 0.122222 0.092593 0.081481
1 0.272727 0.870370 0.877778 0.907407 0.918519
5 0 0.545455 0.062963 0.044444 0.062963 0.070370
1 0.454545 0.937037 0.955556 0.937037 0.929630
4 1 0 0.714286 0.174074 0.100000 0.122222 0.144444
1 0.285714 0.825926 0.900000 0.877778 0.855556
3 0 0.329670 0.048148 0.040741 0.059259 0.070370
1 0.494505 0.237037 0.185185 0.244444 0.181481
2 0.164835 0.244444 0.344444 0.285185 0.388889
3 0.010989 0.470370 0.429630 0.411111 0.359259
5 0 0.125874 0.025926 0.037037 0.029630 0.022222
1 0.419580 0.114815 0.085185 0.114815 0.151852
2 0.359640 0.225926 0.285185 0.218519 0.251852
3 0.089910 0.225926 0.255556 0.288889 0.270370
4 0.004995 0.407407 0.337037 0.348148 0.303704
8 1 0 0.555556 0.066667 0.125926 0.118519 0.103704
1 0.444444 0.933333 0.874074 0.881481 0.896296
3 0 0.147059 0.037037 0.051852 0.025926 0.044444
1 0.441176 0.125926 0.159259 0.162963 0.155556
2 0.343137 0.355556 0.318519 0.337037 0.362963
3 0.068627 0.481481 0.470370 0.474074 0.437037
5 0 0.029412 0.014815 0.029630 0.018519 0.033333
1 0.196078 0.081481 0.085185 0.081481 0.085185
2 0.392157 0.200000 0.181481 0.218519 0.181481
3 0.294118 0.248148 0.255556 0.200000 0.218519
4 0.081699 0.222222 0.248148 0.288889 0.288889
5 0.006536 0.233333 0.200000 0.192593 0.192593
80 1 1 0 0.987654 0.292593 0.559259 0.725926 0.785185
1 0.012346 0.707407 0.440741 0.274074 0.214815
3 0 0.962963 0.277778 0.555556 0.566667 0.614815
1 0.037037 0.722222 0.444444 0.433333 0.385185
5 0 0.938272 0.281481 0.507407 0.488889 0.514815
1 0.061728 0.718519 0.492593 0.511111 0.485185
4 1 0 0.952381 0.066667 0.144444 0.322222 0.459259
1 0.047619 0.933333 0.855556 0.677778 0.540741
3 0 0.862264 0.040741 0.133333 0.225926 0.251852
1 0.132656 0.133333 0.307407 0.437037 0.325926
2 0.005038 0.181481 0.296296 0.218519 0.385185
3 0.000042 0.644444 0.262963 0.118519 0.037037
5 0 0.778699 0.044444 0.122222 0.155556 0.185185
1 0.204921 0.140741 0.285185 0.307407 0.322222
2 0.015968 0.192593 0.300000 0.244444 0.214815
3 0.000409 0.192593 0.196296 0.259259 0.185185
4 0.000003 0.429630 0.096296 0.033333 0.092593
8 1 0 0.909091 0.003704 0.051852 0.203704 0.292593
1 0.090909 0.996296 0.948148 0.796296 0.707407
3 0 0.748706 0.000000 0.070370 0.092593 0.151852
1 0.230371 0.066667 0.114815 0.351852 0.251852
2 0.020413 0.088889 0.159259 0.259259 0.429630
3 0.000510 0.844444 0.655556 0.296296 0.166667
5 0 0.613645 0.003704 0.066667 0.088889 0.088889
1 0.322971 0.059259 0.140741 0.192593 0.185185
2 0.058722 0.074074 0.181481 0.207407 0.218519
3 0.004517 0.081481 0.196296 0.303704 0.200000
4 0.000143 0.103704 0.166667 0.122222 0.262963
5 0.000001 0.677778 0.248148 0.085185 0.044444

Plot hasilnya untuk setiap kejadian (num_norm, num_oot, dan num_top yang berbeda). Urutan warna dari kiri ke kanan: biru, hijau, merah, cyan, dan ungu, masing-masing merepresentasikan baseline, top 7, 20, 50, dan 100 features berturut-turut (sesuai urutan kolom pada tabel dfplot di atas).


In [7]:
grouped = dfplot.groupby(level=['num_norm','num_oot','num_top'])
for name, group in grouped:
    group.plot(kind='bar', use_index=False, legend=False, title='num_norm={}, num_oot={}, num_top={}'.format(*name))


Cukup jelas bahwa semua hasil mengungguli baseline. Selanjutnya, akan dihitung expected value untuk masing-masing hasil. Kali ini, baseline tidak diikutsertakan karena sudah jelas semua hasil lebih baik dari baseline.


In [8]:
df2 = df.drop('base', level='result')
df2.T


Out[8]:
num_norm 10 ... 80
num_oot 1 4 ... 8
num_top 1 3 5 1 3 ... 3 5
result perf perf perf perf perf ... perf perf
k 0 1 0 1 0 1 0 1 0 1 ... 0 1 2 3 0 1 2 3 4 5
method feature metric max_features
txt_comp_dist unigram euclidean 7 0.170370 0.829630 0.129630 0.870370 0.062963 0.937037 0.174074 0.825926 0.048148 0.237037 ... 0.000000 0.066667 0.088889 0.844444 0.003704 0.059259 0.074074 0.081481 0.103704 0.677778
20 0.181481 0.818519 0.122222 0.877778 0.044444 0.955556 0.100000 0.900000 0.040741 0.185185 ... 0.070370 0.114815 0.159259 0.655556 0.066667 0.140741 0.181481 0.196296 0.166667 0.248148
50 0.181481 0.818519 0.092593 0.907407 0.062963 0.937037 0.122222 0.877778 0.059259 0.244444 ... 0.092593 0.351852 0.259259 0.296296 0.088889 0.192593 0.207407 0.303704 0.122222 0.085185
100 0.174074 0.825926 0.081481 0.918519 0.070370 0.929630 0.144444 0.855556 0.070370 0.181481 ... 0.151852 0.251852 0.429630 0.166667 0.088889 0.185185 0.218519 0.200000 0.262963 0.044444

4 rows × 58 columns


In [9]:
df2 = df2.unstack(level='result')
gr = df2.groupby(level=['num_norm','num_oot','num_top'])
ngroup = len(gr)
data = np.empty((ngroup, 4))
index = []
for i, (name, _) in enumerate(gr):
    tmp = df2.loc[name]
    prod = tmp.T * np.array(tmp.index)
    expval = prod.unstack(level='result').sum(axis=1, level='result').T.values.ravel()
    data[i, :] = expval
    index.append(name)

In [10]:
data


Out[10]:
array([[ 0.82962963,  0.81851852,  0.81851852,  0.82592593],
       [ 0.87037037,  0.87777778,  0.90740741,  0.91851852],
       [ 0.93703704,  0.95555556,  0.93703704,  0.92962963],
       [ 0.82592593,  0.9       ,  0.87777778,  0.85555556],
       [ 2.13703704,  2.16296296,  2.04814815,  2.03703704],
       [ 2.87407407,  2.77037037,  2.81111111,  2.68148148],
       [ 0.93333333,  0.87407407,  0.88148148,  0.8962963 ],
       [ 2.28148148,  2.20740741,  2.25925926,  2.19259259],
       [ 3.28148148,  3.20740741,  3.23703704,  3.22222222],
       [ 0.70740741,  0.44074074,  0.27407407,  0.21481481],
       [ 0.72222222,  0.44444444,  0.43333333,  0.38518519],
       [ 0.71851852,  0.49259259,  0.51111111,  0.48518519],
       [ 0.93333333,  0.85555556,  0.67777778,  0.54074074],
       [ 2.42962963,  1.68888889,  1.22962963,  1.20740741],
       [ 2.82222222,  1.85925926,  1.70740741,  1.67777778],
       [ 0.9962963 ,  0.94814815,  0.7962963 ,  0.70740741],
       [ 2.77777778,  2.4       ,  1.75925926,  1.61111111],
       [ 4.25555556,  3.        ,  2.43333333,  2.4962963 ]])

Buat tabel untuk menyajikan hasil.


In [11]:
index = pd.MultiIndex.from_tuples(index, names=['num_norm','num_oot','num_top'])
columns = [7, 10, 50, 100]

result = pd.DataFrame(data, index=index, columns=columns)
result.columns.name = 'max_features'
result


Out[11]:
max_features 7 10 50 100
num_norm num_oot num_top
10 1 1 0.829630 0.818519 0.818519 0.825926
3 0.870370 0.877778 0.907407 0.918519
5 0.937037 0.955556 0.937037 0.929630
4 1 0.825926 0.900000 0.877778 0.855556
3 2.137037 2.162963 2.048148 2.037037
5 2.874074 2.770370 2.811111 2.681481
8 1 0.933333 0.874074 0.881481 0.896296
3 2.281481 2.207407 2.259259 2.192593
5 3.281481 3.207407 3.237037 3.222222
80 1 1 0.707407 0.440741 0.274074 0.214815
3 0.722222 0.444444 0.433333 0.385185
5 0.718519 0.492593 0.511111 0.485185
4 1 0.933333 0.855556 0.677778 0.540741
3 2.429630 1.688889 1.229630 1.207407
5 2.822222 1.859259 1.707407 1.677778
8 1 0.996296 0.948148 0.796296 0.707407
3 2.777778 2.400000 1.759259 1.611111
5 4.255556 3.000000 2.433333 2.496296

Dari tabel di atas terlihat trend bahwa semakin sedikit fitur yang digunakan, hasil yang akan semakin baik, i.e. terjadi peningkatan expected value. Hal ini semakin terlihat ketika banyak normal posts besar, dalam hal ini 80.