def qrbf_iso_gauss_infinite():
    x1 = np.array([[-1, 1], [0, 0], [-2, 0.1]])
    x2 = np.array([[-1, 1], [0, 0], [-2, 0.1], [-3, 3]])
    M1 = x1.shape[0]
    M2 = x2.shape[0]
    D = x1.shape[1]

    gpy_kernel = GPy.kern.RBF(input_dim=D)
    emukit_rbf = RBFGPy(gpy_kernel)
    measure = IsotropicGaussianMeasure(mean=np.arange(D), variance=2.)
    emukit_qrbf = QuadratureRBFIsoGaussMeasure(rbf_kernel=emukit_rbf,
                                               measure=measure)
    return emukit_qrbf, x1, x2, M1, M2, D
def qKq_gauss_iso(num_samples: int, qrbf: QuadratureRBFIsoGaussMeasure):
    measure = qrbf.measure
    samples = _sample_gauss_iso(num_samples, measure)
    qKx = qrbf.qK(samples)
    return np.mean(qKx)
    # === CHOOSE MEASURE ABOVE ======

    x1 = np.array([[-1, 1], [0, 0], [-2, 0.1]])
    x2 = np.array([[-1, 1], [0, 0], [-2, 0.1], [-3, 3]])
    D = x1.shape[1]

    gpy_kernel = GPy.kern.RBF(input_dim=D)
    emukit_rbf = RBFGPy(gpy_kernel)

    if MEASURE_INTBOUNDS == "Lebesgue-finite":
        emukit_qrbf = QuadratureRBFLebesgueMeasure(emukit_rbf,
                                                   integral_bounds=[(-1, 2),
                                                                    (-3, 3)])
    elif MEASURE_INTBOUNDS == "GaussIso-infinite":
        measure = IsotropicGaussianMeasure(mean=np.arange(D), variance=2.0)
        emukit_qrbf = QuadratureRBFIsoGaussMeasure(rbf_kernel=emukit_rbf,
                                                   measure=measure)
    elif MEASURE_INTBOUNDS == "Uniform-infinite":
        measure = UniformMeasure(bounds=[(0, 2), (-4, 3)])
        emukit_qrbf = QuadratureRBFUniformMeasure(emukit_rbf,
                                                  integral_bounds=None,
                                                  measure=measure)
    elif MEASURE_INTBOUNDS == "Uniform-finite":
        measure = UniformMeasure(bounds=[(1, 2), (-4, 2)])
        emukit_qrbf = QuadratureRBFUniformMeasure(emukit_rbf,
                                                  integral_bounds=[(-1, 2),
                                                                   (-3, 3)],
                                                  measure=measure)
    else:
        raise ValueError("Measure-integral-bounds combination not defined")

    print()
def qK_gauss_iso(num_samples: int, qrbf: QuadratureRBFIsoGaussMeasure,
                 x2: np.ndarray):
    measure = qrbf.measure
    samples = _sample_gauss_iso(num_samples, measure)
    Kx = qrbf.K(samples, x2)
    return np.mean(Kx, axis=0)
Пример #5
0
def base_gp(gpy_model):
    measure = IsotropicGaussianMeasure(mean=np.array([0.1, 1.8]), variance=0.8)
    qrbf = QuadratureRBFIsoGaussMeasure(RBFGPy(gpy_model.kern),
                                        measure=measure)
    return BaseGaussianProcessGPy(kern=qrbf, gpy_model=gpy_model)