def one_axis_test(): data = pickle.load(open("../mouseretina/component.2.3.pickle", 'r')) conn_true = data['conn_dist_hist'] conn_false = data['noconn_dist_hist'] print "true_count = ", len(conn_true) print "false_count=", len(conn_false) p_max = 0.98 p_min = 0.02 mu_hp = 2.0 lamb_hp = 5.0 mu = 10.0 lamb = 10.0 pylab.figure() pylab.plot(data['bins'][:-1], data['p']) for S in range(10): mu, lamb = slice(conn_true, conn_false, mu, lamb, mu_hp, lamb_hp, p_min, p_max, ITERS=30) pylab.plot(data['fine_bins'], logistic(data['fine_bins'], mu, lamb) * (p_max - p_min) + p_min, c='r') pylab.show()
def score_component(conn_true, conn_false, mu, lamb, mu_hp, lamb_hp, p_min, p_max): score = 0.0 p_range = p_max - p_min for d in conn_true: p = logistic(d, mu, lamb) * p_range + p_min score += np.log(p) for d in conn_true: p = logistic(d, mu, lamb) * p_range + p_min score += np.log(1.0 - p) prior = log_exp_dist(mu, mu_hp) prior += log_exp_dist(lamb, lamb_hp) score += prior return score
def grid(): data = pickle.load(open("../mouseretina/component.0.1.pickle", 'r')) conn_true = data['conn_dist_hist'] conn_false = data['noconn_dist_hist'] N = 200 p_max = 0.95 p_min = 0.05 x = np.zeros((N, N)) mus = np.linspace(0.0, 10, N) lambs = np.linspace(0.0, 4, N) for i, mu in enumerate(mus): for j, lamb in enumerate(lambs): mu_hp = 10.0 lamb_hp = 10.0 x[i, j] = score_component(conn_true, conn_false, mu, lamb, mu_hp, lamb_hp, p_min, p_max) x -= np.max(x) mu_i, lamb_i = np.unravel_index(np.argmax(x), x.shape) pylab.figure() pylab.plot(data['bins'][:-1], data['p']) pylab.plot(data['bins'], logistic(data['bins'], mus[mu_i], lambs[lamb_i]) * (p_max - p_min) + p_min, c='r') pylab.figure() pylab.imshow(x) pylab.colorbar() pylab.figure() for ki, k in enumerate([1, 10, 20, 30]): pylab.subplot(4, 1, ki + 1) p = np.exp(x[:, k]) / np.sum(np.exp(x[:, k])) pylab.plot(mus, p) pylab.grid() pylab.show()
def grid(): data = pickle.load(open("../mouseretina/component.0.1.pickle", 'r')) conn_true = data['conn_dist_hist'] conn_false = data['noconn_dist_hist'] N = 200 p_max = 0.95 p_min = 0.05 x = np.zeros((N, N)) mus = np.linspace(0.0, 10, N) lambs = np.linspace(0.0, 4, N) for i, mu in enumerate(mus): for j, lamb in enumerate(lambs): mu_hp = 10.0 lamb_hp = 10.0 x[i, j] = score_component(conn_true, conn_false, mu, lamb, mu_hp, lamb_hp, p_min, p_max) x -= np.max(x) mu_i, lamb_i = np.unravel_index(np.argmax(x), x.shape) pylab.figure() pylab.plot(data['bins'][:-1], data['p']) pylab.plot(data['bins'], logistic(data['bins'], mus[mu_i], lambs[lamb_i])*(p_max - p_min) + p_min, c='r') pylab.figure() pylab.imshow(x) pylab.colorbar() pylab.figure() for ki, k in enumerate([1, 10, 20, 30]): pylab.subplot(4, 1, ki+1) p = np.exp(x[:, k]) / np.sum(np.exp(x[:, k])) pylab.plot(mus, p) pylab.grid() pylab.show()
def one_axis_test(): data = pickle.load(open("../mouseretina/component.2.3.pickle", 'r')) conn_true = data['conn_dist_hist'] conn_false = data['noconn_dist_hist'] print "true_count = ", len(conn_true) print "false_count=", len(conn_false) p_max = 0.98 p_min = 0.02 mu_hp = 2.0 lamb_hp = 5.0 mu = 10.0 lamb=10.0 pylab.figure() pylab.plot(data['bins'][:-1], data['p']) for S in range(10): mu, lamb = slice(conn_true, conn_false, mu, lamb, mu_hp, lamb_hp, p_min, p_max, ITERS=30) pylab.plot(data['fine_bins'], logistic(data['fine_bins'], mu, lamb)*(p_max - p_min) + p_min, c='r') pylab.show()