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.
Content source: kemskems/otdet
Similar notebooks: