def test_mixtureMV(args):
"""test_mixtureMV
Test mixtureMV() by sampling from dummy statistics mu, S, p
"""
mixcomps = 3
d = 2
mu = np.random.uniform(-1, 1, size = (mixcomps, d))
S = np.array([np.eye(d) * 0.01 for c in range(mixcomps)])
for s in S:
s += 0.05 * np.random.uniform(-1, 1, size = s.shape)
s[np.tril_indices(d, -1)] = s[np.triu_indices(d, 1)]
pi = np.ones((mixcomps, )) * 1.0/mixcomps
lr = LearningRules(ndim_out = d, dim = d)
lr.learnFORCEmdn_setup(mixcomps = mixcomps)
fig = plt.figure()
gs = gridspec.GridSpec(2, mixcomps)
for g in gs:
fig.add_subplot(g)
ax = fig.axes[0]
ax.plot(mu[:,0], mu[:,1], "ko", alpha = 0.5)
# ax.set_xlim((-1.1, 1.1))
# ax.set_ylim((-1.1, 1.1))
ax = fig.axes[0] # (2 * mixcomps) + c]
for i in range(1000):
y = lr.mixtureMV(mu, S, pi)
print "y", y
ax.plot([y[0]], [y[1]], "ro", alpha = 0.2, markersize = 3.0)
ax.set_aspect(1)
for c in range(mixcomps):
ax = fig.axes[mixcomps + c]
ax.imshow(S[c], cmap = plt.get_cmap('PiYG'))
fig.show()
plt.show()
print "mu", mu.shape, "S", S.shape
评论列表
文章目录