Kali ini, akan dianalisis hasil dari eksperimen besar dengan menggunakan fitur readability, metode txt_comp_dist
, dan distance metric correlation
. Dilakukan 30 iterasi untuk setiap setting eksperimen.
Pertama-tama, import tools yang dibutuhkan dan atur agar matplotlib menggambar grafik secara inline.
In [1]:
import numpy as np
import pandas as pd
%matplotlib inline
Load hasil eksperimen dan tampilkan hasilnya.
In [2]:
df = pd.read_hdf('../reports/large-exp-rea-feat-corr-dist.h5', 'df')
In [3]:
df
Out[3]:
Selanjutnya, lakukan agregasi dengan merata-ratakan hasil terhadap seluruh pasangan thread yang digunakan.
In [4]:
df_agg = df.mean(axis=0).unstack(level='result')
In [5]:
df_agg
Out[5]:
Agar lebih jelas, akan digambar grafik dari tabel di atas. Pada grafik di bawah, warna biru dan hijau merepresentasikan baseline dan performa metode berturut-turut.
In [6]:
grouped = df_agg.groupby(level=['num_norm','num_oot','num_top'])
for name, group in grouped:
group.plot(kind='bar', use_index=False, legend=False, ylim=(0.,1.), title='num_norm={}, num_oot={}, num_top={}'.format(*name))
Dari grafik-grafik di atas, cukup terlihat jelas bahwa metode txt_comp_dist
dengan fitur readability tidak lebih baik daripada baseline. Untuk lebih jelasnya, akan dihitung expected value-nya.
In [7]:
ngroup = len(grouped)
data = np.empty((ngroup, 2))
index = []
for i, (name, _) in enumerate(grouped):
df_tmp = df_agg.loc[name]
prod = df_tmp.T * np.array(df_tmp.index)
exp_val = prod.sum(axis=1)
data[i, :] = exp_val.values
index.append(name)
In [8]:
index = pd.MultiIndex.from_tuples(index, names=['num_norm','num_oot','num_top'])
In [9]:
result = pd.DataFrame(data, index=index, columns=['base','perf'])
result.columns.name = 'E[X]'
In [10]:
result
Out[10]:
Dari tabel ini, terlihat bahwa metode txt_comp_dist
dengan fitur readability memang memiliki hasil yang sangat buruk ketimbang baseline.