8.7 Gaussian process classification
In Chapter 4, we saw how a linear model can be used to classify data. We used a Bernoulli likelihood with a logistic inverse link function. Then, we applied a boundary decision rule. In this section, we are going to do the same, but this time using a GP instead of a linear model. As we did with model_lrs
from Chapter 4, we are going to use the iris dataset with two classes, setosa
and versicolor
, and one predictor variable, the sepal length
.
For this model, we cannot use the pm.gp.Marginal
class, because that class is restricted to Gaussian likelihoods as it takes advantage of the mathematical tractability of the combination of a GP prior with a Gaussian likelihood. Instead, we need to use the more general class pm.gp.Latent
.
Code 8.7
with pm.Model() as model_iris:
ℓ = pm.InverseGamma('ℓ', *get_ig_params(x_1))
cov = pm.gp.cov.ExpQuad(1, ℓ)
&...