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