Exemplo n.º 1
0
def total_correlation(Xs):
    pmf = []
    Xs = np.asarray(Xs)
    for stock in range(len(Xs)):
        s = pd.Series(Xs[stock])
        b = (s.groupby(s).transform('count') / len(s)).values
        pmf.append(b)
    pmf = np.asarray(pmf)
    pmf /= pmf.sum()
    custm = stats.rv_discrete(name='custm', values=(Xs, pmf))
    d = Distribution.from_ndarray(pmf)
    t = T(d)
    return t
Exemplo n.º 2
0
              label='LEFT')
h_r = ax.hist(seg_t2_r.flatten(),
              100,
              range=(0, 100),
              histtype=u'step',
              alpha=1,
              lw=2,
              label='RIGHT')
ax.set_xlabel('T2 (ms)')
ax.set_ylabel('# COUNTS')
ax.legend()
plt.draw()
plt.savefig(join(joint_save_folder, 'T2_hist.png'), format='png', dpi=300)

# Compute Jensen-Shannon divergence

pmf_l = np.divide(h_l[0], np.sum(h_l[0]))
pmf_r = np.divide(h_r[0], np.sum(h_r[0]))

d_l = Distribution.from_ndarray(pmf_l)
d_r = Distribution.from_ndarray(pmf_r)

JSD = jensen_shannon_divergence([d_l, d_r])

pd_header = ['#counts', 'JS_Divergence']
pd_list = [[np.sum(h_l[0]), JSD], [np.sum(h_r[0]), JSD]]

df = pd.DataFrame(pd_list, columns=pd_header)

df.to_csv(join(joint_save_folder, 'histogram_calculation.csv'))
Exemplo n.º 3
0
mat = np.loadtxt('/Users/jk/Desktop/KPAGL/freqs.txt')

output = np.zeros((16, 26))

for i in range(16):

    print(i)

    freq = mat[i, ]

    aa = freq / np.sum(freq)

    dat = np.reshape(aa, (4, 4, 3))

    dist1 = Distribution.from_ndarray(dat)

    p = PID_BROJA(dist1, [[0], [1]], [2])

    output[i, 0:4] = [
        p.get_partial(n)
        for n in sorted(p._lattice, key=dit.pid.lattice.sort_key(p._lattice))
    ]

    p = PID_WB(dist1, [[0], [1]], [2])

    output[i, 4:8] = [
        p.get_partial(n)
        for n in sorted(p._lattice, key=dit.pid.lattice.sort_key(p._lattice))
    ]