我尝试在笔记本上运行自生成数据的代码,以证明模型是否会进行任何分类。 https://gpflow.readthedocs.io/en/master/notebooks/basics/classification.html
所以我创建了 X 和 Y 作为输入数据。
X=np.array([-0.0259,-0.3579,-0.289,0.0356,0.0147,0.0234]).reshape(-1,1)
Y=np.array([0,0,0,1,1,1]).reshape(-1,1)
X 和 Y 中的值被选择为二进制逻辑,X 中的负值等于 Y 中的 0。X 中的正值应归类为 Y 中的 1。
然后我创建了一个模型并对其进行了训练:
Per = gpflow.kernels.Periodic(gpflow.kernels.SquaredExponential())
model_Per = gpflow.models.VGP((X, Y), likelihood=gpflow.likelihoods.Bernoulli(), kernel=Per)
我试图将 Y 预测为具有与模型训练输入相同的 X 的类,只是想看看是否有正确的结果。
Ypred, VARpred = model_Per.predict_y(X)
对于 Ypred,我得到输出:
<tf.Tensor: shape=(6, 1), dtype=float64, numpy=
array([[0.5],
[0.5],
[0.5],
[0.5],
[0.5],
[0.5]])>
对于 VARpred
<tf.Tensor: shape=(6, 1), dtype=float64, numpy=
array([[0.25],
[0.25],
[0.25],
[0.25],
[0.25],
[0.25]])>
我尝试更改内核,组合内核,在预测之前使用 Scipy 进行优化,更改数据,但均值和方差的输出始终相同。我期待这个数据集的 Ypred = Y。
创建这个分类模型我做错了什么?