Pada sesi ini, akan dibandingkan hasil deteksi OOT jika dataset postingan diambil dari forum yang sama dan berbeda. Pertama, import tools yang akan digunakan dan atur agar matplotlib menggambar plot secara inline.


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

Baca hasil eksperimen dan tampilkan hasilnya.


In [2]:
df = pd.read_hdf('../reports/large-exp-uni-read-feats-within-inter-forums.h5', 'df')
df


Out[2]:
method txt_comp_dist
metric euclidean
feature readability unigram
type within inter within inter
norm_dir bbs152930 mus1139 phy17301 bbs152930 mus1139 phy17301 bbs152930 mus1139 phy17301 bbs152930 mus1139 phy17301
oot_dir bbs57549 mus10142 phy40008 mus10142 phy40008 bbs57549 phy40008 bbs57549 mus10142 bbs57549 mus10142 phy40008 mus10142 phy40008 bbs57549 phy40008 bbs57549 mus10142
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
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
perf 0 0.966667 0.966667 0.933333 0.966667 1.000000 0.933333 1.000000 0.933333 0.800000 0.266667 0.466667 0.366667 0.000000 0.200000 0.066667 0.300000 0.066667 0.000000
1 0.033333 0.033333 0.066667 0.033333 0.000000 0.066667 0.000000 0.066667 0.200000 0.733333 0.533333 0.633333 1.000000 0.800000 0.933333 0.700000 0.933333 1.000000
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
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
perf 0 0.633333 0.833333 0.700000 0.333333 0.433333 0.900000 0.933333 0.666667 0.300000 0.066667 0.300000 0.066667 0.066667 0.100000 0.166667 0.133333 0.000000 0.000000
1 0.366667 0.166667 0.300000 0.666667 0.566667 0.100000 0.066667 0.333333 0.700000 0.933333 0.700000 0.933333 0.933333 0.900000 0.833333 0.866667 1.000000 1.000000
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
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
perf 0 0.500000 0.633333 0.166667 0.233333 0.500000 0.900000 0.866667 0.233333 0.033333 0.100000 0.100000 0.066667 0.033333 0.100000 0.033333 0.033333 0.000000 0.000000
1 0.500000 0.366667 0.833333 0.766667 0.500000 0.100000 0.133333 0.766667 0.966667 0.900000 0.900000 0.933333 0.966667 0.900000 0.966667 0.966667 1.000000 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
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
perf 0 0.833333 0.833333 0.800000 0.900000 0.966667 0.733333 0.933333 0.733333 0.633333 0.066667 0.266667 0.200000 0.066667 0.166667 0.100000 0.200000 0.133333 0.000000
1 0.166667 0.166667 0.200000 0.100000 0.033333 0.266667 0.066667 0.266667 0.366667 0.933333 0.733333 0.800000 0.933333 0.833333 0.900000 0.800000 0.866667 1.000000
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
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
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
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
perf 0 0.300000 0.666667 0.266667 0.000000 0.133333 0.700000 0.700000 0.033333 0.000000 0.033333 0.200000 0.166667 0.066667 0.066667 0.133333 0.166667 0.000000 0.000000
1 0.466667 0.266667 0.500000 0.366667 0.700000 0.300000 0.300000 0.666667 0.366667 0.133333 0.333333 0.333333 0.133333 0.266667 0.333333 0.366667 0.133333 0.033333
2 0.233333 0.066667 0.233333 0.633333 0.166667 0.000000 0.000000 0.300000 0.633333 0.300000 0.233333 0.333333 0.233333 0.266667 0.300000 0.200000 0.300000 0.133333
3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.533333 0.233333 0.166667 0.566667 0.400000 0.233333 0.266667 0.566667 0.833333
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
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
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
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
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
perf 0 0.100000 0.166667 0.133333 0.000000 0.266667 0.500000 0.500000 0.000000 0.000000 0.000000 0.000000 0.000000 0.033333 0.000000 0.033333 0.033333 0.000000 0.000000
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
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
perf 0 0.933333 0.833333 0.700000 0.933333 0.933333 0.733333 0.800000 0.733333 0.366667 0.033333 0.333333 0.300000 0.000000 0.000000 0.400000 0.633333 0.066667 0.000000
1 0.066667 0.166667 0.300000 0.066667 0.066667 0.233333 0.200000 0.233333 0.533333 0.366667 0.366667 0.400000 0.000000 0.033333 0.366667 0.233333 0.200000 0.100000
2 0.000000 0.000000 0.000000 0.000000 0.000000 0.033333 0.000000 0.033333 0.066667 0.366667 0.233333 0.266667 0.066667 0.500000 0.133333 0.133333 0.533333 0.333333
3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.033333 0.233333 0.066667 0.033333 0.433333 0.400000 0.100000 0.000000 0.200000 0.466667
4 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.500000 0.066667 0.000000 0.000000 0.000000 0.100000
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
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
perf 0 0.933333 1.000000 0.933333 1.000000 0.966667 0.700000 0.966667 0.833333 0.766667 0.766667 0.366667 0.733333 0.533333 0.800000 0.500000 0.766667 0.300000 0.066667
1 0.066667 0.000000 0.066667 0.000000 0.033333 0.300000 0.033333 0.166667 0.233333 0.233333 0.633333 0.266667 0.466667 0.200000 0.500000 0.233333 0.700000 0.933333
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
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
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
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
perf 0 0.900000 1.000000 0.800000 1.000000 0.900000 0.766667 0.866667 0.366667 0.166667 0.066667 0.266667 0.266667 0.000000 0.000000 0.366667 0.233333 0.000000 0.000000
1 0.100000 0.000000 0.200000 0.000000 0.100000 0.233333 0.133333 0.533333 0.333333 0.233333 0.433333 0.533333 0.000000 0.066667 0.300000 0.666667 0.166667 0.033333
2 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.100000 0.500000 0.700000 0.166667 0.200000 0.966667 0.933333 0.300000 0.100000 0.600000 0.600000
3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.133333 0.000000 0.033333 0.000000 0.033333 0.000000 0.233333 0.366667
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
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
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
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
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
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
perf 0 0.966667 0.600000 0.600000 0.933333 0.966667 0.633333 0.933333 0.533333 0.066667 0.000000 0.400000 0.133333 0.000000 0.000000 0.233333 0.366667 0.000000 0.000000
1 0.033333 0.400000 0.400000 0.066667 0.033333 0.366667 0.066667 0.433333 0.300000 0.100000 0.166667 0.166667 0.000000 0.266667 0.333333 0.300000 0.166667 0.000000
2 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.033333 0.500000 0.300000 0.300000 0.500000 0.000000 0.100000 0.366667 0.333333 0.266667 0.066667
3 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.100000 0.400000 0.133333 0.166667 0.100000 0.433333 0.066667 0.000000 0.500000 0.400000
4 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.033333 0.200000 0.000000 0.033333 0.900000 0.200000 0.000000 0.000000 0.066667 0.466667
5 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.066667

116 rows × 18 columns

Merata-ratakan hasil untuk semua pasangan thread, didapat hasil:


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


Out[3]:
method txt_comp_dist
metric euclidean
feature readability unigram
type inter within inter within
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.938889 0.955556 0.105556 0.366667
1 0.061111 0.044444 0.894444 0.633333
3 base 0 0.727273 0.727273 0.727273 0.727273
1 0.272727 0.272727 0.272727 0.272727
perf 0 0.594444 0.722222 0.077778 0.144444
1 0.405556 0.277778 0.922222 0.855556
5 base 0 0.545455 0.545455 0.545455 0.545455
1 0.454545 0.454545 0.454545 0.454545
perf 0 0.461111 0.433333 0.033333 0.088889
1 0.538889 0.566667 0.966667 0.911111
4 1 base 0 0.714286 0.714286 0.714286 0.714286
1 0.285714 0.285714 0.285714 0.285714
perf 0 0.816667 0.822222 0.111111 0.177778
1 0.183333 0.177778 0.888889 0.822222
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.261111 0.411111 0.072222 0.133333
1 0.450000 0.411111 0.211111 0.266667
2 0.288889 0.177778 0.238889 0.288889
3 0.000000 0.000000 0.477778 0.311111
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.211111 0.133333 0.016667 0.000000
... ... ... ... ... ... ... ... ...
80 4 5 base 4 0.000003 0.000003 0.000003 0.000003
perf 0 0.750000 0.822222 0.183333 0.222222
1 0.222222 0.177778 0.155556 0.377778
2 0.022222 0.000000 0.283333 0.288889
3 0.005556 0.000000 0.266667 0.111111
4 0.000000 0.000000 0.111111 0.000000
8 1 base 0 0.909091 0.909091 0.909091 0.909091
1 0.090909 0.090909 0.090909 0.090909
perf 0 0.872222 0.955556 0.494444 0.622222
1 0.127778 0.044444 0.505556 0.377778
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.677778 0.900000 0.100000 0.200000
1 0.222222 0.100000 0.205556 0.400000
2 0.100000 0.000000 0.583333 0.355556
3 0.000000 0.000000 0.111111 0.044444
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.677778 0.722222 0.100000 0.177778
1 0.211111 0.277778 0.177778 0.144444
2 0.088889 0.000000 0.188889 0.366667
3 0.016667 0.000000 0.250000 0.233333
4 0.005556 0.000000 0.272222 0.077778
5 0.000000 0.000000 0.011111 0.000000

116 rows × 4 columns

Sekarang, hasil ini akan diplot agar terlihat lebih jelas.


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


Out[4]:
method txt_comp_dist
metric euclidean
feature readability unigram
type inter within inter within
result base perf base perf base perf base perf
num_norm num_oot num_top k
10 1 1 0 0.909091 0.938889 0.909091 0.955556 0.909091 0.105556 0.909091 0.366667
1 0.090909 0.061111 0.090909 0.044444 0.090909 0.894444 0.090909 0.633333
3 0 0.727273 0.594444 0.727273 0.722222 0.727273 0.077778 0.727273 0.144444
1 0.272727 0.405556 0.272727 0.277778 0.272727 0.922222 0.272727 0.855556
5 0 0.545455 0.461111 0.545455 0.433333 0.545455 0.033333 0.545455 0.088889
1 0.454545 0.538889 0.454545 0.566667 0.454545 0.966667 0.454545 0.911111
4 1 0 0.714286 0.816667 0.714286 0.822222 0.714286 0.111111 0.714286 0.177778
1 0.285714 0.183333 0.285714 0.177778 0.285714 0.888889 0.285714 0.822222
3 0 0.329670 0.261111 0.329670 0.411111 0.329670 0.072222 0.329670 0.133333
1 0.494505 0.450000 0.494505 0.411111 0.494505 0.211111 0.494505 0.266667
2 0.164835 0.288889 0.164835 0.177778 0.164835 0.238889 0.164835 0.288889
3 0.010989 0.000000 0.010989 0.000000 0.010989 0.477778 0.010989 0.311111
5 0 0.125874 0.211111 0.125874 0.133333 0.125874 0.016667 0.125874 0.000000
1 0.419580 0.322222 0.419580 0.466667 0.419580 0.111111 0.419580 0.188889
2 0.359640 0.250000 0.359640 0.344444 0.359640 0.183333 0.359640 0.311111
3 0.089910 0.200000 0.089910 0.044444 0.089910 0.333333 0.089910 0.233333
4 0.004995 0.016667 0.004995 0.011111 0.004995 0.355556 0.004995 0.266667
8 1 0 0.555556 0.700000 0.555556 0.688889 0.555556 0.094444 0.555556 0.111111
1 0.444444 0.300000 0.444444 0.311111 0.444444 0.905556 0.444444 0.888889
3 0 0.147059 0.238889 0.147059 0.144444 0.147059 0.033333 0.147059 0.033333
1 0.441176 0.277778 0.441176 0.377778 0.441176 0.238889 0.441176 0.122222
2 0.343137 0.466667 0.343137 0.477778 0.343137 0.300000 0.343137 0.400000
3 0.068627 0.016667 0.068627 0.000000 0.068627 0.427778 0.068627 0.444444
5 0 0.029412 0.122222 0.029412 0.033333 0.029412 0.011111 0.029412 0.011111
1 0.196078 0.227778 0.196078 0.233333 0.196078 0.116667 0.196078 0.033333
2 0.392157 0.188889 0.392157 0.422222 0.392157 0.133333 0.392157 0.222222
3 0.294118 0.272222 0.294118 0.233333 0.294118 0.272222 0.294118 0.455556
4 0.081699 0.188889 0.081699 0.077778 0.081699 0.288889 0.081699 0.200000
5 0.006536 0.000000 0.006536 0.000000 0.006536 0.177778 0.006536 0.077778
80 1 1 0 0.987654 0.983333 0.987654 1.000000 0.987654 0.850000 0.987654 0.833333
1 0.012346 0.016667 0.012346 0.000000 0.012346 0.150000 0.012346 0.166667
3 0 0.962963 0.944444 0.962963 0.988889 0.962963 0.411111 0.962963 0.700000
1 0.037037 0.055556 0.037037 0.011111 0.037037 0.588889 0.037037 0.300000
5 0 0.938272 0.955556 0.938272 0.955556 0.938272 0.377778 0.938272 0.655556
1 0.061728 0.044444 0.061728 0.044444 0.061728 0.622222 0.061728 0.344444
4 1 0 0.952381 0.933333 0.952381 0.966667 0.952381 0.605556 0.952381 0.700000
1 0.047619 0.066667 0.047619 0.033333 0.047619 0.394444 0.047619 0.300000
3 0 0.862264 0.783333 0.862264 0.911111 0.862264 0.183333 0.862264 0.355556
1 0.132656 0.188889 0.132656 0.088889 0.132656 0.361111 0.132656 0.511111
2 0.005038 0.027778 0.005038 0.000000 0.005038 0.422222 0.005038 0.133333
3 0.000042 0.000000 0.000042 0.000000 0.000042 0.033333 0.000042 0.000000
5 0 0.778699 0.750000 0.778699 0.822222 0.778699 0.183333 0.778699 0.222222
1 0.204921 0.222222 0.204921 0.177778 0.204921 0.155556 0.204921 0.377778
2 0.015968 0.022222 0.015968 0.000000 0.015968 0.283333 0.015968 0.288889
3 0.000409 0.005556 0.000409 0.000000 0.000409 0.266667 0.000409 0.111111
4 0.000003 0.000000 0.000003 0.000000 0.000003 0.111111 0.000003 0.000000
8 1 0 0.909091 0.872222 0.909091 0.955556 0.909091 0.494444 0.909091 0.622222
1 0.090909 0.127778 0.090909 0.044444 0.090909 0.505556 0.090909 0.377778
3 0 0.748706 0.677778 0.748706 0.900000 0.748706 0.100000 0.748706 0.200000
1 0.230371 0.222222 0.230371 0.100000 0.230371 0.205556 0.230371 0.400000
2 0.020413 0.100000 0.020413 0.000000 0.020413 0.583333 0.020413 0.355556
3 0.000510 0.000000 0.000510 0.000000 0.000510 0.111111 0.000510 0.044444
5 0 0.613645 0.677778 0.613645 0.722222 0.613645 0.100000 0.613645 0.177778
1 0.322971 0.211111 0.322971 0.277778 0.322971 0.177778 0.322971 0.144444
2 0.058722 0.088889 0.058722 0.000000 0.058722 0.188889 0.058722 0.366667
3 0.004517 0.016667 0.004517 0.000000 0.004517 0.250000 0.004517 0.233333
4 0.000143 0.005556 0.000143 0.000000 0.000143 0.272222 0.000143 0.077778
5 0.000001 0.000000 0.000001 0.000000 0.000001 0.011111 0.000001 0.000000

Sisakan hanya satu baseline.


In [5]:
del dfplot[('txt_comp_dist', 'euclidean', 'readability', 'within', 'base')]
del dfplot[('txt_comp_dist', 'euclidean', 'unigram', 'inter', 'base')]
del dfplot[('txt_comp_dist', 'euclidean', 'unigram', 'within', 'base')]
dfplot


Out[5]:
method txt_comp_dist
metric euclidean
feature readability unigram
type inter within inter within
result base perf perf perf perf
num_norm num_oot num_top k
10 1 1 0 0.909091 0.938889 0.955556 0.105556 0.366667
1 0.090909 0.061111 0.044444 0.894444 0.633333
3 0 0.727273 0.594444 0.722222 0.077778 0.144444
1 0.272727 0.405556 0.277778 0.922222 0.855556
5 0 0.545455 0.461111 0.433333 0.033333 0.088889
1 0.454545 0.538889 0.566667 0.966667 0.911111
4 1 0 0.714286 0.816667 0.822222 0.111111 0.177778
1 0.285714 0.183333 0.177778 0.888889 0.822222
3 0 0.329670 0.261111 0.411111 0.072222 0.133333
1 0.494505 0.450000 0.411111 0.211111 0.266667
2 0.164835 0.288889 0.177778 0.238889 0.288889
3 0.010989 0.000000 0.000000 0.477778 0.311111
5 0 0.125874 0.211111 0.133333 0.016667 0.000000
1 0.419580 0.322222 0.466667 0.111111 0.188889
2 0.359640 0.250000 0.344444 0.183333 0.311111
3 0.089910 0.200000 0.044444 0.333333 0.233333
4 0.004995 0.016667 0.011111 0.355556 0.266667
8 1 0 0.555556 0.700000 0.688889 0.094444 0.111111
1 0.444444 0.300000 0.311111 0.905556 0.888889
3 0 0.147059 0.238889 0.144444 0.033333 0.033333
1 0.441176 0.277778 0.377778 0.238889 0.122222
2 0.343137 0.466667 0.477778 0.300000 0.400000
3 0.068627 0.016667 0.000000 0.427778 0.444444
5 0 0.029412 0.122222 0.033333 0.011111 0.011111
1 0.196078 0.227778 0.233333 0.116667 0.033333
2 0.392157 0.188889 0.422222 0.133333 0.222222
3 0.294118 0.272222 0.233333 0.272222 0.455556
4 0.081699 0.188889 0.077778 0.288889 0.200000
5 0.006536 0.000000 0.000000 0.177778 0.077778
80 1 1 0 0.987654 0.983333 1.000000 0.850000 0.833333
1 0.012346 0.016667 0.000000 0.150000 0.166667
3 0 0.962963 0.944444 0.988889 0.411111 0.700000
1 0.037037 0.055556 0.011111 0.588889 0.300000
5 0 0.938272 0.955556 0.955556 0.377778 0.655556
1 0.061728 0.044444 0.044444 0.622222 0.344444
4 1 0 0.952381 0.933333 0.966667 0.605556 0.700000
1 0.047619 0.066667 0.033333 0.394444 0.300000
3 0 0.862264 0.783333 0.911111 0.183333 0.355556
1 0.132656 0.188889 0.088889 0.361111 0.511111
2 0.005038 0.027778 0.000000 0.422222 0.133333
3 0.000042 0.000000 0.000000 0.033333 0.000000
5 0 0.778699 0.750000 0.822222 0.183333 0.222222
1 0.204921 0.222222 0.177778 0.155556 0.377778
2 0.015968 0.022222 0.000000 0.283333 0.288889
3 0.000409 0.005556 0.000000 0.266667 0.111111
4 0.000003 0.000000 0.000000 0.111111 0.000000
8 1 0 0.909091 0.872222 0.955556 0.494444 0.622222
1 0.090909 0.127778 0.044444 0.505556 0.377778
3 0 0.748706 0.677778 0.900000 0.100000 0.200000
1 0.230371 0.222222 0.100000 0.205556 0.400000
2 0.020413 0.100000 0.000000 0.583333 0.355556
3 0.000510 0.000000 0.000000 0.111111 0.044444
5 0 0.613645 0.677778 0.722222 0.100000 0.177778
1 0.322971 0.211111 0.277778 0.177778 0.144444
2 0.058722 0.088889 0.000000 0.188889 0.366667
3 0.004517 0.016667 0.000000 0.250000 0.233333
4 0.000143 0.005556 0.000000 0.272222 0.077778
5 0.000001 0.000000 0.000000 0.011111 0.000000

Plot hasil untuk setiap kejadian. Warna dari kiri ke kanan: biru, hijau, merah, cyan, ungu. Masing-masing warna merepresentasikan baseline, kasus inter-forum dengan fitur readability, kasus within-forum dengan fitur readability, kasus inter-forum dengan fitur unigram, dan kasus within-forum dengan fitur unigram berturut-turut (sesuai urutan kolom pada tabel di atas).


In [6]:
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))


Selanjutnya, akan dihitung expected value untuk setiap hasil.


In [7]:
df = df.unstack(level='result')
gr = df.groupby(level=['num_norm', 'num_oot', 'num_top'])
ngroup = len(gr)
data = np.empty((ngroup, 5))
dropped = [('base', 'readability', 'within'), ('base', 'unigram', 'within'), ('base', 'unigram', 'inter')]
index = []
for i, (name, _) in enumerate(gr):
    tmp = df.loc[name]
    prod = tmp.T * np.array(tmp.index)
    expval = prod.unstack(level='result').sum(axis=1, level='result').unstack(level=['feature', 'type'])
    expval.drop(dropped, axis=1, inplace=True)
    data[i, :] = expval.values.ravel()
    index.append(name)

In [8]:
data


Out[8]:
array([[ 0.09090909,  0.06111111,  0.04444444,  0.89444444,  0.63333333],
       [ 0.27272727,  0.40555556,  0.27777778,  0.92222222,  0.85555556],
       [ 0.45454545,  0.53888889,  0.56666667,  0.96666667,  0.91111111],
       [ 0.28571429,  0.18333333,  0.17777778,  0.88888889,  0.82222222],
       [ 0.85714286,  1.02777778,  0.76666667,  2.12222222,  1.77777778],
       [ 1.42857143,  1.48888889,  1.33333333,  2.9       ,  2.57777778],
       [ 0.44444444,  0.3       ,  0.31111111,  0.90555556,  0.88888889],
       [ 1.33333333,  1.26111111,  1.33333333,  2.12222222,  2.25555556],
       [ 2.22222222,  2.17777778,  2.08888889,  3.24444444,  3.03333333],
       [ 0.01234568,  0.01666667,  0.        ,  0.15      ,  0.16666667],
       [ 0.03703704,  0.05555556,  0.01111111,  0.58888889,  0.3       ],
       [ 0.0617284 ,  0.04444444,  0.04444444,  0.62222222,  0.34444444],
       [ 0.04761905,  0.06666667,  0.03333333,  0.39444444,  0.3       ],
       [ 0.14285714,  0.24444444,  0.08888889,  1.30555556,  0.77777778],
       [ 0.23809524,  0.28333333,  0.17777778,  1.96666667,  1.28888889],
       [ 0.09090909,  0.12777778,  0.04444444,  0.50555556,  0.37777778],
       [ 0.27272727,  0.42222222,  0.1       ,  1.70555556,  1.24444444],
       [ 0.45454545,  0.46111111,  0.27777778,  2.45      ,  1.88888889]])

In [9]:
index = pd.MultiIndex.from_tuples(index, names=['num_norm', 'num_oot', 'num_top'])
columns = pd.MultiIndex.from_tuples([('base', 'readability', 'inter'), ('perf', 'readability', 'inter'), ('perf', 'readability', 'within'), ('perf', 'unigram', 'inter'), ('perf', 'unigram', 'within')])

In [10]:
result = pd.DataFrame(data, index=index, columns=columns)
result


Out[10]:
base perf
readability readability unigram
inter inter within inter within
num_norm num_oot num_top
10 1 1 0.090909 0.061111 0.044444 0.894444 0.633333
3 0.272727 0.405556 0.277778 0.922222 0.855556
5 0.454545 0.538889 0.566667 0.966667 0.911111
4 1 0.285714 0.183333 0.177778 0.888889 0.822222
3 0.857143 1.027778 0.766667 2.122222 1.777778
5 1.428571 1.488889 1.333333 2.900000 2.577778
8 1 0.444444 0.300000 0.311111 0.905556 0.888889
3 1.333333 1.261111 1.333333 2.122222 2.255556
5 2.222222 2.177778 2.088889 3.244444 3.033333
80 1 1 0.012346 0.016667 0.000000 0.150000 0.166667
3 0.037037 0.055556 0.011111 0.588889 0.300000
5 0.061728 0.044444 0.044444 0.622222 0.344444
4 1 0.047619 0.066667 0.033333 0.394444 0.300000
3 0.142857 0.244444 0.088889 1.305556 0.777778
5 0.238095 0.283333 0.177778 1.966667 1.288889
8 1 0.090909 0.127778 0.044444 0.505556 0.377778
3 0.272727 0.422222 0.100000 1.705556 1.244444
5 0.454545 0.461111 0.277778 2.450000 1.888889

Note: kolom paling kiri adalah baseline.

Dari hasil pada tabel, terlihat bahwa sesuai dugaan, secara umum, pendeteksian postingan OOT untuk kasus within-forum lebih sulit dibanding kasus inter-forum.