## Set up the environment

```
!nvidia-smi
```

    Fri Jun 18 13:25:10 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   63C    P0    30W /  70W |    102MiB / 15109MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+

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

```
#!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: sympy in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (1.7.1)
    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: pandas in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (1.1.5)
    Requirement already satisfied: tabulate in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (0.8.9)
    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: networkx>=2.2 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (2.5.1)
    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: palettable>=3.1.1 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (3.3.0)
    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: spglib>=1.9.9.44 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (1.16.1)
    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: pydispatcher>=2.0.5 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11) (2.0.5)
    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: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->pymatgen==2019.11.11) (2.10)
    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: mpmath>=0.19 in /usr/local/lib/python3.7/dist-packages (from sympy->pymatgen==2019.11.11) (1.2.1)
    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: 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: 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: 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: 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: 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: 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: treelib>=1.6.1 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.6.1)
    Requirement already satisfied: sympy>=1.3 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.7.1)
    Requirement already satisfied: networkx>=2.4 in /usr/local/lib/python3.7/dist-packages (from graphdot) (2.5.1)
    Requirement already satisfied: pycuda>=2019 in /usr/local/lib/python3.7/dist-packages (from graphdot) (2021.1)
    Requirement already satisfied: pymatgen==2019.11.11 in /usr/local/lib/python3.7/dist-packages (from graphdot) (2019.11.11)
    Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.19.5)
    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: numba>=0.51.0 in /usr/local/lib/python3.7/dist-packages (from graphdot) (0.51.2)
    Requirement already satisfied: ase>=3.17 in /usr/local/lib/python3.7/dist-packages (from graphdot) (3.21.1)
    Requirement already satisfied: tqdm>=4.55 in /usr/local/lib/python3.7/dist-packages (from graphdot) (4.61.1)
    Requirement already satisfied: pandas>=0.24 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.1.5)
    Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from graphdot) (1.4.1)
    Requirement already satisfied: future in /usr/local/lib/python3.7/dist-packages (from treelib>=1.6.1->graphdot) (0.16.0)
    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: decorator<5,>=4.3 in /usr/local/lib/python3.7/dist-packages (from networkx>=2.4->graphdot) (4.4.2)
    Requirement already satisfied: mako in /usr/local/lib/python3.7/dist-packages (from pycuda>=2019->graphdot) (1.1.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: appdirs>=1.4.0 in /usr/local/lib/python3.7/dist-packages (from pycuda>=2019->graphdot) (1.4.4)
    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: matplotlib>=1.5 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (3.2.2)
    Requirement already satisfied: tabulate in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (0.8.9)
    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: requests in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (2.23.0)
    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: 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: monty>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from pymatgen==2019.11.11->graphdot) (2021.6.10)
    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: 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: 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: 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: 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: 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: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24->graphdot) (2018.9)
    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: MarkupSafe>=0.9.2 in /usr/local/lib/python3.7/dist-packages (from mako->pycuda>=2019->graphdot) (2.0.1)
    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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: six in /usr/local/lib/python3.7/dist-packages (from gdown) (1.15.0)
    Requirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from gdown) (4.61.1)
    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: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->gdown) (3.0.4)
    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
```

```
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=3, verbose=True)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.8732e+06|  2.4472e+07|  2.8805e+06|     -7290.9|  8.7025e+06|        25|      0.24|
    |  1.9317e+06|  2.0708e+07|  1.9384e+06|     -6742.8|  8.0201e+06|        19|      0.23|
    |  1.2915e+06|  1.5724e+07|  1.2978e+06|     -6252.6|  7.0847e+06|        19|      0.25|
    |  1.0059e+06|  1.2307e+07|  1.0119e+06|     -5971.9|  6.4112e+06|        18|      0.24|
    |  8.2586e+05|  9.7306e+06|  8.3162e+05|     -5755.8|  5.8195e+06|        18|      0.24|
    |  7.1188e+05|  8.0802e+06|  7.1747e+05|       -5589|    5.37e+06|        17|      0.24|
    |  6.4919e+05|  7.1077e+06|  6.5468e+05|     -5488.7|  5.0436e+06|        17|      0.24|
    |  6.3022e+05|  7.0494e+06|  6.3566e+05|     -5435.8|  4.9605e+06|        17|      0.25|
    |  6.0998e+05|  6.6425e+06|   6.154e+05|     -5413.2|  4.8443e+06|        17|      0.23|
    |  6.0543e+05|  6.5402e+06|  6.1084e+05|     -5407.7|  4.8013e+06|        17|      0.24|
    |   6.029e+05|  6.5002e+06|   6.083e+05|       -5403|  4.7834e+06|        17|      0.25|
    |  6.0597e+05|  6.6643e+06|  6.1136e+05|       -5396|  4.8337e+06|        17|      0.24|
    |  6.0095e+05|  6.5243e+06|  6.0634e+05|     -5395.1|  4.7907e+06|        17|      0.23|
    |  5.9992e+05|  6.4995e+06|  6.0531e+05|     -5393.3|  4.7863e+06|        17|      0.24|
    |  5.9795e+05|  6.4528e+06|  6.0334e+05|     -5390.7|   4.776e+06|        17|      0.25|
    |  5.9645e+05|   6.417e+06|  6.0184e+05|     -5389.1|  4.7596e+06|        17|      0.23|
    |  5.9551e+05|  6.4043e+06|   6.009e+05|     -5387.4|  4.7506e+06|        17|      0.23|
    |   5.952e+05|  6.4261e+06|  6.0059e+05|     -5386.3|  4.7509e+06|        17|      0.24|
    |  5.9521e+05|  6.4221e+06|   6.006e+05|     -5386.7|  4.7457e+06|        17|      0.24|
    |  5.9529e+05|   6.428e+06|  6.0067e+05|     -5386.4|  4.7501e+06|        17|      0.24|
    |  5.9532e+05|  6.4293e+06|  6.0071e+05|     -5386.3|  4.7524e+06|        17|      0.24|
    |   5.954e+05|  6.4315e+06|  6.0079e+05|     -5386.3|  4.7512e+06|        17|      0.23|
    |  5.9534e+05|  6.4295e+06|  6.0072e+05|     -5386.3|  4.7505e+06|        17|      0.23|
    |  5.9535e+05|  6.4296e+06|  6.0073e+05|     -5386.3|  4.7493e+06|        17|      0.24|
    |  5.9525e+05|  6.4271e+06|  6.0063e+05|     -5386.3|  4.7483e+06|        17|      0.24|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  1.7409e+06|  2.1762e+07|  1.7476e+06|       -6644|  7.5137e+06|        20|      0.25|
    |  1.3449e+06|  1.6767e+07|  1.3512e+06|     -6332.3|  6.9223e+06|        19|      0.23|
    |  1.0329e+06|  1.3304e+07|  1.0389e+06|     -6026.5|  6.3154e+06|        19|      0.23|
    |    7.99e+05|  1.0463e+07|  8.0471e+05|     -5717.1|  5.7322e+06|        19|      0.24|
    |  6.9731e+05|  8.1809e+06|  7.0289e+05|     -5576.4|  5.3116e+06|        18|      0.23|
    |   6.429e+05|  7.1948e+06|  6.4838e+05|     -5481.8|  5.0628e+06|        17|      0.23|
    |  6.1534e+05|  6.7632e+06|  6.2077e+05|     -5430.2|  4.8917e+06|        17|      0.24|
    |  6.1408e+05|   6.702e+06|  6.1951e+05|     -5424.3|  4.8089e+06|        17|      0.23|
    |  6.0084e+05|  6.5214e+06|  6.0624e+05|     -5401.1|  4.7735e+06|        17|      0.24|
    |  5.9722e+05|  6.4546e+06|  6.0261e+05|     -5392.3|  4.7711e+06|        17|      0.23|
    |  5.9574e+05|   6.421e+06|  6.0113e+05|       -5389|   4.753e+06|        17|      0.23|
    |  5.9474e+05|  6.4009e+06|  6.0012e+05|     -5386.2|  4.7503e+06|        17|      0.24|
    |   5.948e+05|  6.4051e+06|  6.0018e+05|     -5386.1|  4.7502e+06|        17|      0.26|
    |  5.9479e+05|  6.4027e+06|  6.0017e+05|     -5386.2|   4.751e+06|        17|      0.25|
    |  5.9483e+05|  6.4032e+06|  6.0022e+05|     -5386.2|  4.7489e+06|        17|      0.23|
    |  5.9479e+05|  6.4024e+06|  6.0018e+05|     -5386.2|  4.7497e+06|        17|      0.24|
    |  5.9463e+05|  6.3985e+06|  6.0001e+05|     -5386.2|  4.7498e+06|        17|      0.23|
    |  5.9476e+05|  6.4018e+06|  6.0014e+05|     -5386.2|  4.7515e+06|        17|      0.23|
    |  5.9472e+05|  6.4005e+06|  6.0011e+05|     -5386.2|  4.7481e+06|        17|      0.23|
    |  5.9438e+05|  6.4049e+06|  5.9976e+05|     -5385.2|  4.7582e+06|        17|      0.24|
    |  5.9398e+05|  6.3991e+06|  5.9937e+05|     -5384.9|  4.7606e+06|        17|      0.26|
    |  5.9434e+05|  6.3979e+06|  5.9973e+05|     -5387.1|  4.7974e+06|        17|      0.23|
    |  5.9364e+05|  6.3943e+06|  5.9903e+05|     -5385.1|  4.7704e+06|        17|      0.24|
    |  5.9352e+05|  6.3766e+06|   5.989e+05|     -5385.7|  4.7742e+06|        17|      0.24|
    |  5.9331e+05|  6.3716e+06|  5.9869e+05|     -5385.7|  4.7678e+06|        17|      0.25|
    |  5.9319e+05|  6.3736e+06|  5.9857e+05|     -5385.5|  4.7668e+06|        17|      0.24|
    |  5.9321e+05|  6.3761e+06|   5.986e+05|     -5385.5|  4.7654e+06|        17|      0.24|
    |   5.932e+05|  6.3739e+06|  5.9859e+05|     -5385.5|  4.7652e+06|        17|      0.25|
    |  5.9324e+05|  6.3745e+06|  5.9862e+05|     -5385.5|  4.7648e+06|        17|      0.26|
    |  5.9308e+05|   6.371e+06|  5.9846e+05|     -5385.5|  4.7648e+06|        17|      0.24|
    |  5.9311e+05|  6.3718e+06|  5.9849e+05|     -5385.5|  4.7653e+06|        17|      0.23|
    |  5.9307e+05|  6.3704e+06|  5.9845e+05|     -5385.5|  4.7663e+06|        17|      0.23|
    |  5.9311e+05|  6.3717e+06|  5.9849e+05|     -5385.5|  4.7665e+06|        17|      0.24|
    |  5.9314e+05|  6.3719e+06|  5.9852e+05|     -5385.5|  4.7652e+06|        17|      0.27|
    |  5.9322e+05|   6.374e+06|  5.9861e+05|     -5385.6|   4.768e+06|        17|      0.24|
    |  5.9323e+05|  6.3744e+06|  5.9862e+05|     -5385.5|  4.7661e+06|        17|      0.24|
    |  5.9329e+05|  6.3755e+06|  5.9867e+05|     -5385.5|  4.7682e+06|        17|      0.24|
    |  5.9317e+05|  6.3733e+06|  5.9856e+05|     -5385.5|  4.7673e+06|        17|      0.22|
    |  5.9317e+05|  6.3729e+06|  5.9856e+05|     -5385.5|  4.7663e+06|        17|      0.23|
    |  5.9306e+05|    6.37e+06|  5.9844e+05|     -5385.5|  4.7647e+06|        17|      0.23|
    |   5.932e+05|  6.3734e+06|  5.9858e+05|     -5385.6|  4.7672e+06|        17|      0.24|
    |  5.9327e+05|  6.3755e+06|  5.9865e+05|     -5385.5|  4.7661e+06|        17|      0.25|
    |  5.9316e+05|  6.3727e+06|  5.9855e+05|     -5385.5|  4.7662e+06|        17|      0.23|
    |  5.9314e+05|  6.3724e+06|  5.9852e+05|     -5385.5|  4.7652e+06|        17|      0.23|
    |  5.9323e+05|  6.3745e+06|  5.9861e+05|     -5385.5|  4.7646e+06|        17|      0.24|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  3.4088e+06|  2.5346e+07|  3.4163e+06|     -7528.5|  8.7261e+06|        21|      0.23|
    |  2.2462e+06|  2.1985e+07|  2.2531e+06|     -6926.8|  8.0882e+06|        19|      0.25|
    |  1.4714e+06|  1.6955e+07|  1.4778e+06|     -6400.7|  7.2113e+06|        19|      0.24|
    |  1.1069e+06|  1.3406e+07|   1.113e+06|     -6074.7|  6.5387e+06|        18|      0.25|
    |  8.6431e+05|  1.0668e+07|   8.701e+05|     -5795.9|  5.9546e+06|        18|      0.26|
    |  7.4254e+05|   8.826e+06|  7.4817e+05|     -5630.3|   5.539e+06|        18|      0.24|
    |  6.7229e+05|  7.6661e+06|  6.7782e+05|     -5526.8|  5.2131e+06|        17|      0.27|
    |  6.3377e+05|   7.154e+06|  6.3922e+05|     -5448.9|  4.9896e+06|        17|      0.25|
    |   6.135e+05|  6.7529e+06|  6.1892e+05|     -5423.9|  4.8776e+06|        17|      0.24|
    |  6.1058e+05|  6.7014e+06|    6.16e+05|     -5418.3|  4.8685e+06|        17|      0.27|
    |  6.0465e+05|  6.6012e+06|  6.1005e+05|     -5406.2|  4.8239e+06|        17|      0.24|
    |  5.9842e+05|   6.465e+06|  6.0382e+05|     -5396.3|  4.7802e+06|        17|      0.24|
    |  5.9682e+05|  6.4338e+06|  6.0221e+05|     -5392.2|  4.7725e+06|        17|      0.24|
    |  5.9544e+05|  6.4167e+06|  6.0083e+05|     -5389.1|  4.7551e+06|        17|      0.27|
    |  5.9514e+05|  6.4084e+06|  6.0053e+05|     -5386.1|  4.7687e+06|        17|      0.24|
    |  5.9488e+05|  6.4057e+06|  6.0027e+05|     -5386.6|  4.7664e+06|        17|      0.25|
    |  5.9458e+05|  6.4025e+06|  5.9996e+05|       -5387|  4.7594e+06|        17|      0.25|
    |  5.9408e+05|   6.395e+06|  5.9947e+05|       -5387|  4.7525e+06|        17|      0.24|
    |  5.9368e+05|  6.3896e+06|  5.9907e+05|     -5386.8|  4.7493e+06|        17|      0.25|
    |  5.9342e+05|  6.4028e+06|  5.9881e+05|     -5386.3|  4.7536e+06|        17|      0.25|
    |  5.9322e+05|  6.3903e+06|  5.9861e+05|     -5386.2|  4.7546e+06|        17|      0.25|
    |  5.9314e+05|  6.3787e+06|  5.9853e+05|     -5386.1|  4.7629e+06|        17|      0.24|
    |  5.9313e+05|  6.3786e+06|  5.9852e+05|       -5386|  4.7624e+06|        17|      0.24|
    |  5.9305e+05|  6.3767e+06|  5.9843e+05|       -5386|  4.7642e+06|        17|      0.24|
    |  5.9302e+05|  6.3762e+06|   5.984e+05|       -5386|  4.7654e+06|        17|      0.26|
    |  5.9307e+05|   6.379e+06|  5.9846e+05|       -5386|  4.7622e+06|        17|      0.25|
    |  5.9298e+05|  6.3757e+06|  5.9837e+05|       -5386|  4.7645e+06|        17|      0.24|
    |  5.9298e+05|  6.3755e+06|  5.9836e+05|       -5386|   4.765e+06|        17|      0.24|
    |  5.9302e+05|  6.3775e+06|   5.984e+05|       -5386|  4.7632e+06|        17|      0.24|
    |  5.9307e+05|   6.378e+06|  5.9846e+05|       -5386|   4.766e+06|        17|      0.26|
    |  5.9303e+05|   6.377e+06|  5.9842e+05|       -5386|  4.7618e+06|        17|      0.24|
    |  5.9307e+05|  6.3781e+06|  5.9846e+05|       -5386|  4.7625e+06|        17|      0.25|
    Optimization result:
          fun: 593069.932380245
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 6.37401476e+02,  1.29281591e+02,  1.71717340e+01,  8.17163496e+02,
            1.37449776e+04,  2.83746226e+02,  0.00000000e+00, -9.68972328e+01,
            7.58704266e+01, -1.01702776e+03,  1.73614628e-02,  9.92115226e+01,
            4.40083116e+01, -2.10434038e+02,  1.76089738e+04, -5.35392825e+01,
            1.59837715e+03, -5.23992147e+02,  3.02975068e+03,  3.77204387e+02,
            2.66645493e+02,  4.72819542e+01,  0.00000000e+00,  1.53619204e+02,
            2.43442028e+02])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 32
          nit: 25
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -2.30258509,  1.47919293, -2.30258509,
           -4.60517019,  1.38836933, -3.87992001, -2.30258509,  2.30258509,
           -1.84802766, -4.04811436, -2.30258509,  1.7184825 , -2.30258509,
            1.52051859, -2.30258509,  2.14366376, -2.30258509, -0.12101446,
           -2.30258509, -4.1942687 , -0.19078879, -0.29039223, -2.30258509])

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

```
gpr_base.kernel.hyperparameters
```

    starting_probability : Uniform
    	p : 1.0
    stopping_probability : 0.00010000000000000009
    node_kernel : Composite
    	aromatic : Multiply
    		lhs : Constant
    			c : 0.010000000000000004
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	atomic_number : Multiply
    		lhs : Constant
    			c : 4.389401717699675
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	charge : Multiply
    		lhs : Constant
    			c : 0.010000000000000004
    		rhs : SquareExponential
    			length_scale : 4.008308481056897
    	chiral : Multiply
    		lhs : Constant
    			c : 0.020652477208848625
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	hcount : Multiply
    		lhs : Constant
    			c : 10.000000000000002
    		rhs : SquareExponential
    			length_scale : 0.1575475978780114
    	hybridization : Multiply
    		lhs : Constant
    			c : 0.017455257909267944
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	ring_list : Multiply
    		lhs : Constant
    			c : 5.576060342281107
    		rhs : Convolution
    			base : KroneckerDelta
    				h : 0.10000000000000002
    edge_kernel : Composite
    	aromatic : Multiply
    		lhs : Constant
    			c : 4.574596924658218
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	conjugated : Multiply
    		lhs : Constant
    			c : 8.530634633858428
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	order : Multiply
    		lhs : Constant
    			c : 0.886021150144127
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	ring_stereo : Multiply
    		lhs : Constant
    			c : 0.015081767749340561
    		rhs : KroneckerDelta
    			h : 0.8263070943166276
    	stereo : Multiply
    		lhs : Constant
    			c : 0.7479701335024439
    		rhs : KroneckerDelta
    			h : 0.10000000000000002

```
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.2755e+05|  1.7778e+06|  5.3363e+05|     -6084.7|  9.0543e+05|        23|      0.24|
    |  4.4225e+05|  1.9516e+06|  4.4806e+05|     -5808.2|  8.7904e+05|        20|      0.24|
    |  3.1408e+05|  1.8185e+06|  3.1938e+05|       -5299|  8.0603e+05|        19|      0.23|
    |  2.8466e+05|   1.617e+06|  2.8982e+05|       -5163|  7.8274e+05|        18|      0.25|
    |  2.6119e+05|  1.4682e+06|  2.6623e+05|     -5042.4|  7.5643e+05|        17|      0.23|
    |  2.5268e+05|   1.388e+06|  2.5768e+05|     -4997.9|    7.47e+05|        17|      0.24|
    |  2.4961e+05|  1.3914e+06|  2.5459e+05|       -4978|  7.4222e+05|        17|      0.24|
    |  2.4852e+05|  1.3833e+06|  2.5349e+05|       -4972|  7.4105e+05|        17|      0.23|
    |  2.4834e+05|  1.3947e+06|   2.533e+05|     -4968.2|  7.3383e+05|        17|      0.25|
    |  2.4725e+05|  1.3772e+06|  2.5222e+05|     -4964.8|  7.3856e+05|        17|      0.24|
    |  2.4714e+05|  1.3741e+06|  2.5211e+05|     -4964.5|  7.3971e+05|        17|      0.24|
    |  2.4698e+05|  1.3711e+06|  2.5194e+05|     -4963.9|  7.4045e+05|        17|      0.24|
    |  2.4672e+05|  1.3682e+06|  2.5168e+05|     -4962.6|  7.4076e+05|        17|      0.23|
    |   2.464e+05|  1.3674e+06|  2.5136e+05|     -4960.7|  7.3978e+05|        17|      0.24|
    |  2.4638e+05|  1.3727e+06|  2.5134e+05|     -4959.2|  7.3885e+05|        17|      0.26|
    |  2.4633e+05|  1.3699e+06|  2.5129e+05|     -4959.6|  7.3928e+05|        17|      0.24|
    |  2.4624e+05|  1.3697e+06|   2.512e+05|       -4959|  7.3809e+05|        17|      0.25|
    |  2.4623e+05|  1.3693e+06|  2.5118e+05|     -4959.1|  7.3791e+05|        17|      0.25|
    |  2.4622e+05|  1.3694e+06|  2.5118e+05|     -4959.1|  7.3771e+05|        17|      0.26|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  6.5812e+05|  6.1061e+05|  6.6462e+05|     -6496.8|  9.5215e+05|        16|      0.23|
    |  5.8273e+05|  9.7375e+05|  5.8902e+05|     -6289.9|  9.3185e+05|        18|      0.23|
    |  3.6034e+05|   1.697e+06|  3.6585e+05|     -5504.1|   8.405e+05|        19|      0.24|
    |  2.7015e+05|  1.5213e+06|  2.7523e+05|     -5079.8|  7.4364e+05|        18|      0.26|
    |  2.6494e+05|  1.4248e+06|     2.7e+05|     -5062.2|   7.565e+05|        16|      0.25|
    |  2.5759e+05|  1.4116e+06|  2.6261e+05|     -5025.3|  7.5458e+05|        17|      0.25|
    |  2.5241e+05|  1.3946e+06|  2.5741e+05|     -4995.2|  7.5024e+05|        17|      0.25|
    |  2.5072e+05|  1.3878e+06|   2.557e+05|     -4985.1|  7.4574e+05|        17|      0.25|
    |  2.4736e+05|  1.3646e+06|  2.5233e+05|     -4966.7|  7.4271e+05|        17|      0.24|
    |  2.4692e+05|  1.3704e+06|  2.5189e+05|     -4963.6|  7.3803e+05|        17|      0.24|
    |  2.4668e+05|  1.3704e+06|  2.5164e+05|     -4962.1|  7.3772e+05|        17|      0.23|
    |  2.4636e+05|  1.3626e+06|  2.5132e+05|     -4960.7|  7.3814e+05|        17|      0.23|
    |   2.461e+05|   1.365e+06|  2.5106e+05|       -4959|  7.3849e+05|        17|      0.24|
    |  2.4609e+05|   1.366e+06|  2.5105e+05|     -4958.9|  7.3807e+05|        17|      0.24|
    |  2.4607e+05|  1.3668e+06|  2.5103e+05|     -4958.7|  7.3754e+05|        17|      0.23|
    |  2.4602e+05|  1.3669e+06|  2.5098e+05|     -4958.4|  7.3716e+05|        17|      0.26|
    |  2.4598e+05|  1.3643e+06|  2.5094e+05|     -4958.2|   7.371e+05|        17|      0.24|
    |  2.4595e+05|  1.3629e+06|  2.5091e+05|     -4958.1|  7.3764e+05|        17|      0.23|
    |  2.4592e+05|    1.36e+06|  2.5088e+05|     -4958.2|  7.3836e+05|        17|      0.24|
    |  2.4591e+05|  1.3593e+06|  2.5087e+05|     -4958.3|  7.3846e+05|        17|      0.23|
    |  2.4592e+05|  1.3593e+06|  2.5087e+05|     -4958.4|  7.3839e+05|        17|      0.24|
    |   2.459e+05|  1.3593e+06|  2.5086e+05|     -4958.3|  7.3847e+05|        17|      0.24|
    |  2.4591e+05|  1.3593e+06|  2.5087e+05|     -4958.3|  7.3841e+05|        17|      0.25|
    |   2.459e+05|  1.3593e+06|  2.5086e+05|     -4958.3|  7.3837e+05|        17|      0.24|
    |  2.4592e+05|  1.3595e+06|  2.5088e+05|     -4958.3|  7.3841e+05|        17|      0.24|
    |  2.4591e+05|  1.3593e+06|  2.5086e+05|     -4958.3|  7.3843e+05|        17|      0.25|
    |  2.4591e+05|  1.3594e+06|  2.5087e+05|     -4958.4|  7.3838e+05|        17|      0.23|
    |  2.4592e+05|  1.3596e+06|  2.5088e+05|     -4958.3|  7.3837e+05|        17|      0.23|
    |  2.4592e+05|  1.3595e+06|  2.5088e+05|     -4958.3|  7.3845e+05|        17|      0.25|
    |  2.4592e+05|  1.3595e+06|  2.5088e+05|     -4958.3|  7.3837e+05|        17|      0.24|
    |  2.4592e+05|  1.3594e+06|  2.5087e+05|     -4958.3|  7.3839e+05|        17|      0.22|
    |  2.4591e+05|  1.3593e+06|  2.5087e+05|     -4958.3|  7.3841e+05|        17|      0.24|
    |   2.459e+05|  1.3593e+06|  2.5086e+05|     -4958.3|  7.3839e+05|        17|      0.24|
    |  2.4591e+05|  1.3595e+06|  2.5087e+05|     -4958.4|  7.3835e+05|        17|      0.24|
    |  2.4592e+05|  1.3595e+06|  2.5087e+05|     -4958.3|   7.384e+05|        17|      0.25|
    |  2.4591e+05|  1.3593e+06|  2.5087e+05|     -4958.3|  7.3833e+05|        17|      0.23|
    |  2.4592e+05|  1.3595e+06|  2.5088e+05|     -4958.3|  7.3839e+05|        17|      0.24|
    |   2.459e+05|  1.3593e+06|  2.5086e+05|     -4958.3|   7.384e+05|        17|      0.25|
    |  2.4591e+05|  1.3593e+06|  2.5087e+05|     -4958.3|  7.3834e+05|        17|      0.24|
    |   2.459e+05|  1.3592e+06|  2.5086e+05|     -4958.3|  7.3829e+05|        17|      0.24|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |   5.431e+05|  2.3353e+06|  5.4922e+05|     -6117.3|  8.8699e+05|        23|      0.24|
    |  4.5519e+05|  2.2735e+06|  4.6102e+05|       -5835|  8.6878e+05|        21|      0.24|
    |  3.6753e+05|  2.1734e+06|  3.7304e+05|     -5515.8|  8.3787e+05|        20|      0.24|
    |  3.1701e+05|  1.9674e+06|  3.2231e+05|     -5308.9|  8.0762e+05|        19|      0.24|
    |  2.8378e+05|  1.7413e+06|  2.8894e+05|       -5161|  7.8606e+05|        19|      0.24|
    |  2.6799e+05|  1.4806e+06|  2.7308e+05|     -5084.6|  7.7392e+05|        17|      0.26|
    |  2.5525e+05|  1.4311e+06|  2.6027e+05|     -5015.9|  7.6262e+05|        17|      0.26|
    |  2.5128e+05|  1.4322e+06|  2.5627e+05|     -4988.7|  7.4475e+05|        17|      0.27|
    |  2.4982e+05|  1.4137e+06|   2.548e+05|     -4982.2|   7.441e+05|        17|      0.26|
    |  2.4747e+05|  1.3876e+06|  2.5244e+05|     -4969.3|  7.4071e+05|        17|      0.25|
    |   2.469e+05|  1.3822e+06|  2.5186e+05|     -4965.2|  7.4053e+05|        17|      0.27|
    |  2.4652e+05|  1.3758e+06|  2.5149e+05|     -4962.8|  7.4009e+05|        17|      0.24|
    |  2.4626e+05|  1.3716e+06|  2.5122e+05|     -4960.8|  7.3873e+05|        17|      0.24|
    |  2.4625e+05|  1.3715e+06|  2.5121e+05|     -4960.6|  7.3867e+05|        17|      0.25|
    |  2.4617e+05|  1.3706e+06|  2.5113e+05|     -4960.1|  7.3808e+05|        17|      0.24|
    |  2.4611e+05|  1.3698e+06|  2.5106e+05|     -4959.8|  7.3774e+05|        17|      0.26|
    |  2.4604e+05|  1.3693e+06|    2.51e+05|     -4959.5|   7.378e+05|        17|      0.25|
    |  2.4596e+05|  1.3685e+06|  2.5092e+05|     -4959.2|  7.3826e+05|        17|      0.25|
    |  2.4584e+05|  1.3664e+06|   2.508e+05|     -4959.4|  7.3925e+05|        17|      0.26|
    |  2.4582e+05|  1.3666e+06|  2.5078e+05|     -4959.2|  7.3904e+05|        17|      0.24|
    |  2.4578e+05|  1.3668e+06|  2.5074e+05|       -4959|  7.3853e+05|        17|      0.25|
    |  2.4577e+05|  1.3661e+06|  2.5073e+05|       -4959|   7.386e+05|        17|      0.26|
    |  2.4577e+05|  1.3642e+06|  2.5073e+05|     -4959.3|  7.3901e+05|        17|      0.24|
    |  2.4578e+05|  1.3641e+06|  2.5074e+05|     -4959.3|    7.39e+05|        17|      0.25|
    |  2.4579e+05|  1.3644e+06|  2.5075e+05|     -4959.3|    7.39e+05|        17|      0.25|
    |  2.4577e+05|  1.3643e+06|  2.5073e+05|     -4959.3|  7.3901e+05|        17|      0.25|
    |  2.4577e+05|  1.3642e+06|  2.5073e+05|     -4959.3|  7.3903e+05|        17|      0.25|
    |  2.4577e+05|  1.3643e+06|  2.5073e+05|     -4959.3|  7.3902e+05|        17|      0.25|
    |  2.4577e+05|  1.3642e+06|  2.5072e+05|     -4959.3|  7.3903e+05|        17|      0.27|
    Optimization result:
          fun: 245765.49367824764
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 1.36304913e+02,  3.00810233e+01,  3.90027469e+00,  1.28611778e+01,
            3.36650532e+03,  6.51776000e+01,  0.00000000e+00,  7.56633342e-01,
            7.15848687e+00,  5.52325844e+01,  0.00000000e+00,  2.12326989e+01,
            9.51530446e+00, -1.85408403e+02,  4.37301861e+03,  5.29523389e+01,
            5.50932936e+02, -6.41571608e+01,  6.78926698e+02, -8.05215814e+01,
            6.51814604e+01,  2.55543662e+01,  0.00000000e+00,  6.58928427e+01,
            5.60552606e+01])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 29
          nit: 23
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -2.30258509,  1.53690932, -2.30258509,
           -4.60517019, -0.39405819, -4.60517019, -2.30258509,  2.30258509,
           -3.53658634, -4.11068327, -2.30258509,  1.79329838, -2.30258509,
            1.71216563, -2.30258509,  1.89983159, -2.30258509, -0.58076275,
           -2.30258509, -3.56642045, -1.83514442, -0.46088467, -2.30258509])

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

```
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

```
gpr3.kernel.hyperparameters
```

    starting_probability : Uniform
    	p : 1.0
    stopping_probability : 0.00010000000000000009
    node_kernel : Composite
    	aromatic : Multiply
    		lhs : Constant
    			c : 0.010000000000000004
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	atomic_number : Multiply
    		lhs : Constant
    			c : 4.650195760291015
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	charge : Multiply
    		lhs : Constant
    			c : 0.010000000000000004
    		rhs : SquareExponential
    			length_scale : 0.6743148146404403
    	chiral : Multiply
    		lhs : Constant
    			c : 0.010000000000000004
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	hcount : Multiply
    		lhs : Constant
    			c : 10.000000000000002
    		rhs : SquareExponential
    			length_scale : 0.029112537932671788
    	hybridization : Multiply
    		lhs : Constant
    			c : 0.016396567373846038
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	ring_list : Multiply
    		lhs : Constant
    			c : 6.009240566276212
    		rhs : Convolution
    			base : KroneckerDelta
    				h : 0.10000000000000002
    edge_kernel : Composite
    	aromatic : Multiply
    		lhs : Constant
    			c : 5.540948138687138
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	conjugated : Multiply
    		lhs : Constant
    			c : 6.68476853323407
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	order : Multiply
    		lhs : Constant
    			c : 0.5594714650176335
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	ring_stereo : Multiply
    		lhs : Constant
    			c : 0.02825681966816714
    		rhs : KroneckerDelta
    			h : 0.15959045135761826
    	stereo : Multiply
    		lhs : Constant
    			c : 0.6307254157656439
    		rhs : KroneckerDelta
    			h : 0.10000000000000002

### 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)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.8944e+06|  2.4509e+07|  2.9017e+06|     -7301.3|  8.7008e+06|        23|      0.24|
    |  1.9494e+06|  2.0854e+07|  1.9561e+06|     -6753.4|   8.028e+06|        20|      0.23|
    |  1.2919e+06|  1.5736e+07|  1.2981e+06|     -6252.9|  7.0779e+06|        20|      0.27|
    |  1.0068e+06|  1.2319e+07|  1.0128e+06|     -5972.2|  6.4115e+06|        19|      0.24|
    |   8.252e+05|  9.7166e+06|  8.3096e+05|     -5754.8|  5.8216e+06|        18|      0.25|
    |  7.1178e+05|   8.079e+06|  7.1737e+05|     -5588.3|  5.3678e+06|        18|      0.26|
    |  6.4905e+05|  7.1022e+06|  6.5454e+05|     -5488.5|  5.0406e+06|        17|      0.27|
    |  6.2943e+05|  7.0339e+06|  6.3487e+05|     -5434.9|  4.9547e+06|        18|      0.24|
    |  6.0986e+05|  6.6391e+06|  6.1527e+05|       -5413|  4.8444e+06|        17|      0.23|
    |  6.0534e+05|  6.5378e+06|  6.1075e+05|     -5407.5|  4.7983e+06|        17|      0.25|
    |  6.0277e+05|  6.4966e+06|  6.0817e+05|     -5402.7|  4.7826e+06|        17|      0.24|
    |  6.0629e+05|  6.6683e+06|  6.1169e+05|     -5395.9|  4.8331e+06|        17|      0.24|
    |  6.0089e+05|  6.5204e+06|  6.0628e+05|     -5395.1|  4.7923e+06|        17|      0.25|
    |  5.9998e+05|  6.4999e+06|  6.0538e+05|     -5393.6|  4.7905e+06|        17|      0.24|
    |  5.9751e+05|  6.4425e+06|   6.029e+05|     -5389.9|  4.7727e+06|        17|      0.24|
    |  5.9602e+05|  6.4134e+06|  6.0141e+05|     -5388.3|  4.7571e+06|        17|      0.23|
    |  5.9529e+05|  6.4045e+06|  6.0068e+05|     -5387.1|  4.7468e+06|        17|      0.24|
    |  5.9508e+05|   6.419e+06|  6.0047e+05|     -5386.2|  4.7444e+06|        17|      0.25|
    |  5.9499e+05|   6.421e+06|  6.0037e+05|     -5386.3|  4.7432e+06|        17|      0.23|
    |  5.9466e+05|   6.419e+06|  6.0004e+05|     -5386.4|  4.7373e+06|        17|      0.25|
    |   5.941e+05|   6.412e+06|  5.9948e+05|     -5386.7|  4.7315e+06|        17|      0.23|
    |  5.9369e+05|  6.4026e+06|  5.9907e+05|     -5386.7|  4.7371e+06|        17|      0.24|
    |  5.9328e+05|  6.3952e+06|  5.9867e+05|     -5386.1|  4.7444e+06|        17|      0.24|
    |  5.9304e+05|  6.3888e+06|  5.9842e+05|     -5385.8|  4.7548e+06|        17|      0.23|
    |  5.9302e+05|  6.3838e+06|   5.984e+05|       -5386|  4.7597e+06|        17|      0.25|
    |  5.9304e+05|  6.3849e+06|  5.9843e+05|       -5386|  4.7593e+06|        17|      0.24|
    |  5.9295e+05|  6.3824e+06|  5.9833e+05|       -5386|  4.7587e+06|        17|      0.25|
    |  5.9299e+05|  6.3837e+06|  5.9838e+05|       -5386|  4.7563e+06|        17|      0.24|
    |  5.9319e+05|  6.4017e+06|  5.9857e+05|       -5385|  4.7665e+06|        17|      0.24|
    |  5.9304e+05|  6.3866e+06|  5.9843e+05|     -5385.8|  4.7595e+06|        17|      0.24|
    |  5.9305e+05|  6.3853e+06|  5.9844e+05|       -5386|  4.7599e+06|        17|      0.23|
    |  5.9307e+05|  6.3849e+06|  5.9846e+05|       -5386|   4.757e+06|        17|      0.23|
    |    5.93e+05|  6.3836e+06|  5.9838e+05|       -5386|  4.7559e+06|        17|      0.24|
    |  5.9306e+05|  6.3852e+06|  5.9845e+05|       -5386|  4.7592e+06|        17|      0.23|
    |  5.9301e+05|  6.3839e+06|   5.984e+05|       -5386|  4.7578e+06|        17|      0.23|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  4.3078e+06|  2.4446e+07|  4.3158e+06|     -7932.3|  9.2634e+06|        21|      0.25|
    |  2.6238e+06|  2.3168e+07|   2.631e+06|     -7161.6|  8.6166e+06|        20|      0.24|
    |  1.4053e+06|  1.5186e+07|  1.4117e+06|     -6369.3|  7.1961e+06|        18|      0.25|
    |  1.1501e+06|  1.2868e+07|  1.1563e+06|     -6132.5|   6.746e+06|        18|      0.24|
    |  9.8738e+05|  1.1307e+07|  9.9334e+05|     -5957.9|  6.3374e+06|        18|      0.23|
    |  8.2974e+05|  9.6748e+06|   8.355e+05|     -5760.9|   5.864e+06|        18|      0.23|
    |  7.2817e+05|  8.3894e+06|  7.3379e+05|     -5614.1|  5.4676e+06|        18|      0.24|
    |  6.5311e+05|  7.2434e+06|  6.5861e+05|     -5496.1|  5.0895e+06|        17|      0.23|
    |  6.3629e+05|  7.1772e+06|  6.4174e+05|     -5445.9|  5.0349e+06|        18|      0.24|
    |  6.1577e+05|  6.7766e+06|   6.212e+05|     -5425.6|  4.8996e+06|        17|      0.24|
    |  6.1203e+05|  6.6858e+06|  6.1745e+05|     -5421.8|  4.8508e+06|        17|      0.23|
    |  6.0713e+05|   6.593e+06|  6.1255e+05|       -5414|  4.7992e+06|        17|      0.24|
    |  6.0018e+05|  6.4885e+06|  6.0558e+05|     -5401.3|  4.7629e+06|        17|      0.25|
    |  6.5468e+05|  7.3957e+06|  6.6014e+05|     -5464.5|  5.0674e+06|        18|      0.24|
    |   5.984e+05|  6.4756e+06|   6.038e+05|       -5396|  4.7756e+06|        17|      0.23|
    |  5.9776e+05|  6.4973e+06|  6.0315e+05|     -5389.9|  4.8032e+06|        17|      0.24|
    |  5.9687e+05|  6.4635e+06|  6.0226e+05|     -5390.9|  4.7897e+06|        17|      0.23|
    |  5.9663e+05|  6.4495e+06|  6.0202e+05|     -5391.1|    4.78e+06|        17|      0.23|
    |  5.9603e+05|  6.4182e+06|  6.0142e+05|     -5390.9|  4.7783e+06|        17|      0.24|
    |  5.9545e+05|  6.3978e+06|  6.0084e+05|     -5390.2|  4.7798e+06|        17|      0.24|
    |   5.942e+05|  6.3869e+06|  5.9958e+05|     -5387.5|  4.7722e+06|        17|      0.24|
    |  5.9381e+05|  6.4054e+06|   5.992e+05|     -5387.9|  4.7492e+06|        17|      0.24|
    |  5.9354e+05|  6.4008e+06|  5.9893e+05|     -5386.7|  4.7567e+06|        17|      0.25|
    |  5.9354e+05|  6.3981e+06|  5.9893e+05|     -5386.7|  4.7567e+06|        17|      0.24|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  2.3591e+06|  2.4908e+07|  2.3661e+06|     -7034.7|  8.4043e+06|        21|      0.24|
    |  1.5531e+06|  1.6909e+07|  1.5596e+06|     -6490.3|    7.48e+06|        19|      0.23|
    |  1.1408e+06|  1.3163e+07|  1.1469e+06|     -6126.7|  6.6951e+06|        18|      0.25|
    |  9.1088e+05|   1.096e+07|  9.1675e+05|     -5869.3|  6.1146e+06|        18|      0.24|
    |  7.6245e+05|  9.3372e+06|  7.6811e+05|     -5663.5|  5.6153e+06|        18|      0.23|
    |   6.811e+05|  7.7618e+06|  6.8665e+05|     -5544.7|   5.233e+06|        17|      0.23|
    |   6.376e+05|  7.2172e+06|  6.4306e+05|     -5456.3|  5.0444e+06|        18|      0.23|
    |  6.1814e+05|  6.8527e+06|  6.2357e+05|     -5431.2|  4.9071e+06|        17|      0.23|
    |  6.1533e+05|  6.8145e+06|  6.2076e+05|     -5425.8|  4.8904e+06|        17|      0.24|
    |  6.0068e+05|  6.5101e+06|  6.0607e+05|     -5396.8|  4.8158e+06|        17|      0.25|
    |   6.032e+05|  6.5297e+06|   6.086e+05|     -5402.9|  4.7808e+06|        17|      0.24|
    |  5.9762e+05|  6.4715e+06|  6.0301e+05|     -5392.6|  4.7857e+06|        17|      0.25|
    |  5.9709e+05|  6.4584e+06|  6.0248e+05|     -5391.8|  4.7814e+06|        17|      0.25|
    |  5.9557e+05|  6.4218e+06|  6.0096e+05|     -5389.6|  4.7534e+06|        17|      0.25|
    |  5.9529e+05|  6.4276e+06|  6.0068e+05|     -5388.7|  4.7492e+06|        17|      0.25|
    |   5.951e+05|  6.4417e+06|  6.0049e+05|     -5387.2|  4.7503e+06|        17|      0.25|
    |  5.9491e+05|  6.4382e+06|   6.003e+05|     -5386.9|  4.7501e+06|        17|      0.25|
    |  5.9461e+05|  6.4216e+06|       6e+05|     -5386.2|   4.745e+06|        17|      0.26|
    |  5.9443e+05|  6.4165e+06|  5.9981e+05|     -5386.3|  4.7458e+06|        17|      0.27|
    |  5.9437e+05|  6.4123e+06|  5.9976e+05|     -5386.9|  4.7532e+06|        17|      0.24|
    |  5.9421e+05|  6.4142e+06|  5.9959e+05|     -5387.2|  4.7514e+06|        17|      0.25|
    |  5.9384e+05|   6.425e+06|  5.9923e+05|     -5387.5|  4.7582e+06|        17|      0.26|
    |  5.9383e+05|  6.4305e+06|  5.9921e+05|     -5387.4|  4.7531e+06|        17|      0.26|
    |  5.9352e+05|  6.4281e+06|   5.989e+05|     -5387.3|  4.7524e+06|        17|      0.26|
    |  5.9368e+05|  6.4099e+06|  5.9907e+05|     -5387.6|  4.7644e+06|        17|      0.25|
    |  5.9336e+05|  6.4213e+06|  5.9875e+05|     -5387.3|  4.7549e+06|        17|      0.26|
    |  5.9322e+05|  6.3927e+06|   5.986e+05|     -5387.4|  4.7593e+06|        17|      0.26|
    |    5.93e+05|  6.3959e+06|  5.9839e+05|     -5386.2|  4.7617e+06|        17|      0.24|
    |    5.93e+05|  6.3869e+06|  5.9839e+05|     -5386.2|  4.7586e+06|        17|      0.24|
    Optimization result:
          fun: 593000.2041736571
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 6.38284515e+02,  1.28515081e+02,  1.72016412e+01, -5.82582048e+02,
            1.36357933e+04,  2.83378883e+02,  0.00000000e+00, -8.30365981e+01,
            1.22305889e+02, -5.03965443e+02,  4.60608978e-09,  1.39105061e+02,
            6.23139520e+01,  6.28523410e+02,  1.76102989e+04, -3.33355337e+02,
            1.67897721e+03,  4.90612760e+02,  3.01620918e+03, -1.72678375e+02,
            2.67735167e+02,  7.16052397e+01,  0.00000000e+00, -5.63227592e+01,
            2.38442814e+02])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 29
          nit: 26
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -2.30258509,  1.46103589, -2.30258509,
           -4.60517019, -0.82374502, -3.32653759, -2.30258509,  2.30258509,
           -2.13639892, -3.70091117, -2.30258509,  1.72561975, -2.30258509,
            0.9291573 , -2.30258509,  1.55553156, -2.30258509, -0.95878504,
           -2.30258509, -4.39978823, -0.49842698, -1.02640086, -2.30258509])

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

```
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
```

    starting_probability : Uniform
    	p : 1.0
    stopping_probability : 0.00010000000000000009
    node_kernel : Composite
    	aromatic : Multiply
    		lhs : Constant
    			c : 0.010000000000000004
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	atomic_number : Multiply
    		lhs : Constant
    			c : 4.310422330155447
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	charge : Multiply
    		lhs : Constant
    			c : 0.010000000000000004
    		rhs : SquareExponential
    			length_scale : 0.43878531186353925
    	chiral : Multiply
    		lhs : Constant
    			c : 0.035917250437390136
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	hcount : Multiply
    		lhs : Constant
    			c : 10.000000000000002
    		rhs : SquareExponential
    			length_scale : 0.11807929101826045
    	hybridization : Multiply
    		lhs : Constant
    			c : 0.024701009456560903
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	ring_list : Multiply
    		lhs : Constant
    			c : 5.61600046940634
    		rhs : Convolution
    			base : KroneckerDelta
    				h : 0.10000000000000002
    edge_kernel : Composite
    	aromatic : Multiply
    		lhs : Constant
    			c : 2.5323742411622123
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	conjugated : Multiply
    		lhs : Constant
    			c : 4.737604186275108
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	order : Multiply
    		lhs : Constant
    			c : 0.3833583698593362
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	ring_stereo : Multiply
    		lhs : Constant
    			c : 0.012279940120036538
    		rhs : KroneckerDelta
    			h : 0.6074854974727623
    	stereo : Multiply
    		lhs : Constant
    			c : 0.3582941931636685
    		rhs : KroneckerDelta
    			h : 0.10000000000000002

### 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)
```

    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  5.9304e+05|  6.3793e+06|  5.9843e+05|     -5386.6|  4.7603e+06|        17|      0.24|
    |  6.2518e+05|  6.9973e+06|   6.306e+05|     -5421.7|  4.9692e+06|        18|      0.23|
    |  5.9314e+05|  6.3838e+06|  5.9852e+05|     -5386.4|  4.7592e+06|        17|      0.25|
    |   5.931e+05|  6.3809e+06|  5.9849e+05|     -5386.6|  4.7581e+06|        17|      0.23|
    |    5.93e+05|  6.3786e+06|  5.9839e+05|     -5386.6|  4.7615e+06|        17|      0.23|
    |  5.9301e+05|  6.3784e+06|  5.9839e+05|     -5386.6|    4.76e+06|        17|      0.24|
    |   5.931e+05|  6.3806e+06|  5.9848e+05|     -5386.6|  4.7589e+06|        17|      0.23|
    |  5.9301e+05|  6.3788e+06|   5.984e+05|     -5386.6|   4.759e+06|        17|      0.23|
    |  5.9308e+05|  6.3802e+06|  5.9847e+05|     -5386.6|  4.7574e+06|        17|      0.24|
    |  5.9301e+05|  6.3782e+06|  5.9839e+05|     -5386.6|  4.7602e+06|        17|      0.25|
    |  5.9297e+05|  6.3774e+06|  5.9835e+05|     -5386.6|  4.7586e+06|        17|      0.23|
    |  5.9309e+05|  6.3798e+06|  5.9848e+05|     -5386.6|  4.7591e+06|        17|      0.22|
    |  5.9303e+05|  6.3789e+06|  5.9842e+05|     -5386.6|  4.7591e+06|        17|      0.23|
    |    5.93e+05|  6.3785e+06|  5.9838e+05|     -5386.6|  4.7606e+06|        17|      0.24|
    |  5.9308e+05|  6.3803e+06|  5.9847e+05|     -5386.6|   4.758e+06|        17|      0.25|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  6.2038e+05|  6.7537e+06|  6.2582e+05|     -5434.1|  4.7314e+06|        17|      0.24|
    |  5.9933e+05|  6.4821e+06|  6.0473e+05|       -5397|  4.7441e+06|        17|      0.24|
    |  5.9769e+05|    6.45e+06|  6.0308e+05|     -5392.6|  4.7696e+06|        17|      0.25|
    |  5.9743e+05|  6.4631e+06|  6.0282e+05|     -5391.6|  4.7654e+06|        17|      0.26|
    |  5.9704e+05|  6.4585e+06|  6.0244e+05|     -5391.5|  4.7579e+06|        17|      0.25|
    |  5.9611e+05|  6.4563e+06|   6.015e+05|     -5390.1|  4.7477e+06|        17|      0.24|
    |  5.9481e+05|  6.4272e+06|   6.002e+05|     -5388.9|  4.7474e+06|        17|      0.26|
    |  5.9378e+05|  6.4308e+06|  5.9916e+05|       -5386|  4.7647e+06|        17|      0.27|
    |  5.9357e+05|  6.4203e+06|  5.9896e+05|       -5386|  4.7722e+06|        17|      0.24|
    |  5.9347e+05|  6.4064e+06|  5.9886e+05|     -5386.7|  4.7625e+06|        17|      0.24|
    |   5.934e+05|   6.402e+06|  5.9878e+05|     -5386.9|  4.7599e+06|        17|      0.24|
    |  5.9342e+05|  6.4005e+06|  5.9881e+05|       -5387|  4.7586e+06|        17|      0.24|
    |  5.9346e+05|  6.4029e+06|  5.9885e+05|     -5386.9|  4.7625e+06|        17|      0.24|
    |   5.935e+05|  6.4047e+06|  5.9889e+05|     -5386.9|  4.7585e+06|        17|      0.24|
    |  5.9357e+05|  6.4069e+06|  5.9896e+05|     -5386.9|  4.7616e+06|        17|      0.24|
    |   5.935e+05|  6.4051e+06|  5.9889e+05|     -5386.8|  4.7579e+06|        17|      0.24|
    |  5.9349e+05|  6.4045e+06|  5.9887e+05|     -5386.8|  4.7591e+06|        17|      0.25|
    |        logP|       dlogP|     y^T.K.y|     log|K| |     Cond(K)|  GPU time|  CPU time|
    |------------|------------|------------|------------|------------|----------|----------|
    |  6.8046e+05|   7.227e+06|    6.86e+05|     -5543.1|  5.0831e+06|        16|      0.23|
    |  6.3776e+05|   7.023e+06|  6.4323e+05|     -5467.6|  5.0039e+06|        17|      0.23|
    |  6.1826e+05|  6.7669e+06|  6.2369e+05|     -5432.5|  4.9233e+06|        17|      0.23|
    |  6.0253e+05|  6.5232e+06|  6.0794e+05|     -5404.8|  4.8388e+06|        17|      0.24|
    |  6.0067e+05|  6.4919e+06|  6.0608e+05|       -5402|   4.816e+06|        17|      0.23|
    |   5.976e+05|  6.4513e+06|    6.03e+05|     -5397.5|  4.7775e+06|        17|      0.23|
    |  5.9556e+05|  6.4049e+06|  6.0095e+05|     -5393.5|  4.7764e+06|        17|      0.24|
    |  5.9373e+05|  6.3965e+06|  5.9912e+05|     -5388.4|  4.7734e+06|        17|      0.25|
    |  5.9338e+05|  6.3912e+06|  5.9876e+05|     -5387.8|  4.7767e+06|        17|      0.23|
    |  5.9323e+05|   6.392e+06|  5.9862e+05|     -5387.4|  4.7644e+06|        17|      0.23|
    |  5.9313e+05|   6.393e+06|  5.9852e+05|     -5387.5|  4.7663e+06|        17|      0.24|
    |  5.9311e+05|   6.392e+06|   5.985e+05|     -5387.6|  4.7607e+06|        17|      0.24|
    |  5.9311e+05|   6.392e+06|  5.9849e+05|     -5387.3|  4.7611e+06|        17|      0.24|
    |  5.9305e+05|  6.3799e+06|  5.9844e+05|     -5387.2|   4.758e+06|        17|      0.24|
    |    5.93e+05|  6.3783e+06|  5.9839e+05|     -5386.6|  4.7574e+06|        17|      0.25|
    |  5.9301e+05|  6.3778e+06|   5.984e+05|     -5386.1|  4.7625e+06|        17|      0.25|
    |  5.9304e+05|  6.3788e+06|  5.9843e+05|     -5386.5|  4.7581e+06|        17|      0.25|
    |  5.9306e+05|   6.379e+06|  5.9845e+05|     -5386.6|  4.7608e+06|        17|      0.24|
    |    5.93e+05|  6.3778e+06|  5.9839e+05|     -5386.6|  4.7568e+06|        17|      0.25|
    |  5.9309e+05|  6.3801e+06|  5.9848e+05|     -5386.6|  4.7593e+06|        17|      0.24|
    |    5.93e+05|  6.3781e+06|  5.9838e+05|     -5386.6|  4.7551e+06|        17|      0.24|
    |  5.9293e+05|  6.3759e+06|  5.9831e+05|     -5386.1|  4.7565e+06|        17|      0.24|
    |  5.9323e+05|  6.3932e+06|  5.9861e+05|     -5384.9|   4.771e+06|        17|      0.24|
    |  5.9314e+05|  6.3804e+06|  5.9853e+05|     -5386.1|   4.759e+06|        17|      0.26|
    |  5.9287e+05|  6.3744e+06|  5.9826e+05|     -5386.1|   4.759e+06|        17|      0.24|
    |  5.9293e+05|  6.3753e+06|  5.9831e+05|     -5386.1|  4.7584e+06|        17|      0.26|
    |  5.9295e+05|  6.3758e+06|  5.9833e+05|     -5386.1|  4.7563e+06|        17|      0.27|
    |  5.9304e+05|  6.3787e+06|  5.9843e+05|     -5386.1|  4.7573e+06|        17|      0.25|
    Optimization result:
          fun: 593039.7334368741
     hess_inv: <25x25 LbfgsInvHessProduct with dtype=float64>
          jac: array([ 6.37461123e+02,  1.79991775e+02,  6.58486507e+01,  1.45982531e+02,
            1.36677101e+04,  2.88421932e+02,  0.00000000e+00, -5.15259810e+01,
            1.47551553e+02, -3.93697010e+02,  0.00000000e+00,  5.18491461e+01,
            2.62874591e+01, -2.08222394e+02,  1.76069699e+04,  1.27766156e+01,
            1.66729270e+03,  1.96626567e+02,  3.03741233e+03, -8.69992034e+00,
            2.69374891e+02,  9.77041481e+01,  0.00000000e+00, -2.93791800e+02,
            2.26057692e+02])
      message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
         nfev: 28
          nit: 17
       status: 0
      success: True
            x: array([-9.21034037, -4.60517019, -0.97324541,  1.45151   , -2.30258509,
           -4.60517019, -0.13556738, -3.11773678, -2.30258509,  2.28598906,
           -2.8828432 , -4.60517019, -2.30258509,  1.70224181, -2.30258509,
            0.43033363, -2.30258509,  1.03651392, -2.30258509, -1.39825531,
           -2.30258509, -4.60517019, -2.2597736 , -1.72504057, -2.30258509])

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

```
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
```

    starting_probability : Uniform
    	p : 1.0
    stopping_probability : 0.00010000000000000009
    node_kernel : Composite
    	aromatic : Multiply
    		lhs : Constant
    			c : 0.010057176739150398
    		rhs : KroneckerDelta
    			h : 0.16282625175478144
    	atomic_number : Multiply
    		lhs : Constant
    			c : 4.300149917736712
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	charge : Multiply
    		lhs : Constant
    			c : 0.010000000000000004
    		rhs : SquareExponential
    			length_scale : 1.0
    	chiral : Multiply
    		lhs : Constant
    			c : 0.03561587634496983
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	hcount : Multiply
    		lhs : Constant
    			c : 9.999998413441604
    		rhs : SquareExponential
    			length_scale : 0.07667118856078592
    	hybridization : Multiply
    		lhs : Constant
    			c : 0.01678502695038049
    		rhs : KroneckerDelta
    			h : 0.130398335790256
    	ring_list : Multiply
    		lhs : Constant
    			c : 5.517965088466417
    		rhs : Convolution
    			base : KroneckerDelta
    				h : 0.10000000000000002
    edge_kernel : Composite
    	aromatic : Multiply
    		lhs : Constant
    			c : 1.241291100822831
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	conjugated : Multiply
    		lhs : Constant
    			c : 2.2413377174986335
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	order : Multiply
    		lhs : Constant
    			c : 0.19621718051439327
    		rhs : KroneckerDelta
    			h : 0.10000000000000002
    	ring_stereo : Multiply
    		lhs : Constant
    			c : 0.015312814053543773
    		rhs : KroneckerDelta
    			h : 0.8
    	stereo : Multiply
    		lhs : Constant
    			c : 0.1776628652028348
    		rhs : KroneckerDelta
    			h : 0.10000000000000002

### 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_model(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):
  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='+',
    )

  return gpr,[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]
```

```
# 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]
#ste_c_es = np.linspace(1, 9, 9).tolist() # 12
#alphas = [1, 1e-1, 1e-2, 1e-3, 1e-4, 1e-5] # 13
```

```
exhaust_search_results = pd.DataFrame(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
```

      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

```
for ato_c_n in ato_c_ns:
  model,para_list = gpr_model(ato_c_n = ato_c_n)
  model.fit(train.graphs, train[target], repeat=3, verbose=True)
  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 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)
```

```
# exhausitive search
for aro_c_n in aro_c_ns:
  for ato_c_n in ato_c_ns:
    for cha_c_n in cha_c_ns:
      for chi_c_n in chi_c_ns:
        for hco_c_n in hco_c_ns:
          for hyb_c_n in hyb_c_ns:
            for ring_c_n in ring_c_ns:
              for aro_c_e in aro_c_es:
                for con_c_e in con_c_es:
                  for ord_c_e in ord_c_es:
                    for ring_c_e in ring_c_es:
                      for ste_c_e in ste_c_es:
                        for alpha in alphas:
                          model = gpr_model(aro_c_n, ato_c_n, cha_c_n, chi_c_n, hco_c_n, hyb_c_n, ring_c_,\
                                  aro_c_e, con_c_e, ord_c_e, ring_c_e, ste_c_e, alpha)
                          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))
                          mu_test = model.predict(test.graphs)
                          MAE_test = np.mean(np.abs(test[target] - mu_test)))
                          RMSE_test = np.std(test[target] - mu_test))
                          # add results to the dataframe (!unfinished)

```

```

```