如何使用训练/测试数据评估 pymc2 模型?

我正在 pymc2 中构建一个简单的模型,我想评估训练数据和测试数据。


我尝试使用这部分代码


print('Accuracy on train data = {}%'.format((y.value == Y_train).mean() * 100))

但我的事情与y.value相同Y_train,所以不能解决我的问题。


我目前的代码是


number_of_samples = 10000

X = np.random.randn(100, 2)

Y = np.tanh(X[:, 0] + X[:, 1])

Y = 1. / (1. + np.exp(-(Y + Y)))

Y_train = Y > 0.5


w11 = pm.Normal('w11', mu=0., tau=1.)

w12 = pm.Normal('w12', mu=0., tau=1.)

w21 = pm.Normal('w21', mu=0., tau=1.)

w22 = pm.Normal('w22', mu=0., tau=1.)

w31 = pm.Normal('w31', mu=0., tau=1.)

w32 = pm.Normal('w32', mu=0., tau=1.)


x1 = X[:, 0]

x2 = X[:, 1]


x3 = pm.Lambda('x3', lambda w1=w11, w2=w12: np.tanh(w1 * x1 + w2 * x2))

x4 = pm.Lambda('x4', lambda w1=w21, w2=w22: np.tanh(w1 * x1 + w2 * x2))


@pm.deterministic

def sigmoid(x=w31 * x3 + w32 * x4):

    return 1. / (1. + np.exp(-x))


y = pm.Bernoulli('y', sigmoid, observed=True, value=Y_train)


model = pm.Model([w11, w12, w21, w22, w31, w32, y])

inference = pm.MCMC(model)


inference.sample(number_of_samples)

print('Accuracy on train data = {}%'.format((y.value == Y_train).mean() * 100))

这就是我想要建立的网络。

http://img1.mukewang.com/6162974e0001126c07150244.jpg

我希望在训练数据和另一个测试数据上计算我的训练模型的准确性,但我不清楚如何做到这一点。


噜噜哒
浏览 190回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python