## Set up the environment

```
!nvidia-smi
```

    Sun Jun 20 03:32:38 2021
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 465.27       Driver Version: 460.32.03    CUDA Version: 11.2     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |
    | N/A   42C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+

    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+

```
#!pip install pymatgen==2020.12.31
!pip install pymatgen==2019.11.11
!pip install --pre graphdot
!pip install gdown
```

    Requirement already satisfied: pymatgen==2019.11.11 in /usr/local/lib/python3.7/dist-packages (2019.11.11)
    Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (2.23.0)
    Requirement already satisfied: pydispatcher>=2.0.5 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (2.0.5)
    Requirement already satisfied: tabulate in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (0.8.9)
    Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (1.1.5)
    Requirement already satisfied: palettable>=3.1.1 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (3.3.0)
    Requirement already satisfied: matplotlib>=1.5 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (3.2.2)
    Requirement already satisfied: scipy>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (1.4.1)
    Requirement already satisfied: monty>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (2021.6.10)
    Requirement already satisfied: numpy>=1.14.3 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (1.19.5)
    Requirement already satisfied: ruamel.yaml>=0.15.6 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (0.17.9)
    Requirement already satisfied: networkx>=2.2 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (2.5.1)
    Requirement already satisfied: sympy in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (1.7.1)
    Requirement already satisfied: spglib>=1.9.9.44 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (1.16.1)
    Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->pymatgen==2019.11.11) (2021.5.30)
    Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->pymatgen==2019.11.11) (1.24.3)
    Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->pymatgen==2019.11.11) (3.0.4)
    Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->pymatgen==2019.11.11) (2.10)
    Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas->pymatgen==2019.11.11) (2018.9)
    Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas->pymatgen==2019.11.11) (2.8.1)
    Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.5->pymatgen==2019.11.11) (0.10.0)
    Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.5->pymatgen==2019.11.11) (1.3.1)
    Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.5->pymatgen==2019.11.11) (2.4.7)
    Requirement already satisfied: ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.10" in /usr/local/lib/python3.7/dist-packages (from ruamel.yaml>=0.15.6->pymatgen==2019.11.11) (0.2.2)
    Requirement already satisfied: decorator<5,>=4.3 in /usr/local/lib/python3.7/dist-packages (from networkx>=2.2->pymatgen==2019.11.11) (4.4.2)
    Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.7/dist-packages (from sympy->pymatgen==2019.11.11) (1.2.1)
    Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas->pymatgen==2019.11.11) (1.15.0)
    Requirement already satisfied: graphdot in /usr/local/lib/python3.7/dist-packages (0.8a17)
    Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.19.5)
    Requirement already satisfied: tqdm>=4.55 in /usr/local/lib/python3.7/dist-packages (from graphdot) (4.61.1)
    Requirement already satisfied: networkx>=2.4 in /usr/local/lib/python3.7/dist-packages (from graphdot) (2.5.1)
    Requirement already satisfied: sympy>=1.3 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.7.1)
    Requirement already satisfied: numba>=0.51.0 in /usr/local/lib/python3.7/dist-packages (from graphdot) (0.51.2)
    Requirement already satisfied: pandas>=0.24 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.1.5)
    Requirement already satisfied: pymatgen==2019.11.11 in /usr/local/lib/python3.7/dist-packages (from graphdot) (2019.11.11)
    Requirement already satisfied: ase>=3.17 in /usr/local/lib/python3.7/dist-packages (from graphdot) (3.21.1)
    Requirement already satisfied: kahypar>=1.1.4 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.1.6)
    Requirement already satisfied: mendeleev>=0.7 in /usr/local/lib/python3.7/dist-packages (from graphdot) (0.7.0)
    Requirement already satisfied: pycuda>=2019 in /usr/local/lib/python3.7/dist-packages (from graphdot) (2021.1)
    Requirement already satisfied: treelib>=1.6.1 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.6.1)
    Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.4.1)
    Requirement already satisfied: decorator<5,>=4.3 in /usr/local/lib/python3.7/dist-packages (from networkx>=2.4->graphdot) (4.4.2)
    Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.7/dist-packages (from sympy>=1.3->graphdot) (1.2.1)
    Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from numba>=0.51.0->graphdot) (57.0.0)
    Requirement already satisfied: llvmlite<0.35,>=0.34.0.dev0 in /usr/local/lib/python3.7/dist-packages (from numba>=0.51.0->graphdot) (0.34.0)
    Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24->graphdot) (2.8.1)
    Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24->graphdot) (2018.9)
    Requirement already satisfied: monty>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (2021.6.10)
    Requirement already satisfied: ruamel.yaml>=0.15.6 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (0.17.9)
    Requirement already satisfied: matplotlib>=1.5 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (3.2.2)
    Requirement already satisfied: spglib>=1.9.9.44 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (1.16.1)
    Requirement already satisfied: tabulate in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (0.8.9)
    Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (2.23.0)
    Requirement already satisfied: pydispatcher>=2.0.5 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (2.0.5)
    Requirement already satisfied: palettable>=3.1.1 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (3.3.0)
    Requirement already satisfied: six<2.0.0,>=1.15.0 in /usr/local/lib/python3.7/dist-packages (from mendeleev>=0.7->graphdot) (1.15.0)
    Requirement already satisfied: Pygments<3.0.0,>=2.8.0 in /usr/local/lib/python3.7/dist-packages (from mendeleev>=0.7->graphdot) (2.9.0)
    Requirement already satisfied: pyfiglet<0.9,>=0.8.post1 in /usr/local/lib/python3.7/dist-packages (from mendeleev>=0.7->graphdot) (0.8.post1)
    Requirement already satisfied: SQLAlchemy<2.0.0,>=1.3.23 in /usr/local/lib/python3.7/dist-packages (from mendeleev>=0.7->graphdot) (1.4.18)
    Requirement already satisfied: colorama<0.5.0,>=0.4.4 in /usr/local/lib/python3.7/dist-packages (from mendeleev>=0.7->graphdot) (0.4.4)
    Requirement already satisfied: mako in /usr/local/lib/python3.7/dist-packages (from pycuda>=2019->graphdot) (1.1.4)
    Requirement already satisfied: appdirs>=1.4.0 in /usr/local/lib/python3.7/dist-packages (from pycuda>=2019->graphdot) (1.4.4)
    Requirement already satisfied: pytools>=2011.2 in /usr/local/lib/python3.7/dist-packages (from pycuda>=2019->graphdot) (2021.2.7)
    Requirement already satisfied: future in /usr/local/lib/python3.7/dist-packages (from treelib>=1.6.1->graphdot) (0.16.0)
    Requirement already satisfied: ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.10" in /usr/local/lib/python3.7/dist-packages (from ruamel.yaml>=0.15.6->pymatgen==2019.11.11->graphdot) (0.2.2)
    Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.5->pymatgen==2019.11.11->graphdot) (2.4.7)
    Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.5->pymatgen==2019.11.11->graphdot) (1.3.1)
    Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=1.5->pymatgen==2019.11.11->graphdot) (0.10.0)
    Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->pymatgen==2019.11.11->graphdot) (2021.5.30)
    Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->pymatgen==2019.11.11->graphdot) (2.10)
    Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->pymatgen==2019.11.11->graphdot) (1.24.3)
    Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->pymatgen==2019.11.11->graphdot) (3.0.4)
    Requirement already satisfied: greenlet!=0.4.17; python_version >= "3" in /usr/local/lib/python3.7/dist-packages (from SQLAlchemy<2.0.0,>=1.3.23->mendeleev>=0.7->graphdot) (1.1.0)
    Requirement already satisfied: importlib-metadata; python_version < "3.8" in /usr/local/lib/python3.7/dist-packages (from SQLAlchemy<2.0.0,>=1.3.23->mendeleev>=0.7->graphdot) (4.5.0)
    Requirement already satisfied: MarkupSafe>=0.9.2 in /usr/local/lib/python3.7/dist-packages (from mako->pycuda>=2019->graphdot) (2.0.1)
    Requirement already satisfied: typing-extensions>=3.6.4; python_version < "3.8" in /usr/local/lib/python3.7/dist-packages (from importlib-metadata; python_version < "3.8"->SQLAlchemy<2.0.0,>=1.3.23->mendeleev>=0.7->graphdot) (3.7.4.3)
    Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata; python_version < "3.8"->SQLAlchemy<2.0.0,>=1.3.23->mendeleev>=0.7->graphdot) (3.4.1)
    Requirement already satisfied: gdown in /usr/local/lib/python3.7/dist-packages (3.6.4)
    Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from gdown) (2.23.0)
    Requirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from gdown) (4.61.1)
    Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from gdown) (1.15.0)
    Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->gdown) (3.0.4)
    Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->gdown) (2021.5.30)
    Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->gdown) (2.10)
    Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->gdown) (1.24.3)

```
%matplotlib inline
import io
import sys
sys.path.append('/usr/local/lib/python3.6/site-packages/')
import os
import urllib
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

import graphdot
from graphdot import Graph
from graphdot.graph.adjacency import AtomicAdjacency
from graphdot.graph.reorder import rcm
from graphdot.kernel.marginalized import MarginalizedGraphKernel # https://graphdot.readthedocs.io/en/latest/apidoc/graphdot.kernel.marginalized.html
from graphdot.kernel.marginalized.starting_probability import Uniform
from graphdot.model.gaussian_process import (
    GaussianProcessRegressor,
    LowRankApproximateGPR
)
from graphdot.kernel.fix import Normalization
import graphdot.microkernel as uX
import ase.io

# for getting all file names into a list under a directory
from os import listdir
# for getting file names that match certain pattern
import glob
import time
```

    /usr/local/lib/python3.7/dist-packages/graphdot/graph/__init__.py:24: UserWarning: Cannot import RDKit, `graph.from_rdkit()` will be unavailable.

      'Cannot import RDKit, `graph.from_rdkit()` will be unavailable.\n'

```
from google.colab import drive
drive.mount('/content/gdrive', force_remount=True)
```

    Mounted at /content/gdrive

```
#cd gdrive/MyDrive/Google\ Colab/Covid-Data
%cd gdrive/MyDrive/Covid-Data/
```

    /content/gdrive/.shortcut-targets-by-id/1wtzMcocuK8kPsz8K0ktjCZPkv567W6M2/Covid-Data

```
!pwd
```

    /content/gdrive/.shortcut-targets-by-id/1wtzMcocuK8kPsz8K0ktjCZPkv567W6M2/Covid-Data

## load the data

```
files  = ['uncharged_NSP15_6W01_A_3_H.Orderable_zinc_db_enaHLL.2col.csv.1.xz']
dataset = pd.read_pickle(files[0]) # length of each csv file is 100000
```

```
target = 'energy'
N_train = 1000
N_test = 2000

np.random.seed(0) # with the same seed, multiple runs can have the same selected index
train_sel = np.random.choice(len(dataset), N_train, replace=False)
test_sel = np.random.choice(np.setxor1d(np.arange(len(dataset)), train_sel), N_test, replace=False)
train = dataset.iloc[train_sel]
test = dataset.iloc[test_sel]
```

```
train.head()
```

      energy
      smiles
      graphs

      3582
      -2.874773
      CN(Cc1nc(no1)c2cccc(c2)Br)C(=O)Nc3cccc(c3)OC
      Graph(nodes={'!i': [ 0, 1, 2, 3, 4, 5, 6, 7, 8...

      60498
      -3.469760
      CCOC(=O)c1ccc(c(c1)C)NC(=S)NCCOc2ccc(cc2)C
      Graph(nodes={'!i': [ 0, 1, 2, 3, 4, 5, 6, 7, 8...

      53227
      -0.487984
      Cc1ccc(cc1S(=O)(=O)Nc2ccccc2OC)NC(=O)c3nc4nc(c...
      Graph(nodes={'!i': [ 0, 1, 2, 3, 4, 5, 6, 7, 8...

      21333
      -1.808283
      COc1ccc(cc1OC)CCNC(=O)COc2ccc(cc2)[N@@](Cc3ccc...
      Graph(nodes={'!i': [ 0, 1, 2, 3, 4, 5, 6, 7, 8...

      3885
      -2.457642
      Cc1cc(ccc1NCc2ccc(c(c2OC)C)OC)Br
      Graph(nodes={'!i': [ 0, 1, 2, 3, 4, 5, 6, 7, 8...

### Baseline mode

```
gpr_base = GaussianProcessRegressor(
    # kernel is the covariance function of the gaussian process (GP)
    kernel=Normalization( # kernel equals to normalization -> normalizes a kernel using the cosine of angle formula, k_normalized(x,y) = k(x,y)/sqrt(k(x,x)*k(y,y))
        # graphdot.kernel.fix.Normalization(kernel), set kernel as marginalized graph kernel, which is used to calculate the similarity between 2 graphs
        # implement the random walk-based graph similarity kernel as Kashima, H., Tsuda, K., & Inokuchi, A. (2003). Marginalized kernels between labeled graphs. ICML
        MarginalizedGraphKernel(
            # node_kernel - A kernelet that computes the similarity between individual nodes
            # uX - graphdot.microkernel - microkernels are positive-semidefinite functions between individual nodes and edges of graphs
            node_kernel=uX.Additive( # addition of kernal matrices: sum of k_a(X_a, Y_a) cross for a in features
                # uX.Constant - a kernel that returns a constant value, always mutlipled with other microkernels as an adjustable weight
                #   c, the first input arg. as 0.5, (0.01, 10) the lower and upper bounds of c that is allowed to vary during hyperpara. optimizartion
                # uX.KroneckerDelta - a kronecker delta returns 1 when two features are equal and return h (the first input arg here, which is 0.5 in this case) otherwise
                #   (0.1, 0.9) the lower and upper bounds that h is allowed to vary during hyperpara. optimization
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # the 2nd element of graphdot.graph.Graph.nodes
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)), # the 3rd element of graphdot.graph.Graph.nodes
                # uX.SquareExponential - Equ. 26 in the paper
                # input arg. length_sacle is a float32, set as 1 in this case, which correspond to approx. 1 of the kernal value.
                # This is used to determins how quicklys should the kernel decay to zero.
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0), # the 4th element of graphdot.graph.Graph.nodes
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # the 5th element of graphdot.graph.Graph.nodes
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0), # the 6th element of graphdot.graph.Graph.nodes
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # the 7th element of graphdot.graph.Graph.nodes
                # uX.Convolution - a convolutional microkernel which averages evaluations of a base microkernel between pairs pf elememts of two variable-length feature sequences
                # uX.KroneckerDelta as the base kernel
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9))) # the 8th element of graphdot.graph.Graph.nodes
            ).normalized,
            # edge_kernel - A kernelet that computes the similarity between individual edge
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # the 3rd element of graphdot.graph.Graph.nodes
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # the 4th element of graphdot.graph.Graph.nodes
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)), # the 5th element of graphdot.graph.Graph.nodes
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)), # the 6th element of graphdot.graph.Graph.nodes
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)) # the 7th element of graphdot.graph.Graph.nodes
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'), # the strating probability of the random walk on each node
            q=0.05 # the probability for the random walk to stop during each step
        )
    ),
    alpha=1e-4, # value added to the diagonal of the kernel matrix during fitting
    optimizer=True, # default optimizer of L-BFGS-B based on scipy.optimize.minimize
    normalize_y=True, # normalize the y values so taht the means and variance is 0 and 1, repsectively. Will be reversed when predicions are returned
    regularization='+', # alpha (1e-4 in this case) is added to the diagonals of the kernal matrix
)
```

```
gpr_base.fit(train.graphs, train[target], repeat=1, verbose=True)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.8712e+06|   2.442e+07|  2.8785e+06|     -7290.9|  8.7027e+06|        28|      0.26|
    |  1.9314e+06|  2.0704e+07|  1.9382e+06|     -6742.8|  8.0163e+06|        21|      0.24|
    |  1.2904e+06|  1.5716e+07|  1.2967e+06|     -6251.9|  7.0807e+06|        19|      0.24|
    |  1.0053e+06|    1.23e+07|  1.0113e+06|     -5971.1|  6.4092e+06|        19|      0.24|
    |  8.2527e+05|  9.7212e+06|  8.3102e+05|     -5755.3|  5.8195e+06|        18|      0.26|
    |  7.1177e+05|  8.0825e+06|  7.1736e+05|     -5588.7|  5.3683e+06|        18|      0.26|
    |   6.491e+05|  7.1034e+06|  6.5459e+05|     -5488.7|  5.0418e+06|        17|      0.26|
    |  6.2933e+05|  7.0338e+06|  6.3477e+05|     -5434.6|  4.9605e+06|        18|      0.24|
    |  6.0995e+05|   6.643e+06|  6.1537e+05|       -5413|  4.8475e+06|        17|      0.26|
    |  6.0543e+05|   6.541e+06|  6.1083e+05|     -5407.5|  4.8008e+06|        17|      0.24|
    |  6.0282e+05|  6.4987e+06|  6.0823e+05|     -5402.8|  4.7787e+06|        17|      0.26|
    |  6.0539e+05|  6.6515e+06|  6.1079e+05|     -5395.2|  4.8309e+06|        17|      0.23|
    |  6.0082e+05|  6.5218e+06|  6.0622e+05|     -5394.8|  4.7891e+06|        17|      0.26|
    |  5.9966e+05|  6.4945e+06|  6.0505e+05|     -5393.3|  4.7869e+06|        17|      0.24|
    |  5.9789e+05|  6.4493e+06|  6.0328e+05|     -5390.6|  4.7725e+06|        17|      0.25|
    |  5.9631e+05|  6.4134e+06|   6.017e+05|       -5389|  4.7604e+06|        17|      0.24|
    |  5.9542e+05|  6.4022e+06|  6.0081e+05|     -5387.4|  4.7518e+06|        17|      0.24|
    |  5.9529e+05|  6.4276e+06|  6.0067e+05|     -5386.2|  4.7508e+06|        17|      0.25|
    |  5.9512e+05|  6.4197e+06|   6.005e+05|     -5386.6|  4.7449e+06|        17|      0.25|
    |  5.9505e+05|  6.4169e+06|  6.0044e+05|     -5387.3|   4.741e+06|        17|      0.25|
    |  5.9505e+05|  6.4166e+06|  6.0044e+05|     -5387.6|  4.7385e+06|        17|      0.23|
    Optimization result:
          fun: 595047.7176175278
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 6.41250071e+02,  2.87639317e+02,  6.60924244e+01, -1.26233962e+03,
            1.36704669e+04,  3.60984806e+02,  0.00000000e+00, -6.10147407e+01,
            1.77405394e+02,  1.92475967e+03,  1.01236129e-20,  1.37562821e+02,
            1.25076750e+02, -1.40172516e+03,  1.76148081e+04, -5.33872996e+02,
            1.95074428e+03,  1.76076704e+03,  3.01902646e+03, -7.59176880e+02,
            3.09026926e+02,  2.55232585e+02,  0.00000000e+00, -7.26441523e+02,
            2.93488326e+02])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 21
          nit: 19
       status: 0
      success: True
            x: array([-9.21034037, -3.93990556, -1.63179874,  1.44277989, -2.30258509,
           -4.3780243 ,  0.        , -3.29916623, -1.99173454,  2.30055116,
           -2.42034321, -3.65354201, -1.76764907,  1.69793063, -2.30258509,
            0.70526171, -2.30258509,  1.23550411, -2.30258509, -2.43697879,
           -1.76401895, -3.49472749, -0.22314355, -2.32417453, -1.83718902])

    <graphdot.model.gaussian_process.gpr.GaussianProcessRegressor at 0x7f7072be4390>

```
gpr_base.kernel.hyperparameters.node_kernel.aromatic.lhs
```

    c : 0.019450051524810327

```
gpr_base.kernel.hyperparameters.edge_kernel
```

    aromatic : Multiply
    	lhs : Constant
    		c : 2.0243764247157046
    	rhs : KroneckerDelta
    		h : 0.10000000000000002
    conjugated : Multiply
    	lhs : Constant
    		c : 3.4401122931051025
    	rhs : KroneckerDelta
    		h : 0.10000000000000002
    order : Multiply
    	lhs : Constant
    		c : 0.08742458077769351
    	rhs : KroneckerDelta
    		h : 0.17135481208357772
    ring_stereo : Multiply
    	lhs : Constant
    		c : 0.03035701976162682
    	rhs : KroneckerDelta
    		h : 0.8
    stereo : Multiply
    	lhs : Constant
    		c : 0.09786419450583186
    	rhs : KroneckerDelta
    		h : 0.1592644871331458

```
mu = gpr_base.predict(train.graphs)
```

```
plt.scatter(train[target], mu)
plt.plot(np.linspace(-9, 3), np.linspace(-9, 3), c = 'r')
plt.xlim(-9, 3)
plt.ylim(-9, 3)
plt.show()
```

```
print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

    Training set
    MAE: 0.1026528897885943
    RMSE: 0.1559697478035153

```
mu_test = gpr_base.predict(test.graphs)
```

```
plt.scatter(test[target], mu_test)
plt.plot(np.linspace(-9, 3), np.linspace(-9, 3), c = 'r')
plt.xlim(-9, 3)
plt.ylim(-9, 3)
plt.show()
```

```
print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

    Test set
    MAE: 1.3984523944497356
    RMSE: 1.7902476214464011

### Model 2

```
gpr2 = GaussianProcessRegressor(
    kernel=Normalization(
        MarginalizedGraphKernel(
            node_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
            ).normalized,
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'),
            q=0.05
        )
    ),
    alpha=1e-5, #different from gpr in alpha where gpr_base alpha is 1e-4
    optimizer=True,
    normalize_y=True,
    regularization='+',
)
```

```
gpr2.fit(train.graphs, train[target], repeat=3, verbose=True)
```

```
mu = gpr2.predict(train.graphs)
plt.scatter(train[target], mu)
plt.plot(np.linspace(-9, 3), np.linspace(-9, 3), c = 'r')
plt.xlim(-9, 3)
plt.ylim(-9, 3)
plt.show()
```

```
print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

    Training set
    MAE: 0.01420440124959926
    RMSE: 0.021649804308151027

```
mu_test = gpr2.predict(test.graphs)
plt.scatter(test[target], mu_test)
plt.plot(np.linspace(-10, 4), np.linspace(-10, 4), c = 'r')
plt.xlim(-10, 4)
plt.ylim(-10, 4)
plt.show()
```

```
print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

    Test set
    MAE: 1.517212238428167
    RMSE: 1.943288841802438

```
gpr2.kernel.hyperparameters
```

### Model 3

```
gpr3 = GaussianProcessRegressor(
    kernel=Normalization(
        MarginalizedGraphKernel(
            node_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
            ).normalized,
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'),
            q=0.05
        )
    ),
    alpha=1e-3, #different from gpr in alpha where gpr_base's alpha is 1e-4
    optimizer=True,
    normalize_y=True,
    regularization='+',
)
```

```
gpr3.fit(train.graphs, train[target], repeat=3, verbose=True)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  5.2754e+05|  1.7773e+06|  5.3362e+05|     -6084.7|  9.0549e+05|        25|      0.28|
    |  4.4224e+05|  1.9515e+06|  4.4805e+05|     -5808.2|  8.7902e+05|        20|      0.27|
    |  3.1405e+05|  1.8185e+06|  3.1934e+05|     -5298.7|  8.0593e+05|        18|      0.24|
    |  2.8469e+05|  1.6176e+06|  2.8985e+05|       -5163|  7.8268e+05|        17|      0.26|
    |  2.6118e+05|  1.4683e+06|  2.6622e+05|     -5042.3|  7.5644e+05|        17|      0.24|
    |  2.5267e+05|  1.3881e+06|  2.5767e+05|     -4997.8|  7.4692e+05|        16|      0.26|
    |   2.496e+05|  1.3914e+06|  2.5458e+05|       -4978|  7.4218e+05|        17|      0.25|
    |  2.4851e+05|  1.3833e+06|  2.5349e+05|     -4971.9|  7.4096e+05|        17|      0.25|
    |  2.4817e+05|  1.3928e+06|  2.5314e+05|     -4967.6|  7.3437e+05|        17|      0.24|
    |  2.4724e+05|  1.3771e+06|  2.5221e+05|     -4964.6|  7.3871e+05|        17|      0.23|
    |  2.4712e+05|  1.3738e+06|  2.5208e+05|     -4964.4|  7.3983e+05|        17|       0.3|
    |  2.4696e+05|  1.3707e+06|  2.5192e+05|     -4963.8|  7.4051e+05|        17|      0.26|
    |  2.4668e+05|  1.3678e+06|  2.5164e+05|     -4962.6|  7.4057e+05|        17|      0.26|
    |  2.4641e+05|  1.3713e+06|  2.5137e+05|       -4960|   7.393e+05|        17|      0.24|
    |  2.4626e+05|  1.3699e+06|  2.5122e+05|     -4959.3|  7.3801e+05|        17|      0.24|
    |  2.4623e+05|  1.3693e+06|  2.5119e+05|     -4959.3|  7.3765e+05|        17|      0.24|
    |  2.4624e+05|  1.3696e+06|   2.512e+05|     -4959.2|  7.3767e+05|        17|      0.25|
    |  2.4624e+05|  1.3693e+06|   2.512e+05|     -4959.3|  7.3763e+05|        17|      0.24|
    |  2.4623e+05|  1.3693e+06|  2.5119e+05|     -4959.3|  7.3758e+05|        17|      0.24|
    |  2.4624e+05|  1.3693e+06|   2.512e+05|     -4959.3|   7.377e+05|        17|      0.26|
    |  2.4624e+05|  1.3693e+06|   2.512e+05|     -4959.3|  7.3766e+05|        17|      0.28|
    |  2.4624e+05|  1.3694e+06|   2.512e+05|     -4959.3|  7.3766e+05|        17|      0.26|
    |  2.4623e+05|  1.3692e+06|  2.5119e+05|     -4959.3|  7.3767e+05|        17|      0.26|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  4.3132e+05|  2.1991e+06|  4.3709e+05|     -5766.2|  8.8044e+05|        20|      0.23|
    |  3.8205e+05|  2.0562e+06|  3.8763e+05|     -5587.8|  8.5782e+05|        19|      0.23|
    |  3.1542e+05|  1.9024e+06|  3.2073e+05|     -5313.3|  8.2092e+05|        19|      0.25|
    |  2.8239e+05|  1.7354e+06|  2.8753e+05|     -5138.7|  7.6999e+05|        19|      0.24|
    |  2.5844e+05|  1.4472e+06|  2.6347e+05|     -5032.7|  7.6497e+05|        17|      0.25|
    |  2.5462e+05|   1.423e+06|  2.5963e+05|     -5010.1|  7.5654e+05|        17|      0.24|
    |  2.4941e+05|  1.3953e+06|  2.5438e+05|     -4977.7|  7.4492e+05|        17|      0.23|
    |  2.4782e+05|  1.3818e+06|  2.5279e+05|     -4968.9|  7.3616e+05|        17|      0.24|
    |  2.4685e+05|  1.3767e+06|  2.5181e+05|     -4963.2|  7.3744e+05|        17|      0.23|
    |  2.4666e+05|  1.3771e+06|  2.5162e+05|     -4960.4|  7.3963e+05|        17|      0.25|
    |  2.4631e+05|  1.3714e+06|  2.5127e+05|     -4959.9|  7.3887e+05|        17|      0.23|
    |  2.4624e+05|  1.3688e+06|   2.512e+05|     -4960.1|  7.3878e+05|        17|      0.23|
    |  2.4618e+05|  1.3657e+06|  2.5114e+05|     -4960.1|  7.3874e+05|        17|      0.23|
    |  2.4615e+05|  1.3645e+06|  2.5111e+05|     -4959.9|  7.3868e+05|        17|      0.25|
    |  2.4608e+05|  1.3633e+06|  2.5103e+05|     -4959.5|  7.3863e+05|        17|      0.23|
    |  2.4597e+05|  1.3625e+06|  2.5093e+05|     -4958.9|  7.3829e+05|        17|      0.23|
    |  2.4593e+05|  1.3645e+06|  2.5089e+05|     -4958.5|   7.376e+05|        17|      0.25|
    |  2.4589e+05|  1.3641e+06|  2.5085e+05|     -4958.3|  7.3836e+05|        17|      0.24|
    |  2.4588e+05|  1.3646e+06|  2.5084e+05|     -4958.2|  7.3802e+05|        17|      0.23|
    |  2.4585e+05|  1.3647e+06|  2.5081e+05|     -4958.2|  7.3765e+05|        17|      0.28|
    |  2.4581e+05|  1.3635e+06|  2.5077e+05|     -4958.3|  7.3747e+05|        17|      0.25|
    |  2.4579e+05|  1.3623e+06|  2.5074e+05|     -4958.3|  7.3782e+05|        17|      0.25|
    |  2.4577e+05|   1.359e+06|  2.5073e+05|     -4958.8|  7.3883e+05|        17|      0.27|
    |  2.4576e+05|  1.3601e+06|  2.5072e+05|     -4958.6|   7.387e+05|        17|      0.24|
    |  2.4576e+05|  1.3607e+06|  2.5072e+05|     -4958.5|  7.3859e+05|        17|      0.23|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  5.7164e+05|  1.6233e+06|  5.7783e+05|     -6194.5|  8.9548e+05|        21|      0.25|
    |  4.7796e+05|  1.8426e+06|  4.8386e+05|     -5904.1|  8.7295e+05|        20|      0.26|
    |  3.3798e+05|  1.8581e+06|  3.4337e+05|     -5394.5|  8.2045e+05|        18|      0.24|
    |  2.9137e+05|  1.7091e+06|  2.9656e+05|     -5188.7|  7.8714e+05|        19|      0.23|
    |  2.6899e+05|  1.5524e+06|  2.7408e+05|     -5081.7|  7.6873e+05|        18|      0.25|
    |  2.5569e+05|  1.4244e+06|  2.6071e+05|     -5015.7|  7.5632e+05|        17|      0.25|
    |  2.5073e+05|  1.4143e+06|  2.5571e+05|     -4982.2|  7.4341e+05|        18|      0.25|
    |  2.4974e+05|  1.4008e+06|  2.5472e+05|     -4979.3|  7.4547e+05|        17|      0.23|
    |  2.4886e+05|  1.3879e+06|  2.5384e+05|     -4975.9|  7.4569e+05|        17|      0.24|
    |  2.4798e+05|  1.3761e+06|  2.5295e+05|     -4971.5|  7.4426e+05|        17|      0.23|
    |  2.4717e+05|   1.378e+06|  2.5214e+05|     -4965.5|  7.4085e+05|        17|      0.27|
    |  2.4669e+05|  1.3741e+06|  2.5166e+05|     -4962.6|  7.3887e+05|        17|      0.24|
    |   2.464e+05|  1.3657e+06|  2.5136e+05|     -4960.9|   7.412e+05|        17|      0.23|
    |  2.4628e+05|  1.3668e+06|  2.5124e+05|     -4960.5|  7.3916e+05|        17|      0.25|
    |  2.4624e+05|  1.3678e+06|   2.512e+05|     -4960.2|  7.3857e+05|        17|      0.23|
    |  2.4619e+05|  1.3698e+06|  2.5115e+05|     -4959.9|  7.3793e+05|        17|      0.24|
    |  2.4614e+05|  1.3703e+06|   2.511e+05|     -4959.6|  7.3771e+05|        17|      0.24|
    |  2.4595e+05|  1.3683e+06|  2.5091e+05|     -4959.1|  7.3767e+05|        17|      0.24|
    |  2.4602e+05|  1.3688e+06|  2.5098e+05|     -4958.9|  7.3875e+05|        17|      0.24|
    |  2.4592e+05|  1.3683e+06|  2.5088e+05|     -4958.9|  7.3796e+05|        17|      0.23|
    |  2.4589e+05|  1.3655e+06|  2.5085e+05|       -4959|  7.3856e+05|        17|      0.24|
    |  2.4586e+05|  1.3623e+06|  2.5082e+05|     -4959.2|  7.3918e+05|        17|      0.24|
    |  2.4584e+05|  1.3616e+06|   2.508e+05|     -4959.3|  7.3917e+05|        17|      0.24|
    |  2.4583e+05|  1.3615e+06|  2.5079e+05|     -4959.3|  7.3903e+05|        17|      0.23|
    |  2.4579e+05|  1.3614e+06|  2.5075e+05|     -4959.3|  7.3865e+05|        17|      0.24|
    |  2.4578e+05|   1.362e+06|  2.5074e+05|     -4959.2|  7.3874e+05|        17|      0.24|
    |  2.4576e+05|  1.3621e+06|  2.5072e+05|     -4959.1|   7.391e+05|        17|      0.23|
    |  2.4576e+05|  1.3624e+06|  2.5072e+05|     -4959.1|  7.3901e+05|        17|      0.27|
    Optimization result:
          fun: 245757.64498811733
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 1.35950050e+02,  3.77357938e+01,  1.05734705e+01, -2.13075274e+01,
            3.36341811e+03,  6.74591558e+01,  0.00000000e+00,  1.41114101e+00,
            7.33894523e+00, -1.51578382e+02,  0.00000000e+00,  1.62796677e+01,
            5.68562303e+00,  5.22025613e+01,  4.39601078e+03, -3.71667507e+01,
            5.31204650e+02,  1.71062274e+01,  6.87112378e+02,  6.34393286e+01,
            7.78485000e+01,  1.29002790e+01,  0.00000000e+00, -5.61367681e+01,
            4.45773454e+01])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 25
          nit: 24
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -1.33774258,  1.50058885, -2.30258509,
           -4.60517019, -0.21165109, -4.60517019, -2.30258509,  2.2686602 ,
           -4.07543091, -4.60517019, -2.30258509,  1.77034144, -2.30258509,
            1.30229701, -2.30258509,  1.57009793, -2.30258509, -0.52372387,
           -2.30258509, -4.60517019, -0.10536052, -1.31858519, -2.30258509])

    <graphdot.model.gaussian_process.gpr.GaussianProcessRegressor at 0x7fb9a0f83150>

```
mu = gpr3.predict(train.graphs)
plt.scatter(train[target], mu)
#plt.plot(np.linspace(-9, 3), np.linspace(-9, 3), c = 'r')
#plt.xlim(-9, 3)
#plt.ylim(-9, 3)
plt.show()
```

```
print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

    Training set
    MAE: 0.3711113759832458
    RMSE: 0.5245520571276874

```
mu_test = gpr3.predict(test.graphs)
plt.scatter(test[target], mu_test)
#plt.plot(np.linspace(-10, 4), np.linspace(-10, 4), c = 'r')
#plt.xlim(-10, 4)
#plt.ylim(-10, 4)
plt.show()
```

```
print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

    Test set
    MAE: 1.1498112446483284
    RMSE: 1.4624191158480997

### Model 4

```
gpr4 = GaussianProcessRegressor(
    kernel=Normalization(
        MarginalizedGraphKernel(
            node_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
            ).normalized,
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'),
            q=0.05
        )
    ),
    alpha=1e-2, #different from gpr in alpha where gpr_base's alpha is 1e-4
    optimizer=True,
    normalize_y=True,
    regularization='+',
)
```

```
gpr4.fit(train.graphs, train[target], repeat=3, verbose=True)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |       66517|       88265|       70813|     -4296.2|       90905|        21|      0.28|
    |       61455|  1.0409e+05|       65648|     -4193.5|       88757|        19|      0.25|
    |       50869|  1.1321e+05|       54789|     -3920.3|       81573|        17|      0.23|
    |       49285|  1.0995e+05|       53162|     -3876.6|       80232|        17|      0.28|
    |       48321|  1.0553e+05|       52167|       -3845|       78704|        16|      0.24|
    |       47912|  1.0664e+05|       51747|     -3834.9|       78334|        17|      0.25|
    |       47815|  1.0611e+05|       51648|     -3832.7|       78473|        17|      0.25|
    |       47734|  1.0602e+05|       51565|     -3830.1|       78399|        17|      0.24|
    |       47721|   1.056e+05|       51549|     -3828.8|       78754|        17|      0.25|
    |       47682|  1.0583e+05|       51510|     -3827.7|       78471|        17|      0.25|
    |       47662|  1.0594e+05|       51489|     -3827.2|       78334|        17|      0.28|
    |       47637|  1.0591e+05|       51463|     -3826.7|       78258|        17|      0.24|
    |       47613|  1.0565e+05|       51439|     -3826.3|       78273|        17|      0.24|
    |       47587|  1.0505e+05|       51413|     -3826.2|       78397|        17|      0.25|
    |       47584|  1.0508e+05|       51410|       -3826|       78364|        17|      0.25|
    |       47579|  1.0506e+05|       51404|     -3825.6|       78277|        17|      0.23|
    |       47574|  1.0486e+05|       51399|     -3825.5|       78232|        17|      0.25|
    |       47570|    1.04e+05|       51397|     -3826.4|       78274|        17|      0.28|
    |       47576|  1.0386e+05|       51402|     -3825.9|       78262|        17|      0.24|
    |       47569|  1.0395e+05|       51395|     -3826.1|       78271|        17|      0.24|
    |       47567|  1.0417e+05|       51393|     -3826.1|       78324|        17|      0.28|
    |       47566|  1.0407e+05|       51392|     -3826.3|       78362|        17|      0.23|
    |       47566|  1.0398e+05|       51392|     -3826.4|       78386|        17|      0.24|
    |       47566|  1.0405e+05|       51393|     -3826.3|       78366|        17|      0.24|
    |       47566|  1.0406e+05|       51392|     -3826.3|       78363|        17|      0.25|
    |       47566|  1.0407e+05|       51392|     -3826.3|       78362|        17|      0.24|
    |       47566|  1.0407e+05|       51392|     -3826.3|       78361|        17|      0.25|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |       73087|       31386|       77530|       -4443|       95203|        16|      0.26|
    |       69027|       48566|       73397|     -4370.2|       93280|        18|      0.25|
    |       56295|  1.0441e+05|       60364|     -4068.9|       85503|        19|      0.26|
    |       49629|  1.0815e+05|       53493|     -3864.5|       76173|        17|      0.26|
    |       48176|  1.0901e+05|       52013|     -3837.5|       77267|        17|      0.26|
    |       49949|   1.003e+05|       53850|       -3901|       82147|        18|      0.26|
    |       47973|   1.074e+05|       51809|     -3836.1|       78349|        18|      0.26|
    |       47868|  1.0647e+05|       51701|     -3833.7|       78588|        17|      0.25|
    |       47825|  1.0603e+05|       51658|     -3832.9|       78699|        17|      0.25|
    |       47758|  1.0569e+05|       51589|     -3831.2|       78709|        17|      0.25|
    |       47712|  1.0601e+05|       51542|     -3829.4|       78587|        17|      0.26|
    |       47692|  1.0615e+05|       51520|     -3828.2|       78413|        17|      0.24|
    |       47690|  1.0616e+05|       51518|     -3828.1|       78396|        17|      0.23|
    |       47681|  1.0614e+05|       51508|     -3827.4|       78346|        17|      0.24|
    |       47681|  1.0645e+05|       51508|     -3827.2|       78253|        17|      0.24|
    |       47674|  1.0629e+05|       51501|     -3827.1|       78299|        17|      0.25|
    |       47654|  1.0622e+05|       51481|     -3826.3|       78288|        17|      0.25|
    |       47645|  1.0603e+05|       51471|     -3826.2|       78342|        17|      0.26|
    |       47644|  1.0605e+05|       51471|     -3826.4|       78352|        17|      0.26|
    |       47644|  1.0604e+05|       51471|     -3826.3|       78347|        17|      0.24|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |       67828|  1.0852e+05|       72138|     -4309.5|       89137|        24|      0.25|
    |       62412|  1.1469e+05|       66616|       -4204|       87873|        21|      0.25|
    |       56410|   1.222e+05|       60478|     -4067.7|       85994|        20|      0.26|
    |       51080|  1.1784e+05|       55004|     -3924.2|       81494|        18|      0.26|
    |       49634|  1.1413e+05|       53522|     -3888.1|       80979|        18|      0.24|
    |       48936|  1.0759e+05|       52800|     -3863.2|       79659|        17|      0.24|
    |       48434|  1.0891e+05|       52284|     -3850.2|       79231|        17|      0.24|
    |       48204|  1.0827e+05|       52049|     -3844.6|       79132|        18|      0.25|
    |       47886|  1.0625e+05|       51723|     -3836.7|       78967|        17|      0.24|
    |       48724|  1.0903e+05|       52577|     -3853.3|       76871|        19|      0.24|
    |       47877|  1.0635e+05|       51713|     -3836.1|       78785|        18|      0.24|
    |       48134|  1.0654e+05|       51976|     -3841.5|       78087|        18|      0.24|
    |       47877|  1.0635e+05|       51712|       -3836|       78744|        17|      0.23|
    |       47789|  1.0549e+05|       51623|     -3834.3|       78780|        17|      0.24|
    |       47692|  1.0404e+05|       51525|     -3832.6|       78739|        17|      0.24|
    |       47665|  1.0386e+05|       51497|     -3831.4|       78613|        17|      0.24|
    |       47626|  1.0394e+05|       51456|     -3829.6|       78486|        17|      0.26|
    |       47604|  1.0463e+05|       51432|     -3827.8|       78343|        17|      0.26|
    |       47590|  1.0446e+05|       51417|     -3827.3|       78398|        17|      0.24|
    |       47588|  1.0442e+05|       51415|     -3827.1|       78415|        17|      0.26|
    |       47586|  1.0443e+05|       51413|     -3826.9|       78414|        17|      0.28|
    |       47582|   1.045e+05|       51409|     -3826.5|       78406|        17|      0.24|
    |       47579|  1.0481e+05|       51405|     -3825.9|       78253|        17|      0.23|
    |       47575|  1.0471e+05|       51401|       -3826|       78318|        17|      0.24|
    |       47573|  1.0459e+05|       51399|     -3826.2|       78354|        17|      0.24|
    |       47571|  1.0449e+05|       51397|     -3826.3|       78369|        17|      0.24|
    |       47568|  1.0432e+05|       51394|     -3826.5|       78382|        17|      0.23|
    |       47566|  1.0421e+05|       51393|     -3826.5|       78376|        17|      0.24|
    |       47565|   1.042e+05|       51391|     -3826.3|       78347|        17|      0.26|
    |       47564|  1.0411e+05|       51390|     -3826.1|       78329|        17|      0.24|
    |       47564|  1.0402e+05|       51390|     -3826.2|       78343|        17|      0.23|
    |       47564|  1.0392e+05|       51390|     -3826.3|       78361|        17|      0.26|
    |       47563|  1.0399e+05|       51389|     -3826.2|       78348|        17|      0.24|
    Optimization result:
          fun: 47563.16826613996
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 1.03860634e+01,  3.99556925e+00,  4.34356887e-01, -4.38765528e+00,
            3.35685830e+02,  5.48613650e+00,  0.00000000e+00,  3.74597978e+00,
            3.71923847e-01, -1.86677689e+01,  1.80494389e-04,  2.34556512e+00,
            6.89757782e-01,  7.46525570e+00,  3.86435984e+02, -4.08724178e+00,
            6.25487975e+01,  3.79069496e+00,  5.00876053e+01, -1.47395577e+00,
            1.52830838e+01,  1.49931223e+00,  0.00000000e+00,  2.53256179e-01,
            2.78310073e-01])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 33
          nit: 29
       status: 0
      success: True
            x: array([-9.21034037, -4.23992363, -2.30258509,  1.70454451, -2.30258509,
           -4.60517019, -0.39405819, -4.60517019, -1.7367717 ,  2.30258509,
           -1.86521329, -4.33629426, -2.08030139,  1.84897251, -2.30258509,
            2.14248562, -2.30258509,  1.93608271, -2.30258509,  0.72987226,
           -2.30258509, -3.7783557 , -1.83514442, -3.16885023, -2.30258509])

    <graphdot.model.gaussian_process.gpr.GaussianProcessRegressor at 0x7fb9896f5fd0>

```
mu = gpr4.predict(train.graphs)
plt.scatter(train[target], mu)
#plt.plot(np.linspace(-9, 3), np.linspace(-9, 3), c = 'r')
#plt.xlim(-9, 3)
#plt.ylim(-9, 3)
plt.show()
```

```
print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

    Training set
    MAE: 0.6721642416785486
    RMSE: 0.9001504628434619

```
mu_test = gpr4.predict(test.graphs)
plt.scatter(test[target], mu_test)
#plt.plot(np.linspace(-10, 4), np.linspace(-10, 4), c = 'r')
#plt.xlim(-10, 4)
#plt.ylim(-10, 4)
plt.show()
```

```
print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

    Test set
    MAE: 0.996800387138675
    RMSE: 1.2687098498475842

### Model 5

```
gpr5 = GaussianProcessRegressor(
    kernel=Normalization(
        MarginalizedGraphKernel(
            node_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
            ).normalized,
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'),
            q=0.05
        )
    ),
    alpha=1e-1, #different from gpr in alpha where gpr_base's alpha is 1e-4
    optimizer=True,
    normalize_y=True,
    regularization='+',
)
```

```
gpr5.fit(train.graphs, train[target], repeat=3, verbose=True)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |      5933.5|      3681.9|        8130|     -2196.5|        9095|        23|      0.27|
    |      5700.6|      4368.7|      7866.6|       -2166|        8897|        21|      0.23|
    |      5244.7|      4143.6|      7321.1|     -2076.4|      8114.4|        17|      0.24|
    |      5161.9|      4261.1|      7222.8|       -2061|      8040.9|        17|      0.23|
    |      5123.7|      4119.8|      7182.2|     -2058.5|      8116.4|        17|      0.25|
    |      5100.9|      4055.4|      7155.4|     -2054.5|      8044.2|        17|      0.25|
    |      5081.3|      3976.5|      7132.4|     -2051.1|      7995.7|        17|      0.24|
    |      5078.6|      3971.4|      7128.4|     -2049.9|      7991.1|        17|      0.24|
    |        5077|      3973.1|      7126.9|     -2049.9|      7990.8|        17|      0.24|
    |      5075.4|      3971.5|      7125.2|     -2049.7|      7988.9|        17|      0.24|
    |        5074|      3966.8|      7123.6|     -2049.5|      7985.4|        17|      0.26|
    |      5071.8|      3952.7|        7121|     -2049.2|      7981.1|        17|      0.25|
    |      5068.8|      3927.3|      7117.9|     -2049.1|      7982.1|        17|      0.26|
    |      5067.9|      3915.3|      7117.1|     -2049.1|      7980.4|        17|      0.25|
    |      5067.8|      3917.4|      7116.9|     -2049.1|      7979.1|        17|      0.25|
    |      5067.8|      3919.2|      7116.8|       -2049|      7978.5|        17|      0.24|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |      6316.2|      4166.3|      8544.1|     -2227.9|        9356|        21|      0.23|
    |      5897.8|      4552.2|      8086.8|       -2189|      9123.3|        20|      0.25|
    |      5402.1|      4470.5|      7523.5|     -2121.3|      8676.4|        18|      0.23|
    |      5263.9|      4484.2|        7355|     -2091.2|      8445.2|        18|      0.26|
    |      5192.2|      4382.6|      7262.9|     -2070.7|      8189.6|        18|      0.25|
    |      5121.6|      4136.4|      7180.3|     -2058.7|      8143.5|        17|      0.24|
    |      5111.8|        4133|      7163.8|       -2052|        7978|        17|      0.23|
    |      5100.7|      4164.8|      7150.7|     -2049.9|      7976.5|        17|      0.24|
    |        5094|        4154|        7143|       -2049|      7983.6|        17|      0.23|
    |      5089.6|        4131|      7138.2|     -2048.5|      7988.5|        17|      0.23|
    |      5086.1|      4087.2|      7133.9|     -2047.8|      7974.4|        17|      0.23|
    |      5082.2|      4085.6|        7130|     -2047.8|      7979.5|        17|      0.26|
    |      5079.1|      4076.2|      7126.9|     -2047.9|      7977.4|        17|      0.23|
    |      5078.3|      4068.3|      7126.3|       -2048|      7976.8|        17|      0.26|
    |      5075.3|      3953.8|        7125|     -2049.7|      7975.3|        17|      0.23|
    |      5073.1|      3984.2|      7122.2|     -2049.1|      7987.6|        17|      0.26|
    |      5072.6|      3973.4|      7121.8|     -2049.2|      7988.8|        17|      0.28|
    |      5071.1|      3934.7|      7120.4|     -2049.3|      7985.3|        17|      0.26|
    |      5069.9|        3928|      7119.1|     -2049.2|      7984.2|        17|      0.25|
    |      5068.5|      3913.3|      7117.8|     -2049.3|      7983.9|        17|      0.24|
    |      5067.8|      3915.3|      7116.6|     -2048.8|      7969.8|        17|      0.25|
    |      5067.5|      3903.7|      7117.2|     -2049.7|      7993.3|        17|      0.25|
    |      5067.3|      3908.8|      7116.5|     -2049.2|      7983.6|        17|      0.24|
    |      5067.1|        3910|      7116.1|       -2049|      7977.3|        17|      0.23|
    |      5067.1|      3910.1|      7116.1|       -2049|      7977.7|        17|      0.26|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |      5834.4|      4699.1|      8022.2|     -2187.9|      9207.7|        21|      0.23|
    |      5579.2|      4272.2|      7729.4|     -2150.2|      8902.1|        19|      0.24|
    |        5265|      4187.4|      7346.4|     -2081.4|      8221.2|        18|      0.27|
    |      5170.4|      3954.9|      7238.8|     -2068.4|      8110.4|        17|      0.24|
    |      5137.6|      4046.1|      7198.2|     -2060.6|      8053.1|        17|      0.25|
    |      5109.8|      4060.1|      7164.7|     -2054.9|      8036.6|        17|      0.23|
    |      5092.8|      4026.6|      7144.8|       -2052|      8014.6|        17|      0.23|
    |      5086.7|      3944.7|      7136.4|     -2049.7|      7929.4|        17|      0.23|
    |      5078.8|      3926.5|      7130.6|     -2051.8|      8024.8|        17|      0.24|
    |      5077.1|      3942.6|      7128.1|     -2050.9|      8009.4|        17|      0.23|
    |      5075.3|      3953.9|      7125.3|     -2049.9|      7991.6|        17|      0.27|
    |      5072.7|        3957|      7121.7|       -2049|      7973.5|        17|      0.25|
    |      5069.8|      3945.2|      7118.4|     -2048.6|      7968.5|        17|      0.24|
    |      5069.4|        3932|      7118.3|     -2048.9|      7981.7|        17|      0.25|
    |      5068.9|      3930.6|      7117.9|       -2049|        7981|        17|      0.23|
    |      5068.8|      3926.4|      7117.9|     -2049.1|      7983.4|        17|      0.24|
    |      5068.4|      3917.5|      7117.9|     -2049.4|      7987.3|        17|      0.23|
    |      5068.1|      3910.6|      7117.7|     -2049.6|        7989|        17|      0.25|
    |      5067.8|      3913.7|      7117.1|     -2049.3|        7985|        17|      0.23|
    |      5067.6|      3919.1|      7116.2|     -2048.6|      7972.4|        17|      0.23|
    |      5067.4|      3918.6|      7116.2|     -2048.8|      7975.7|        17|      0.23|
    |      5067.4|        3918|      7116.2|     -2048.9|        7976|        17|      0.23|
    Optimization result:
          fun: 5067.119508760024
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 3.90259274e-01,  1.87865706e-01,  2.15153320e-02,  5.95899075e-02,
            1.81887249e+01,  3.14234542e-01,  0.00000000e+00,  2.98486676e-01,
            9.99179948e-03, -1.21282065e+00,  0.00000000e+00,  1.07942514e-01,
            2.29213419e-02,  2.45315195e-01,  1.44913639e+01,  2.38720249e-03,
            6.78953722e-03, -1.08856133e-01,  3.25365990e+00,  4.00300271e-02,
            3.61716207e+00,  3.49621047e-02,  0.00000000e+00,  3.14194196e-02,
            3.39042590e-03])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 25
          nit: 24
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -1.9276534 ,  1.65083009, -2.30258509,
           -4.60517019,  0.08473439, -4.60517019, -0.94627051,  2.30258509,
           -4.52691773, -4.60517019, -2.30258509,  1.42510738, -2.30258509,
           -4.00849461, -2.30258509,  2.12160197, -2.30258509,  2.23247174,
           -2.30258509, -4.60517019, -1.5016103 , -4.60517019, -0.71533121])

    <graphdot.model.gaussian_process.gpr.GaussianProcessRegressor at 0x7fb9880bba10>

```
mu = gpr5.predict(train.graphs)
plt.scatter(train[target], mu)
#plt.plot(np.linspace(-9, 3), np.linspace(-9, 3), c = 'r')
#plt.xlim(-9, 3)
#plt.ylim(-9, 3)
plt.show()
```

```
print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

    Training set
    MAE: 0.8642262237055949
    RMSE: 1.1297768774199661

```
mu_test = gpr5.predict(test.graphs)
plt.scatter(test[target], mu_test)
#plt.plot(np.linspace(-10, 4), np.linspace(-10, 4), c = 'r')
#plt.xlim(-10, 4)
#plt.ylim(-10, 4)
plt.show()
```

```
print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

    Test set
    MAE: 0.9967978325813834
    RMSE: 1.2687065452737312

### Model 6

```
gpr6 = GaussianProcessRegressor(
    kernel=Normalization(
        MarginalizedGraphKernel(
            node_kernel=uX.Additive(
                aromatic=uX.Constant(0.6, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # turn constant from 0.5 to 0.6
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
            ).normalized,
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'),
            q=0.05
        )
    ),
    alpha=1e-4,
    optimizer=True,
    normalize_y=True,
    regularization='+',
)
```

```
gpr6.fit(train.graphs, train[target], repeat=3, verbose=True)
```

```
mu = gpr6.predict(train.graphs)
plt.scatter(train[target], mu)
#plt.plot(np.linspace(-9, 3), np.linspace(-9, 3), c = 'r')
#plt.xlim(-9, 3)
#plt.ylim(-9, 3)
plt.show()
```

```
print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

    Training set
    MAE: 0.10249072489800545
    RMSE: 0.15577701746575612

```
mu_test = gpr6.predict(test.graphs)
plt.scatter(test[target], mu_test)
#plt.plot(np.linspace(-10, 4), np.linspace(-10, 4), c = 'r')
#plt.xlim(-10, 4)
#plt.ylim(-10, 4)
plt.show()
```

```
print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

    Test set
    MAE: 1.3991366642890872
    RMSE: 1.7909756847596061

```
gpr6.kernel.hyperparameters
```

### Model 7

```
gpr7 = GaussianProcessRegressor(
    kernel=Normalization(
        MarginalizedGraphKernel(
            node_kernel=uX.Additive(
                aromatic=uX.Constant(0.7, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # turn constant from 0.5 to 0.6
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
            ).normalized,
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'),
            q=0.05
        )
    ),
    alpha=1e-4,
    optimizer=True,
    normalize_y=True,
    regularization='+',
)
```

```
gpr7.fit(train.graphs, train[target], repeat=3, verbose=True)
```

```
mu = gpr7.predict(train.graphs)
plt.scatter(train[target], mu)
plt.show()

print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

```
mu_test = gpr7.predict(test.graphs)
plt.scatter(test[target], mu_test)
plt.show()

print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

```
gpr7.kernel.hyperparameters
```

### Model 8

```
gpr8 = GaussianProcessRegressor(
    kernel=Normalization(
        MarginalizedGraphKernel(
            node_kernel=uX.Additive(
                aromatic=uX.Constant(1, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # turn constant from 0.5 to 1
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
            ).normalized,
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'),
            q=0.05
        )
    ),
    alpha=1e-4,
    optimizer=True,
    normalize_y=True,
    regularization='+',
)
```

```
gpr8.fit(train.graphs, train[target], repeat=3, verbose=True)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.9792e+06|  2.4642e+07|  2.9865e+06|     -7343.8|  8.7118e+06|        23|      0.24|
    |  2.0165e+06|  2.1362e+07|  2.0233e+06|     -6795.2|   8.062e+06|        21|      0.24|
    |  1.2966e+06|  1.5902e+07|  1.3028e+06|     -6253.9|   7.068e+06|        20|      0.22|
    |  1.0075e+06|   1.235e+07|  1.0135e+06|     -5971.1|  6.4058e+06|        19|      0.23|
    |  8.2429e+05|  9.6934e+06|  8.3004e+05|     -5752.5|  5.8067e+06|        18|      0.23|
    |  7.1088e+05|  8.0676e+06|  7.1646e+05|     -5586.2|  5.3556e+06|        18|      0.22|
    |  6.4954e+05|  7.0881e+06|  6.5503e+05|     -5489.7|  5.0295e+06|        17|      0.23|
    |  6.2388e+05|  6.9272e+06|  6.2931e+05|     -5427.9|   4.937e+06|        18|      0.24|
    |  6.0965e+05|  6.6369e+06|  6.1507e+05|     -5412.2|  4.8418e+06|        17|      0.23|
    |  6.0452e+05|   6.522e+06|  6.0993e+05|     -5406.2|  4.7899e+06|        17|      0.24|
    |  6.0197e+05|  6.5091e+06|  6.0737e+05|     -5398.9|  4.7888e+06|        17|      0.22|
    |  6.0036e+05|  6.5038e+06|  6.0575e+05|     -5394.2|  4.7893e+06|        17|      0.22|
    |  5.9951e+05|   6.489e+06|   6.049e+05|       -5393|  4.7822e+06|        17|      0.23|
    |  5.9656e+05|  6.4171e+06|  6.0195e+05|     -5389.2|  4.7641e+06|        17|      0.22|
    |  5.9566e+05|  6.4098e+06|  6.0105e+05|       -5388|  4.7507e+06|        17|      0.23|
    |  5.9511e+05|  6.4048e+06|   6.005e+05|     -5386.8|  4.7432e+06|        17|      0.25|
    |  5.9481e+05|  6.4085e+06|   6.002e+05|     -5386.4|  4.7446e+06|        17|      0.23|
    |  5.9412e+05|  6.4236e+06|   5.995e+05|     -5386.1|   4.749e+06|        17|      0.23|
    |  5.9368e+05|  6.4259e+06|  5.9906e+05|     -5386.6|  4.7559e+06|        17|      0.23|
    |  5.9331e+05|  6.4114e+06|  5.9869e+05|     -5386.5|  4.7604e+06|        17|      0.23|
    |  5.9309e+05|  6.3915e+06|  5.9848e+05|     -5386.4|  4.7593e+06|        17|      0.23|
    |   5.931e+05|  6.3863e+06|  5.9848e+05|     -5386.4|  4.7615e+06|        17|      0.23|
    |   5.931e+05|  6.3906e+06|  5.9849e+05|     -5386.4|  4.7627e+06|        17|      0.23|
    |  5.9306e+05|  6.3906e+06|  5.9845e+05|     -5386.4|  4.7601e+06|        17|      0.23|
    |  5.9312e+05|  6.3917e+06|  5.9851e+05|     -5386.4|  4.7631e+06|        17|      0.23|
    |  5.9305e+05|  6.3899e+06|  5.9844e+05|     -5386.4|  4.7595e+06|        17|      0.23|
    |  5.9299e+05|  6.3818e+06|  5.9838e+05|     -5386.4|   4.764e+06|        17|      0.23|
    |   5.931e+05|  6.3845e+06|  5.9849e+05|     -5386.4|   4.761e+06|        17|      0.23|
    |  5.9308e+05|  6.3833e+06|  5.9847e+05|     -5386.4|   4.762e+06|        17|      0.23|
    |  5.9309e+05|   6.384e+06|  5.9848e+05|     -5386.4|  4.7607e+06|        17|      0.24|
    |  5.9312e+05|  6.3844e+06|   5.985e+05|     -5386.4|  4.7638e+06|        17|      0.24|
    |  5.9305e+05|  6.3833e+06|  5.9843e+05|     -5386.4|  4.7632e+06|        17|      0.24|
    |  5.9311e+05|  6.3844e+06|   5.985e+05|     -5386.4|   4.763e+06|        17|      0.24|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |   4.309e+06|  2.4382e+07|  4.3169e+06|     -7932.7|  9.2553e+06|        21|      0.23|
    |  2.6362e+06|  2.3231e+07|  2.6434e+06|     -7166.7|  8.6035e+06|        20|      0.23|
    |  1.4002e+06|  1.5158e+07|  1.4066e+06|     -6364.5|  7.1794e+06|        18|      0.22|
    |  1.1499e+06|  1.2877e+07|   1.156e+06|     -6131.7|  6.7376e+06|        18|      0.24|
    |  9.8645e+05|  1.1302e+07|  9.9241e+05|     -5956.4|  6.3329e+06|        18|      0.22|
    |  8.2914e+05|  9.6694e+06|   8.349e+05|     -5759.6|  5.8519e+06|        18|      0.22|
    |  7.2729e+05|  8.3779e+06|   7.329e+05|     -5612.5|  5.4668e+06|        18|      0.25|
    |  6.5245e+05|  7.2326e+06|  6.5795e+05|     -5494.9|  5.0812e+06|        17|      0.24|
    |  6.3709e+05|  7.1964e+06|  6.4253e+05|     -5446.6|  5.0356e+06|        18|      0.23|
    |  6.1616e+05|   6.786e+06|  6.2159e+05|     -5425.7|  4.8997e+06|        17|      0.23|
    |  6.1221e+05|  6.6896e+06|  6.1763e+05|     -5421.9|  4.8536e+06|        17|      0.24|
    |  6.0702e+05|  6.5885e+06|  6.1243e+05|     -5414.2|  4.8025e+06|        17|      0.24|
    |  6.0011e+05|  6.4941e+06|  6.0551e+05|     -5400.7|  4.7635e+06|        17|      0.22|
    |  6.1826e+05|  6.8509e+06|  6.2368e+05|     -5414.4|  4.9133e+06|        18|      0.24|
    |   5.982e+05|  6.4893e+06|  6.0359e+05|     -5394.7|  4.7798e+06|        17|      0.22|
    |  5.9719e+05|  6.4696e+06|  6.0258e+05|       -5392|  4.7839e+06|        17|      0.23|
    |  5.9674e+05|  6.4529e+06|  6.0213e+05|       -5391|  4.7862e+06|        17|      0.23|
    |   5.958e+05|  6.4186e+06|  6.0119e+05|     -5389.5|  4.7882e+06|        17|      0.22|
    |  5.9491e+05|  6.3949e+06|   6.003e+05|     -5388.1|  4.7813e+06|        17|      0.24|
    |   5.945e+05|  6.3957e+06|  5.9989e+05|     -5388.1|  4.7701e+06|        17|      0.24|
    |  5.9404e+05|  6.3999e+06|  5.9942e+05|     -5388.3|   4.762e+06|        17|      0.22|
    |    5.94e+05|  6.4039e+06|  5.9939e+05|       -5388|   4.759e+06|        17|      0.23|
    |  5.9386e+05|   6.416e+06|  5.9925e+05|       -5387|  4.7546e+06|        17|      0.24|
    |  5.9366e+05|   6.418e+06|  5.9904e+05|     -5386.3|  4.7575e+06|        17|      0.24|
    |  5.9327e+05|  6.4066e+06|  5.9865e+05|     -5385.8|  4.7593e+06|        17|      0.24|
    |   5.931e+05|  6.3953e+06|  5.9848e+05|     -5386.1|  4.7563e+06|        17|      0.25|
    |  5.9312e+05|  6.3845e+06|  5.9851e+05|     -5386.3|  4.7561e+06|        17|      0.24|
    |  5.9314e+05|  6.3939e+06|  5.9852e+05|     -5386.1|   4.756e+06|        17|      0.23|
    |  5.9312e+05|  6.3951e+06|   5.985e+05|     -5386.1|  4.7564e+06|        17|      0.23|
    |  5.9331e+05|  6.3997e+06|  5.9869e+05|     -5386.1|  4.7546e+06|        17|      0.24|
    |  5.9307e+05|  6.3946e+06|  5.9846e+05|     -5386.1|  4.7538e+06|        17|      0.23|
    |   5.932e+05|  6.3977e+06|  5.9859e+05|     -5386.1|  4.7557e+06|        17|      0.23|
    |  5.9311e+05|  6.3964e+06|   5.985e+05|     -5386.1|   4.753e+06|        17|      0.24|
    |  5.9316e+05|  6.3968e+06|  5.9855e+05|     -5386.1|  4.7558e+06|        17|      0.23|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.3642e+06|   2.501e+07|  2.3713e+06|       -7035|  8.3857e+06|        22|      0.23|
    |  1.5682e+06|  1.7112e+07|  1.5747e+06|       -6501|  7.4975e+06|        19|      0.23|
    |  1.1254e+06|  1.2855e+07|  1.1315e+06|     -6110.8|   6.677e+06|        18|      0.23|
    |   8.935e+05|  1.0626e+07|  8.9935e+05|     -5848.7|  6.0755e+06|        18|      0.23|
    |  7.5389e+05|  9.1315e+06|  7.5954e+05|     -5651.6|   5.586e+06|        18|      0.23|
    |  6.7538e+05|  7.6365e+06|  6.8092e+05|     -5536.1|  5.2056e+06|        17|      0.23|
    |  6.3294e+05|  7.1193e+06|  6.3839e+05|     -5450.1|  5.0192e+06|        18|      0.24|
    |  6.1522e+05|  6.7919e+06|  6.2065e+05|       -5427|  4.8927e+06|        17|      0.23|
    |  6.0924e+05|  6.6947e+06|  6.1466e+05|     -5416.4|  4.8448e+06|        17|      0.23|
    |  6.0118e+05|  6.5408e+06|  6.0658e+05|       -5400|  4.8099e+06|        17|      0.23|
    |  6.0716e+05|   6.635e+06|  6.1257e+05|     -5407.4|  4.7901e+06|        17|      0.22|
    |  5.9975e+05|  6.5325e+06|  6.0515e+05|     -5396.6|  4.7937e+06|        17|      0.23|
    |  5.9739e+05|  6.4591e+06|  6.0278e+05|       -5392|  4.7831e+06|        17|      0.23|
    |  5.9604e+05|  6.4368e+06|  6.0143e+05|     -5389.8|  4.7677e+06|        17|      0.23|
    |  5.9509e+05|  6.4251e+06|  6.0048e+05|     -5387.9|  4.7487e+06|        17|      0.23|
    |  5.9496e+05|  6.4322e+06|  6.0035e+05|       -5387|  4.7497e+06|        17|      0.22|
    |   5.946e+05|  6.4308e+06|  5.9999e+05|     -5386.4|  4.7475e+06|        17|      0.23|
    |  5.9469e+05|  6.4301e+06|  6.0008e+05|     -5386.4|   4.749e+06|        17|      0.23|
    |  5.9465e+05|  6.4316e+06|  6.0003e+05|     -5386.4|  4.7503e+06|        17|      0.22|
    |  5.9485e+05|   6.437e+06|  6.0023e+05|     -5386.4|   4.747e+06|        17|      0.23|
    |  5.9463e+05|  6.4313e+06|  6.0002e+05|     -5386.4|  4.7496e+06|        17|      0.23|
    |   5.947e+05|  6.4334e+06|  6.0009e+05|     -5386.4|   4.752e+06|        17|      0.23|
    |  5.9469e+05|  6.4329e+06|  6.0008e+05|     -5386.4|    4.75e+06|        17|      0.23|
    |  5.9467e+05|  6.4322e+06|  6.0005e+05|     -5386.4|  4.7498e+06|        17|      0.23|
    Optimization result:
          fun: 593114.6707814854
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 6.38026776e+02,  1.38782578e+02,  2.66323472e+01,  5.85716583e+02,
            1.37186070e+04,  2.83861741e+02,  0.00000000e+00, -9.25955378e+01,
            1.05547529e+02, -4.67581389e+02,  9.92854118e-20,  8.58522091e+01,
            4.96435846e+01, -5.32965096e+02,  1.75859453e+04,  8.09606265e+01,
            1.65723821e+03, -3.93953283e+02,  3.01124941e+03, -4.40932945e+01,
            2.59823969e+02,  1.80457401e+02,  0.00000000e+00,  1.77125402e+02,
            2.44995429e+02])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 33
          nit: 23
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -1.86387197,  1.47468801, -2.30258509,
           -4.60517019,  0.        , -3.49988681, -2.30258509,  2.30258509,
           -2.40163276, -4.22043617, -2.03747843,  1.71483415, -2.30258509,
            0.18487075, -2.30258509,  0.76191496, -2.30258509, -1.69254866,
           -2.30258509, -4.23517368, -0.22314355, -1.65492569, -2.30258509])

    <graphdot.model.gaussian_process.gpr.GaussianProcessRegressor at 0x7fd805d61c90>

```
mu = gpr8.predict(train.graphs)
plt.scatter(train[target], mu)
plt.show()

print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

```
mu_test = gpr8.predict(test.graphs)
plt.scatter(test[target], mu_test)
plt.show()

print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

### Model 9

```
gpr9 = GaussianProcessRegressor(
    kernel=Normalization(
        MarginalizedGraphKernel(
            node_kernel=uX.Additive(
                aromatic=uX.Constant(2, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # turn constant from 0.5 to 1
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
            ).normalized,
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'),
            q=0.05
        )
    ),
    alpha=1e-4,
    optimizer=True,
    normalize_y=True,
    regularization='+',
)
```

```
gpr9.fit(train.graphs, train[target], repeat=3, verbose=True)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  3.1842e+06|  2.4974e+07|  3.1916e+06|     -7444.7|  8.7312e+06|        23|      0.26|
    |  2.1752e+06|  2.2644e+07|  2.1821e+06|     -6894.5|  8.1462e+06|        21|      0.23|
    |  1.2857e+06|  1.6274e+07|   1.292e+06|     -6243.6|  7.0034e+06|        20|      0.23|
    |   1.004e+06|  1.2582e+07|    1.01e+06|     -5967.8|  6.3551e+06|        19|      0.25|
    |  8.2416e+05|  9.8792e+06|  8.2991e+05|     -5754.1|  5.7767e+06|        18|      0.27|
    |  7.1531e+05|  8.2743e+06|   7.209e+05|     -5594.7|  5.3493e+06|        18|      0.24|
    |  6.5715e+05|  7.2687e+06|  6.6266e+05|     -5505.9|  5.0409e+06|        17|      0.24|
    |  6.2418e+05|  6.9524e+06|  6.2962e+05|     -5436.7|  4.9381e+06|        18|      0.23|
    |  6.1435e+05|  6.7657e+06|  6.1977e+05|     -5424.1|  4.8623e+06|        17|      0.24|
    |  6.0457e+05|  6.6082e+06|  6.0998e+05|     -5406.7|    4.82e+06|        17|      0.24|
    |  6.0409e+05|  6.4935e+06|  6.0949e+05|     -5401.4|  4.8533e+06|        17|      0.23|
    |  6.0069e+05|  6.5041e+06|  6.0608e+05|     -5398.7|  4.8222e+06|        17|      0.24|
    |  5.9986e+05|  6.4187e+06|  6.0526e+05|     -5395.8|   4.829e+06|        17|      0.23|
    |  5.9771e+05|  6.4231e+06|   6.031e+05|     -5392.8|  4.8077e+06|        17|      0.26|
    |  5.9675e+05|  6.4345e+06|  6.0214e+05|     -5391.7|  4.7932e+06|        17|      0.24|
    |  5.9549e+05|  6.4231e+06|  6.0088e+05|     -5390.3|  4.7744e+06|        17|      0.24|
    |  5.9438e+05|  6.4046e+06|  5.9976e+05|       -5388|  4.7547e+06|        17|      0.23|
    |  5.9435e+05|  6.4109e+06|  5.9973e+05|     -5386.6|  4.7645e+06|        17|      0.24|
    |  5.9419e+05|  6.4008e+06|  5.9958e+05|     -5386.9|    4.76e+06|        17|      0.24|
    |  5.9416e+05|  6.3952e+06|  5.9954e+05|     -5387.1|  4.7616e+06|        17|      0.24|
    |  5.9405e+05|  6.3847e+06|  5.9944e+05|     -5387.4|  4.7563e+06|        17|      0.25|
    |  5.9384e+05|  6.3816e+06|  5.9923e+05|     -5387.2|  4.7571e+06|        17|      0.22|
    |   5.937e+05|  6.3784e+06|  5.9908e+05|     -5387.2|  4.7548e+06|        17|      0.23|
    |  5.9367e+05|  6.3925e+06|  5.9905e+05|     -5385.9|  4.7599e+06|        17|      0.23|
    |  5.9358e+05|   6.394e+06|  5.9897e+05|     -5385.9|  4.7639e+06|        17|      0.23|
    |  5.9338e+05|  6.3976e+06|  5.9877e+05|     -5386.2|  4.7562e+06|        17|      0.24|
    |  5.9321e+05|  6.3888e+06|   5.986e+05|     -5386.4|   4.755e+06|        17|      0.23|
    |  5.9333e+05|  6.3871e+06|  5.9871e+05|     -5386.5|  4.7591e+06|        17|      0.23|
    |  5.9327e+05|  6.3903e+06|  5.9866e+05|     -5386.4|  4.7544e+06|        17|      0.24|
    |  5.9316e+05|  6.3877e+06|  5.9855e+05|     -5386.4|   4.755e+06|        17|      0.24|
    |  5.9334e+05|  6.3918e+06|  5.9872e+05|     -5386.4|  4.7592e+06|        17|      0.25|
    |  5.9326e+05|    6.39e+06|  5.9864e+05|     -5386.4|  4.7561e+06|        17|      0.23|
    |  5.9324e+05|  6.3898e+06|  5.9863e+05|     -5386.4|   4.758e+06|        17|      0.24|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.2799e+06|  3.0057e+07|  2.2869e+06|     -6934.8|  7.8008e+06|        24|      0.25|
    |   1.767e+06|  2.5126e+07|  1.7736e+06|     -6594.3|  7.4479e+06|        23|      0.23|
    |  1.0278e+06|  1.4821e+07|  1.0337e+06|     -5972.7|  6.4094e+06|        21|      0.23|
    |  8.6501e+05|  1.1644e+07|  8.7081e+05|     -5794.8|  5.9663e+06|        20|      0.23|
    |  7.1706e+05|  8.4268e+06|  7.2267e+05|     -5604.3|  5.3554e+06|        18|      0.23|
    |  6.5162e+05|  7.4137e+06|  6.5712e+05|       -5493|   5.062e+06|        18|      0.23|
    |  6.2958e+05|  6.9704e+06|  6.3504e+05|       -5458|  4.9042e+06|        17|      0.23|
    |  6.1225e+05|  6.7455e+06|  6.1768e+05|     -5423.5|  4.8323e+06|        17|      0.23|
    |  6.0632e+05|  6.6482e+06|  6.1173e+05|       -5411|  4.8372e+06|        17|      0.24|
    |  6.0233e+05|  6.5526e+06|  6.0773e+05|     -5401.8|  4.8469e+06|        17|      0.23|
    |  6.0022e+05|  6.4934e+06|  6.0562e+05|     -5397.6|  4.8374e+06|        17|      0.23|
    |  5.9676e+05|  6.4223e+06|  6.0215e+05|     -5392.6|  4.7962e+06|        17|      0.23|
    |  5.9504e+05|  6.4098e+06|  6.0043e+05|     -5390.5|  4.7672e+06|        17|      0.24|
    |   5.947e+05|  6.4114e+06|  6.0009e+05|     -5389.3|  4.7581e+06|        17|      0.23|
    |  5.9442e+05|  6.4108e+06|   5.998e+05|       -5388|  4.7564e+06|        17|      0.23|
    |  5.9429e+05|  6.4096e+06|  5.9968e+05|     -5387.3|   4.761e+06|        17|      0.22|
    |  5.9433e+05|  6.4087e+06|  5.9971e+05|     -5386.8|  4.7608e+06|        17|      0.23|
    |  5.9434e+05|  6.4102e+06|  5.9972e+05|     -5387.2|  4.7592e+06|        17|      0.22|
    |  5.9433e+05|  6.4107e+06|  5.9972e+05|     -5387.2|  4.7576e+06|        17|      0.23|
    |  5.9428e+05|  6.4092e+06|  5.9967e+05|     -5387.2|    4.76e+06|        17|      0.23|
    |  5.9426e+05|  6.4082e+06|  5.9964e+05|     -5387.2|  4.7593e+06|        17|      0.23|
    |  5.9438e+05|  6.4119e+06|  5.9977e+05|     -5387.2|  4.7574e+06|        17|      0.23|
    |  5.9431e+05|  6.4094e+06|   5.997e+05|     -5387.2|  4.7595e+06|        17|      0.23|
    |  5.9437e+05|   6.411e+06|  5.9976e+05|     -5387.2|  4.7598e+06|        17|      0.25|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  5.6004e+06|  1.0925e+07|  5.6088e+06|     -8411.3|  9.6646e+06|        18|      0.23|
    |  4.3616e+06|  1.7555e+07|  4.3696e+06|     -7948.7|  9.3139e+06|        19|      0.23|
    |    1.55e+06|  1.8485e+07|  1.5564e+06|     -6436.8|  7.3811e+06|        21|      0.22|
    |  1.1849e+06|  1.5675e+07|  1.1911e+06|     -6123.9|  6.7454e+06|        21|      0.22|
    |  8.8035e+05|  1.0785e+07|  8.8616e+05|     -5807.1|  5.9897e+06|        19|      0.23|
    |  7.5061e+05|  8.6012e+06|  7.5626e+05|     -5645.9|  5.5033e+06|        18|      0.23|
    |  6.7138e+05|  7.5125e+06|   6.769e+05|     -5523.2|  5.1857e+06|        18|      0.23|
    |  6.2543e+05|  6.8949e+06|  6.3087e+05|       -5443|  4.9251e+06|        17|      0.23|
    |  6.1475e+05|  6.7354e+06|  6.2018e+05|     -5424.2|  4.8917e+06|        17|      0.23|
    |  6.1085e+05|   6.669e+06|  6.1626e+05|       -5417|  4.8771e+06|        17|      0.23|
    |  6.0117e+05|  6.4774e+06|  6.0657e+05|     -5400.5|  4.8228e+06|        17|      0.23|
    |  5.9729e+05|  6.4244e+06|  6.0268e+05|     -5391.3|  4.8081e+06|        17|      0.23|
    |   5.961e+05|  6.3908e+06|  6.0149e+05|     -5390.5|   4.788e+06|        17|      0.23|
    |  5.9524e+05|  6.3716e+06|  6.0063e+05|     -5389.3|  4.7759e+06|        17|      0.23|
    |  5.9457e+05|  6.3724e+06|  5.9996e+05|     -5388.4|  4.7729e+06|        17|      0.23|
    |  5.9374e+05|  6.3917e+06|  5.9913e+05|     -5387.1|  4.7595e+06|        17|      0.24|
    |  5.9348e+05|  6.3895e+06|  5.9886e+05|     -5386.8|  4.7578e+06|        17|      0.23|
    |  5.9413e+05|  6.4288e+06|  5.9951e+05|     -5384.8|  4.7726e+06|        17|      0.25|
    |  5.9355e+05|  6.3967e+06|  5.9894e+05|     -5386.3|  4.7583e+06|        17|      0.23|
    |   5.935e+05|  6.3912e+06|  5.9888e+05|     -5386.8|  4.7567e+06|        17|      0.24|
    |  5.9363e+05|  6.3931e+06|  5.9901e+05|     -5386.8|  4.7552e+06|        17|      0.23|
    |  5.9352e+05|    6.39e+06|  5.9891e+05|     -5386.8|   4.759e+06|        17|      0.25|
    |  5.9355e+05|  6.3912e+06|  5.9894e+05|     -5386.8|  4.7567e+06|        17|      0.23|
    |  5.9355e+05|   6.391e+06|  5.9893e+05|     -5386.8|  4.7581e+06|        17|      0.23|
    |   5.936e+05|  6.3923e+06|  5.9898e+05|     -5386.8|  4.7583e+06|        17|      0.25|
    Optimization result:
          fun: 593239.0731028724
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 6.38571528e+02,  2.53446370e+02,  4.04348138e+01, -8.86199826e+02,
            1.36287493e+04,  2.83281629e+02,  0.00000000e+00, -8.03270149e+01,
            1.29925146e+02, -6.68353601e+02,  3.81951546e-03,  1.11964525e+02,
            7.10964508e+01,  1.00805620e+03,  1.76320909e+04, -2.85119588e+02,
            1.68133082e+03,  4.70354709e+02,  3.02838241e+03, -2.14150548e+02,
            2.70225253e+02,  2.26206868e+02,  0.00000000e+00, -1.99055415e+02,
            2.32813791e+02])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 33
          nit: 25
       status: 0
      success: True
            x: array([-9.21034037, -3.95840051, -2.09284424,  1.4582562 , -2.30258509,
           -4.60517019,  0.        , -3.49372658, -2.1095149 ,  2.30258509,
           -1.88596738, -4.12293699, -1.77144806,  1.72893419, -2.30258509,
           -0.42084637, -2.30258509,  0.20339185, -2.30258509, -2.32277083,
           -2.30258509, -4.60517019, -0.22314355, -2.47885086, -2.30258509])

    <graphdot.model.gaussian_process.gpr.GaussianProcessRegressor at 0x7fd803aefdd0>

```
mu = gpr9.predict(train.graphs)
plt.scatter(train[target], mu)
plt.show()

print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

```
mu_test = gpr9.predict(test.graphs)
plt.scatter(test[target], mu_test)
plt.show()

print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

### Model 10

```
gpr10 = GaussianProcessRegressor(
    kernel=Normalization(
        MarginalizedGraphKernel(
            node_kernel=uX.Additive(
                aromatic=uX.Constant(0.1, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # turn constant from 0.5 to 0.1
                atomic_number=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                charge=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                chiral=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                hcount=uX.Constant(0.5, (0.01, 10.0)) * uX.SquareExponential(1.0),
                hybridization=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                ring_list=uX.Constant(0.5, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
            ).normalized,
            edge_kernel=uX.Additive(
                aromatic=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                conjugated=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                order=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                ring_stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                stereo=uX.Constant(0.5, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
            ).normalized,
            p=Uniform(1.0, p_bounds='fixed'),
            q=0.05
        )
    ),
    alpha=1e-4,
    optimizer=True,
    normalize_y=True,
    regularization='+',
)
```

```
gpr10.fit(train.graphs, train[target], repeat=3, verbose=True)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.7983e+06|    2.43e+07|  2.8056e+06|     -7255.5|  8.7152e+06|        23|      0.24|
    |   1.862e+06|  2.0153e+07|  1.8687e+06|     -6699.9|  7.9833e+06|        20|      0.24|
    |  1.2811e+06|  1.5513e+07|  1.2873e+06|     -6247.6|  7.0832e+06|        20|      0.24|
    |  1.0015e+06|  1.2225e+07|  1.0075e+06|     -5970.3|  6.4109e+06|        19|      0.24|
    |  8.2607e+05|   9.751e+06|  8.3183e+05|     -5757.8|  5.8362e+06|        18|      0.24|
    |  7.1314e+05|  8.1066e+06|  7.1873e+05|     -5592.2|   5.376e+06|        18|      0.23|
    |  6.4927e+05|  7.1354e+06|  6.5476e+05|     -5488.9|  5.0514e+06|        17|      0.23|
    |  6.3134e+05|  7.0681e+06|  6.3678e+05|     -5438.9|  4.9652e+06|        18|      0.23|
    |  6.1006e+05|  6.6411e+06|  6.1548e+05|     -5414.6|  4.8456e+06|        17|      0.23|
    |  6.0572e+05|   6.545e+06|  6.1113e+05|     -5408.6|  4.8049e+06|        17|      0.23|
    |  6.0297e+05|  6.5038e+06|  6.0838e+05|     -5403.2|  4.7879e+06|        17|      0.24|
    |  6.0504e+05|   6.654e+06|  6.1044e+05|     -5394.8|  4.8153e+06|        18|      0.23|
    |   6.002e+05|  6.5188e+06|   6.056e+05|       -5394|  4.7876e+06|        17|      0.23|
    |  6.0038e+05|  6.5403e+06|  6.0577e+05|     -5389.6|  4.8007e+06|        17|      0.23|
    |   5.998e+05|  6.5228e+06|  6.0519e+05|     -5391.3|  4.7927e+06|        17|      0.23|
    |  5.9818e+05|  6.4716e+06|  6.0357e+05|     -5390.5|  4.7747e+06|        17|      0.22|
    |  5.9784e+05|  6.4565e+06|  6.0323e+05|     -5390.9|  4.7662e+06|        17|      0.22|
    |    5.97e+05|  6.4279e+06|  6.0239e+05|     -5390.7|   4.759e+06|        17|      0.23|
    |  5.9602e+05|  6.4208e+06|  6.0141e+05|     -5387.9|  4.7561e+06|        17|      0.24|
    |  5.9532e+05|  6.4184e+06|  6.0071e+05|     -5386.5|  4.7421e+06|        17|      0.22|
    |  5.9503e+05|  6.4111e+06|  6.0041e+05|     -5386.4|  4.7408e+06|        17|      0.24|
    |  5.9491e+05|   6.408e+06|  6.0029e+05|     -5386.4|  4.7431e+06|        17|      0.23|
    |  5.9463e+05|   6.401e+06|  6.0002e+05|     -5386.2|  4.7443e+06|        17|      0.22|
    |  6.0593e+05|  6.5034e+06|  6.1134e+05|     -5408.5|  4.9074e+06|        17|      0.23|
    |  5.9396e+05|  6.3846e+06|  5.9935e+05|     -5386.5|  4.7594e+06|        17|      0.24|
    |  5.9382e+05|  6.3835e+06|  5.9921e+05|     -5387.7|  4.7774e+06|        17|      0.22|
    |  5.9376e+05|   6.384e+06|  5.9915e+05|     -5386.8|  4.7694e+06|        17|      0.24|
    |  5.9354e+05|  6.3993e+06|  5.9893e+05|     -5385.7|  4.7783e+06|        17|      0.24|
    |   5.931e+05|  6.3874e+06|  5.9849e+05|       -5386|   4.769e+06|        17|      0.23|
    |  5.9321e+05|  6.3905e+06|  5.9859e+05|     -5386.5|  4.7589e+06|        17|      0.23|
    |  5.9325e+05|  6.3911e+06|  5.9864e+05|     -5386.1|  4.7673e+06|        17|      0.23|
    |  5.9325e+05|  6.3915e+06|  5.9864e+05|     -5386.1|  4.7655e+06|        17|      0.24|
    |  5.9323e+05|  6.3903e+06|  5.9861e+05|       -5386|  4.7667e+06|        17|      0.26|
    |  5.9321e+05|    6.39e+06|   5.986e+05|       -5386|  4.7658e+06|        17|      0.23|
    |  5.9322e+05|  6.3903e+06|   5.986e+05|       -5386|  4.7665e+06|        17|      0.23|
    |  5.9323e+05|  6.3905e+06|  5.9862e+05|       -5386|  4.7647e+06|        17|      0.24|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |   3.335e+06|  2.0676e+07|  3.3425e+06|     -7511.6|  8.8641e+06|        20|      0.23|
    |  2.1616e+06|  1.8613e+07|  2.1684e+06|     -6871.7|  8.1374e+06|        20|      0.27|
    |  1.0552e+06|  1.1657e+07|  1.0612e+06|     -5984.8|  6.4878e+06|        19|      0.24|
    |  8.3583e+05|  9.3921e+06|  8.4159e+05|     -5752.2|  5.8752e+06|        18|      0.23|
    |  7.4374e+05|  8.1282e+06|  7.4937e+05|     -5635.8|  5.4636e+06|        17|      0.23|
    |   6.817e+05|  7.3767e+06|  6.8724e+05|     -5541.2|  5.1875e+06|        17|      0.23|
    |  6.3778e+05|  6.9335e+06|  6.4325e+05|     -5463.9|  5.0127e+06|        17|      0.23|
    |   6.165e+05|  6.6822e+06|  6.2193e+05|     -5426.8|   4.878e+06|        17|      0.24|
    |  6.1137e+05|  6.5342e+06|  6.1679e+05|     -5414.3|  4.8606e+06|        17|      0.25|
    |  6.0039e+05|  6.4384e+06|  6.0579e+05|     -5398.2|  4.7915e+06|        17|      0.24|
    |  5.9881e+05|  6.4292e+06|  6.0421e+05|       -5395|  4.7835e+06|        17|      0.24|
    |  5.9769e+05|  6.4717e+06|  6.0308e+05|     -5388.4|  4.7946e+06|        17|      0.24|
    |   5.968e+05|  6.4302e+06|  6.0219e+05|     -5389.3|  4.7826e+06|        17|      0.24|
    |  5.9653e+05|  6.4185e+06|  6.0192e+05|     -5389.6|  4.7764e+06|        17|      0.23|
    |  5.9628e+05|  6.4064e+06|  6.0167e+05|     -5389.7|  4.7681e+06|        17|      0.25|
    |  5.9569e+05|   6.392e+06|  6.0108e+05|     -5389.3|  4.7644e+06|        17|      0.23|
    |  5.9554e+05|  6.4306e+06|  6.0093e+05|     -5385.3|  4.7795e+06|        17|      0.25|
    |  5.9461e+05|  6.4044e+06|  5.9999e+05|     -5385.7|  4.7627e+06|        17|      0.23|
    |  5.9443e+05|  6.3917e+06|  5.9981e+05|     -5386.6|  4.7565e+06|        17|      0.23|
    |  5.9439e+05|  6.3911e+06|  5.9977e+05|     -5386.6|  4.7529e+06|        17|      0.23|
    |  5.9432e+05|  6.3888e+06|   5.997e+05|     -5386.6|  4.7545e+06|        17|      0.24|
    |  5.9414e+05|  6.3821e+06|  5.9953e+05|     -5386.4|  4.7585e+06|        17|      0.23|
    |  5.9408e+05|  6.3773e+06|  5.9946e+05|     -5386.4|  4.7613e+06|        17|      0.23|
    |  5.9375e+05|  6.3821e+06|  5.9914e+05|     -5386.7|  4.7649e+06|        17|      0.23|
    |  5.9345e+05|  6.3813e+06|  5.9883e+05|       -5387|  4.7631e+06|        17|      0.23|
    |   5.934e+05|  6.3896e+06|  5.9879e+05|     -5386.8|   4.763e+06|        17|      0.23|
    |  5.9344e+05|  6.3955e+06|  5.9882e+05|     -5386.7|  4.7616e+06|        17|      0.23|
    |  5.9342e+05|  6.3913e+06|  5.9881e+05|     -5386.8|  4.7649e+06|        17|      0.25|
    |  5.9326e+05|   6.387e+06|  5.9865e+05|     -5386.8|  4.7616e+06|        17|      0.23|
    |  5.9337e+05|  6.3891e+06|  5.9876e+05|     -5386.8|  4.7671e+06|        17|      0.22|
    |   5.933e+05|  6.3877e+06|  5.9869e+05|     -5386.8|  4.7628e+06|        17|      0.22|
    |  5.9324e+05|  6.3942e+06|  5.9862e+05|     -5386.4|  4.7589e+06|        17|      0.24|
    |  5.9328e+05|   6.388e+06|  5.9867e+05|     -5386.6|  4.7591e+06|        17|      0.25|
    |  5.9325e+05|  6.3922e+06|  5.9864e+05|     -5386.4|  4.7598e+06|        17|      0.22|
    |  5.9325e+05|  6.3937e+06|  5.9864e+05|     -5386.4|  4.7632e+06|        17|      0.24|
    |  5.9335e+05|  6.3958e+06|  5.9874e+05|     -5386.4|  4.7595e+06|        17|      0.25|
    |  5.9334e+05|  6.3953e+06|  5.9872e+05|     -5386.4|  4.7621e+06|        17|      0.26|
    |  5.9338e+05|   6.397e+06|  5.9877e+05|     -5386.4|  4.7553e+06|        17|      0.25|
    |  5.9335e+05|  6.3966e+06|  5.9874e+05|     -5386.4|  4.7606e+06|        17|      0.26|
    |  5.9333e+05|   6.396e+06|  5.9871e+05|     -5386.4|  4.7579e+06|        17|      0.26|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  5.8553e+06|  6.1173e+06|  5.8637e+06|     -8489.1|   9.764e+06|        13|      0.24|
    |  4.4775e+06|  1.0414e+07|  4.4854e+06|     -7964.5|  9.4041e+06|        14|      0.24|
    |   1.499e+06|  1.2523e+07|  1.5054e+06|     -6394.8|  7.5362e+06|        17|      0.24|
    |  1.0911e+06|  1.0407e+07|  1.0971e+06|     -6028.5|  6.7239e+06|        17|      0.26|
    |  9.1382e+05|  9.0085e+06|  9.1966e+05|     -5833.1|  6.2209e+06|        17|      0.25|
    |  7.8666e+05|  7.9393e+06|  7.9232e+05|     -5667.8|   5.793e+06|        17|      0.23|
    |   7.137e+05|  7.2049e+06|  7.1927e+05|     -5561.2|  5.4904e+06|        17|      0.24|
    |  6.7654e+05|  6.9513e+06|  6.8204e+05|     -5499.9|  5.3402e+06|        17|      0.24|
    |  6.4054e+05|  6.5381e+06|  6.4599e+05|     -5455.9|  5.1118e+06|        17|      0.26|
    |  6.5597e+05|  7.5432e+06|  6.6144e+05|       -5465|  4.9854e+06|        19|      0.26|
    |  6.0894e+05|   6.557e+06|  6.1435e+05|     -5407.4|  4.9151e+06|        18|      0.24|
    |  6.0177e+05|  6.5172e+06|  6.0717e+05|     -5402.3|  4.8031e+06|        17|      0.25|
    |  6.0125e+05|  6.4801e+06|  6.0665e+05|       -5402|  4.8075e+06|        17|      0.26|
    |  6.0082e+05|  6.4688e+06|  6.0622e+05|     -5400.4|  4.8117e+06|        17|      0.26|
    |  6.0039e+05|  6.4622e+06|  6.0579e+05|     -5399.3|  4.8118e+06|        17|      0.24|
    |   5.982e+05|  6.4268e+06|  6.0359e+05|     -5393.2|  4.8253e+06|        17|      0.26|
    |  5.9754e+05|  6.4135e+06|  6.0294e+05|     -5392.8|  4.8149e+06|        17|      0.26|
    |  5.9534e+05|  6.3715e+06|  6.0073e+05|     -5392.5|  4.7759e+06|        17|      0.25|
    |  5.9496e+05|  6.3808e+06|  6.0036e+05|     -5391.6|  4.7699e+06|        17|      0.27|
    |  5.9436e+05|  6.4056e+06|  5.9975e+05|       -5389|  4.7735e+06|        17|      0.25|
    |  5.9392e+05|  6.4102e+06|  5.9931e+05|     -5387.2|  4.7705e+06|        17|      0.25|
    |  5.9358e+05|  6.3991e+06|  5.9897e+05|       -5386|  4.7674e+06|        17|      0.24|
    |   5.934e+05|  6.3882e+06|  5.9879e+05|     -5386.5|  4.7622e+06|        17|      0.24|
    |  5.9342e+05|  6.3853e+06|   5.988e+05|     -5386.8|  4.7604e+06|        17|      0.25|
    |  5.9348e+05|  6.3892e+06|  5.9887e+05|     -5386.5|  4.7637e+06|        17|      0.25|
    |  5.9343e+05|  6.3882e+06|  5.9881e+05|     -5386.5|  4.7662e+06|        17|      0.26|
    |  5.9353e+05|  6.3906e+06|  5.9892e+05|     -5386.5|   4.765e+06|        17|      0.26|
    |   5.934e+05|  6.3875e+06|  5.9878e+05|     -5386.5|   4.763e+06|        17|      0.26|
    |  5.9342e+05|   6.388e+06|  5.9881e+05|     -5386.5|  4.7621e+06|        17|      0.27|
    |  5.9349e+05|  6.3898e+06|  5.9888e+05|     -5386.5|  4.7653e+06|        17|      0.25|
    |  5.9347e+05|   6.389e+06|  5.9885e+05|     -5386.5|  4.7634e+06|        17|      0.26|
    Optimization result:
          fun: 593233.3042484035
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([  638.64736427,   141.96903073,    28.55629934,  1626.08930356,
           13743.38807579,   280.18042823,     0.        ,   -99.97653253,
             114.814054  , -2792.2638767 ,     0.        ,    91.58912464,
              57.6192078 ,   776.34364075, 17553.00068355,   978.24342665,
            1666.14615848, -1272.51341315,  2991.47521638,  -137.29971877,
             252.38902263,   210.50993072,     0.        ,   218.8639886 ,
             246.42026873])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 36
          nit: 24
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -1.76491214,  1.49768933, -2.30258509,
           -4.60517019,  0.        , -3.40193308, -2.30258509,  2.30258509,
           -2.68288077, -4.06937858, -2.04385712,  1.73412843, -2.30258509,
            0.26606458, -2.30258509,  0.73949084, -2.30258509, -1.82914477,
           -2.23381959, -4.06338654, -0.22314355, -1.61434557, -2.30258509])

    <graphdot.model.gaussian_process.gpr.GaussianProcessRegressor at 0x7fd802672090>

```
mu = gpr10.predict(train.graphs)
plt.scatter(train[target], mu)
plt.show()

print('Training set')
print('MAE:', np.mean(np.abs(train[target] - mu)))
print('RMSE:', np.std(train[target] - mu))
```

```
mu_test = gpr10.predict(test.graphs)
plt.scatter(test[target], mu_test)
plt.show()

print('Test set')
print('MAE:', np.mean(np.abs(test[target] - mu_test)))
print('RMSE:', np.std(test[target] - mu_test))
```

```
def gpr_train(train, repeat_num, aro_c_n = 0.5, ato_c_n = 0.5, cha_c_n = 0.5, chi_c_n = 0.5, hco_c_n = 0.5, hyb_c_n = 0.5, ring_c_n = 0.5,
              aro_c_e = 0.5, con_c_e = 0.5, ord_c_e = 0.5, ring_c_e = 0.5, ste_c_e = 0.5, alpha = 1e-4, train_verbose = True):
  gpr = GaussianProcessRegressor(
      kernel=Normalization(
          MarginalizedGraphKernel(
              node_kernel=uX.Additive(
                  aromatic=uX.Constant(aro_c_n, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)), # turn constant from 0.5 to 1
                  atomic_number=uX.Constant(ato_c_n, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                  charge=uX.Constant(cha_c_n, (0.01, 10.0)) * uX.SquareExponential(1.0),
                  chiral=uX.Constant(chi_c_n, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                  hcount=uX.Constant(hco_c_n, (0.01, 10.0)) * uX.SquareExponential(1.0),
                  hybridization=uX.Constant(hyb_c_n, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                  ring_list=uX.Constant(ring_c_n, (0.01, 100.0)) * uX.Convolution(uX.KroneckerDelta(0.5,(0.1, 0.9)))
              ).normalized,
              edge_kernel=uX.Additive(
                  aromatic=uX.Constant(aro_c_e, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                  conjugated=uX.Constant(con_c_e, (0.01, 10.0)) * uX.KroneckerDelta(0.5,(0.1, 0.9)),
                  order=uX.Constant(ord_c_e, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                  ring_stereo=uX.Constant(ring_c_e, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9)),
                  stereo=uX.Constant(ste_c_e, (0.01, 10.0)) * uX.KroneckerDelta(0.8,(0.1, 0.9))
              ).normalized,
              p=Uniform(1.0, p_bounds='fixed'),
              q=0.05
          )
      ),
      alpha=alpha,
      optimizer=True,
      normalize_y=True,
      regularization='+',
    )

  gpr.fit(train.graphs, train[target], repeat=repeat_num, verbose=train_verbose)
  hyperparas = gpr.kernel.hyperparameters

  return gpr,[aro_c_n,hyperparas.node_kernel.aromatic.lhs.c,
         ato_c_n,hyperparas.node_kernel.atomic_number.lhs.c,
         cha_c_n,hyperparas.node_kernel.charge.lhs.c,
         chi_c_n,hyperparas.node_kernel.chiral.lhs.c,
         hco_c_n,hyperparas.node_kernel.hcount.lhs.c,
         hyb_c_n,hyperparas.node_kernel.hybridization.lhs.c,
         ring_c_n,hyperparas.node_kernel.ring_list.lhs.c,
         aro_c_e,hyperparas.edge_kernel.aromatic.lhs.c,
         con_c_e,hyperparas.edge_kernel.conjugated.lhs.c,
         ord_c_e,hyperparas.edge_kernel.order.lhs.c,
         ring_c_e,hyperparas.edge_kernel.ring_stereo.lhs.c,
         ste_c_e,hyperparas.edge_kernel.stereo.lhs.c,
         alpha]
```

```
# list out the investigated hyperparameters
#aro_c_ns = [1, 5, 9] # 1
ato_c_ns = [1, 5, 9] # 2
cha_c_ns = [1, 5, 9] # 3
chi_c_ns = [1, 5, 9] # 4
hco_c_ns = [1, 5, 9] # 5
hyb_c_ns = [1, 5, 9] # 6
ring_c_ns = [1, 5, 9] # 7
aro_c_es = [1, 5, 9] # 8
con_c_es = [1, 5, 9] # 9
ord_c_es = [1, 5, 9] # 10
ring_c_es = [1, 5, 9] # 11
ste_c_es = [1, 5, 9]
#alphas = [1, 1e-1, 1e-2, 1e-3, 1e-4, 1e-5] # 13
```

```
column_names=['aro_c_n_init','aro_c_n_final',\
    'ato_c_n_init','ato_c_n_final',\
    'cha_c_n_init','cha_c_n_final',
    'chi_c_n_init','chi_c_n_final',\
    'hco_c_n_init','hco_c_n_final',\
    'hyb_c_n_init','hyb_c_n_final',\
    'ring_c_n_init','ring_c_n_final',\
    'aro_c_e_init','aro_c_e_final',\
    'con_c_e_init','con_c_e_final',\
    'ord_c_e_init','ord_c_e_final',\
    'ring_c_e_init','ring_c_e_final',\
    'ste_c_e_init','ste_c_e_final',\
    'alpha',\
    'RMSE_train','MAE_train', 'RMSE_test', 'MAE_test']
exhaust_search_results = pd.DataFrame(columns=column_names)
exhaust_search_results
```

      aro_c_n_init
      aro_c_n_final
      ato_c_n_init
      ato_c_n_final
      cha_c_n_init
      cha_c_n_final
      chi_c_n_init
      chi_c_n_final
      hco_c_n_init
      hco_c_n_final
      hyb_c_n_init
      hyb_c_n_final
      ring_c_n_init
      ring_c_n_final
      aro_c_e_init
      aro_c_e_final
      con_c_e_init
      con_c_e_final
      ord_c_e_init
      ord_c_e_final
      ring_c_e_init
      ring_c_e_final
      ste_c_e_init
      ste_c_e_final
      alpha
      RMSE_train
      MAE_train
      RMSE_test
      MAE_test

```
repeat = 3
for ato_c_n in ato_c_ns:
  model,para_list = gpr_train(train = train, repeat_num = repeat, ato_c_n = ato_c_n)

  mu = model.predict(train.graphs)
  MAE_train = np.mean(np.abs(train[target] - mu))
  RMSE_train = np.std(train[target] - mu)
  para_list.append(RMSE_train)
  para_list.append(MAE_train)

  mu_test = model.predict(test.graphs)
  MAE_test = np.mean(np.abs(test[target] - mu_test))
  RMSE_test = np.std(test[target] - mu_test)
  para_list.append(RMSE_test)
  para_list.append(MAE_test)

  data = pd.DataFrame(data = [para_list],columns = column_names)
  exhaust_search_results = exhaust_search_results.append(data,ignore_index=True)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.8357e+06|  2.4482e+07|   2.843e+06|     -7284.4|  8.7357e+06|        24|      0.26|
    |  1.9213e+06|   2.074e+07|   1.928e+06|     -6745.2|  8.0425e+06|        19|      0.25|
    |  1.3279e+06|  1.6305e+07|  1.3342e+06|     -6287.4|  7.1763e+06|        18|      0.24|
    |  1.0217e+06|  1.2611e+07|  1.0277e+06|       -5988|   6.479e+06|        19|      0.23|
    |  8.3487e+05|  9.9424e+06|  8.4064e+05|     -5767.1|  5.8654e+06|        17|      0.25|
    |    7.21e+05|  8.1832e+06|  7.2661e+05|     -5604.8|  5.3923e+06|        17|      0.24|
    |  6.5213e+05|  7.2567e+06|  6.5762e+05|     -5488.9|  5.0845e+06|        17|      0.24|
    |  6.3306e+05|  6.7079e+06|  6.3853e+05|     -5464.4|  4.8499e+06|        16|      0.26|
    |  6.1106e+05|  6.5842e+06|  6.1648e+05|     -5419.7|  4.8245e+06|        16|      0.25|
    |  6.0639e+05|  6.5785e+06|   6.118e+05|     -5407.2|  4.8186e+06|        16|      0.23|
    |  6.0303e+05|  6.5485e+06|  6.0843e+05|     -5399.5|  4.8017e+06|        16|      0.25|
    |  6.0049e+05|  6.4949e+06|  6.0588e+05|     -5394.4|   4.793e+06|        16|      0.25|
    |  5.9905e+05|  6.4674e+06|  6.0444e+05|     -5393.1|  4.7792e+06|        16|      0.26|
    |  5.9767e+05|  6.4328e+06|  6.0306e+05|     -5392.3|  4.7627e+06|        16|      0.25|
    |  5.9683e+05|  6.4277e+06|  6.0222e+05|     -5390.2|  4.7601e+06|        16|      0.23|
    |  5.9524e+05|  6.4221e+06|  6.0063e+05|     -5387.6|  4.7402e+06|        16|      0.24|
    |  5.9512e+05|  6.4239e+06|  6.0051e+05|     -5386.2|  4.7484e+06|        16|      0.23|
    |  5.9478e+05|  6.4132e+06|  6.0016e+05|       -5386|  4.7509e+06|        16|      0.26|
    |  5.9392e+05|  6.3788e+06|  5.9931e+05|     -5385.9|  4.7713e+06|        16|      0.25|
    |   5.935e+05|  6.3821e+06|  5.9889e+05|     -5385.7|  4.7683e+06|        16|      0.25|
    |  5.9308e+05|  6.3901e+06|  5.9847e+05|     -5386.2|  4.7575e+06|        16|      0.24|
    |  5.9313e+05|  6.3909e+06|  5.9852e+05|     -5386.3|   4.754e+06|        16|      0.29|
    |  5.9322e+05|  6.3926e+06|   5.986e+05|     -5386.2|  4.7582e+06|        16|      0.25|
    |   5.931e+05|  6.3901e+06|  5.9849e+05|     -5386.2|  4.7544e+06|        16|      0.26|
    |  5.9314e+05|  6.3907e+06|  5.9852e+05|     -5386.2|   4.755e+06|        16|      0.24|
    |  5.9308e+05|  6.3891e+06|  5.9847e+05|     -5386.2|  4.7536e+06|        16|      0.25|
    |  5.9307e+05|   6.389e+06|  5.9845e+05|     -5386.2|  4.7553e+06|        16|      0.24|
    |  5.9325e+05|  6.3937e+06|  5.9864e+05|     -5386.3|  4.7573e+06|        16|      0.25|
    |  5.9308e+05|  6.3894e+06|  5.9846e+05|     -5386.2|   4.755e+06|        16|      0.24|
    |   5.932e+05|  6.3923e+06|  5.9859e+05|     -5386.2|  4.7558e+06|        16|      0.24|
    |  5.9316e+05|  6.3913e+06|  5.9855e+05|     -5386.2|  4.7558e+06|        16|      0.29|
    |  5.9312e+05|  6.3904e+06|  5.9851e+05|     -5386.2|  4.7557e+06|        16|      0.24|
    |  5.9306e+05|  6.3889e+06|  5.9844e+05|     -5386.2|  4.7558e+06|        16|      0.23|
    |  5.9313e+05|  6.3905e+06|  5.9852e+05|     -5386.3|  4.7554e+06|        16|      0.24|
    |   5.932e+05|  6.3924e+06|  5.9858e+05|     -5386.2|  4.7566e+06|        16|      0.24|
    |  5.9312e+05|  6.3905e+06|  5.9851e+05|     -5386.2|  4.7559e+06|        16|      0.29|
    |  5.9308e+05|  6.3897e+06|  5.9847e+05|     -5386.2|   4.755e+06|        16|      0.23|
    |  5.9307e+05|  6.3892e+06|  5.9846e+05|     -5386.2|  4.7548e+06|        16|      0.23|
    |  5.9304e+05|   6.389e+06|  5.9842e+05|     -5386.2|  4.7549e+06|        16|      0.23|
    |  5.9317e+05|   6.391e+06|  5.9855e+05|     -5386.3|  4.7554e+06|        16|      0.25|
    |   5.932e+05|  6.3919e+06|  5.9859e+05|     -5386.2|  4.7547e+06|        16|      0.25|
    |  5.9316e+05|  6.3915e+06|  5.9854e+05|     -5386.2|  4.7553e+06|        16|      0.23|
    |  5.9327e+05|   6.394e+06|  5.9865e+05|     -5386.2|  4.7559e+06|        16|      0.24|
    |  5.9304e+05|   6.389e+06|  5.9843e+05|     -5386.2|  4.7557e+06|        16|      0.25|
    |  5.9304e+05|  6.3886e+06|  5.9843e+05|     -5386.2|  4.7558e+06|        16|      0.23|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  1.6113e+06|  2.0314e+07|  1.6179e+06|     -6559.9|    7.36e+06|        20|      0.23|
    |  1.2581e+06|  1.5664e+07|  1.2643e+06|     -6261.6|  6.7782e+06|        19|      0.23|
    |  1.0003e+06|  1.2671e+07|  1.0063e+06|     -5992.5|  6.2212e+06|        18|      0.23|
    |  7.8115e+05|  1.0003e+07|  7.8685e+05|     -5696.4|  5.6642e+06|        18|      0.24|
    |  6.9162e+05|  7.9735e+06|  6.9719e+05|     -5566.1|  5.2745e+06|        17|      0.23|
    |  6.3848e+05|  7.1424e+06|  6.4395e+05|     -5471.1|  5.0407e+06|        17|      0.23|
    |  6.1765e+05|  6.7359e+06|  6.2309e+05|     -5436.1|  4.8984e+06|        16|      0.24|
    |  6.0506e+05|  6.5944e+06|  6.1047e+05|     -5409.9|  4.8107e+06|        16|      0.24|
    |  5.9963e+05|  6.5128e+06|  6.0503e+05|     -5397.9|  4.7795e+06|        16|      0.24|
    |  5.9555e+05|   6.398e+06|  6.0093e+05|     -5387.7|  4.7692e+06|        16|      0.23|
    |  5.9484e+05|  6.3997e+06|  6.0022e+05|     -5387.4|  4.7608e+06|        16|      0.23|
    |  5.9465e+05|  6.4069e+06|  6.0004e+05|     -5387.1|  4.7514e+06|        16|      0.24|
    |  5.9406e+05|  6.4076e+06|  5.9945e+05|     -5386.5|  4.7468e+06|        16|      0.24|
    |  5.9376e+05|  6.4017e+06|  5.9915e+05|     -5386.4|  4.7514e+06|        16|      0.23|
    |  5.9339e+05|  6.4065e+06|  5.9878e+05|     -5387.8|  4.7694e+06|        16|      0.24|
    |  5.9328e+05|  6.3961e+06|  5.9867e+05|     -5386.4|  4.7566e+06|        16|      0.23|
    |  5.9307e+05|  6.3887e+06|  5.9846e+05|     -5387.1|  4.7571e+06|        16|      0.23|
    |  5.9314e+05|  6.3921e+06|  5.9853e+05|     -5386.4|  4.7584e+06|        16|      0.25|
    |  5.9311e+05|  6.3902e+06|   5.985e+05|       -5387|  4.7574e+06|        16|      0.24|
    |   5.931e+05|  6.3898e+06|  5.9849e+05|     -5387.1|  4.7607e+06|        16|      0.24|
    |  5.9316e+05|  6.3906e+06|  5.9854e+05|     -5387.1|  4.7586e+06|        16|      0.29|
    |  5.9307e+05|  6.3888e+06|  5.9846e+05|     -5387.1|  4.7581e+06|        16|      0.24|
    |  5.9304e+05|  6.3886e+06|  5.9843e+05|     -5387.1|  4.7592e+06|        16|      0.23|
    |  5.9325e+05|  6.3932e+06|  5.9864e+05|     -5387.1|  4.7559e+06|        16|      0.26|
    |  5.9308e+05|  6.3892e+06|  5.9847e+05|     -5387.1|  4.7579e+06|        16|      0.25|
    |  5.9308e+05|  6.3888e+06|  5.9846e+05|     -5387.1|  4.7596e+06|        16|      0.25|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  3.3809e+06|   2.567e+07|  3.3884e+06|     -7523.2|  8.7437e+06|        20|      0.25|
    |  2.2099e+06|  2.2186e+07|  2.2169e+06|     -6915.1|  8.0945e+06|        19|      0.23|
    |  1.5265e+06|  1.7804e+07|   1.533e+06|     -6452.2|  7.3327e+06|        19|      0.24|
    |  1.1479e+06|  1.4003e+07|   1.154e+06|     -6122.4|  6.6504e+06|        18|      0.25|
    |  9.0657e+05|  1.1219e+07|  9.1243e+05|     -5856.3|  6.0662e+06|        18|       0.3|
    |  7.6609e+05|  9.2708e+06|  7.7175e+05|     -5661.2|  5.6381e+06|        18|      0.32|
    |   6.885e+05|  7.9122e+06|  6.9406e+05|     -5553.1|  5.2831e+06|        17|       0.3|
    |  6.3344e+05|  7.1445e+06|   6.389e+05|     -5452.7|  5.0384e+06|        17|      0.32|
    |  6.1447e+05|  6.7939e+06|  6.1989e+05|     -5425.2|  4.9013e+06|        17|      0.32|
    |  6.0958e+05|   6.704e+06|  6.1499e+05|     -5416.7|    4.86e+06|        17|      0.31|
    |  6.0106e+05|  6.5522e+06|  6.0646e+05|     -5400.7|  4.7973e+06|        16|      0.32|
    |  5.9817e+05|  6.4179e+06|  6.0357e+05|     -5395.5|  4.7812e+06|        16|       0.3|
    |  5.9642e+05|  6.4237e+06|  6.0182e+05|       -5391|  4.7762e+06|        16|      0.32|
    |  5.9571e+05|  6.4234e+06|   6.011e+05|     -5388.5|  4.7713e+06|        16|      0.31|
    |  5.9525e+05|  6.4155e+06|  6.0064e+05|     -5387.2|  4.7679e+06|        16|      0.31|
    |  5.9468e+05|  6.4176e+06|  6.0007e+05|     -5387.5|  4.7529e+06|        16|      0.32|
    |  5.9438e+05|  6.4103e+06|  5.9977e+05|     -5387.9|  4.7551e+06|        16|      0.37|
    |  5.9386e+05|  6.3967e+06|  5.9924e+05|     -5388.1|  4.7506e+06|        16|      0.34|
    |   5.935e+05|  6.3876e+06|  5.9889e+05|       -5388|  4.7502e+06|        16|      0.32|
    |  5.9311e+05|  6.3863e+06|  5.9849e+05|     -5386.1|  4.7595e+06|        16|      0.31|
    |    5.93e+05|  6.3799e+06|  5.9838e+05|     -5385.8|  4.7627e+06|        16|       0.3|
    |  5.9305e+05|  6.3782e+06|  5.9844e+05|     -5385.9|  4.7572e+06|        16|      0.32|
    |  5.9307e+05|  6.3812e+06|  5.9845e+05|     -5385.8|  4.7653e+06|        16|      0.32|
    |    5.93e+05|  6.3793e+06|  5.9838e+05|     -5385.8|   4.763e+06|        16|      0.31|
    |    5.93e+05|  6.3794e+06|  5.9839e+05|     -5385.8|  4.7612e+06|        16|       0.3|
    |    5.93e+05|  6.3797e+06|  5.9839e+05|     -5385.8|  4.7625e+06|        16|      0.33|
    Optimization result:
          fun: 592999.262897309
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 6.37557709e+02,  1.28957404e+02,  1.70757693e+01,  2.63063370e+02,
            1.36967727e+04,  2.82633429e+02,  0.00000000e+00, -1.00472222e+02,
            8.89951583e+01, -1.57579674e+03,  0.00000000e+00,  1.17316984e+02,
            5.10169591e+01,  8.89194089e+02,  1.76293270e+04, -7.14870043e+01,
            1.61586947e+03, -2.41999176e+02,  3.03163717e+03,  2.54335305e+02,
            2.68027367e+02,  6.99937998e+01,  0.00000000e+00, -1.13350766e+01,
            2.38014761e+02])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 26
          nit: 21
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -2.30258509,  1.47487695, -2.30258509,
           -4.60517019,  1.38836933, -3.71617987, -2.28794699,  2.30258509,
           -2.72487862, -3.89275983, -2.30258509,  1.73055155, -2.30258509,
            1.53183641, -2.30258509,  2.15730037, -2.30258509, -0.15867978,
           -2.30258509, -3.79930524, -0.19078879, -0.38342785, -2.30258509])
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  3.0644e+06|  2.5314e+07|  3.0719e+06|     -7434.6|  8.9225e+06|        22|      0.24|
    |  2.1158e+06|  2.2216e+07|  2.1227e+06|     -6895.5|   8.267e+06|        20|      0.24|
    |  1.3279e+06|   1.684e+07|  1.3342e+06|     -6284.8|  7.1507e+06|        19|      0.24|
    |  9.8986e+05|  1.1985e+07|  9.9581e+05|     -5947.9|  6.3966e+06|        18|      0.23|
    |  8.4052e+05|  9.8498e+06|  8.4629e+05|     -5770.5|  5.8921e+06|        17|      0.23|
    |  7.2776e+05|  8.1899e+06|  7.3337e+05|     -5615.9|  5.4058e+06|        17|      0.22|
    |  6.5835e+05|   7.386e+06|  6.6385e+05|     -5497.8|  5.1093e+06|        17|      0.25|
    |  6.2434e+05|  6.7359e+06|  6.2978e+05|     -5446.8|   4.881e+06|        16|      0.23|
    |  6.0817e+05|  6.5653e+06|  6.1358e+05|       -5415|   4.805e+06|        16|      0.23|
    |  6.0087e+05|   6.523e+06|  6.0626e+05|     -5396.6|  4.7858e+06|        16|      0.23|
    |  5.9897e+05|  6.4925e+06|  6.0436e+05|     -5392.8|  4.7731e+06|        16|      0.24|
    |  6.0142e+05|  6.5559e+06|  6.0681e+05|     -5389.2|   4.817e+06|        17|      0.24|
    |  5.9852e+05|  6.4979e+06|  6.0391e+05|     -5389.9|    4.78e+06|        16|      0.23|
    |  5.9957e+05|  6.5349e+06|  6.0496e+05|     -5387.5|  4.8005e+06|        17|      0.24|
    |  5.9844e+05|  6.4995e+06|  6.0383e+05|     -5389.3|  4.7831e+06|        16|      0.29|
    |  5.9715e+05|  6.4564e+06|  6.0254e+05|     -5389.3|  4.7656e+06|        16|      0.23|
    |  5.9698e+05|  6.4517e+06|  6.0237e+05|     -5388.9|  4.7665e+06|        16|      0.24|
    |  5.9585e+05|  6.4215e+06|  6.0124e+05|     -5387.4|  4.7544e+06|        16|      0.22|
    |  5.9514e+05|  6.4042e+06|  6.0053e+05|     -5386.6|  4.7481e+06|        16|      0.23|
    |  5.9499e+05|  6.4122e+06|  6.0038e+05|     -5386.1|  4.7466e+06|        16|      0.23|
    |  5.9505e+05|  6.4191e+06|  6.0044e+05|     -5386.1|  4.7424e+06|        16|      0.22|
    |  5.9504e+05|  6.4142e+06|  6.0043e+05|     -5386.1|   4.744e+06|        16|      0.23|
    |  5.9526e+05|  6.4179e+06|  6.0064e+05|     -5386.1|  4.7438e+06|        16|      0.23|
    |  5.9516e+05|  6.4162e+06|  6.0054e+05|     -5386.1|   4.746e+06|        16|      0.22|
    |   5.951e+05|  6.4146e+06|  6.0049e+05|     -5386.1|  4.7451e+06|        16|      0.23|
    |  5.9509e+05|  6.4141e+06|  6.0047e+05|     -5386.1|  4.7478e+06|        16|      0.23|
    |  5.9519e+05|  6.4168e+06|  6.0058e+05|     -5386.1|  4.7462e+06|        16|      0.25|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  5.0155e+06|  1.1274e+07|  5.0237e+06|     -8253.4|  9.6358e+06|        16|      0.24|
    |  3.8821e+06|  1.5647e+07|  3.8899e+06|     -7808.2|  9.3045e+06|        17|      0.23|
    |  1.0393e+06|  1.2701e+07|  1.0453e+06|     -5944.3|  5.8767e+06|        19|      0.23|
    |  8.1736e+05|   9.245e+06|  8.2307e+05|     -5706.9|  5.3322e+06|        17|      0.23|
    |  7.8782e+05|  8.6319e+06|   7.935e+05|     -5675.5|  5.2196e+06|        16|      0.23|
    |  7.7036e+05|  8.3617e+06|  7.7601e+05|     -5655.4|  5.1668e+06|        16|      0.23|
    |  6.7361e+05|  7.2377e+06|  6.7914e+05|     -5527.2|  5.0743e+06|        17|      0.26|
    |  7.0073e+05|  7.5283e+06|  7.0629e+05|     -5568.6|  4.9886e+06|        16|      0.25|
    |  6.4084e+05|  6.8956e+06|  6.4632e+05|     -5480.8|  4.8809e+06|        16|      0.26|
    |  8.4838e+05|  9.2932e+06|  8.5415e+05|     -5765.8|  5.6947e+06|        18|      0.25|
    |  6.3654e+05|  6.8601e+06|  6.4201e+05|     -5473.9|  4.8905e+06|        16|      0.24|
    |  6.2044e+05|  6.6979e+06|  6.2588e+05|     -5442.6|  4.8477e+06|        16|      0.23|
    |  6.0571e+05|   6.602e+06|  6.1111e+05|     -5406.5|  4.8175e+06|        16|      0.23|
    |   6.045e+05|  6.5724e+06|  6.0991e+05|     -5404.3|  4.8113e+06|        16|      0.22|
    |  6.0166e+05|  6.5157e+06|  6.0706e+05|     -5396.4|  4.8063e+06|        16|      0.23|
    |  6.0071e+05|  6.4913e+06|   6.061e+05|     -5396.3|  4.7893e+06|        16|      0.24|
    |  6.0025e+05|  6.4799e+06|  6.0565e+05|       -5396|  4.7762e+06|        16|      0.23|
    |  5.9972e+05|  6.4718e+06|  6.0511e+05|     -5395.1|  4.7681e+06|        16|      0.23|
    |   5.989e+05|  6.4867e+06|  6.0429e+05|     -5390.9|  4.7735e+06|        16|      0.26|
    |  5.9836e+05|   6.472e+06|  6.0376e+05|     -5390.7|  4.7644e+06|        16|      0.25|
    |  5.9757e+05|  6.4537e+06|  6.0296e+05|     -5390.3|  4.7457e+06|        16|      0.27|
    |  5.9703e+05|  6.4442e+06|  6.0242e+05|     -5389.8|  4.7398e+06|        16|      0.24|
    |  5.9592e+05|  6.4434e+06|  6.0131e+05|     -5386.4|  4.7469e+06|        16|      0.24|
    |  5.9532e+05|   6.428e+06|  6.0071e+05|     -5386.5|  4.7438e+06|        16|      0.23|
    |  5.9401e+05|  6.3852e+06|   5.994e+05|     -5387.7|   4.746e+06|        16|      0.22|
    |  5.9374e+05|  6.3875e+06|  5.9912e+05|     -5387.3|  4.7502e+06|        16|      0.23|
    |  5.9328e+05|  6.3988e+06|  5.9867e+05|     -5386.7|  4.7627e+06|        16|      0.23|
    |  5.9325e+05|  6.3961e+06|  5.9864e+05|     -5386.7|  4.7584e+06|        16|      0.24|
    |  5.9327e+05|  6.4004e+06|  5.9866e+05|     -5386.6|  4.7581e+06|        16|      0.23|
    |  5.9327e+05|  6.3979e+06|  5.9866e+05|     -5386.7|  4.7632e+06|        16|      0.22|
    |  5.9326e+05|  6.3972e+06|  5.9864e+05|     -5386.7|  4.7606e+06|        16|      0.24|
    |  5.9318e+05|   6.395e+06|  5.9856e+05|     -5386.7|  4.7638e+06|        16|      0.23|
    |  5.9327e+05|  6.3974e+06|  5.9865e+05|     -5386.7|  4.7603e+06|        16|      0.25|
    |  5.9319e+05|  6.3958e+06|  5.9858e+05|     -5386.7|  4.7595e+06|        16|      0.28|
    |  5.9326e+05|     6.4e+06|  5.9865e+05|     -5386.6|  4.7558e+06|        16|      0.24|
    |   5.932e+05|  6.3962e+06|  5.9859e+05|     -5386.7|  4.7591e+06|        16|      0.23|
    |  5.9328e+05|  6.3976e+06|  5.9867e+05|     -5386.7|  4.7621e+06|        16|      0.24|
    |  5.9325e+05|  6.3969e+06|  5.9864e+05|     -5386.7|  4.7646e+06|        16|       0.3|
    |  5.9324e+05|  6.3969e+06|  5.9863e+05|     -5386.7|  4.7606e+06|        16|       0.3|
    |  5.9332e+05|  6.3986e+06|  5.9871e+05|     -5386.7|  4.7605e+06|        16|      0.29|
    |  5.9324e+05|  6.3965e+06|  5.9863e+05|     -5386.7|  4.7611e+06|        16|       0.3|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.9521e+06|  3.5287e+07|  2.9595e+06|     -7373.1|  8.5724e+06|        24|      0.29|
    |  1.9406e+06|  2.6937e+07|  1.9474e+06|     -6787.1|  7.8258e+06|        22|      0.29|
    |  1.4889e+06|  2.1736e+07|  1.4953e+06|     -6449.5|  7.2511e+06|        21|      0.29|
    |  1.1658e+06|  1.6691e+07|  1.1719e+06|     -6154.4|  6.6855e+06|        20|      0.33|
    |  9.8908e+05|  1.3865e+07|  9.9504e+05|     -5963.3|  6.2751e+06|        19|      0.32|
    |  8.3859e+05|   1.104e+07|  8.4437e+05|     -5776.6|  5.8518e+06|        18|      0.31|
    |  7.3138e+05|  8.8523e+06|  7.3701e+05|     -5630.2|  5.4239e+06|        17|       0.3|
    |  6.5973e+05|   7.735e+06|  6.6523e+05|     -5503.1|  5.1374e+06|        17|       0.3|
    |  6.2808e+05|  7.0189e+06|  6.3354e+05|     -5458.7|  4.9077e+06|        17|      0.29|
    |  6.2357e+05|  6.9767e+06|  6.2902e+05|     -5448.9|  4.9065e+06|        17|      0.31|
    |  6.1816e+05|  6.9141e+06|   6.236e+05|     -5435.6|  4.8985e+06|        17|      0.31|
    |   6.124e+05|  6.8074e+06|  6.1782e+05|     -5422.4|    4.88e+06|        17|       0.3|
    |  6.0535e+05|  6.6203e+06|  6.1076e+05|     -5409.5|  4.8534e+06|        17|      0.31|
    |  6.0547e+05|  6.5888e+06|  6.1087e+05|     -5402.3|  4.8638e+06|        17|      0.31|
    |  6.0437e+05|  6.5942e+06|  6.0978e+05|     -5403.9|  4.8563e+06|        17|      0.29|
    |  6.0445e+05|   6.535e+06|  6.0985e+05|     -5400.6|  4.8773e+06|        17|       0.3|
    |  6.0401e+05|  6.5607e+06|  6.0942e+05|     -5401.8|  4.8656e+06|        17|      0.31|
    |  6.0102e+05|  6.4832e+06|  6.0642e+05|     -5400.8|  4.8352e+06|        16|      0.31|
    |  6.0078e+05|  6.4773e+06|  6.0619e+05|     -5401.2|  4.8291e+06|        16|      0.33|
    |  6.0025e+05|  6.4637e+06|  6.0565e+05|     -5401.2|  4.8127e+06|        16|      0.31|
    |  5.9949e+05|  6.4429e+06|  6.0489e+05|     -5400.2|  4.7937e+06|        16|       0.3|
    |  5.9915e+05|  6.4426e+06|  6.0455e+05|     -5398.7|  4.8014e+06|        16|      0.31|
    |  5.9848e+05|  6.4383e+06|  6.0387e+05|       -5396|  4.8031e+06|        16|       0.3|
    |  5.9768e+05|  6.4312e+06|  6.0307e+05|     -5392.8|  4.8046e+06|        16|       0.3|
    |  5.9671e+05|  6.4134e+06|   6.021e+05|     -5389.8|  4.7986e+06|        16|      0.29|
    |  6.0086e+05|  6.4549e+06|  6.0625e+05|     -5389.6|  4.8181e+06|        16|      0.28|
    |  5.9513e+05|   6.393e+06|  6.0052e+05|     -5385.7|  4.7838e+06|        16|       0.3|
    |   5.952e+05|  6.3551e+06|  6.0059e+05|       -5388|  4.7637e+06|        16|       0.3|
    |  5.9469e+05|  6.3686e+06|  6.0007e+05|     -5386.2|  4.7756e+06|        16|      0.29|
    |   5.947e+05|  6.3714e+06|  6.0009e+05|     -5386.2|  4.7686e+06|        16|       0.3|
    |  5.9474e+05|  6.3707e+06|  6.0013e+05|     -5386.1|  4.7702e+06|        16|       0.3|
    |  5.9471e+05|  6.3691e+06|   6.001e+05|     -5386.2|  4.7721e+06|        16|      0.32|
    |  5.9493e+05|  6.3741e+06|  6.0031e+05|     -5386.2|  4.7699e+06|        16|      0.31|
    |  5.9477e+05|  6.3703e+06|  6.0015e+05|     -5386.2|  4.7727e+06|        16|      0.31|
    |  5.9475e+05|  6.3701e+06|  6.0014e+05|     -5386.2|  4.7752e+06|        16|      0.29|
    |  5.9475e+05|  6.3696e+06|  6.0013e+05|     -5386.2|  4.7732e+06|        16|      0.31|
    |  5.9467e+05|  6.3685e+06|  6.0006e+05|     -5386.2|  4.7724e+06|        16|       0.3|
    |  5.9458e+05|  6.3686e+06|  5.9997e+05|     -5386.2|  4.7673e+06|        16|      0.29|
    |  5.9451e+05|  6.3666e+06|  5.9989e+05|     -5386.1|  4.7652e+06|        16|      0.31|
    |  5.9464e+05|  6.3699e+06|  6.0002e+05|     -5386.3|  4.7615e+06|        16|      0.29|
    |  5.9451e+05|  6.3668e+06|   5.999e+05|     -5386.1|  4.7663e+06|        16|      0.32|
    |  5.9445e+05|  6.3647e+06|  5.9983e+05|     -5386.1|   4.763e+06|        16|      0.29|
    |  5.9446e+05|  6.3649e+06|  5.9985e+05|     -5386.1|  4.7636e+06|        16|       0.3|
    |  5.9455e+05|  6.3671e+06|  5.9994e+05|     -5386.1|  4.7645e+06|        16|       0.3|
    Optimization result:
          fun: 593242.1427999439
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 6.39244705e+02,  1.29678119e+02,  1.70751991e+01,  2.64988564e+02,
            1.37175442e+04,  2.83375186e+02,  0.00000000e+00, -1.02672973e+02,
            9.89278355e+01, -5.99504710e+02,  0.00000000e+00,  8.68982415e+01,
            5.84802721e+01, -5.67496817e+01,  1.75653701e+04,  4.06899639e+02,
            1.70250971e+03, -7.52799075e+02,  2.98367363e+03, -3.87774589e+02,
            2.36922561e+02,  1.89661230e+02,  0.00000000e+00,  5.44871660e+02,
            2.56475008e+02])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 41
          nit: 26
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -2.30258509,  1.47382103, -2.30258509,
           -4.60517019, -0.92055184, -3.58281591, -2.30258509,  2.30258509,
           -8.71221151, -4.11374043, -2.00630242,  1.7186841 , -2.30258509,
            0.04775122, -2.30258509,  0.5542733 , -2.30258509, -2.15138843,
           -2.30258509, -4.37025229, -0.32637211, -1.65930591, -2.30258509])
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  3.2761e+06|  2.5568e+07|  3.2836e+06|     -7545.4|  9.0292e+06|        23|      0.25|
    |  2.3022e+06|  2.3345e+07|  2.3092e+06|     -7020.4|  8.4259e+06|        21|      0.24|
    |  1.2831e+06|  1.6655e+07|  1.2893e+06|     -6243.3|  7.0573e+06|        20|      0.25|
    |  9.5836e+05|  1.1565e+07|  9.6427e+05|     -5909.2|  6.3009e+06|        18|      0.23|
    |  8.2605e+05|  9.6213e+06|   8.318e+05|     -5748.5|  5.8434e+06|        17|      0.23|
    |  7.2038e+05|   8.029e+06|  7.2598e+05|     -5605.2|  5.3655e+06|        17|      0.28|
    |  6.5663e+05|  7.3142e+06|  6.6212e+05|     -5497.3|  5.0814e+06|        17|      0.24|
    |  6.2214e+05|  6.7631e+06|  6.2759e+05|     -5441.4|  4.8894e+06|        16|      0.22|
    |  6.0491e+05|  6.5501e+06|  6.1032e+05|     -5407.8|  4.7932e+06|        16|      0.23|
    |  5.9984e+05|  6.5046e+06|  6.0523e+05|     -5393.7|  4.7862e+06|        16|      0.24|
    |  5.9757e+05|  6.4625e+06|  6.0296e+05|     -5389.7|  4.7713e+06|        16|      0.23|
    |  5.9702e+05|  6.4491e+06|  6.0241e+05|     -5389.6|  4.7653e+06|        16|      0.24|
    |  5.9599e+05|  6.4255e+06|  6.0137e+05|     -5389.4|  4.7399e+06|        16|      0.23|
    |  5.9535e+05|  6.4203e+06|  6.0074e+05|     -5388.1|  4.7382e+06|        16|      0.24|
    |  5.9482e+05|  6.4111e+06|  6.0021e+05|     -5386.4|  4.7564e+06|        16|      0.22|
    |  5.9468e+05|  6.4089e+06|  6.0006e+05|     -5386.4|   4.757e+06|        16|      0.23|
    |  5.9409e+05|  6.4028e+06|  5.9947e+05|     -5387.1|   4.764e+06|        16|      0.23|
    |  5.9382e+05|  6.4048e+06|  5.9921e+05|     -5387.2|  4.7617e+06|        16|      0.23|
    |   5.934e+05|  6.4002e+06|  5.9879e+05|     -5387.3|  4.7627e+06|        16|      0.24|
    |  5.9316e+05|  6.3999e+06|  5.9855e+05|       -5387|  4.7608e+06|        16|      0.24|
    |  5.9321e+05|  6.4015e+06|   5.986e+05|     -5386.9|  4.7573e+06|        16|      0.22|
    |  5.9337e+05|  6.4045e+06|  5.9875e+05|       -5387|    4.76e+06|        16|      0.22|
    |  5.9315e+05|  6.3996e+06|  5.9854e+05|       -5387|  4.7581e+06|        16|      0.23|
    |  5.9325e+05|  6.4018e+06|  5.9863e+05|       -5387|  4.7591e+06|        16|      0.22|
    |   5.932e+05|  6.4009e+06|  5.9858e+05|       -5387|    4.76e+06|        16|      0.23|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  4.3681e+06|  2.4416e+07|  4.3761e+06|     -8020.3|  9.3727e+06|        21|      0.24|
    |  2.7954e+06|  2.5049e+07|  2.8027e+06|     -7289.8|  8.7832e+06|        20|      0.23|
    |  1.3577e+06|  1.7118e+07|   1.364e+06|     -6300.3|  7.2139e+06|        19|      0.24|
    |   1.195e+06|  1.5064e+07|  1.2011e+06|     -6153.2|  6.9012e+06|        19|      0.24|
    |  9.3444e+05|  1.1321e+07|  9.4033e+05|     -5885.5|   6.216e+06|        18|      0.25|
    |  8.2448e+05|  9.5801e+06|  8.3024e+05|     -5753.4|  5.8034e+06|        17|      0.23|
    |  7.3317e+05|  8.3684e+06|  7.3879e+05|     -5624.7|  5.4312e+06|        17|      0.23|
    |   6.606e+05|   7.457e+06|  6.6611e+05|     -5506.5|  5.1161e+06|        17|      0.25|
    |  6.2351e+05|  6.8882e+06|  6.2895e+05|     -5442.8|  4.8877e+06|        16|      0.22|
    |  6.1233e+05|  6.6979e+06|  6.1775e+05|     -5418.4|  4.8691e+06|        17|      0.24|
    |  6.0783e+05|  6.6681e+06|  6.1324e+05|     -5411.1|  4.8422e+06|        17|      0.23|
    |   6.058e+05|  6.6385e+06|  6.1121e+05|     -5407.2|  4.8273e+06|        17|      0.23|
    |  6.0034e+05|  6.5252e+06|  6.0574e+05|     -5398.4|  4.8002e+06|        16|      0.23|
    |  5.9742e+05|  6.4528e+06|  6.0281e+05|     -5394.7|   4.782e+06|        16|      0.23|
    |  5.9687e+05|  6.4509e+06|  6.0226e+05|     -5392.8|  4.7875e+06|        16|      0.23|
    |   5.964e+05|  6.4437e+06|   6.018e+05|     -5391.8|  4.7854e+06|        16|      0.24|
    |  5.9605e+05|  6.4344e+06|  6.0144e+05|     -5391.4|  4.7854e+06|        16|      0.23|
    |  5.9518e+05|  6.4134e+06|  6.0057e+05|     -5390.2|  4.7719e+06|        16|      0.22|
    |  5.9456e+05|  6.4057e+06|  5.9995e+05|     -5388.9|  4.7646e+06|        16|      0.26|
    |  5.9341e+05|  6.3946e+06|   5.988e+05|     -5386.2|  4.7549e+06|        16|      0.24|
    |  5.9337e+05|  6.3941e+06|  5.9876e+05|     -5386.3|  4.7553e+06|        16|      0.22|
    |  5.9321e+05|  6.3934e+06|   5.986e+05|     -5386.8|  4.7521e+06|        16|      0.22|
    |  5.9317e+05|  6.3943e+06|  5.9855e+05|       -5387|  4.7562e+06|        16|      0.22|
    |  5.9301e+05|  6.3855e+06|   5.984e+05|     -5386.9|  4.7627e+06|        16|      0.23|
    |  5.9315e+05|  6.3962e+06|  5.9853e+05|     -5386.1|  4.7642e+06|        16|      0.23|
    |   5.931e+05|  6.3889e+06|  5.9849e+05|     -5386.8|    4.76e+06|        16|      0.28|
    |    5.93e+05|  6.3858e+06|  5.9838e+05|     -5386.9|  4.7559e+06|        16|      0.23|
    |  5.9312e+05|  6.3882e+06|   5.985e+05|     -5386.9|  4.7615e+06|        16|      0.23|
    |  5.9309e+05|  6.3878e+06|  5.9848e+05|     -5386.9|  4.7607e+06|        16|      0.25|
    |  5.9315e+05|  6.3889e+06|  5.9853e+05|     -5386.9|  4.7567e+06|        16|      0.25|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.2932e+06|  2.4783e+07|  2.3002e+06|     -7019.7|  8.3792e+06|        21|      0.24|
    |  1.5586e+06|  1.7302e+07|  1.5651e+06|     -6513.2|  7.4718e+06|        19|      0.23|
    |   1.121e+06|  1.2443e+07|  1.1271e+06|     -6116.9|  6.5724e+06|        17|      0.24|
    |  9.0933e+05|  1.0184e+07|   9.152e+05|     -5871.7|  6.0342e+06|        17|      0.24|
    |   7.333e+05|  8.5948e+06|  7.3892e+05|     -5620.2|  5.4934e+06|        17|      0.23|
    |  6.7746e+05|  7.8203e+06|    6.83e+05|     -5534.2|  5.2201e+06|        17|      0.23|
    |  6.3071e+05|  7.0299e+06|  6.3617e+05|     -5452.1|  4.9924e+06|        17|      0.23|
    |  6.1828e+05|  6.8758e+06|  6.2371e+05|     -5428.7|  4.8979e+06|        17|      0.23|
    |  6.0894e+05|    6.71e+06|  6.1435e+05|     -5413.4|  4.8341e+06|        17|      0.24|
    |  6.0039e+05|  6.5287e+06|  6.0579e+05|     -5398.6|  4.7882e+06|        16|      0.23|
    |  5.9824e+05|  6.4817e+06|  6.0363e+05|     -5393.6|  4.7775e+06|        16|      0.23|
    |   5.959e+05|  6.4395e+06|  6.0129e+05|       -5390|  4.7461e+06|        16|      0.25|
    |  5.9554e+05|  6.4458e+06|  6.0093e+05|     -5387.9|  4.7534e+06|        16|      0.24|
    |  5.9539e+05|  6.4444e+06|  6.0078e+05|     -5387.7|  4.7549e+06|        16|      0.24|
    |  5.9487e+05|  6.4362e+06|  6.0026e+05|     -5387.1|  4.7475e+06|        16|      0.27|
    |  5.9449e+05|   6.425e+06|  5.9987e+05|       -5387|  4.7446e+06|        16|      0.23|
    |  5.9437e+05|  6.4209e+06|  5.9975e+05|     -5386.8|   4.748e+06|        16|      0.24|
    |  5.9434e+05|  6.4167e+06|  5.9973e+05|     -5386.8|  4.7485e+06|        16|      0.23|
    |  5.9425e+05|  6.4155e+06|  5.9964e+05|       -5387|  4.7485e+06|        16|      0.23|
    |  5.9391e+05|  6.4121e+06|   5.993e+05|     -5387.7|  4.7518e+06|        16|      0.23|
    |  5.9378e+05|   6.417e+06|  5.9916e+05|     -5387.5|  4.7544e+06|        16|      0.23|
    |  5.9375e+05|  6.4309e+06|  5.9914e+05|     -5387.4|   4.759e+06|        16|      0.23|
    |  5.9363e+05|  6.4274e+06|  5.9901e+05|     -5387.4|  4.7553e+06|        16|      0.25|
    |   5.935e+05|  6.4221e+06|  5.9888e+05|     -5387.7|  4.7596e+06|        16|      0.26|
    |  5.9336e+05|  6.3902e+06|  5.9875e+05|     -5388.2|  4.7748e+06|        16|      0.24|
    |  5.9325e+05|  6.4085e+06|  5.9864e+05|     -5387.8|  4.7629e+06|        16|      0.23|
    |  5.9294e+05|  6.3897e+06|  5.9833e+05|       -5387|  4.7676e+06|        16|      0.25|
    |  5.9302e+05|  6.3789e+06|   5.984e+05|     -5386.8|  4.7538e+06|        16|      0.24|
    |  5.9297e+05|  6.3867e+06|  5.9836e+05|     -5386.9|  4.7609e+06|        16|      0.24|
    |  5.9312e+05|  6.3933e+06|  5.9851e+05|       -5387|  4.7665e+06|        16|      0.23|
    |  5.9304e+05|  6.3918e+06|  5.9843e+05|       -5387|  4.7667e+06|        16|      0.23|
    |  5.9304e+05|  6.3917e+06|  5.9842e+05|       -5387|  4.7666e+06|        16|      0.23|
    |  5.9301e+05|   6.391e+06|  5.9839e+05|       -5387|  4.7702e+06|        16|      0.24|
    |  5.9302e+05|  6.3914e+06|   5.984e+05|       -5387|  4.7676e+06|        16|      0.23|
    |  5.9307e+05|  6.3929e+06|  5.9846e+05|       -5387|  4.7681e+06|        16|      0.24|
    Optimization result:
          fun: 593068.1209087458
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 6.38882273e+02,  1.28143794e+02,  1.72027961e+01, -1.38623091e+03,
            1.36305971e+04,  2.82977101e+02,  0.00000000e+00, -5.83627630e+01,
            1.43504932e+02, -7.35094084e+02,  1.36531205e-24,  6.29850735e+01,
            3.04954997e+01,  1.71799225e+03,  1.76564720e+04, -1.75949297e+02,
            1.60376945e+03, -8.53108271e+02,  3.01168866e+03,  2.11977183e+02,
            2.63321099e+02,  6.32876186e+01,  0.00000000e+00,  7.51600909e+02,
            2.56035744e+02])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 35
          nit: 25
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -2.30258509,  1.45563161, -2.30258509,
           -4.60517019, -0.82374502, -3.13326863, -2.30258509,  2.30258509,
           -2.48710121, -4.42886582, -2.30258509,  1.73644828, -2.30258509,
            0.86751178, -2.30258509,  1.47836529, -2.30258509, -0.84119831,
           -2.30258509, -4.55014905, -0.49842698, -0.67297937, -2.30258509])

```
exhaust_search_results
```

      aro_c_n_init
      aro_c_n_final
      ato_c_n_init
      ato_c_n_final
      cha_c_n_init
      cha_c_n_final
      chi_c_n_init
      chi_c_n_final
      hco_c_n_init
      hco_c_n_final
      hyb_c_n_init
      hyb_c_n_final
      ring_c_n_init
      ring_c_n_final
      aro_c_e_init
      aro_c_e_final
      con_c_e_init
      con_c_e_final
      ord_c_e_init
      ord_c_e_final
      ring_c_e_init
      ring_c_e_final
      ste_c_e_init
      ste_c_e_final
      alpha
      RMSE_train
      MAE_train
      RMSE_test
      MAE_test

      0
      0.5
      0.01
      1
      4.370498
      0.5
      0.01
      0.5
      0.024327
      0.5
      10.0
      0.5
      0.020389
      0.5
      5.643766
      0.5
      4.626665
      0.5
      8.647760
      0.5
      0.853270
      0.5
      0.022386
      0.5
      0.681521
      0.0001
      0.155852
      0.102469
      1.790423
      1.398627

      1
      0.5
      0.01
      5
      4.365885
      0.5
      0.01
      0.5
      0.027797
      0.5
      10.0
      0.5
      0.016347
      0.5
      5.577185
      0.5
      1.048910
      0.5
      1.740676
      0.5
      0.116323
      0.5
      0.012648
      0.5
      0.190271
      0.0001
      0.155840
      0.102556
      1.790531
      1.398135

      2
      0.5
      0.01
      9
      4.287190
      0.5
      0.01
      0.5
      0.043575
      0.5
      10.0
      0.5
      0.011928
      0.5
      5.677144
      0.5
      2.380979
      0.5
      4.385770
      0.5
      0.431194
      0.5
      0.010566
      0.5
      0.510186
      0.0001
      0.155844
      0.102517
      1.789339
      1.397825

```
for cha_c_n in cha_c_ns:
  model,para_list = gpr_model(cha_c_n = cha_c_n)
  model.fit(train.graphs, train[target], repeat=3, verbose=False)
  mu = model.predict(train.graphs)
  MAE_train = np.mean(np.abs(train[target] - mu))
  RMSE_train = np.std(train[target] - mu)
  para_list.append(RMSE_train)
  para_list.append(MAE_train)
  mu_test = model.predict(test.graphs)
  MAE_test = np.mean(np.abs(test[target] - mu_test))
  RMSE_test = np.std(test[target] - mu_test)
  para_list.append(RMSE_test)
  para_list.append(MAE_test)
  data = pd.DataFrame(data = [para_list],\
            columns=['aro_c_n','ato_c_n','cha_c_n','chi_c_n','hco_c_n',\
            'hyb_c_n','ring_c_n','aro_c_e','con_c_e','ord_c_e','ring_c_e',\
            'ste_c_e','alpha','RMSE_train', 'MAE_train', 'RMSE_test', 'MAE_test'])
  exhaust_search_results = exhaust_search_results.append(data,ignore_index=True)
```

```
for chi_c_n in chi_c_ns:
  model,para_list = gpr_model(chi_c_n = chi_c_n)
  model.fit(train.graphs, train[target], repeat=3, verbose=False)
  mu = model.predict(train.graphs)
  MAE_train = np.mean(np.abs(train[target] - mu))
  RMSE_train = np.std(train[target] - mu)
  para_list.append(RMSE_train)
  para_list.append(MAE_train)
  mu_test = model.predict(test.graphs)
  MAE_test = np.mean(np.abs(test[target] - mu_test))
  RMSE_test = np.std(test[target] - mu_test)
  para_list.append(RMSE_test)
  para_list.append(MAE_test)
  data = pd.DataFrame(data = [para_list],\
            columns=['aro_c_n','ato_c_n','cha_c_n','chi_c_n','hco_c_n',\
            'hyb_c_n','ring_c_n','aro_c_e','con_c_e','ord_c_e','ring_c_e',\
            'ste_c_e','alpha','RMSE_train', 'MAE_train', 'RMSE_test', 'MAE_test'])
  exhaust_search_results = exhaust_search_results.append(data,ignore_index=True)
```

```

```