{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "3fa9e128",
   "metadata": {},
   "source": [
    "# Imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 241,
   "id": "2339b654",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T20:25:39.635377Z",
     "start_time": "2023-04-17T20:25:39.621347Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Intel(R) Extension for Scikit-learn* enabled (https://github.com/intel/scikit-learn-intelex)\n"
     ]
    }
   ],
   "source": [
    "import time,pickle,itertools\n",
    "from datetime import date\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt \n",
    "import seaborn as sns\n",
    "from random import randint,uniform\n",
    "from collections import Counter\n",
    "\n",
    "from sklearnex import patch_sklearn\n",
    "patch_sklearn()\n",
    "\n",
    "from sklearn.experimental import enable_halving_search_cv\n",
    "from sklearn.model_selection import train_test_split,RandomizedSearchCV,GridSearchCV,HalvingRandomSearchCV,HalvingGridSearchCV,cross_val_score\n",
    "from sklearn.preprocessing import StandardScaler,RobustScaler,MinMaxScaler,OneHotEncoder\n",
    "from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error, make_scorer\n",
    "\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor, StackingRegressor, AdaBoostRegressor, ExtraTreesRegressor\n",
    "from sklearn.gaussian_process import GaussianProcessRegressor\n",
    "from sklearn.gaussian_process.kernels import RBF,Matern\n",
    "from sklearn.kernel_ridge import KernelRidge\n",
    "from sklearn import linear_model\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.manifold import TSNE\n",
    "from sklearn.neighbors import KNeighborsRegressor\n",
    "from sklearn.neural_network import MLPRegressor\n",
    "from sklearn.svm import SVR,NuSVR\n",
    "\n",
    "from scipy.stats import skew\n",
    "\n",
    "# import optuna\n",
    "# import umap\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\") \n",
    "warnings.filterwarnings(\"ignore\", category=RuntimeWarning) \n",
    "\n",
    "# Chemistry\n",
    "from rdkit import Chem\n",
    "from rdkit.Chem import AllChem\n",
    "from rdkit.Chem import Descriptors\n",
    "from rdkit.Chem import Draw\n",
    "from rdkit.Chem.Draw import IPythonConsole\n",
    "from rdkit.Chem.Draw.MolDrawing import MolDrawing,DrawingOptions\n",
    "DrawingOptions.bondLineWidth=1.8\n",
    "from rdkit.Chem import PandasTools"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 242,
   "id": "f18abfb9",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T20:25:47.554871Z",
     "start_time": "2023-04-17T20:25:47.535842Z"
    }
   },
   "outputs": [],
   "source": [
    "ee_cap = 99.99\n",
    "\n",
    "def ee2g(ee,T_C=25): # T in Celsius\n",
    "    R = 8.31446261815324 # J/K/mol\n",
    "    J_cal = 4.184 # 1 kcal = 4.184 kJ\n",
    "    K_C = 273.15\n",
    "    T_K = T_C + K_C\n",
    "    try: # individual number\n",
    "        if ee >= 100:\n",
    "#             print(\"capping ee\",ee)\n",
    "            ee = ee_cap\n",
    "        if ee <= -100:\n",
    "#             print(\"capping ee\",ee)        \n",
    "            ee = ee_cap\n",
    "    except ValueError: # array\n",
    "        if (ee >= 100).any():\n",
    "#             print(\"capping ee\",ee[np.where(ee >= 100)[0]])\n",
    "            ee[np.where(ee >= 100)[0]] = ee_cap\n",
    "        if (ee <= -100).any():\n",
    "#             print(\"capping ee\",ee[np.where(ee <= 100)[0]])\n",
    "            ee[np.where(ee <= 100)[0]] =  ee_cap\n",
    "    \n",
    "    er = (100+ee)/(100-ee)\n",
    "    ddg = R*T_K*np.log(er) / J_cal/1000  # kcal/mol\n",
    "    return(ddg)\n",
    "\n",
    "def g2ee(ddg,T_C=25):\n",
    "    R = 8.31446261815324 # J/K/mol\n",
    "    J_cal = 4.184 # 1 kcal = 4.184 kJ\n",
    "    K_C = 273.15\n",
    "    T_K = T_C + K_C\n",
    "    er = np.exp(ddg/(R*T_K)*J_cal*1000)\n",
    "    ee = -100*(1-er)/(1+er)\n",
    "    return(ee)\n",
    "\n",
    "def ee2g_mae(y_true_ee,y_pred_ee,T_C=25):\n",
    "    \"\"\"Returns mean absolute error of ee-values converted to relative free energies in kcal/mol\"\"\"\n",
    "    y_true_ddg = ee2g(y_true_ee,T_C)\n",
    "    y_pred_ddg = ee2g(y_pred_ee,T_C)\n",
    "    \n",
    "    return(mean_absolute_error(y_true_ddg,y_pred_ddg))\n",
    "\n",
    "def ee2g_rmse(y_true_ee,y_pred_ee,T_C=25):\n",
    "    \"\"\"Returns root mean squared error of ee-values converted to\n",
    "    relative free energies in kcal/mol\"\"\"\n",
    "    y_true_ddg = ee2g(y_true_ee,T_C)\n",
    "    y_pred_ddg = ee2g(y_pred_ee,T_C)\n",
    "    \n",
    "    return(mean_squared_error(y_true_ddg,y_pred_ddg,squared=False))\n",
    "\n",
    "def ee2g_r2_score(y_true_ee,y_pred_ee,T_C=25):     \n",
    "    \"\"\"Returns R2 score of ee-values converted to relative free energies in kcal/mol\"\"\"\n",
    "    y_true_ddg = ee2g(y_true_ee,T_C)\n",
    "    y_pred_ddg = ee2g(y_pred_ee,T_C)\n",
    "    \n",
    "    return(r2_score(y_true_ddg,y_pred_ddg))\n",
    "    \n",
    "def fp_to_array(fp,fp_size = 2**10):\n",
    "# hiermit kann man rdkit sparse int arrays in numpy arrays mit bestimmter laenge umwandeln\n",
    "# von Marwin Segler\n",
    "    nfp = np.zeros((fp_size,),np.int8)\n",
    "    for idx,v in fp.GetNonzeroElements().items():\n",
    "            nidx = idx % fp_size\n",
    "            nfp[nidx]+=int(v)\n",
    "    return(nfp)\n",
    "\n",
    "def smi_fp(smi,fp_size = 2**10):\n",
    "    mol = Chem.MolFromSmiles(smi)\n",
    "    fpob = AllChem.GetMorganFingerprint(mol, 2)\n",
    "    fpvect = fp_to_array(fpob,fp_size)\n",
    "    return(fpvect)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0b767e68",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "18d2e0b0",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-14T12:02:01.344318Z",
     "start_time": "2023-04-14T12:02:01.333321Z"
    }
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "6e2b34de",
   "metadata": {},
   "source": [
    "# prepare datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 243,
   "id": "a965fd31",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T20:25:50.144172Z",
     "start_time": "2023-04-17T20:25:50.123163Z"
    }
   },
   "outputs": [],
   "source": [
    "test_size = 0.2\n",
    "num_trials = 2     # repeat modeling incl. HP-optimization for this many random splits\n",
    "verbose = False    # True not recommended for random state-averaging runs\n",
    "verbose_min = True # more minimal output, recommended\n",
    "datasets = {}\n",
    "fp_size=2**10\n",
    "\n",
    "settings = {}\n",
    "sep=\";\" # separator in the .csv files\n",
    "\n",
    "# -- for descriptor models -- \n",
    "settings[\"Toste_Desc\"] = {\n",
    "    \"filefolder\": \"_descriptor_data/\",\n",
    "    \"filename\": \"Toste_JACS.csv\",\n",
    "    \"features\":\"descriptors\",\n",
    "    \"y_column\": \"DDG_measured\",\n",
    "    \"usecolumns\": (3,-6),\n",
    "    \"origdomain\": \"ddg\",\n",
    "    \"T\":25,\n",
    "}\n",
    "\n",
    "settings[\"Biscoe_Desc\"] = {\n",
    "    \"filefolder\": \"_descriptor_data/\",\n",
    "    \"filename\": \"alkyl_suzuki_final parameters.csv\",\n",
    "    \"features\":\"descriptors\",\n",
    "    \"y_column\": \"ddg es\",\n",
    "    \"usecolumns\": (2,-1),\n",
    "    \"origdomain\": \"ddg\",\n",
    "    \"T\":100,\n",
    "}\n",
    "\n",
    "settings[\"Doyle_Desc\"] = {\n",
    "    \"filefolder\": \"_descriptor_data/\",\n",
    "    \"filename\": \"Doyle_M062X-def2TVZP_flat.csv\",\n",
    "    \"features\":\"descriptors\",\n",
    "    \"y_column\": \"y_ddG\",\n",
    "    \"usecolumns\": (1,23),\n",
    "    \"origdomain\": \"ddg\",  \n",
    "    \"T\":25,\n",
    "}\n",
    "\n",
    "settings[\"Sunoj_Desc\"] = {\n",
    "    \"filefolder\": \"_descriptor_data/\",\n",
    "    \"filename\": \"sunojdata_clean_nomissingT.csv\",\n",
    "    \"features\":\"descriptors\",\n",
    "    \"y_column\": \"%ee\",\n",
    "    \"usecolumns\": (1,-25),\n",
    "    \"origdomain\": \"ee\",  \n",
    "    \"T\":\"T\",\n",
    "}\n",
    "\n",
    "settings[\"Sunoj_JPC_Desc\"] = {\n",
    "    \"filefolder\": \"_descriptor_data/\",\n",
    "    \"filename\": \"sunoj_jpc.csv\",\n",
    "    \"features\":\"descriptors\",\n",
    "    \"y_column\": \"ee\",\n",
    "    \"usecolumns\": (1,-25),\n",
    "    \"origdomain\": \"ee\",  \n",
    "    \"T\":25, # this is almost certainly not true but the data in this paper doesn't include T and I'm not digging through the original articles\n",
    "}\n",
    "\n",
    "settings[\"HongAckermann_Desc\"] = {\n",
    "    \"filefolder\": \"_descriptor_data/\",\n",
    "    \"filename\": \"HongAckermann_tsfeats.csv\",\n",
    "    \"features\":\"descriptors\",\n",
    "    \"y_column\": \"ddG\",\n",
    "    \"usecolumns\": (1,-1),\n",
    "    \"origdomain\": \"ddg\",      \n",
    "    \"T\":\"Temperature\",\n",
    "}\n",
    "\n",
    "settings[\"Denmark_OPRD_Desc\"] = {\n",
    "    \"filefolder\": \"_descriptor_data/\",\n",
    "    \"filename\": \"op1c00155_si_002_descr.csv\",\n",
    "    \"features\":\"descriptors\",\n",
    "    \"y_column\": \"ee\",\n",
    "    \"usecolumns\": (6,-1),\n",
    "    \"origdomain\": \"ee\",\n",
    "    \"T\":4,\n",
    "}\n",
    "\n",
    "# -------------------------------------------\n",
    "# -- for fingerprint models --\n",
    "\n",
    "settings[\"Sunoj_DD_2_FP\"] = {\n",
    "    \"filefolder\": \"_smiles_data/\",\n",
    "    \"filename\": \"sunoj_DD_reaction-2.csv\",\n",
    "    \"features\": \"fingerprint\",\n",
    "    \"y_column\": \"ee\",\n",
    "    \"smi_column\": \"smiles\",\n",
    "    \"origdomain\": \"ee\",\n",
    "    \"T\":25, # not sure if correct throughout data\n",
    "}\n",
    "\n",
    "settings[\"Sunoj_DD_3_FP\"] = {\n",
    "    \"filefolder\": \"_smiles_data/\",\n",
    "    \"filename\": \"sunoj_DD_reaction-3.csv\",\n",
    "    \"features\": \"fingerprint\",\n",
    "    \"y_column\": \"ee\",\n",
    "    \"smi_column\": \"smiles\",\n",
    "    \"origdomain\": \"ee\",\n",
    "    \"T\":25,# not given in this paper, would need to look up original\n",
    "}\n",
    "\n",
    "settings[\"Denmark_OPRD_FP\"] = {\n",
    "    \"filefolder\": \"_smiles_data/\",\n",
    "    \"filename\": \"op1c00155_si_002_smi.csv\",\n",
    "    \"features\": \"fingerprint\",\n",
    "    \"y_column\": \"ee\",\n",
    "    \"smi_column\": \"Smiles\",\n",
    "    \"origdomain\": \"ee\",  \n",
    "    \"T\":4,\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7009d13d",
   "metadata": {},
   "source": [
    "# Modeling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 244,
   "id": "8555e436",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T20:25:52.082082Z",
     "start_time": "2023-04-17T20:25:52.058081Z"
    }
   },
   "outputs": [],
   "source": [
    "show = list(itertools.product([\"ee\",\"ee2ddg\",\"ddg\"],[\"R2_test\",\"RMSE_test\",\"MAErel_test\"])) # for displaying the results in the end\n",
    "\n",
    "def run_model(X_train,X_test,y_train,y_test,T_train,T_test,modelname,model,domain=\"ddg\",verbose=True):\n",
    "    start = time.time()\n",
    "\n",
    "    model.fit(X_train, y_train)\n",
    "\n",
    "    y_train_pred = model.predict(X_train).reshape(-1)\n",
    "    y_test_pred = model.predict(X_test).reshape(-1)\n",
    "\n",
    "    r2_train = r2_score(y_train,y_train_pred)\n",
    "    r2_test = r2_score(y_test,y_test_pred)\n",
    "\n",
    "    rmse_train =  mean_squared_error(y_train,y_train_pred, squared = False) \n",
    "    rmse_test =  mean_squared_error(y_test,y_test_pred, squared = False)    \n",
    "    \n",
    "    mae_train =  mean_absolute_error(y_train,y_train_pred) \n",
    "    mae_test =  mean_absolute_error(y_test,y_test_pred)       \n",
    "    \n",
    "    y_combine = np.concatenate((y_train,y_test))\n",
    "    y_std = y_combine.std()\n",
    "    maerel_train =  mae_train/y_std\n",
    "    maerel_test =  mae_test/y_std\n",
    "\n",
    "    results = {\n",
    "     (domain,\"R2_train\"):r2_train,\n",
    "     (domain,\"R2_test\"):r2_test,\n",
    "     (domain,\"RMSE_train\"):rmse_train,\n",
    "     (domain,\"RMSE_test\"):rmse_test,\n",
    "     (domain,\"MAE_train\"):mae_train,\n",
    "     (domain,\"MAE_test\"):mae_test,\n",
    "     (domain,\"MAErel_train\"):maerel_train,\n",
    "     (domain,\"MAErel_test\"):maerel_test,\n",
    "    }\n",
    "    \n",
    "    if domain == \"ee\":\n",
    "        rmse_train_ddg = ee2g_rmse(y_train,y_train_pred,T_train)\n",
    "        rmse_test_ddg = ee2g_rmse(y_test,y_test_pred,T_test)    \n",
    "        mae_train_ddg = ee2g_mae(y_train,y_train_pred,T_train)\n",
    "        mae_test_ddg = ee2g_mae(y_test,y_test_pred,T_test)    \n",
    "        r2_train_ddg = ee2g_r2_score(y_train,y_train_pred,T_train)\n",
    "        r2_test_ddg = ee2g_r2_score(y_test,y_test_pred,T_test)\n",
    "        \n",
    "        y_std_ddg = ee2g(y_combine,np.concatenate((T_train,T_test))).std()\n",
    "        maerel_train_ddg =  mae_train_ddg/y_std_ddg\n",
    "        maerel_test_ddg =  mae_test_ddg/y_std_ddg\n",
    "        \n",
    "        results[(\"ee2ddg\",\"R2_train\")] = r2_train_ddg\n",
    "        results[(\"ee2ddg\",\"R2_test\")] = r2_test_ddg\n",
    "        results[(\"ee2ddg\",\"RMSE_train\")] = rmse_train_ddg\n",
    "        results[(\"ee2ddg\",\"RMSE_test\")] = rmse_test_ddg\n",
    "        results[(\"ee2ddg\",\"MAE_train\")] = mae_train_ddg\n",
    "        results[(\"ee2ddg\",\"MAE_test\")] = mae_test_ddg\n",
    "        results[(\"ee2ddg\",\"MAErel_train\")] = maerel_train_ddg\n",
    "        results[(\"ee2ddg\",\"MAErel_test\")] = maerel_test_ddg\n",
    "            \n",
    "    if verbose:\n",
    "        print(\"\\n\\n\",modelname)\n",
    "        print(\"\\nBest Model:\")\n",
    "\n",
    "        if modelname == \"RidgeCV\":\n",
    "            print(f\"Ridge(alpha={model.alpha_})\")\n",
    "        elif modelname == \"LassoCV\": \n",
    "            print(f\"Lasso(alpha={model.alpha_})\")\n",
    "        elif modelname == \"ElasticNetCV\": \n",
    "            print(f\"ElasticNet(alpha={model.alpha_},l1_ratio={model.l1_ratio_})\")\n",
    "        else:\n",
    "            try:\n",
    "                print(model.best_estimator_)\n",
    "            except:\n",
    "                print(model)\n",
    "\n",
    "            try:\n",
    "                print(f\"\\nHalving Iterations:{model.n_iterations_}\")\n",
    "            except:\n",
    "                pass\n",
    "\n",
    "            try:\n",
    "                print(f\"\\nIterations:{model.cv_results_['mean_test_score'].shape}\")\n",
    "            except:\n",
    "                pass\n",
    "\n",
    "        try:\n",
    "            print(f\"\\nBest CV Score:{model.best_score_:.2f}\")\n",
    "        except:\n",
    "            pass\n",
    "\n",
    "        print(f\"\\nTraining:\\nR^2 = {r2_train:.2f}, RMSE = {rmse_train:.2f}, MAE = {mae_train:.2f}\\n\\ntest:\\nR^2 = {r2_test:.2f}, RMSE = {rmse_test:.2f}, MAE = {mae_test:.2f}\")\n",
    "\n",
    "        if domain == \"ee\":\n",
    "            print(f\"\\nScores converted to ddG(kcal/mol)\\nTraining:\\nR^2 = {r2_train_ddg:.2f}, RMSE = {rmse_train_ddg:.2f}, MAE = {mae_train_ddg}\\n\\ntest:\\nR^2 = {r2_test_ddg:.2f}, RMSE = {rmse_test_ddg:.2f}, MAE = {mae_test_ddg}\")\n",
    "\n",
    "        plt.figure(figsize=(5,5))\n",
    "        plt.scatter(y_train,y_train_pred, label = \"train\", alpha = 0.5, marker=\"s\", color = \"black\", s = 10)\n",
    "        plt.scatter(y_test,y_test_pred, label = \"test\", alpha = 0.5, marker=\"s\", color = \"red\", s = 10)\n",
    "        plt.legend(loc='lower right')\n",
    "        plt.xlabel(\"y measured\",fontsize=10)\n",
    "        plt.ylabel(\"y predicted\",fontsize=10)\n",
    "        plt.show()\n",
    "\n",
    "    end = time.time()    \n",
    "    if end - start > 5:\n",
    "        print(f\"{modelname} time: {(end - start):.0f} sec\")\n",
    "    \n",
    "    return(results)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "64b31d13",
   "metadata": {},
   "source": [
    "## Hyperparameter spaces, Model types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "id": "68877cc2",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T19:06:43.773983Z",
     "start_time": "2023-04-17T19:06:43.756983Z"
    },
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "parameters_knr = {\n",
    "    \"n_neighbors\": np.linspace(1,20,20,dtype=int),\n",
    "}\n",
    "\n",
    "parameters_krr_poly = {\n",
    "    \"alpha\": np.logspace(-8,4,50),\n",
    "    \"degree\": [2,3,4]}\n",
    "\n",
    "parameters_krr_rbf = {\n",
    "    \"alpha\": np.logspace(-8,4,50),}\n",
    "\n",
    "rbf_kernel = 1.0 * RBF(length_scale=1.0, length_scale_bounds=(1e-2, 1e2))\n",
    "matern_kernel = 1.0 * Matern(length_scale=1.0, length_scale_bounds=(1e-2, 1e2), nu=1.5)\n",
    "\n",
    "parameters_gpr = {\n",
    "    \"alpha\": np.logspace(-7,2,10),\n",
    "    \"kernel\": [rbf_kernel,\n",
    "               matern_kernel],\n",
    "}\n",
    "\n",
    "parameters_rf  = {'max_depth': [1,2,4,8,None] ,# np.linspace(1,8,8,dtype=int), \n",
    "                  'max_features': [\"sqrt\",0.5,None], \n",
    "                  'min_samples_split': np.linspace(2,10,9,dtype=int), \n",
    "                  'min_samples_leaf': np.linspace(1,5,5,dtype=int), \n",
    "                  'n_estimators': np.linspace(50,500,10,dtype=int), \n",
    "                  'max_samples': np.linspace(0.01,1.0,10),\n",
    "                 }\n",
    "\n",
    "parameters_gbr = {'learning_rate': [0.01,0.05,0.1,0.5], \n",
    "                  'max_depth': np.linspace(4,8,4,dtype=int), \n",
    "                  'max_features': [\"sqrt\",0.5,None], \n",
    "                  'min_samples_leaf': np.linspace(1,5,5,dtype=int), \n",
    "                  'n_estimators': np.linspace(50,250,9,dtype=int), \n",
    "                  'subsample': [0.5,0.6,0.7,0.8,0.9,1.0]}\n",
    "\n",
    "parameters_etr = {'max_depth': [1,2,4,8,None] ,# np.linspace(1,8,8,dtype=int), \n",
    "                  'max_features': [\"sqrt\",0.5,None], \n",
    "                  'min_samples_split': np.linspace(2,6,5,dtype=int), \n",
    "                  'min_samples_leaf': np.linspace(1,5,5,dtype=int), \n",
    "                  'n_estimators': np.linspace(50,500,10,dtype=int), \n",
    "#                   'max_samples': np.linspace(0.01,1.0,10),    \n",
    "}\n",
    "models = {\n",
    "# Linear\n",
    "\"LinearRegression\": linear_model.LinearRegression(),\n",
    "\"RidgeCV\": linear_model.RidgeCV(alphas = np.logspace(-4,3,100)),\n",
    "\"LassoCV\": linear_model.LassoCV(max_iter = 10000, n_jobs = -4),   \n",
    "\"LarsCV\": linear_model.LarsCV(normalize=False, n_jobs = -4), \n",
    "\"LassoLarsCV\": linear_model.LassoLarsCV(normalize=False, n_jobs = -4),\n",
    "\"ElasticNetCV\": linear_model.ElasticNetCV(l1_ratio = [.1, .5, .7, .9, .95, .99], n_alphas=16,#alphas = np.logspace(-4,3,16), \n",
    "                                          max_iter = 10000, n_jobs = -4, cv=3, random_state = 0) ,    \n",
    "    \n",
    "# non-linear parametric\n",
    "\"KernelRidge_poly_CV\": GridSearchCV(KernelRidge(kernel=\"poly\"), parameters_krr_poly, n_jobs = -4),\n",
    "\"KernelRidge_rbf_CV\": GridSearchCV(KernelRidge(kernel=\"rbf\"), parameters_krr_rbf, n_jobs = -4),\n",
    "\"GaussianProcess_CV\": GridSearchCV(GaussianProcessRegressor(random_state = 42), parameters_gpr, n_jobs = -4),\n",
    "        \n",
    "# tree-based\n",
    "\"GradientBoostingRegressor_CV_hrs0\": HalvingRandomSearchCV(GradientBoostingRegressor(), \n",
    "       param_distributions = parameters_gbr,\n",
    "       n_jobs = -4, cv = 3, random_state = 42),\n",
    "\"GradientBoostingRegressor_CV_hrs1\": HalvingRandomSearchCV(GradientBoostingRegressor(), \n",
    "       param_distributions = {i:parameters_gbr[i] for i in parameters_gbr.keys() if i!='n_estimators'},\n",
    "       resource = \"n_estimators\",max_resources=250,\n",
    "       n_jobs = -4, cv = 3, random_state = 42),\n",
    "\"GradientBoostingRegressor_CV_hrs2\": HalvingRandomSearchCV(GradientBoostingRegressor(), \n",
    "       param_distributions = {i:parameters_gbr[i] for i in parameters_gbr.keys() if i!='min_samples_leaf'},\n",
    "       resource = \"min_samples_leaf\",max_resources=7,\n",
    "       n_jobs = -4, cv = 3, random_state = 42),\n",
    "\"GradientBoostingRegressor_CV_rs\": RandomizedSearchCV(GradientBoostingRegressor(), \n",
    "       param_distributions = parameters_gbr, \n",
    "       n_iter = 100, n_jobs = -4, cv = 3, random_state = 42),      \n",
    "\"RandomForestRegressor_CV_hrs0\": HalvingRandomSearchCV(RandomForestRegressor(n_jobs=1), \n",
    "       param_distributions = parameters_rf, \n",
    "       n_jobs = -4, cv = 3, random_state = 42),  \n",
    "\"RandomForestRegressor_CV_rs\": RandomizedSearchCV(RandomForestRegressor(n_jobs=1), \n",
    "       param_distributions = parameters_rf, \n",
    "       n_iter = 100, n_jobs = -4, cv = 3, random_state = 42),  \n",
    "\"ExtraTreesRegressor_CV_rs\":RandomizedSearchCV(ExtraTreesRegressor(n_jobs=1), \n",
    "       param_distributions = parameters_etr, \n",
    "       n_iter = 100, n_jobs = -4, cv = 3, random_state = 42),\n",
    "\"ExtraTreesRegressor_CV_hrs2\": HalvingRandomSearchCV(ExtraTreesRegressor(n_jobs=1), \n",
    "       param_distributions = {i:parameters_etr[i] for i in parameters_etr.keys() if i!='min_samples_leaf'},\n",
    "       resource = \"min_samples_leaf\",max_resources=7,\n",
    "       n_jobs = -4, cv = 3, random_state = 42),\n",
    "    \n",
    "# other\n",
    "\"KNeighborsRegressor\": GridSearchCV(KNeighborsRegressor(), parameters_knr, n_jobs = -4), \n",
    "\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "d0bd115b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T15:36:32.513010Z",
     "start_time": "2023-04-17T15:36:32.500010Z"
    }
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "id": "d70e9341",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T19:15:13.875251Z",
     "start_time": "2023-04-17T19:07:45.019614Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Toste_Desc\n",
      "(37,)\n",
      "(37,)\n",
      "(37, 39)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAF0CAYAAABiwYzBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAs3ElEQVR4nO3de3RUVZ7+/6dISAWQlBoJkKYIwaGJXKIIKgiCNhebRkYdRWWADl6mxY4SZGwBtVtAoEKPOk47GoXBAIOATXNpRgWFHsKlEbkIigEBhYaoXBqVFOCiGJL9+8Mf9bVMgqmkatft/VrrLNfZtU+dT+0cdx5OTp3jMMYYAQAAALCiQaQLAAAAABIJARwAAACwiAAOAAAAWEQABwAAACwigAMAAAAWEcABAAAAiwjgAAAAgEUEcAAAAMAiAjgAAABgEQEcAADElZKSEjkcDpWUlPxo3xtvvFE33nhj2GsCvo8ADgAAAFhEAAcAAAAsIoAjqq1fv14Oh0MLFiyo8trcuXPlcDi0ZcuWWr2X1+vVY489puzsbKWkpOgnP/mJxowZo9OnTwf0M8bo5Zdf1lVXXaVGjRrpkksu0Z133qn9+/eH5DMBQKIL5dz+ySef6Oc//7kaN26syy67TKNGjdLJkyer9DPG6Pe//72ysrKUmpqqq6++WitWrKj2PUtLSzVgwAA1btxYzZo1U35+vt56661aX9YC/BiHMcZEugjgQq6++mo1btxYGzZsCGi/9tprJUmbN2/+0ff49ttv1bNnT33++ed64oknlJubq9LSUv3ud79T165dtXr1ajkcDknSr371K82ePVujR49W//799fXXX2vy5Mn65ptv9OGHH6p58+ah/5AAkGBCMbcfPXpUubm5atiwoaZMmaLmzZvr9ddf1/r163Xo0CGtWbPGf333xIkTNWnSJN1///268847VVZWpkmTJqmiokLt27f3B+vDhw+rc+fOatKkiSZPnqyMjAwtWLBA69ev19/+9reA9wTqzABRrri42Egy27dv97dt3rzZSDJz5syp1Xt4PB7ToEEDs2XLloD2P/3pT0aSefvtt40xxrz33ntGknnuuecC+pWVlZlGjRqZxx9/vH4fBgBgjAnN3D5u3DjjcDjMjh07Atr79+9vJJk1a9YYY4z55ptvTGpqqrn99tsD+v31r381kkyfPn38bb/5zW+Mw+EwpaWlAX1vvvnmgPcE6oNLUBD1hg4dqoyMDL300kv+thdffFHNmjXT3XffXav3ePPNN9WpUyddddVVOnfunH+5+eabA/6k+Oabb8rhcGj48OEB/Vq0aKErr7ySPz0CQIiEYm5fs2aNOnbsqCuvvDKg/Z//+Z8D1t977z2dOXNGw4YNC2i//vrrlZWVFdC2du1aderUSR06dKhSLxAqBHBEPafTqQcffFDz58/XiRMn9Pe//11//OMf9cADD8jpdNbqPY4ePaqPPvpIDRs2DFiaNm0qY4yOHz/u72eMUfPmzav03bRpk78fAKB+QjG3f/XVV2rRokWV9h+2ffXVV9W219S3uksNufwQoZQc6QKA2njooYdUWFio1157TWfOnNG5c+c0atSoWm9/2WWXqVGjRnrttddqfP38fx0Oh9avX1/tL4Da/lIAAPy4+s7t6enpOnLkSJX2H7alp6dX236+rU2bNgF9jx49+qPvCdQHARwxoWXLlhoyZIhefvllnT17VoMHD1br1q1rvf0tt9yiadOmKT09XdnZ2RfsV1hYqC+++EJ33XVXKEoHANSgvnP7TTfdpN///vf68MMPAy5DmT9/fkC/7t27KzU1Va+//rruuOMOf/vGjRt18ODBgADep08fPfvss9q1a1fAZSgLFy6swycEqsddUBAzNm/erOuuu06StHr1avXt27fW254+fVo33HCD/v73v+vRRx9Vbm6uKisrdejQIb377rv613/9V/97P/jgg5o3b57y8/PVu3dvNWnSRIcPH9aGDRvUuXNnPfTQQ2H5fACQiOoztx85ckS5ublKSUkJuAvKunXrVFZWFnDHkt/+9reaMmWK7r//fg0ZMkRlZWWaOHFilbugfPnll8rNzfXfBaV58+aaP3++1q1bp4MHD2rt2rXq3bt3qIcBCYYAjpiSnZ2tRo0aadeuXUFve/r0aRUWFmrRokU6cOCAGjVqpNatW6tfv34aN25cwPV9xcXFevXVV/Xxxx+rsrJSmZmZ6tmzp0aPHq2uXbuG8iMBQMKrz9y+e/duFRQUaP369WrcuLFuv/12/eM//qNuvfXWgABujNH06dP18ssv6+jRo8rJydHUqVP17LPPSlLAl+xLS0s1ZswYbdiwwf+evXv3Vl5enj788EPl5uaG4mMjgRHAETM++ugjXXnllXrppZf061//OtLl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r8XCWM+aNUv9+vWr8gCocI11XUTDcR0Kto/r+ojkcR0K1gL48ePHVVFRoebNmwe0N2/eXEeOHLFVRlQwxmjs2LHq1auXOnXqJEn+MUik8Vm4cKE++OADeTyeKq8l4njs379fRUVFateund555x2NGjVKo0eP1ty5cyUl5piMGzdOQ4cOVU5Ojho2bKguXbpozJgxGjp0qKTEHJNoUpd5/ciRI9X2P3funI4fP37BPqH6mYbi99Fzzz2n06dP66677vK35eTkaPbs2Vq+fLkWLFig1NRU9ezZU/v27YtIzS1bttSMGTO0ePFiLVmyRO3bt1ffvn21bt06f59oH+vDhw9rxYoVeuCBBwLawznWdRENx3Uo2D6u6yIajutQCPpR9PXlcDgC1o0xVdri3cMPP6yPPvpIGzZsqPJaooxPWVmZCgoK9O677yo1NbXGfokyHtJ3Zx66deumadOmSfruX/elpaUqKirSL3/5S3+/RBqTN954Q/PmzdP8+fPVsWNH7dixQ2PGjFFmZqby8vL8/RJpTKJRsONfXf8fttv4mdZ1HwsWLNDEiRP15z//WRkZGf727t27q3v37v71nj176uqrr9aLL76oP/zhD9Zrbt++vdq3b+9f79Gjh8rKyvTss8+qd+/edXrPuqrrPmbPnq2LL75Yt912W0C7jbEOVrQc13UVyeM6GNF0XNeHtTPgl112mZKSkqr86+PYsWNV/pUSzx555BEtX75ca9asUatWrfztLVq0kKSEGZ9t27bp2LFj6tq1q5KTk5WcnKy1a9fqD3/4g5KTk/2fOVHGQ/ruX/UdOnQIaLviiit06NAhSYl3jEjSb37zG40fP1733HOPOnfurBEjRujRRx/1/9UkEcckmtRlXm/RokW1/ZOTk5Wenn7BPqH6mdbn99Ebb7yh+++/X3/84x+rXDr3Qw0aNNA111wTkjOFofod2r1794B6onmsjTF67bXXNGLECKWkpFywbyjHui6i4biuj0gd16Fi+7gOBWsBPCUlRV27dtWqVasC2letWqXrr7/eVhkRY4zRww8/rCVLluh///d/lZ2dHfB6dna2WrRoETA+Z8+e1dq1a+NyfPr27audO3dqx44d/qVbt24aNmyYduzYobZt2ybUeEjfnVX44a0p9+7d67/uMdGOEUn69ttv1aBB4DSVlJTkvw1hIo5JNKnLvN6jR48q/d99911169ZNDRs2vGCfUP1M6/r7aMGCBRo5cqTmz5+vQYMG/eh+jDHasWOHWrZsGbGaf2j79u0B9UTrWEvf3dbv008/1f333/+j+wnlWNdFNBzXdRXJ4zpUbB/XIWHzG5/nb0U0a9Yss2vXLjNmzBjTpEmTgG82x6uHHnrIuFwuU1JSEnDbnG+//dbfp7Cw0LhcLrNkyRKzc+dOM3To0IS6ndr374JiTOKNx+bNm01ycrKZOnWq2bdvn3n99ddN48aNzbx58/x9Em1M8vLyzE9+8hP/bQiXLFliLrvsMvP444/7+yTamESbH5vXx48fb0aMGOHvf/52bY8++qjZtWuXmTVrVpXbtf31r381SUlJprCw0OzevdsUFhaG7dZ4ta17/vz5Jjk52bz00ksBc/iJEyf8fSZOnGhWrlxpPvvsM7N9+3Zz7733muTkZPP+++9HpOZ///d/N0uXLjV79+41H3/8sRk/fryRZBYvXuzvE41jfd7w4cPNddddV+17hnusT548abZv3262b99uJJnnn3/ebN++3X/rxGg9roOtOxqO62Brjpbjur6sBnBjjHnppZdMVlaWSUlJMVdffbX/NnzxTlK1S3Fxsb9PZWWlefrpp02LFi2M0+k0vXv3Njt37oxc0Zb9MIAn4nj8z//8j+nUqZNxOp0mJyfHzJgxI+D1RBsTr9drCgoKTOvWrU1qaqpp27atefLJJ43P5/P3SbQxiUYXmtfz8vJMnz59AvqXlJSYLl26mJSUFNOmTRtTVFRU5T0XLVpk2rdvbxo2bGhycnICfrlGou4+ffpUO4fn5eX5+4wZM8a0bt3apKSkmGbNmpkBAwaYjRs3Rqzm6dOnm8svv9ykpqaaSy65xPTq1cu89dZbVd4z2sbamO/uBd6oUaMqc+B54R7r87e6q+nnHa3HdbB1R8NxHWzN0XRc14fDmP//WwIAAAAAws76o+gBAACAREYABwAAACwigAMAAAAWEcABAAAAiwjgAAAAgEUEcAAAAMAiAjgAAABgEQEcAAAAsIgADgAAAFhEAAcAAAAsIoADAAAAFhHAAQAAAIv+P+o1ctxNZQpZAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee      4.0,  51.3,  88.0,  24.0\n",
      "y_ddg    0.05,  0.75,  1.63,  0.44\n",
      "0\n",
      "1\n",
      "ExtraTreesRegressor_CV_rs time: 5 sec\n",
      "ExtraTreesRegressor_CV_rs time: 5 sec\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"8\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"5\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"8\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_train</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_train</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>MAE_train</th>\n",
       "      <th>MAE_test</th>\n",
       "      <th>MAErel_train</th>\n",
       "      <th>MAErel_test</th>\n",
       "      <th>R2_train</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>...</th>\n",
       "      <th>MAErel_train_std</th>\n",
       "      <th>MAErel_test_std</th>\n",
       "      <th>R2_train_std</th>\n",
       "      <th>R2_test_std</th>\n",
       "      <th>RMSE_train_std</th>\n",
       "      <th>RMSE_test_std</th>\n",
       "      <th>MAE_train_std</th>\n",
       "      <th>MAE_test_std</th>\n",
       "      <th>MAErel_train_std</th>\n",
       "      <th>MAErel_test_std</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LinearRegression</th>\n",
       "      <td>1.00</td>\n",
       "      <td>-206.22</td>\n",
       "      <td>0.00</td>\n",
       "      <td>194.11</td>\n",
       "      <td>0.00</td>\n",
       "      <td>159.83</td>\n",
       "      <td>0.00</td>\n",
       "      <td>6.76</td>\n",
       "      <td>1.00</td>\n",
       "      <td>-138.32</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>4.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>149.46</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.27</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.65</td>\n",
       "      <td>0.00</td>\n",
       "      <td>3.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.85</td>\n",
       "      <td>0.56</td>\n",
       "      <td>9.23</td>\n",
       "      <td>14.61</td>\n",
       "      <td>7.39</td>\n",
       "      <td>12.48</td>\n",
       "      <td>0.31</td>\n",
       "      <td>0.53</td>\n",
       "      <td>0.84</td>\n",
       "      <td>0.46</td>\n",
       "      <td>...</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.27</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.82</td>\n",
       "      <td>0.58</td>\n",
       "      <td>10.05</td>\n",
       "      <td>14.03</td>\n",
       "      <td>8.08</td>\n",
       "      <td>12.19</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.51</td>\n",
       "      <td>...</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.44</td>\n",
       "      <td>0.38</td>\n",
       "      <td>17.53</td>\n",
       "      <td>16.72</td>\n",
       "      <td>14.86</td>\n",
       "      <td>14.22</td>\n",
       "      <td>0.63</td>\n",
       "      <td>0.60</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.35</td>\n",
       "      <td>...</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.82</td>\n",
       "      <td>0.59</td>\n",
       "      <td>10.01</td>\n",
       "      <td>13.98</td>\n",
       "      <td>8.05</td>\n",
       "      <td>12.09</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.51</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.51</td>\n",
       "      <td>...</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.89</td>\n",
       "      <td>0.62</td>\n",
       "      <td>7.97</td>\n",
       "      <td>13.65</td>\n",
       "      <td>6.24</td>\n",
       "      <td>11.49</td>\n",
       "      <td>0.26</td>\n",
       "      <td>0.49</td>\n",
       "      <td>0.89</td>\n",
       "      <td>0.55</td>\n",
       "      <td>...</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.25</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.29</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KernelRidge_poly_CV</th>\n",
       "      <td>0.95</td>\n",
       "      <td>0.49</td>\n",
       "      <td>5.08</td>\n",
       "      <td>15.44</td>\n",
       "      <td>3.75</td>\n",
       "      <td>12.68</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.54</td>\n",
       "      <td>0.93</td>\n",
       "      <td>0.46</td>\n",
       "      <td>...</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KernelRidge_rbf_CV</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.62</td>\n",
       "      <td>19.75</td>\n",
       "      <td>0.45</td>\n",
       "      <td>14.85</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.63</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.30</td>\n",
       "      <td>...</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GaussianProcess_CV</th>\n",
       "      <td>0.97</td>\n",
       "      <td>0.66</td>\n",
       "      <td>3.68</td>\n",
       "      <td>12.96</td>\n",
       "      <td>2.71</td>\n",
       "      <td>10.35</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.44</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.65</td>\n",
       "      <td>...</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs0</th>\n",
       "      <td>0.98</td>\n",
       "      <td>0.20</td>\n",
       "      <td>3.41</td>\n",
       "      <td>17.29</td>\n",
       "      <td>2.36</td>\n",
       "      <td>13.75</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.58</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.20</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs1</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.05</td>\n",
       "      <td>17.25</td>\n",
       "      <td>0.04</td>\n",
       "      <td>13.41</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.57</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.15</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.54</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs2</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>1.06</td>\n",
       "      <td>18.89</td>\n",
       "      <td>0.77</td>\n",
       "      <td>13.71</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.58</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.65</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_rs</th>\n",
       "      <td>0.98</td>\n",
       "      <td>0.14</td>\n",
       "      <td>2.18</td>\n",
       "      <td>19.90</td>\n",
       "      <td>1.61</td>\n",
       "      <td>14.90</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.63</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.68</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RandomForestRegressor_CV_hrs0</th>\n",
       "      <td>-0.02</td>\n",
       "      <td>-0.12</td>\n",
       "      <td>23.76</td>\n",
       "      <td>22.49</td>\n",
       "      <td>20.49</td>\n",
       "      <td>20.17</td>\n",
       "      <td>0.87</td>\n",
       "      <td>0.85</td>\n",
       "      <td>-0.02</td>\n",
       "      <td>-0.14</td>\n",
       "      <td>...</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RandomForestRegressor_CV_rs</th>\n",
       "      <td>0.69</td>\n",
       "      <td>0.30</td>\n",
       "      <td>13.08</td>\n",
       "      <td>16.97</td>\n",
       "      <td>10.89</td>\n",
       "      <td>14.30</td>\n",
       "      <td>0.46</td>\n",
       "      <td>0.61</td>\n",
       "      <td>0.61</td>\n",
       "      <td>0.30</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExtraTreesRegressor_CV_rs</th>\n",
       "      <td>0.94</td>\n",
       "      <td>0.55</td>\n",
       "      <td>4.33</td>\n",
       "      <td>14.20</td>\n",
       "      <td>3.53</td>\n",
       "      <td>11.69</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.49</td>\n",
       "      <td>0.92</td>\n",
       "      <td>0.54</td>\n",
       "      <td>...</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.31</td>\n",
       "      <td>0.17</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.32</td>\n",
       "      <td>0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExtraTreesRegressor_CV_hrs2</th>\n",
       "      <td>0.62</td>\n",
       "      <td>0.22</td>\n",
       "      <td>12.96</td>\n",
       "      <td>18.59</td>\n",
       "      <td>10.63</td>\n",
       "      <td>17.10</td>\n",
       "      <td>0.45</td>\n",
       "      <td>0.72</td>\n",
       "      <td>0.56</td>\n",
       "      <td>0.23</td>\n",
       "      <td>...</td>\n",
       "      <td>0.28</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.52</td>\n",
       "      <td>0.58</td>\n",
       "      <td>16.32</td>\n",
       "      <td>13.51</td>\n",
       "      <td>11.82</td>\n",
       "      <td>10.61</td>\n",
       "      <td>0.50</td>\n",
       "      <td>0.45</td>\n",
       "      <td>0.62</td>\n",
       "      <td>0.62</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>18 rows × 48 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                        ee                               \\\n",
       "                                  R2_train R2_test RMSE_train RMSE_test   \n",
       "LinearRegression                      1.00 -206.22       0.00    194.11   \n",
       "RidgeCV                               0.85    0.56       9.23     14.61   \n",
       "LassoCV                               0.82    0.58      10.05     14.03   \n",
       "LarsCV                                0.44    0.38      17.53     16.72   \n",
       "LassoLarsCV                           0.82    0.59      10.01     13.98   \n",
       "ElasticNetCV                          0.89    0.62       7.97     13.65   \n",
       "KernelRidge_poly_CV                   0.95    0.49       5.08     15.44   \n",
       "KernelRidge_rbf_CV                    1.00    0.09       0.62     19.75   \n",
       "GaussianProcess_CV                    0.97    0.66       3.68     12.96   \n",
       "GradientBoostingRegressor_CV_hrs0     0.98    0.20       3.41     17.29   \n",
       "GradientBoostingRegressor_CV_hrs1     1.00    0.16       0.05     17.25   \n",
       "GradientBoostingRegressor_CV_hrs2     1.00    0.10       1.06     18.89   \n",
       "GradientBoostingRegressor_CV_rs       0.98    0.14       2.18     19.90   \n",
       "RandomForestRegressor_CV_hrs0        -0.02   -0.12      23.76     22.49   \n",
       "RandomForestRegressor_CV_rs           0.69    0.30      13.08     16.97   \n",
       "ExtraTreesRegressor_CV_rs             0.94    0.55       4.33     14.20   \n",
       "ExtraTreesRegressor_CV_hrs2           0.62    0.22      12.96     18.59   \n",
       "KNeighborsRegressor                   0.52    0.58      16.32     13.51   \n",
       "\n",
       "                                                                               \\\n",
       "                                  MAE_train MAE_test MAErel_train MAErel_test   \n",
       "LinearRegression                       0.00   159.83         0.00        6.76   \n",
       "RidgeCV                                7.39    12.48         0.31        0.53   \n",
       "LassoCV                                8.08    12.19         0.34        0.52   \n",
       "LarsCV                                14.86    14.22         0.63        0.60   \n",
       "LassoLarsCV                            8.05    12.09         0.34        0.51   \n",
       "ElasticNetCV                           6.24    11.49         0.26        0.49   \n",
       "KernelRidge_poly_CV                    3.75    12.68         0.16        0.54   \n",
       "KernelRidge_rbf_CV                     0.45    14.85         0.02        0.63   \n",
       "GaussianProcess_CV                     2.71    10.35         0.11        0.44   \n",
       "GradientBoostingRegressor_CV_hrs0      2.36    13.75         0.10        0.58   \n",
       "GradientBoostingRegressor_CV_hrs1      0.04    13.41         0.00        0.57   \n",
       "GradientBoostingRegressor_CV_hrs2      0.77    13.71         0.03        0.58   \n",
       "GradientBoostingRegressor_CV_rs        1.61    14.90         0.07        0.63   \n",
       "RandomForestRegressor_CV_hrs0         20.49    20.17         0.87        0.85   \n",
       "RandomForestRegressor_CV_rs           10.89    14.30         0.46        0.61   \n",
       "ExtraTreesRegressor_CV_rs              3.53    11.69         0.15        0.49   \n",
       "ExtraTreesRegressor_CV_hrs2           10.63    17.10         0.45        0.72   \n",
       "KNeighborsRegressor                   11.82    10.61         0.50        0.45   \n",
       "\n",
       "                                    ee2ddg          ...                   \\\n",
       "                                  R2_train R2_test  ... MAErel_train_std   \n",
       "LinearRegression                      1.00 -138.32  ...             0.00   \n",
       "RidgeCV                               0.84    0.46  ...             0.05   \n",
       "LassoCV                               0.80    0.51  ...             0.05   \n",
       "LarsCV                                0.39    0.35  ...             0.03   \n",
       "LassoLarsCV                           0.80    0.51  ...             0.04   \n",
       "ElasticNetCV                          0.89    0.55  ...             0.05   \n",
       "KernelRidge_poly_CV                   0.93    0.46  ...             0.04   \n",
       "KernelRidge_rbf_CV                    1.00    0.30  ...             0.03   \n",
       "GaussianProcess_CV                    0.97    0.65  ...             0.11   \n",
       "GradientBoostingRegressor_CV_hrs0     0.98    0.20  ...             0.02   \n",
       "GradientBoostingRegressor_CV_hrs1     1.00    0.15  ...             0.00   \n",
       "GradientBoostingRegressor_CV_hrs2     1.00    0.10  ...             0.02   \n",
       "GradientBoostingRegressor_CV_rs       0.98    0.11  ...             0.10   \n",
       "RandomForestRegressor_CV_hrs0        -0.02   -0.14  ...             0.07   \n",
       "RandomForestRegressor_CV_rs           0.61    0.30  ...             0.00   \n",
       "ExtraTreesRegressor_CV_rs             0.92    0.54  ...             0.22   \n",
       "ExtraTreesRegressor_CV_hrs2           0.56    0.23  ...             0.28   \n",
       "KNeighborsRegressor                   0.62    0.62  ...             0.02   \n",
       "\n",
       "                                                           ddg              \\\n",
       "                                  MAErel_test_std R2_train_std R2_test_std   \n",
       "LinearRegression                             4.13         0.00      149.46   \n",
       "RidgeCV                                      0.27         0.05        0.11   \n",
       "LassoCV                                      0.19         0.00        0.06   \n",
       "LarsCV                                       0.18         0.14        0.12   \n",
       "LassoLarsCV                                  0.19         0.01        0.06   \n",
       "ElasticNetCV                                 0.25         0.06        0.29   \n",
       "KernelRidge_poly_CV                          0.16         0.09        0.08   \n",
       "KernelRidge_rbf_CV                           0.22         0.00        0.19   \n",
       "GaussianProcess_CV                           0.18         0.12        0.10   \n",
       "GradientBoostingRegressor_CV_hrs0            0.14         0.01        0.34   \n",
       "GradientBoostingRegressor_CV_hrs1            0.18         0.00        0.54   \n",
       "GradientBoostingRegressor_CV_hrs2            0.04         0.01        0.65   \n",
       "GradientBoostingRegressor_CV_rs              0.11         0.00        0.68   \n",
       "RandomForestRegressor_CV_hrs0                0.24         0.04        0.00   \n",
       "RandomForestRegressor_CV_rs                  0.03         0.07        0.39   \n",
       "ExtraTreesRegressor_CV_rs                    0.07         0.21        0.31   \n",
       "ExtraTreesRegressor_CV_hrs2                  0.13         0.16        0.15   \n",
       "KNeighborsRegressor                          0.11         0.05        0.09   \n",
       "\n",
       "                                                                              \\\n",
       "                                  RMSE_train_std RMSE_test_std MAE_train_std   \n",
       "LinearRegression                            0.00          2.27          0.00   \n",
       "RidgeCV                                     0.03          0.09          0.02   \n",
       "LassoCV                                     0.00          0.07          0.00   \n",
       "LarsCV                                      0.03          0.03          0.02   \n",
       "LassoLarsCV                                 0.00          0.07          0.00   \n",
       "ElasticNetCV                                0.04          0.13          0.03   \n",
       "KernelRidge_poly_CV                         0.07          0.08          0.05   \n",
       "KernelRidge_rbf_CV                          0.01          0.11          0.01   \n",
       "GaussianProcess_CV                          0.13          0.08          0.10   \n",
       "GradientBoostingRegressor_CV_hrs0           0.00          0.02          0.01   \n",
       "GradientBoostingRegressor_CV_hrs1           0.00          0.04          0.00   \n",
       "GradientBoostingRegressor_CV_hrs2           0.03          0.05          0.02   \n",
       "GradientBoostingRegressor_CV_rs             0.01          0.06          0.01   \n",
       "RandomForestRegressor_CV_hrs0               0.02          0.08          0.05   \n",
       "RandomForestRegressor_CV_rs                 0.02          0.02          0.02   \n",
       "ExtraTreesRegressor_CV_rs                   0.17          0.02          0.14   \n",
       "ExtraTreesRegressor_CV_hrs2                 0.04          0.03          0.02   \n",
       "KNeighborsRegressor                         0.03          0.03          0.03   \n",
       "\n",
       "                                                                 \\\n",
       "                                  MAE_test_std MAErel_train_std   \n",
       "LinearRegression                          1.65             0.00   \n",
       "RidgeCV                                   0.09             0.05   \n",
       "LassoCV                                   0.06             0.00   \n",
       "LarsCV                                    0.06             0.05   \n",
       "LassoLarsCV                               0.06             0.00   \n",
       "ElasticNetCV                              0.10             0.07   \n",
       "KernelRidge_poly_CV                       0.06             0.13   \n",
       "KernelRidge_rbf_CV                        0.08             0.01   \n",
       "GaussianProcess_CV                        0.06             0.24   \n",
       "GradientBoostingRegressor_CV_hrs0         0.03             0.02   \n",
       "GradientBoostingRegressor_CV_hrs1         0.04             0.00   \n",
       "GradientBoostingRegressor_CV_hrs2         0.05             0.04   \n",
       "GradientBoostingRegressor_CV_rs           0.04             0.02   \n",
       "RandomForestRegressor_CV_hrs0             0.12             0.11   \n",
       "RandomForestRegressor_CV_rs               0.01             0.05   \n",
       "ExtraTreesRegressor_CV_rs                 0.00             0.32   \n",
       "ExtraTreesRegressor_CV_hrs2               0.06             0.05   \n",
       "KNeighborsRegressor                       0.05             0.07   \n",
       "\n",
       "                                                   \n",
       "                                  MAErel_test_std  \n",
       "LinearRegression                             3.80  \n",
       "RidgeCV                                      0.20  \n",
       "LassoCV                                      0.14  \n",
       "LarsCV                                       0.13  \n",
       "LassoLarsCV                                  0.14  \n",
       "ElasticNetCV                                 0.24  \n",
       "KernelRidge_poly_CV                          0.14  \n",
       "KernelRidge_rbf_CV                           0.18  \n",
       "GaussianProcess_CV                           0.15  \n",
       "GradientBoostingRegressor_CV_hrs0            0.07  \n",
       "GradientBoostingRegressor_CV_hrs1            0.10  \n",
       "GradientBoostingRegressor_CV_hrs2            0.11  \n",
       "GradientBoostingRegressor_CV_rs              0.10  \n",
       "RandomForestRegressor_CV_hrs0                0.27  \n",
       "RandomForestRegressor_CV_rs                  0.02  \n",
       "ExtraTreesRegressor_CV_rs                    0.01  \n",
       "ExtraTreesRegressor_CV_hrs2                  0.14  \n",
       "KNeighborsRegressor                          0.11  \n",
       "\n",
       "[18 rows x 48 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Biscoe_Desc\n",
      "(24,)\n",
      "(24,)\n",
      "(24, 140)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAugAAAF0CAYAAABxFsw1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsVElEQVR4nO3de3wU9b3/8fdyWwImKwkmYQ8JpJaCEgIIioBAUgGbA4hW8Y6pl1PRcJcWglouAgFqLX2IoKgNeCjg8fRAeXiP58H1CJoEoxgVRSKJQEARdyHKAsn8/uiPtWsCJJvZzOzm9Xw85uFjvvOdnc9Msl/efncy6zAMwxAAAAAAW2hmdQEAAAAAfkRABwAAAGyEgA4AAADYCAEdAAAAsBECOgAAAGAjBHQAAADARgjoAAAAgI0Q0AEAAAAbIaADAAAANkJABwAATc7mzZvlcDi0efPmC/ZNT09Xenp6yGsCziKgAwAAADZCQAcAAABshICOsLdt2zY5HA6tXbu2xrYXX3xRDodDBQUFdXotr9eradOmKSUlRa1atdK//du/afLkyaqsrAzoZxiGli1bpl69eikqKkrt2rXTzTffrH379plyTgDQ1Jk5tn/66af61a9+pTZt2qh9+/YaN26cjh8/XqOfYRhavHixOnXqpNatW+uKK67Q66+/XutrlpSUaPjw4WrTpo0uueQSZWdn69VXX63zbTPA+TgMwzCsLgJoqCuuuEJt2rTR9u3bA9qvuuoqSdJ77713wdf4/vvvNXDgQH311VeaOXOm0tLSVFJSoj/84Q/q06eP3n77bTkcDknSb3/7W61cuVITJ07UsGHD9O2332ru3Lk6duyYPvjgAyUkJJh/kgDQxJgxth8+fFhpaWlq2bKl5s2bp4SEBP3tb3/Ttm3bVFZWpk2bNvnvL589e7bmzJmj++67TzfffLPKy8s1Z84cVVVVqWvXrv7gfejQIfXo0UNt27bV3LlzFR8fr7Vr12rbtm368ssvA14TCIoBRIC8vDxDkvH+++/729577z1DkrFq1ao6vUZubq7RrFkzo6CgIKD9v//7vw1JxmuvvWYYhmHs2LHDkGT86U9/CuhXXl5uREVFGb///e8bdjIAAMMwzBnbp0+fbjgcDqO4uDigfdiwYYYkY9OmTYZhGMaxY8eM1q1bGzfeeGNAv//7v/8zJBlDhgzxt/3ud78zHA6HUVJSEtD3uuuuC3hNIFjc4oKIcPvttys+Pl5PP/20v+2pp57SJZdcoltvvbVOr/HKK68oNTVVvXr10pkzZ/zLddddF/CR5SuvvCKHw6G77roroF9iYqJ69uzJR5sAYBIzxvZNmzape/fu6tmzZ0D7HXfcEbC+Y8cOnTx5UnfeeWdA+4ABA9SpU6eAti1btig1NVWXX355jXoBMxDQERGcTqceeOABrVmzRt99952+/vpr/dd//Zfuv/9+OZ3OOr3G4cOH9eGHH6ply5YBS3R0tAzD0DfffOPvZxiGEhISavTduXOnvx8AoGHMGNuPHj2qxMTEGu0/bTt69Git7efqW9utjNzeCLO0sLoAwCwPPvigFi5cqL/+9a86efKkzpw5o3HjxtV5//bt2ysqKkp//etfz7n97H8dDoe2bdtW6z8Qdf1HAwBwYQ0d2+Pi4lRRUVGj/adtcXFxtbafbevcuXNA38OHD1/wNYFgEdARMTp06KAxY8Zo2bJlOnXqlEaNGqXk5OQ67z9y5EgtWLBAcXFxSklJOW+/hQsX6sCBA7rlllvMKB0AcA4NHdszMjK0ePFiffDBBwG3uaxZsyag39VXX63WrVvrb3/7m2666SZ/+zvvvKP9+/cHBPQhQ4boiSee0Mcffxxwm8u6deuCOEOgJp7igojy3nvvqV+/fpKkt99+W9dee22d962srNSgQYP09ddfa8qUKUpLS1N1dbXKysr01ltv6eGHH/a/9gMPPKDVq1crOztbgwcPVtu2bXXo0CFt375dPXr00IMPPhiS8wOApqghY3tFRYXS0tLUqlWrgKe4bN26VeXl5QFPXHnsscc0b9483XfffRozZozKy8s1e/bsGk9xOXjwoNLS0vxPcUlISNCaNWu0detW7d+/X1u2bNHgwYPNvgxoQgjoiDgpKSmKiorSxx9/XO99KysrtXDhQr388ssqLS1VVFSUkpOTNXToUE2fPj3g/sK8vDw9++yz+uijj1RdXS23262BAwdq4sSJ6tOnj5mnBABNXkPG9k8++USTJk3Stm3b1KZNG9144426/vrrNXr06ICAbhiGFi1apGXLlunw4cPq1q2b5s+fryeeeEKSAh4CUFJSosmTJ2v79u3+1xw8eLCysrL0wQcfKC0tzYzTRhNFQEdE+fDDD9WzZ089/fTTeuihh6wuBwBggnAZ23/7299q7dq1Onr0qFq1amV1OQhj3IOOiPDFF19o//79mjlzpjp06KDf/OY3VpcEAGggO4/tc+fOldvt1s9+9jOdOHFCr7zyip5//nk9+uijhHM0GAEdEeHxxx/Xf/7nf+qyyy7Tyy+/rDZt2vi3GYahqqqq8+7fvHlz/7eEAgDswc5je8uWLfXHP/5RX331lc6cOaMuXbroySef1KRJk0JyPDQt3OKCiLd582ZlZGSct09eXp6tZmYAAOfH2I5IRkBHxDt+/Lj27Nlz3j4pKSn+Z+ACAOyPsR2RjIAOAAAA2EgzqwsAAAAA8CPb/ZFodXW1Dh48qOjoaP5oD0CTYBiGjh8/LrfbrWbNmta8CWM+gKakruO97QL6wYMHlZSUZHUZANDoysvL1bFjR6vLaFSM+QCaoguN97YL6NHR0ZL+WXhMTIzF1QBA6Hm9XiUlJfnHv6aEMR9AU1LX8d52Af3sR5wxMTEM1gCalKZ4iwdjPoCm6ELjfdO62REAAACwOQI6AAAAYCMEdAAAAMBGCOgAAACAjRDQAQAAABshoAMAAAA2QkAHAAAAbISADgAISufOneVwOGos2dnZVpcGAGHNdl9UBAAIDwUFBaqqqvKvf/TRRxo2bJjGjBljYVUAEP4I6ACAoFxyySUB6wsXLtSll16qIUOGWFQRAEQGbnEBADTYqVOntHr1at17770X/AprAMD5MYMOAGiwDRs26LvvvtNvfvOb8/bz+Xzy+Xz+da/XG+LKACD8ENABRCQrZnENw2j0Y9rFCy+8oMzMTLnd7vP2y83N1Zw5cxqpKgCMheGJW1wAAA2yf/9+vf3227r//vsv2DcnJ0cej8e/lJeXN0KFABBemEEHADRIXl6e4uPjNWLEiAv2dTqdcjqdjVAVAIQvZtABAEGrrq5WXl6esrKy1KIFcz4AYAYCOgAgaG+//bbKysp07733Wl0KAEQMpjsAAEEbPnw4fxAGACZjBh0AAACwEQI6AAAAYCMEdAAAAMBGCOgAAACAjRDQAQAAABshoAMAAAA2QkAHAAAAbISADgAAANgIAR0AAACwkXoH9K1bt2rUqFFyu91yOBzasGHDOfs+8MADcjgcWrJkSQNKBAAAAJqOegf0yspK9ezZU0uXLj1vvw0bNujdd9+V2+0OujgAAACgqWlR3x0yMzOVmZl53j4HDhzQ+PHj9eabb2rEiBFBFwcAAAA0Nabfg15dXa2xY8fqd7/7nbp37272ywMAAAARrd4z6BeyaNEitWjRQhMnTqxTf5/PJ5/P51/3er1mlwQAAACEDVNn0IuKivSXv/xFK1eulMPhqNM+ubm5crlc/iUpKcnMkgAAAICwYmpA37Ztm44cOaLk5GS1aNFCLVq00P79+/Xwww+rc+fOte6Tk5Mjj8fjX8rLy80sCQAAAAgrpt7iMnbsWA0dOjSg7brrrtPYsWN1zz331LqP0+mU0+k0swwAAAAgbNU7oJ84cUJ79+71r5eWlqq4uFixsbFKTk5WXFxcQP+WLVsqMTFRXbt2bXi1AAAAQISrd0AvLCxURkaGf33q1KmSpKysLK1cudK0wgAAAICmqN4BPT09XYZh1Ln/l19+Wd9DAAAAAE2W6c9BBwAAABA8AjoAAABgIwR0AAAAwEYI6AAAAICNENABAAAAGyGgAwAAADZCQAcAAABshIAOAAAA2AgBHQAAALARAjoAAABgIwR0AAAAwEYI6ACAoB04cEB33XWX4uLi1KZNG/Xq1UtFRUVWlwUAYa2F1QUAAMLTsWPHNHDgQGVkZOj1119XfHy8vvjiC1188cVWlwYAYY2ADgAIyqJFi5SUlKS8vDx/W+fOna0rCAAiBLe4AACCsnHjRvXt21djxoxRfHy8evfureeee87qsgAg7BHQAQBB2bdvn5YvX64uXbrozTff1Lhx4zRx4kS9+OKL59zH5/PJ6/UGLACAQNziAgAISnV1tfr27asFCxZIknr37q2SkhItX75cd999d6375Obmas6cOY1ZJgCEHWbQAQBB6dChgy6//PKAtssuu0xlZWXn3CcnJ0cej8e/lJeXh7pMAAg7zKADAIIycOBA7dmzJ6Dts88+U6dOnc65j9PplNPpDHVpABDWmEEHAARlypQp2rlzpxYsWKC9e/dqzZo1WrFihbKzs60uDQDCGgEdABCUK6+8UuvXr9fatWuVmpqqxx9/XEuWLNGdd95pdWkAENa4xQUAELSRI0dq5MiRVpcBABGFGXQAAADARgjoAAAAgI0Q0AEAAAAbIaADAAAANkJABwAAAGyEgA4AAADYSL0D+tatWzVq1Ci53W45HA5t2LDBv+306dOaPn26evToobZt28rtduvuu+/WwYMHzawZAAAAiFj1DuiVlZXq2bOnli5dWmPb999/r127dumxxx7Trl279D//8z/67LPPdP3115tSLAAAABDp6v1FRZmZmcrMzKx1m8vlUn5+fkDbU089pauuukplZWVKTk4OrkoAAACgiQj5Pegej0cOh0MXX3xxqA8FAAAAhL16z6DXx8mTJzVjxgzdcccdiomJqbWPz+eTz+fzr3u93lCWBAAAANhayGbQT58+rdtuu03V1dVatmzZOfvl5ubK5XL5l6SkpFCVBAAAANheSAL66dOndcstt6i0tFT5+fnnnD2XpJycHHk8Hv9SXl4eipIAAACAsGD6LS5nw/nnn3+uTZs2KS4u7rz9nU6nnE6n2WUAAAAAYaneAf3EiRPau3evf720tFTFxcWKjY2V2+3WzTffrF27dumVV15RVVWVKioqJEmxsbFq1aqVeZUDAAAAEajeAb2wsFAZGRn+9alTp0qSsrKyNHv2bG3cuFGS1KtXr4D9Nm3apPT09OArBQAAAJqAegf09PR0GYZxzu3n2wYAAADg/EL+HHQAAAAAdUdABwAAAGyEgA4AAADYCAEdAAAAsBECOgAAAGAjBHQAAADARgjoAAAAgI0Q0AEAAAAbIaADAAAANkJABwAAAGyEgA4AAADYCAEdAAAAsBECOgAAAGAjBHQAAADARgjoAICgzJ49Ww6HI2BJTEy0uiwACHstrC4AABC+unfvrrffftu/3rx5cwurAYDIQEAHAAStRYsWzJoDgMm4xQUAELTPP/9cbrdbKSkpuu2227Rv3z6rSwKAsMcMOgAgKP369dOLL76oX/ziFzp8+LDmzZunAQMGqKSkRHFxcbXu4/P55PP5/Oter7exygWAsMEMOgAgKJmZmbrpppvUo0cPDR06VK+++qokadWqVefcJzc3Vy6Xy78kJSU1VrkAEDYI6AAAU7Rt21Y9evTQ559/fs4+OTk58ng8/qW8vLwRKwSA8MAtLgAAU/h8Pn3yyScaNGjQOfs4nU45nc5GrAoAwg8z6ACAoEybNk1btmxRaWmp3n33Xd18883yer3KysqyujQACGvMoAMAgvLVV1/p9ttv1zfffKNLLrlEV199tXbu3KlOnTpZXRoAhDUCOgAgKOvWrbO6BACISNziAgAAANgIAR0AAACwEQI6AAAAYCP1Duhbt27VqFGj5Ha75XA4tGHDhoDthmFo9uzZcrvdioqKUnp6ukpKSsyqFwAAAIho9Q7olZWV6tmzp5YuXVrr9sWLF+vJJ5/U0qVLVVBQoMTERA0bNkzHjx9vcLEAAABApKv3U1wyMzOVmZlZ6zbDMLRkyRI98sgj+vWvfy3pn1/5nJCQoDVr1uiBBx5oWLUAAABAhDP1HvTS0lJVVFRo+PDh/jan06khQ4bonXfeMfNQAAAAQEQy9TnoFRUVkqSEhISA9oSEBO3fv7/WfXw+n3w+n3/d6/WaWRIAAAAQVkLyFBeHwxGwbhhGjbazcnNz5XK5/EtSUlIoSgIAAADCgqkBPTExUdKPM+lnHTlypMas+lk5OTnyeDz+pby83MySAAAAgLBiakBPSUlRYmKi8vPz/W2nTp3Sli1bNGDAgFr3cTqdiomJCVgAAACApqre96CfOHFCe/fu9a+XlpaquLhYsbGxSk5O1uTJk7VgwQJ16dJFXbp00YIFC9SmTRvdcccdphYOAAAARKJ6B/TCwkJlZGT416dOnSpJysrK0sqVK/X73/9eP/zwgx566CEdO3ZM/fr101tvvaXo6GjzqgYAAAAilMMwDMPqIv6V1+uVy+WSx+PhdhcAQTvXH6aHUrDDaVMe95ryuQONIZzGwqagrmNeSJ7iAgAAACA4BHQAAADARgjoAAAAgI0Q0AEAAAAbIaADAAAANkJABwAAAGyEgA4AAADYCAEdAAAAsBECOgAAAGAjBHQAAADARgjoAAAAgI0Q0AEAAAAbIaADAAAANkJABwAAAGyEgA4AAADYCAEdAAAAsBECOgAAAGAjBHQAgClyc3PlcDg0efJkq0sBgLBGQAcANFhBQYFWrFihtLQ0q0sBgLBHQAcANMiJEyd055136rnnnlO7du2sLgcAwh4BHQDQINnZ2RoxYoSGDh1qdSkAEBFaWF0AACB8rVu3Trt27VJBQUGd+vt8Pvl8Pv+61+sNVWkAELYI6ACAoJSXl2vSpEl666231Lp16zrtk5ubqzlz5oS4MuDCHA5Hox/TMIxGP2ZTEWk/T4dhs98Wr9crl8slj8ejmJgYq8sBEKbCabAO13Fvw4YNuvHGG9W8eXN/W1VVlRwOh5o1ayafzxewTap9Bj0pKSnszh3hL5zGiIbgPEMnmPOs63jPDDoAICjXXnutdu/eHdB2zz33qFu3bpo+fXqNcC5JTqdTTqezsUoEgLBEQAcABCU6OlqpqakBbW3btlVcXFyNdgBA3fEUFwAAAMBGmEEHAJhm8+bNVpcAAGHP9Bn0M2fO6NFHH1VKSoqioqL0s5/9THPnzlV1dbXZhwIAAAAijukz6IsWLdIzzzyjVatWqXv37iosLNQ999wjl8ulSZMmmX04AAAAIKKYHtB37Nih0aNHa8SIEZKkzp07a+3atSosLDT7UAAAAEDEMf0Wl2uuuUb/+7//q88++0yS9MEHH2j79u3693//d7MPBQAAAEQc02fQp0+fLo/Ho27duql58+aqqqrS/Pnzdfvtt9fan699BgAAAH5k+gz6Sy+9pNWrV2vNmjXatWuXVq1apSeeeEKrVq2qtX9ubq5cLpd/SUpKMrskAAAAIGw4DJO/jzUpKUkzZsxQdna2v23evHlavXq1Pv300xr9+dpnAKEQLl/7LNX9q58jUVM+d1grnMaIhuA8QyeY86zrmGf6LS7ff/+9mjULnJhv3rz5OR+zyNc+AwAAAD8yPaCPGjVK8+fPV3Jysrp37673339fTz75pO69916zDwUAAABEHNMD+lNPPaXHHntMDz30kI4cOSK3260HHnhAf/jDH8w+FAAAABBxTA/o0dHRWrJkiZYsWWL2SwMAAAARz/SnuAAAAAAIHgEdAAAAsBECOgAAAGAjBHQAAADARgjoAAAAgI0Q0AEAAAAbIaADAAAANkJABwAAAGyEgA4AAADYCAEdAAAAsBECOgAAAGAjBHQAAADARgjoAAAAgI0Q0AEAAAAbIaADAAAANkJABwAAAGyEgA4AAADYCAEdAAAAsBECOgAAAGAjBHQAAADARgjoAICgLF++XGlpaYqJiVFMTIz69++v119/3eqyACDsEdABAEHp2LGjFi5cqMLCQhUWFuqXv/ylRo8erZKSEqtLA4Cw1sLqAgAA4WnUqFEB6/Pnz9fy5cu1c+dOde/e3aKqACD8EdABAA1WVVWll19+WZWVlerfv7/V5QBAWCOgAwCCtnv3bvXv318nT57URRddpPXr1+vyyy8/Z3+fzyefz+df93q9jVEmAIQVAjoAIGhdu3ZVcXGxvvvuO/39739XVlaWtmzZcs6Qnpubqzlz5jRylYA9OBwOq0toFE3lPEPJYRiGYXUR/8rr9crlcsnj8SgmJsbqcgCEKSv+gQh2OI2kcW/o0KG69NJL9eyzz9a6vbYZ9KSkpIg4d4QXQiQaKpgxv67jPTPoAADTGIYREMB/yul0yul0NmJFABB+QvKYxQMHDuiuu+5SXFyc2rRpo169eqmoqCgUhwIAWGTmzJnatm2bvvzyS+3evVuPPPKINm/erDvvvNPq0gAgrJk+g37s2DENHDhQGRkZev311xUfH68vvvhCF198sdmHAgBY6PDhwxo7dqwOHTokl8ultLQ0vfHGGxo2bJjVpQFAWDM9oC9atEhJSUnKy8vzt3Xu3NnswwAALPbCCy9YXQIARCTTb3HZuHGj+vbtqzFjxig+Pl69e/fWc889Z/ZhAAAAgIhkekDft2+fli9fri5duujNN9/UuHHjNHHiRL344ou19vf5fPJ6vQELAAAA0FSZfotLdXW1+vbtqwULFkiSevfurZKSEi1fvlx33313jf48ExcAAAD4kekz6B06dKjxBRWXXXaZysrKau2fk5Mjj8fjX8rLy80uCQAAAAgbps+gDxw4UHv27Alo++yzz9SpU6da+/NMXAAAAOBHps+gT5kyRTt37tSCBQu0d+9erVmzRitWrFB2drbZhwIAAAAijukB/corr9T69eu1du1apaam6vHHH9eSJUv44goAAACgDky/xUWSRo4cqZEjR4bipQEAAICIZvoMOgAAAIDgEdABAAAAGyGgAwAAADZCQAcAAABshIAOAAAA2AgBHQAAALARAjoAAABgIwR0AAAAwEYI6AAAAICNENABAAAAGyGgAwAAADZCQAcAAABshIAOAAAA2AgBHQAAALARAjoAAABgIwR0AAAAwEYI6AAAAICNENABAAAAGyGgAwAAADZCQAcAAABshIAOAAAA2AgBHQAAALARAjoAAABgIwR0AEBQcnNzdeWVVyo6Olrx8fG64YYbtGfPHqvLAoCwR0AHAARly5Ytys7O1s6dO5Wfn68zZ85o+PDhqqystLo0AAhrLawuAAAQnt54442A9by8PMXHx6uoqEiDBw+2qCoACH8EdACAKTwejyQpNjb2nH18Pp98Pp9/3ev1hrwuAAg33OICAGgwwzA0depUXXPNNUpNTT1nv9zcXLlcLv+SlJTUiFUCQHggoAMAGmz8+PH68MMPtXbt2vP2y8nJkcfj8S/l5eWNVCEAhI+QB/Tc3Fw5HA5Nnjw51IcCAFhgwoQJ2rhxozZt2qSOHTuet6/T6VRMTEzAAgAIFNJ70AsKCrRixQqlpaWF8jAAAAsY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",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee    -89.7,  62.2,  97.8,  52.3\n",
      "y_ddg   -2.16,  1.54,  3.33,  1.36\n",
      "0\n",
      "ExtraTreesRegressor_CV_rs time: 5 sec\n",
      "ExtraTreesRegressor_CV_rs time: 5 sec\n",
      "1\n",
      "ExtraTreesRegressor_CV_rs time: 5 sec\n",
      "ExtraTreesRegressor_CV_rs time: 5 sec\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"8\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"5\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"8\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_train</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_train</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>MAE_train</th>\n",
       "      <th>MAE_test</th>\n",
       "      <th>MAErel_train</th>\n",
       "      <th>MAErel_test</th>\n",
       "      <th>R2_train</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>...</th>\n",
       "      <th>MAErel_train_std</th>\n",
       "      <th>MAErel_test_std</th>\n",
       "      <th>R2_train_std</th>\n",
       "      <th>R2_test_std</th>\n",
       "      <th>RMSE_train_std</th>\n",
       "      <th>RMSE_test_std</th>\n",
       "      <th>MAE_train_std</th>\n",
       "      <th>MAE_test_std</th>\n",
       "      <th>MAErel_train_std</th>\n",
       "      <th>MAErel_test_std</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LinearRegression</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.00</td>\n",
       "      <td>24.95</td>\n",
       "      <td>0.00</td>\n",
       "      <td>17.92</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.35</td>\n",
       "      <td>1.00</td>\n",
       "      <td>-3.87</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.57</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.96</td>\n",
       "      <td>0.08</td>\n",
       "      <td>9.88</td>\n",
       "      <td>26.94</td>\n",
       "      <td>7.87</td>\n",
       "      <td>20.60</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.40</td>\n",
       "      <td>0.40</td>\n",
       "      <td>-10.27</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.49</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.99</td>\n",
       "      <td>0.01</td>\n",
       "      <td>4.26</td>\n",
       "      <td>27.86</td>\n",
       "      <td>3.45</td>\n",
       "      <td>23.38</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.46</td>\n",
       "      <td>0.75</td>\n",
       "      <td>-14.90</td>\n",
       "      <td>...</td>\n",
       "      <td>0.25</td>\n",
       "      <td>1.91</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.68</td>\n",
       "      <td>0.36</td>\n",
       "      <td>29.86</td>\n",
       "      <td>28.09</td>\n",
       "      <td>19.00</td>\n",
       "      <td>16.68</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.33</td>\n",
       "      <td>0.51</td>\n",
       "      <td>0.56</td>\n",
       "      <td>...</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.26</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.99</td>\n",
       "      <td>0.02</td>\n",
       "      <td>4.86</td>\n",
       "      <td>27.60</td>\n",
       "      <td>3.94</td>\n",
       "      <td>23.83</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.47</td>\n",
       "      <td>0.71</td>\n",
       "      <td>-14.92</td>\n",
       "      <td>...</td>\n",
       "      <td>0.17</td>\n",
       "      <td>1.88</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.31</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.29</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.26</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.97</td>\n",
       "      <td>0.06</td>\n",
       "      <td>8.20</td>\n",
       "      <td>27.30</td>\n",
       "      <td>6.69</td>\n",
       "      <td>20.72</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.41</td>\n",
       "      <td>0.45</td>\n",
       "      <td>-10.36</td>\n",
       "      <td>...</td>\n",
       "      <td>0.06</td>\n",
       "      <td>1.52</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KernelRidge_poly_CV</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.46</td>\n",
       "      <td>0.22</td>\n",
       "      <td>23.57</td>\n",
       "      <td>0.17</td>\n",
       "      <td>17.50</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.34</td>\n",
       "      <td>1.00</td>\n",
       "      <td>-10.20</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02</td>\n",
       "      <td>1.38</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KernelRidge_rbf_CV</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.00</td>\n",
       "      <td>27.66</td>\n",
       "      <td>0.00</td>\n",
       "      <td>23.34</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.46</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.28</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GaussianProcess_CV</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.42</td>\n",
       "      <td>1.46</td>\n",
       "      <td>23.16</td>\n",
       "      <td>1.17</td>\n",
       "      <td>18.10</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.76</td>\n",
       "      <td>-2.84</td>\n",
       "      <td>...</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs0</th>\n",
       "      <td>0.98</td>\n",
       "      <td>-0.54</td>\n",
       "      <td>7.85</td>\n",
       "      <td>32.22</td>\n",
       "      <td>4.15</td>\n",
       "      <td>26.52</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.93</td>\n",
       "      <td>-12.76</td>\n",
       "      <td>...</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.84</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.32</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs1</th>\n",
       "      <td>1.00</td>\n",
       "      <td>-2.29</td>\n",
       "      <td>0.32</td>\n",
       "      <td>42.04</td>\n",
       "      <td>0.15</td>\n",
       "      <td>28.17</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.55</td>\n",
       "      <td>1.00</td>\n",
       "      <td>-0.49</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.30</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.33</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs2</th>\n",
       "      <td>0.99</td>\n",
       "      <td>-0.80</td>\n",
       "      <td>3.63</td>\n",
       "      <td>37.67</td>\n",
       "      <td>2.12</td>\n",
       "      <td>26.46</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.94</td>\n",
       "      <td>-4.74</td>\n",
       "      <td>...</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.56</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_rs</th>\n",
       "      <td>1.00</td>\n",
       "      <td>-1.90</td>\n",
       "      <td>0.00</td>\n",
       "      <td>47.86</td>\n",
       "      <td>0.00</td>\n",
       "      <td>36.21</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.71</td>\n",
       "      <td>1.00</td>\n",
       "      <td>-0.11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RandomForestRegressor_CV_hrs0</th>\n",
       "      <td>-0.02</td>\n",
       "      <td>-0.99</td>\n",
       "      <td>53.86</td>\n",
       "      <td>43.83</td>\n",
       "      <td>32.84</td>\n",
       "      <td>34.33</td>\n",
       "      <td>0.64</td>\n",
       "      <td>0.67</td>\n",
       "      <td>-0.05</td>\n",
       "      <td>-0.97</td>\n",
       "      <td>...</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.40</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.31</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.26</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RandomForestRegressor_CV_rs</th>\n",
       "      <td>0.69</td>\n",
       "      <td>0.52</td>\n",
       "      <td>29.48</td>\n",
       "      <td>24.27</td>\n",
       "      <td>17.31</td>\n",
       "      <td>19.92</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.63</td>\n",
       "      <td>0.47</td>\n",
       "      <td>...</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExtraTreesRegressor_CV_rs</th>\n",
       "      <td>0.63</td>\n",
       "      <td>-0.16</td>\n",
       "      <td>32.40</td>\n",
       "      <td>35.67</td>\n",
       "      <td>19.28</td>\n",
       "      <td>29.26</td>\n",
       "      <td>0.38</td>\n",
       "      <td>0.57</td>\n",
       "      <td>0.71</td>\n",
       "      <td>0.36</td>\n",
       "      <td>...</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.31</td>\n",
       "      <td>0.17</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExtraTreesRegressor_CV_hrs2</th>\n",
       "      <td>0.64</td>\n",
       "      <td>0.32</td>\n",
       "      <td>32.22</td>\n",
       "      <td>27.42</td>\n",
       "      <td>20.73</td>\n",
       "      <td>23.37</td>\n",
       "      <td>0.41</td>\n",
       "      <td>0.46</td>\n",
       "      <td>0.53</td>\n",
       "      <td>0.30</td>\n",
       "      <td>...</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.41</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.40</td>\n",
       "      <td>0.14</td>\n",
       "      <td>0.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.23</td>\n",
       "      <td>0.00</td>\n",
       "      <td>31.29</td>\n",
       "      <td>0.00</td>\n",
       "      <td>18.52</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.49</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.27</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.65</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.56</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.27</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>18 rows × 48 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                        ee                               \\\n",
       "                                  R2_train R2_test RMSE_train RMSE_test   \n",
       "LinearRegression                      1.00    0.36       0.00     24.95   \n",
       "RidgeCV                               0.96    0.08       9.88     26.94   \n",
       "LassoCV                               0.99    0.01       4.26     27.86   \n",
       "LarsCV                                0.68    0.36      29.86     28.09   \n",
       "LassoLarsCV                           0.99    0.02       4.86     27.60   \n",
       "ElasticNetCV                          0.97    0.06       8.20     27.30   \n",
       "KernelRidge_poly_CV                   1.00    0.46       0.22     23.57   \n",
       "KernelRidge_rbf_CV                    1.00    0.11       0.00     27.66   \n",
       "GaussianProcess_CV                    1.00    0.42       1.46     23.16   \n",
       "GradientBoostingRegressor_CV_hrs0     0.98   -0.54       7.85     32.22   \n",
       "GradientBoostingRegressor_CV_hrs1     1.00   -2.29       0.32     42.04   \n",
       "GradientBoostingRegressor_CV_hrs2     0.99   -0.80       3.63     37.67   \n",
       "GradientBoostingRegressor_CV_rs       1.00   -1.90       0.00     47.86   \n",
       "RandomForestRegressor_CV_hrs0        -0.02   -0.99      53.86     43.83   \n",
       "RandomForestRegressor_CV_rs           0.69    0.52      29.48     24.27   \n",
       "ExtraTreesRegressor_CV_rs             0.63   -0.16      32.40     35.67   \n",
       "ExtraTreesRegressor_CV_hrs2           0.64    0.32      32.22     27.42   \n",
       "KNeighborsRegressor                   1.00    0.23       0.00     31.29   \n",
       "\n",
       "                                                                               \\\n",
       "                                  MAE_train MAE_test MAErel_train MAErel_test   \n",
       "LinearRegression                       0.00    17.92         0.00        0.35   \n",
       "RidgeCV                                7.87    20.60         0.15        0.40   \n",
       "LassoCV                                3.45    23.38         0.07        0.46   \n",
       "LarsCV                                19.00    16.68         0.37        0.33   \n",
       "LassoLarsCV                            3.94    23.83         0.08        0.47   \n",
       "ElasticNetCV                           6.69    20.72         0.13        0.41   \n",
       "KernelRidge_poly_CV                    0.17    17.50         0.00        0.34   \n",
       "KernelRidge_rbf_CV                     0.00    23.34         0.00        0.46   \n",
       "GaussianProcess_CV                     1.17    18.10         0.02        0.35   \n",
       "GradientBoostingRegressor_CV_hrs0      4.15    26.52         0.08        0.52   \n",
       "GradientBoostingRegressor_CV_hrs1      0.15    28.17         0.00        0.55   \n",
       "GradientBoostingRegressor_CV_hrs2      2.12    26.46         0.04        0.52   \n",
       "GradientBoostingRegressor_CV_rs        0.00    36.21         0.00        0.71   \n",
       "RandomForestRegressor_CV_hrs0         32.84    34.33         0.64        0.67   \n",
       "RandomForestRegressor_CV_rs           17.31    19.92         0.34        0.39   \n",
       "ExtraTreesRegressor_CV_rs             19.28    29.26         0.38        0.57   \n",
       "ExtraTreesRegressor_CV_hrs2           20.73    23.37         0.41        0.46   \n",
       "KNeighborsRegressor                    0.00    18.52         0.00        0.36   \n",
       "\n",
       "                                    ee2ddg          ...                   \\\n",
       "                                  R2_train R2_test  ... MAErel_train_std   \n",
       "LinearRegression                      1.00   -3.87  ...             0.00   \n",
       "RidgeCV                               0.40  -10.27  ...             0.00   \n",
       "LassoCV                               0.75  -14.90  ...             0.25   \n",
       "LarsCV                                0.51    0.56  ...             0.05   \n",
       "LassoLarsCV                           0.71  -14.92  ...             0.17   \n",
       "ElasticNetCV                          0.45  -10.36  ...             0.06   \n",
       "KernelRidge_poly_CV                   1.00  -10.20  ...             0.02   \n",
       "KernelRidge_rbf_CV                    1.00    0.28  ...             0.00   \n",
       "GaussianProcess_CV                    0.76   -2.84  ...             0.18   \n",
       "GradientBoostingRegressor_CV_hrs0     0.93  -12.76  ...             0.04   \n",
       "GradientBoostingRegressor_CV_hrs1     1.00   -0.49  ...             0.01   \n",
       "GradientBoostingRegressor_CV_hrs2     0.94   -4.74  ...             0.10   \n",
       "GradientBoostingRegressor_CV_rs       1.00   -0.11  ...             0.00   \n",
       "RandomForestRegressor_CV_hrs0        -0.05   -0.97  ...             0.10   \n",
       "RandomForestRegressor_CV_rs           0.63    0.47  ...             0.03   \n",
       "ExtraTreesRegressor_CV_rs             0.71    0.36  ...             0.13   \n",
       "ExtraTreesRegressor_CV_hrs2           0.53    0.30  ...             0.06   \n",
       "KNeighborsRegressor                   1.00    0.49  ...             0.00   \n",
       "\n",
       "                                                           ddg              \\\n",
       "                                  MAErel_test_std R2_train_std R2_test_std   \n",
       "LinearRegression                             0.57         0.00        0.06   \n",
       "RidgeCV                                      1.49         0.01        0.04   \n",
       "LassoCV                                      1.91         0.03        0.18   \n",
       "LarsCV                                       0.09         0.22        0.06   \n",
       "LassoLarsCV                                  1.88         0.01        0.31   \n",
       "ElasticNetCV                                 1.52         0.00        0.06   \n",
       "KernelRidge_poly_CV                          1.38         0.00        0.02   \n",
       "KernelRidge_rbf_CV                           0.09         0.00        0.07   \n",
       "GaussianProcess_CV                           0.67         0.00        0.02   \n",
       "GradientBoostingRegressor_CV_hrs0            0.84         0.00        0.32   \n",
       "GradientBoostingRegressor_CV_hrs1            0.30         0.00        0.33   \n",
       "GradientBoostingRegressor_CV_hrs2            0.56         0.01        0.24   \n",
       "GradientBoostingRegressor_CV_rs              0.03         0.01        0.04   \n",
       "RandomForestRegressor_CV_hrs0                0.05         0.01        0.40   \n",
       "RandomForestRegressor_CV_rs                  0.07         0.04        0.14   \n",
       "ExtraTreesRegressor_CV_rs                    0.16         0.14        0.12   \n",
       "ExtraTreesRegressor_CV_hrs2                  0.00         0.13        0.41   \n",
       "KNeighborsRegressor                          0.27         0.00        0.65   \n",
       "\n",
       "                                                                              \\\n",
       "                                  RMSE_train_std RMSE_test_std MAE_train_std   \n",
       "LinearRegression                            0.00          0.12          0.00   \n",
       "RidgeCV                                     0.03          0.04          0.03   \n",
       "LassoCV                                     0.14          0.21          0.10   \n",
       "LarsCV                                      0.26          0.08          0.18   \n",
       "LassoLarsCV                                 0.06          0.29          0.04   \n",
       "ElasticNetCV                                0.02          0.13          0.02   \n",
       "KernelRidge_poly_CV                         0.00          0.06          0.00   \n",
       "KernelRidge_rbf_CV                          0.00          0.13          0.00   \n",
       "GaussianProcess_CV                          0.00          0.05          0.00   \n",
       "GradientBoostingRegressor_CV_hrs0           0.01          0.09          0.00   \n",
       "GradientBoostingRegressor_CV_hrs1           0.00          0.06          0.00   \n",
       "GradientBoostingRegressor_CV_hrs2           0.12          0.04          0.06   \n",
       "GradientBoostingRegressor_CV_rs             0.12          0.07          0.06   \n",
       "RandomForestRegressor_CV_hrs0               0.04          0.31          0.11   \n",
       "RandomForestRegressor_CV_rs                 0.08          0.19          0.03   \n",
       "ExtraTreesRegressor_CV_rs                   0.31          0.17          0.24   \n",
       "ExtraTreesRegressor_CV_hrs2                 0.21          0.35          0.19   \n",
       "KNeighborsRegressor                         0.00          0.56          0.00   \n",
       "\n",
       "                                                                 \\\n",
       "                                  MAE_test_std MAErel_train_std   \n",
       "LinearRegression                          0.12             0.00   \n",
       "RidgeCV                                   0.00             0.02   \n",
       "LassoCV                                   0.18             0.08   \n",
       "LarsCV                                    0.02             0.14   \n",
       "LassoLarsCV                               0.26             0.03   \n",
       "ElasticNetCV                              0.11             0.02   \n",
       "KernelRidge_poly_CV                       0.03             0.00   \n",
       "KernelRidge_rbf_CV                        0.13             0.00   \n",
       "GaussianProcess_CV                        0.04             0.00   \n",
       "GradientBoostingRegressor_CV_hrs0         0.04             0.00   \n",
       "GradientBoostingRegressor_CV_hrs1         0.01             0.00   \n",
       "GradientBoostingRegressor_CV_hrs2         0.06             0.04   \n",
       "GradientBoostingRegressor_CV_rs           0.05             0.05   \n",
       "RandomForestRegressor_CV_hrs0             0.26             0.08   \n",
       "RandomForestRegressor_CV_rs               0.15             0.02   \n",
       "ExtraTreesRegressor_CV_rs                 0.15             0.18   \n",
       "ExtraTreesRegressor_CV_hrs2               0.40             0.14   \n",
       "KNeighborsRegressor                       0.36             0.00   \n",
       "\n",
       "                                                   \n",
       "                                  MAErel_test_std  \n",
       "LinearRegression                             0.09  \n",
       "RidgeCV                                      0.00  \n",
       "LassoCV                                      0.14  \n",
       "LarsCV                                       0.01  \n",
       "LassoLarsCV                                  0.19  \n",
       "ElasticNetCV                                 0.08  \n",
       "KernelRidge_poly_CV                          0.02  \n",
       "KernelRidge_rbf_CV                           0.10  \n",
       "GaussianProcess_CV                           0.03  \n",
       "GradientBoostingRegressor_CV_hrs0            0.03  \n",
       "GradientBoostingRegressor_CV_hrs1            0.00  \n",
       "GradientBoostingRegressor_CV_hrs2            0.05  \n",
       "GradientBoostingRegressor_CV_rs              0.03  \n",
       "RandomForestRegressor_CV_hrs0                0.19  \n",
       "RandomForestRegressor_CV_rs                  0.11  \n",
       "ExtraTreesRegressor_CV_rs                    0.11  \n",
       "ExtraTreesRegressor_CV_hrs2                  0.30  \n",
       "KNeighborsRegressor                          0.27  \n",
       "\n",
       "[18 rows x 48 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Doyle_Desc\n",
      "(29,)\n",
      "(29,)\n",
      "(29, 22)\n"
     ]
    },
    {
     "data": {
      "image/png": "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/ew+hYWF6tOnj2JjY9WxY0e98sorwS+0nvwdz7vvvqsRI0aodevWSkxMVP/+/fXhhx9aU2w9NeRn9KM///nPio6OVq9evYJWX0M0ZEzhsD4EQpML4JLUrVs3HTlyxLvt2rXL+9y8efP0wgsv6KWXXlJxcbHatm2rESNGqLy8PIQVW+fkyZMaOHCgWrZsqTVr1mj37t16/vnnff66aHOeo+LiYp/3zo9/RGTMmDGSmvfcSNLcuXP1yiuv6KWXXtKePXs0b948Pfvss/rDH/7g7dPc5+i+++7TunXr9NZbb2nXrl0aOXKkhg8frq+//loS8/NTK1as0KRJk/TYY49p+/btGjRokLKysnTo0KFa97n55pv18ccfa+HChdq7d6+WLVumzp07W1h13fwd0+bNm3XnnXfq3nvvVUlJid5++20VFxfrvvvus7jy2lVUVKhnz5566aWX6tX/wIEDuuaaazRo0CBt375d06dP14QJE/Sf//mfQa60fvwdz8aNGzVixAh98MEH2rZtm4YNG6bRo0dr+/btQa60/vwd049cLpfuvPNOXXXVVUGqrOEaMqamvj4EjGlinnzySdOzZ88an6uqqjJt27Y1c+bM8badPn3aOBwO88orr1hUYWhNnTrVXHnllbU+zxz5mjhxornoootMVVUVc2OMGTVqlLnnnnt82n71q1+ZO+64wxjD++eHH34wUVFRZvXq1T7tPXv2NI899lizn5+aXH755Wb8+PE+bZ07dzbTpk2rsf+aNWuMw+EwJ06csKK8BvF3TM8++6zp2LGjT9uLL75o2rVrF7QaG0OSWblyZZ19Hn30UdO5c2eftvvvv99cccUVQaysYeoznpp07drVzJw5M/AFBYA/Y7rlllvM448/Xmd+agrqM6ZwWB8CpUmeAd+/f79SU1OVkZGhW2+9VaWlpZL+8X/kR48e1ciRI7197Xa7hgwZok8++SRU5VrqvffeU9++fTVmzBglJyerd+/eeu2117zPM0f/58yZM1q8eLHuuece2Ww25kbSlVdeqY8//lj79u2TJO3cuVObN2/WNddcI4n3z9mzZ1VZWanY2Fif9ri4OG3evLnZz89PnTlzRtu2bfOZD0kaOXJkrfPx4xo2b948XXjhherUqZMefvhh/e///q8VJf+shoxpwIABOnz4sD744AMZY3Ts2DG98847GjVqlBUlB8Wnn35abQ6uvvpqbd26VX//+99DVFXgVFVVqby8XOeff36oS2mU/Px8ffXVV3ryySdDXUpANPX1IZD8/kuYwdavXz+9+eab6tSpk44dO6ann35aAwYMUElJiY4ePSpJatOmjc8+bdq00cGDB0NRruVKS0uVl5enKVOmaPr06dqyZYsmTJggu92uO++8kzn6J6tWrdL333+vu+66S5KYG0lTp06Vy+VS586dFRUVpcrKSs2ePVtjx46VxBwlJCSof//+euqpp9SlSxe1adNGy5Yt02effaaLL7642c/PTx0/flyVlZU1zsePc/VTpaWl2rx5s2JjY7Vy5UodP35cv/3tb/Xdd981ies8GzKmAQMGaMmSJbrlllt0+vRpnT17Vr/85S99Lu0KN0ePHq1xDs6ePavjx48rJSUlRJUFxvPPP6+KigrdfPPNoS6lwfbv369p06Zp06ZNio5ucnGuQZr6+hBITe4MeFZWlm688Ub16NFDw4cP1/vvvy9JWrRokbePzWbz2ccYU60tUlVVVenSSy/VM888o969e+v+++/Xr3/9a+Xl5fn0a85z9KOFCxcqKytLqampPu3NeW5WrFihxYsXa+nSpfr888+1aNEiPffccz6fL6l5z9Fbb70lY4wuvPBC2e12vfjii7rtttsUFRXl7dOc56cm/sxHVVWVbDablixZossvv1zXXHONXnjhBb3xxhtN6iyXP2PavXu3JkyYoCeeeELbtm3T2rVrdeDAAY0fP96KUoOmpjmoqT3cLFu2TDNmzNCKFSuUnJwc6nIapLKyUrfddptmzpypTp06hbqcgAmX9SEQmlwA/6lWrVqpR48e2r9/v/duKD89C/Htt99W+z/1SJWSkqKuXbv6tHXp0sX75SDm6B8OHjyo9evX+3wJirmRHnnkEU2bNk233nqrevTooXHjxmny5MlyOp2SmCNJuuiii1RYWKhTp06prKxMW7Zs0d///ndlZGQwPz9xwQUXKCoqyq/5SElJ0YUXXiiHw+Ft69Kli4wxOnz4cFDrrY+GjMnpdGrgwIF65JFHlJmZqauvvlrz58/X66+/riNHjlhRdsC1bdu2xjmIjo5WUlJSiKpqvBUrVujee+/VH//4Rw0fPjzU5TRYeXm5tm7dqgcffFDR0dGKjo7WrFmztHPnTkVHR+u///u/Q11igzT19SGQmnwA93g82rNnj1JSUrz/AP54ZwvpH9frFRYWasCAASGs0joDBw7U3r17fdr27dun9PR0SWKO/r/8/HwlJyf7XIPJ3Eg//PCDWrTw/dhHRUV5b0PIHP2fVq1aKSUlRSdPntSHH36o6667jvn5iZiYGPXp08dnPiRp3bp1tc7HwIED9c033+jUqVPetn379qlFixZq165dUOutj4aMqbbPlfR/Z43DTf/+/avNwUcffaS+ffuqZcuWIaqqcZYtW6a77rpLS5cuDevr8yUpMTFRu3bt0o4dO7zb+PHjdckll2jHjh3q169fqEtskKa+PgRUSL76WYff/e53pqCgwJSWlpqioiJz7bXXmoSEBPPXv/7VGGPMnDlzjMPhMO+++67ZtWuXGTt2rElJSTFutzvElVtjy5YtJjo62syePdvs37/fLFmyxMTHx5vFixd7+zT3OaqsrDTt27c3U6dOrfZcc5+b7Oxsc+GFF5rVq1ebAwcOmHfffddccMEF5tFHH/X2ae5ztHbtWrNmzRpTWlpqPvroI9OzZ09z+eWXmzNnzhhjmJ+fWr58uWnZsqVZuHCh2b17t5k0aZJp1aqVd82eNm2aGTdunLd/eXm5adeunbnppptMSUmJKSwsNBdffLG57777QjWEavwdU35+vomOjjbz5883X331ldm8ebPp27evufzyy0M1hGrKy8vN9u3bzfbt240k88ILL5jt27ebgwcPGmOqj6m0tNTEx8ebyZMnm927d5uFCxeali1bmnfeeSdUQ/Dh73iWLl1qoqOjzcsvv2yOHDni3b7//vtQDaEaf8f0U03xLij+jikc1odAaXIB/JZbbjEpKSmmZcuWJjU11fzqV78yJSUl3uerqqrMk08+adq2bWvsdrsZPHiw2bVrVwgrtt5//dd/me7duxu73W46d+5sFixY4PN8c5+jDz/80Egye/furfZcc58bt9ttJk6caNq3b29iY2NNx44dzWOPPWY8Ho+3T3OfoxUrVpiOHTuamJgY07ZtW5OTk+Pzj3Rzn5+avPzyyyY9Pd3ExMSYSy+91BQWFnqfy87ONkOGDPHpv2fPHjN8+HATFxdn2rVrZ6ZMmWJ++OEHi6uum79jevHFF03Xrl1NXFycSUlJMbfffrs5fPiwxVXXbsOGDUZStS07O9sYU/OYCgoKTO/evU1MTIzp0KGDycvLs77wWvg7niFDhtTZvyloyM/onzXFAN6QMYXD+hAINmPC9PdjAAAAQBhq8teAAwAAAJGEAA4AAABYiAAOAAAAWIgADgAAAFiIAA4AAABYiAAOAAAAWIgADgAAAFiIAA4AAABYiAAOAAAAWIgADgAAAFiIAA4AAABYiAAOAAAAWOj/ATUOI9A744m+AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee     49.9,  72.4,  89.9,  13.3\n",
      "y_ddg    0.65,  1.16,  1.74,  0.37\n",
      "0\n",
      "1\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"8\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"5\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"8\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_train</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_train</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>MAE_train</th>\n",
       "      <th>MAE_test</th>\n",
       "      <th>MAErel_train</th>\n",
       "      <th>MAErel_test</th>\n",
       "      <th>R2_train</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>...</th>\n",
       "      <th>MAErel_train_std</th>\n",
       "      <th>MAErel_test_std</th>\n",
       "      <th>R2_train_std</th>\n",
       "      <th>R2_test_std</th>\n",
       "      <th>RMSE_train_std</th>\n",
       "      <th>RMSE_test_std</th>\n",
       "      <th>MAE_train_std</th>\n",
       "      <th>MAE_test_std</th>\n",
       "      <th>MAErel_train_std</th>\n",
       "      <th>MAErel_test_std</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LinearRegression</th>\n",
       "      <td>1.00</td>\n",
       "      <td>-23.44</td>\n",
       "      <td>0.00</td>\n",
       "      <td>56.96</td>\n",
       "      <td>0.00</td>\n",
       "      <td>42.16</td>\n",
       "      <td>0.00</td>\n",
       "      <td>3.24</td>\n",
       "      <td>1.00</td>\n",
       "      <td>-44.73</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.49</td>\n",
       "      <td>0.00</td>\n",
       "      <td>22.47</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.86</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.43</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.92</td>\n",
       "      <td>-0.51</td>\n",
       "      <td>3.57</td>\n",
       "      <td>14.29</td>\n",
       "      <td>2.65</td>\n",
       "      <td>12.09</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.93</td>\n",
       "      <td>0.87</td>\n",
       "      <td>-15.95</td>\n",
       "      <td>...</td>\n",
       "      <td>0.07</td>\n",
       "      <td>1.57</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.81</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.92</td>\n",
       "      <td>-0.59</td>\n",
       "      <td>3.48</td>\n",
       "      <td>14.38</td>\n",
       "      <td>2.73</td>\n",
       "      <td>11.90</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.91</td>\n",
       "      <td>0.88</td>\n",
       "      <td>-15.74</td>\n",
       "      <td>...</td>\n",
       "      <td>0.11</td>\n",
       "      <td>1.67</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.73</td>\n",
       "      <td>0.50</td>\n",
       "      <td>6.57</td>\n",
       "      <td>8.95</td>\n",
       "      <td>5.49</td>\n",
       "      <td>7.19</td>\n",
       "      <td>0.42</td>\n",
       "      <td>0.55</td>\n",
       "      <td>0.66</td>\n",
       "      <td>0.41</td>\n",
       "      <td>...</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.92</td>\n",
       "      <td>-0.59</td>\n",
       "      <td>3.50</td>\n",
       "      <td>14.36</td>\n",
       "      <td>2.75</td>\n",
       "      <td>11.87</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.91</td>\n",
       "      <td>0.88</td>\n",
       "      <td>-15.74</td>\n",
       "      <td>...</td>\n",
       "      <td>0.11</td>\n",
       "      <td>1.67</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.92</td>\n",
       "      <td>-0.70</td>\n",
       "      <td>3.42</td>\n",
       "      <td>14.95</td>\n",
       "      <td>2.56</td>\n",
       "      <td>12.56</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.96</td>\n",
       "      <td>0.88</td>\n",
       "      <td>-15.94</td>\n",
       "      <td>...</td>\n",
       "      <td>0.09</td>\n",
       "      <td>1.62</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.55</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KernelRidge_poly_CV</th>\n",
       "      <td>0.98</td>\n",
       "      <td>0.30</td>\n",
       "      <td>1.72</td>\n",
       "      <td>10.20</td>\n",
       "      <td>1.14</td>\n",
       "      <td>8.17</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.63</td>\n",
       "      <td>0.96</td>\n",
       "      <td>0.47</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KernelRidge_rbf_CV</th>\n",
       "      <td>1.00</td>\n",
       "      <td>-3.17</td>\n",
       "      <td>0.02</td>\n",
       "      <td>22.83</td>\n",
       "      <td>0.01</td>\n",
       "      <td>17.72</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.36</td>\n",
       "      <td>1.00</td>\n",
       "      <td>-1.32</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.29</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.15</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GaussianProcess_CV</th>\n",
       "      <td>0.88</td>\n",
       "      <td>0.10</td>\n",
       "      <td>3.06</td>\n",
       "      <td>11.33</td>\n",
       "      <td>2.45</td>\n",
       "      <td>9.26</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.71</td>\n",
       "      <td>0.83</td>\n",
       "      <td>0.10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.29</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs0</th>\n",
       "      <td>0.99</td>\n",
       "      <td>0.44</td>\n",
       "      <td>1.05</td>\n",
       "      <td>9.35</td>\n",
       "      <td>0.72</td>\n",
       "      <td>6.79</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.99</td>\n",
       "      <td>0.41</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.50</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs1</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.29</td>\n",
       "      <td>0.00</td>\n",
       "      <td>10.31</td>\n",
       "      <td>0.00</td>\n",
       "      <td>6.54</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.50</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.19</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.30</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.66</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs2</th>\n",
       "      <td>0.99</td>\n",
       "      <td>0.29</td>\n",
       "      <td>1.14</td>\n",
       "      <td>10.51</td>\n",
       "      <td>0.65</td>\n",
       "      <td>7.10</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.54</td>\n",
       "      <td>0.99</td>\n",
       "      <td>0.19</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.60</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_rs</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.38</td>\n",
       "      <td>0.39</td>\n",
       "      <td>9.83</td>\n",
       "      <td>0.27</td>\n",
       "      <td>6.38</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.49</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.35</td>\n",
       "      <td>...</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.73</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RandomForestRegressor_CV_hrs0</th>\n",
       "      <td>-0.03</td>\n",
       "      <td>-0.21</td>\n",
       "      <td>13.10</td>\n",
       "      <td>13.79</td>\n",
       "      <td>11.80</td>\n",
       "      <td>12.65</td>\n",
       "      <td>0.91</td>\n",
       "      <td>0.97</td>\n",
       "      <td>-0.12</td>\n",
       "      <td>-0.31</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RandomForestRegressor_CV_rs</th>\n",
       "      <td>0.77</td>\n",
       "      <td>0.59</td>\n",
       "      <td>6.26</td>\n",
       "      <td>8.15</td>\n",
       "      <td>4.81</td>\n",
       "      <td>6.51</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.50</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.51</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExtraTreesRegressor_CV_rs</th>\n",
       "      <td>0.94</td>\n",
       "      <td>0.68</td>\n",
       "      <td>3.24</td>\n",
       "      <td>7.21</td>\n",
       "      <td>2.54</td>\n",
       "      <td>5.68</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.44</td>\n",
       "      <td>0.90</td>\n",
       "      <td>0.65</td>\n",
       "      <td>...</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExtraTreesRegressor_CV_hrs2</th>\n",
       "      <td>0.94</td>\n",
       "      <td>0.67</td>\n",
       "      <td>3.03</td>\n",
       "      <td>7.34</td>\n",
       "      <td>2.34</td>\n",
       "      <td>6.02</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.46</td>\n",
       "      <td>0.93</td>\n",
       "      <td>0.61</td>\n",
       "      <td>...</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>1.00</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.00</td>\n",
       "      <td>7.22</td>\n",
       "      <td>0.00</td>\n",
       "      <td>5.80</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.45</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.54</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>18 rows × 48 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                        ee                               \\\n",
       "                                  R2_train R2_test RMSE_train RMSE_test   \n",
       "LinearRegression                      1.00  -23.44       0.00     56.96   \n",
       "RidgeCV                               0.92   -0.51       3.57     14.29   \n",
       "LassoCV                               0.92   -0.59       3.48     14.38   \n",
       "LarsCV                                0.73    0.50       6.57      8.95   \n",
       "LassoLarsCV                           0.92   -0.59       3.50     14.36   \n",
       "ElasticNetCV                          0.92   -0.70       3.42     14.95   \n",
       "KernelRidge_poly_CV                   0.98    0.30       1.72     10.20   \n",
       "KernelRidge_rbf_CV                    1.00   -3.17       0.02     22.83   \n",
       "GaussianProcess_CV                    0.88    0.10       3.06     11.33   \n",
       "GradientBoostingRegressor_CV_hrs0     0.99    0.44       1.05      9.35   \n",
       "GradientBoostingRegressor_CV_hrs1     1.00    0.29       0.00     10.31   \n",
       "GradientBoostingRegressor_CV_hrs2     0.99    0.29       1.14     10.51   \n",
       "GradientBoostingRegressor_CV_rs       1.00    0.38       0.39      9.83   \n",
       "RandomForestRegressor_CV_hrs0        -0.03   -0.21      13.10     13.79   \n",
       "RandomForestRegressor_CV_rs           0.77    0.59       6.26      8.15   \n",
       "ExtraTreesRegressor_CV_rs             0.94    0.68       3.24      7.21   \n",
       "ExtraTreesRegressor_CV_hrs2           0.94    0.67       3.03      7.34   \n",
       "KNeighborsRegressor                   1.00    0.67       0.00      7.22   \n",
       "\n",
       "                                                                               \\\n",
       "                                  MAE_train MAE_test MAErel_train MAErel_test   \n",
       "LinearRegression                       0.00    42.16         0.00        3.24   \n",
       "RidgeCV                                2.65    12.09         0.20        0.93   \n",
       "LassoCV                                2.73    11.90         0.21        0.91   \n",
       "LarsCV                                 5.49     7.19         0.42        0.55   \n",
       "LassoLarsCV                            2.75    11.87         0.21        0.91   \n",
       "ElasticNetCV                           2.56    12.56         0.20        0.96   \n",
       "KernelRidge_poly_CV                    1.14     8.17         0.09        0.63   \n",
       "KernelRidge_rbf_CV                     0.01    17.72         0.00        1.36   \n",
       "GaussianProcess_CV                     2.45     9.26         0.19        0.71   \n",
       "GradientBoostingRegressor_CV_hrs0      0.72     6.79         0.06        0.52   \n",
       "GradientBoostingRegressor_CV_hrs1      0.00     6.54         0.00        0.50   \n",
       "GradientBoostingRegressor_CV_hrs2      0.65     7.10         0.05        0.54   \n",
       "GradientBoostingRegressor_CV_rs        0.27     6.38         0.02        0.49   \n",
       "RandomForestRegressor_CV_hrs0         11.80    12.65         0.91        0.97   \n",
       "RandomForestRegressor_CV_rs            4.81     6.51         0.37        0.50   \n",
       "ExtraTreesRegressor_CV_rs              2.54     5.68         0.20        0.44   \n",
       "ExtraTreesRegressor_CV_hrs2            2.34     6.02         0.18        0.46   \n",
       "KNeighborsRegressor                    0.00     5.80         0.00        0.45   \n",
       "\n",
       "                                    ee2ddg          ...                   \\\n",
       "                                  R2_train R2_test  ... MAErel_train_std   \n",
       "LinearRegression                      1.00  -44.73  ...             0.00   \n",
       "RidgeCV                               0.87  -15.95  ...             0.07   \n",
       "LassoCV                               0.88  -15.74  ...             0.11   \n",
       "LarsCV                                0.66    0.41  ...             0.16   \n",
       "LassoLarsCV                           0.88  -15.74  ...             0.11   \n",
       "ElasticNetCV                          0.88  -15.94  ...             0.09   \n",
       "KernelRidge_poly_CV                   0.96    0.47  ...             0.01   \n",
       "KernelRidge_rbf_CV                    1.00   -1.32  ...             0.00   \n",
       "GaussianProcess_CV                    0.83    0.10  ...             0.29   \n",
       "GradientBoostingRegressor_CV_hrs0     0.99    0.41  ...             0.01   \n",
       "GradientBoostingRegressor_CV_hrs1     1.00    0.19  ...             0.00   \n",
       "GradientBoostingRegressor_CV_hrs2     0.99    0.19  ...             0.02   \n",
       "GradientBoostingRegressor_CV_rs       1.00    0.35  ...             0.03   \n",
       "RandomForestRegressor_CV_hrs0        -0.12   -0.31  ...             0.01   \n",
       "RandomForestRegressor_CV_rs           0.67    0.51  ...             0.01   \n",
       "ExtraTreesRegressor_CV_rs             0.90    0.65  ...             0.04   \n",
       "ExtraTreesRegressor_CV_hrs2           0.93    0.61  ...             0.04   \n",
       "KNeighborsRegressor                   1.00    0.54  ...             0.00   \n",
       "\n",
       "                                                           ddg              \\\n",
       "                                  MAErel_test_std R2_train_std R2_test_std   \n",
       "LinearRegression                             1.49         0.00       22.47   \n",
       "RidgeCV                                      1.57         0.06        0.81   \n",
       "LassoCV                                      1.67         0.01        0.11   \n",
       "LarsCV                                       0.05         0.07        0.11   \n",
       "LassoLarsCV                                  1.67         0.01        0.12   \n",
       "ElasticNetCV                                 1.62         0.06        0.55   \n",
       "KernelRidge_poly_CV                          0.19         0.05        0.04   \n",
       "KernelRidge_rbf_CV                           0.29         0.00        1.15   \n",
       "GaussianProcess_CV                           0.22         0.01        0.01   \n",
       "GradientBoostingRegressor_CV_hrs0            0.12         0.00        0.50   \n",
       "GradientBoostingRegressor_CV_hrs1            0.30         0.00        0.66   \n",
       "GradientBoostingRegressor_CV_hrs2            0.08         0.04        0.60   \n",
       "GradientBoostingRegressor_CV_rs              0.03         0.00        0.73   \n",
       "RandomForestRegressor_CV_hrs0                0.06         0.16        0.01   \n",
       "RandomForestRegressor_CV_rs                  0.05         0.04        0.20   \n",
       "ExtraTreesRegressor_CV_rs                    0.04         0.05        0.21   \n",
       "ExtraTreesRegressor_CV_hrs2                  0.05         0.08        0.07   \n",
       "KNeighborsRegressor                          0.04         0.00        0.15   \n",
       "\n",
       "                                                                              \\\n",
       "                                  RMSE_train_std RMSE_test_std MAE_train_std   \n",
       "LinearRegression                            0.00          0.86          0.00   \n",
       "RidgeCV                                     0.03          0.10          0.03   \n",
       "LassoCV                                     0.00          0.05          0.01   \n",
       "LarsCV                                      0.02          0.05          0.04   \n",
       "LassoLarsCV                                 0.00          0.05          0.01   \n",
       "ElasticNetCV                                0.04          0.07          0.03   \n",
       "KernelRidge_poly_CV                         0.04          0.01          0.02   \n",
       "KernelRidge_rbf_CV                          0.00          0.19          0.00   \n",
       "GaussianProcess_CV                          0.03          0.02          0.02   \n",
       "GradientBoostingRegressor_CV_hrs0           0.00          0.13          0.00   \n",
       "GradientBoostingRegressor_CV_hrs1           0.00          0.15          0.00   \n",
       "GradientBoostingRegressor_CV_hrs2           0.06          0.15          0.05   \n",
       "GradientBoostingRegressor_CV_rs             0.00          0.18          0.01   \n",
       "RandomForestRegressor_CV_hrs0               0.03          0.02          0.04   \n",
       "RandomForestRegressor_CV_rs                 0.02          0.06          0.01   \n",
       "ExtraTreesRegressor_CV_rs                   0.04          0.07          0.03   \n",
       "ExtraTreesRegressor_CV_hrs2                 0.05          0.04          0.03   \n",
       "KNeighborsRegressor                         0.00          0.02          0.00   \n",
       "\n",
       "                                                                 \\\n",
       "                                  MAE_test_std MAErel_train_std   \n",
       "LinearRegression                          0.43             0.00   \n",
       "RidgeCV                                   0.11             0.08   \n",
       "LassoCV                                   0.05             0.02   \n",
       "LarsCV                                    0.05             0.10   \n",
       "LassoLarsCV                               0.05             0.02   \n",
       "ElasticNetCV                              0.09             0.09   \n",
       "KernelRidge_poly_CV                       0.02             0.05   \n",
       "KernelRidge_rbf_CV                        0.15             0.00   \n",
       "GaussianProcess_CV                        0.01             0.07   \n",
       "GradientBoostingRegressor_CV_hrs0         0.09             0.00   \n",
       "GradientBoostingRegressor_CV_hrs1         0.08             0.00   \n",
       "GradientBoostingRegressor_CV_hrs2         0.08             0.13   \n",
       "GradientBoostingRegressor_CV_rs           0.11             0.02   \n",
       "RandomForestRegressor_CV_hrs0             0.01             0.10   \n",
       "RandomForestRegressor_CV_rs               0.04             0.04   \n",
       "ExtraTreesRegressor_CV_rs                 0.06             0.09   \n",
       "ExtraTreesRegressor_CV_hrs2               0.04             0.08   \n",
       "KNeighborsRegressor                       0.01             0.00   \n",
       "\n",
       "                                                   \n",
       "                                  MAErel_test_std  \n",
       "LinearRegression                             1.18  \n",
       "RidgeCV                                      0.31  \n",
       "LassoCV                                      0.13  \n",
       "LarsCV                                       0.14  \n",
       "LassoLarsCV                                  0.13  \n",
       "ElasticNetCV                                 0.23  \n",
       "KernelRidge_poly_CV                          0.06  \n",
       "KernelRidge_rbf_CV                           0.40  \n",
       "GaussianProcess_CV                           0.02  \n",
       "GradientBoostingRegressor_CV_hrs0            0.24  \n",
       "GradientBoostingRegressor_CV_hrs1            0.21  \n",
       "GradientBoostingRegressor_CV_hrs2            0.23  \n",
       "GradientBoostingRegressor_CV_rs              0.31  \n",
       "RandomForestRegressor_CV_hrs0                0.03  \n",
       "RandomForestRegressor_CV_rs                  0.11  \n",
       "ExtraTreesRegressor_CV_rs                    0.17  \n",
       "ExtraTreesRegressor_CV_hrs2                  0.11  \n",
       "KNeighborsRegressor                          0.04  \n",
       "\n",
       "[18 rows x 48 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Sunoj_DD_3_FP\n",
      "(368,)\n",
      "(368,)\n",
      "(368, 1024)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAF0CAYAAACqrWYXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvrElEQVR4nO3de3jU1Z3H8c+Yy5CwSUpAZjIlYNhNvQVQg0UDhSAQSgVUqqhoxUd2C3KRiAgi2gZWE4iK7BrFxVpAMeJ2V6xrdZdQMcCiS4ggEF3UNUJQxqiNkwAxkXD2Dx+nDuGSTC7jmXm/nuf31Dm/M5PvtyZnPp788huHMcYIAAAAgDXOCnUBAAAAAFqHEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAcBJvvPGGHA6H3njjjTPOzc7OVnZ2dofXBHyHEA8AAABYhhAPAAAAWIYQj4iwZcsWORwOPf/8883OPfPMM3I4HCorK2vRa9XW1mru3LlKS0tTbGysfvzjHys3N1dHjhwJmGeM0RNPPKGLLrpIcXFx6tatm6699lp99NFH7dITAES69lzb//d//1c///nPFR8frx49emjatGmqq6trNs8Yo8LCQvXp00ddunTRJZdcotdee+2kr1lRUaGcnBzFx8fr7LPP1owZM/SnP/2pxZfoAKfjMMaYUBcBdIZLLrlE8fHx2rp1a8D4T3/6U0nS9u3bz/gaR48e1eDBg3Xw4EHde++96t+/vyoqKvSb3/xGmZmZ2rhxoxwOhyTp17/+tVavXq077rhDo0aN0l/+8hctXrxYNTU1euedd+Ryudq/SQCIMO2xtn/22Wfq37+/YmJi9MADD8jlcum5557Tli1bdODAAW3atMl/vXteXp4WLVqkKVOm6Nprr1VVVZUWLVqkpqYmnXvuuf5wfujQIfXr109du3bV4sWL1bNnTz3//PPasmWLPv7444DXBIJigAixatUqI8ns3LnTP7Z9+3YjyaxZs6ZFr1FQUGDOOussU1ZWFjD+b//2b0aSefXVV40xxrz55ptGknnkkUcC5lVVVZm4uDgzb968tjUDADDGtM/aPn/+fONwOMyuXbsCxkeNGmUkmU2bNhljjKmpqTFdunQx11xzTcC8//7v/zaSzLBhw/xjd999t3E4HKaioiJg7ujRowNeEwgWl9MgYtx4443q2bOnHn/8cf/YY489prPPPlvXX399i17jlVdeUUZGhi666CIdO3bMf4wePTrg16OvvPKKHA6Hbr755oB5brdbAwYM4NeoANBO2mNt37Rpky688EINGDAgYHzSpEkBj9988019/fXXuummmwLGs7Ky1KdPn4Cx0tJSZWRk6IILLmhWL9AeCPGIGE6nU1OnTlVxcbG++uorff755/rXf/1X/f3f/72cTmeLXuOzzz7T7t27FRMTE3AkJCTIGKMvvvjCP88YI5fL1WzuW2+95Z8HAGib9ljbv/zyS7nd7mbjJ459+eWXJx0/1dyTXTbJpZRoL9GhLgDoTLfffruWLFmi3//+9/r666917NgxTZs2rcXP79Gjh+Li4vT73//+lOe/+1+Hw6EtW7ac9E2kpW8sAIAza+va3r17d3m93mbjJ4517979pOPfjZ1zzjkBcz/77LMzviYQLEI8IkpKSoquu+46PfHEE2psbNS4cePUu3fvFj9/7Nixys/PV/fu3ZWWlnbaeUuWLNEnn3yiiRMntkfpAIBTaOvaPnz4cBUWFuqdd94JuKSmuLg4YN5ll12mLl266LnnntMvf/lL//i2bdu0f//+gBA/bNgwPfzww3r33XcDLqlZt25dEB0CzXF3GkSc7du3a9CgQZKkjRs3asSIES1+7pEjR/Szn/1Mn3/+ue688071799fx48f14EDB7Rhwwbddddd/teeOnWq1q5dqxkzZmjo0KHq2rWrDh06pK1bt6pfv366/fbbO6Q/AIhEbVnbvV6v+vfvr9jY2IC702zevFlVVVUBd5K5//779cADD2jKlCm67rrrVFVVpby8vGZ3p/n000/Vv39//91pXC6XiouLtXnzZu3fv1+lpaUaOnRoe//fgAhCiEdESktLU1xcnN59991WP/fIkSNasmSJ/vCHP6iyslJxcXHq3bu3Ro4cqfnz5wdc77hq1Sr9y7/8i/bu3avjx4/L4/Fo8ODBuuOOO5SZmdmeLQFAxGvL2v7ee+9p9uzZ2rJli+Lj43XNNddo/PjxuuqqqwJCvDFGS5cu1RNPPKHPPvtM5513nh588EE9/PDDkhRw44KKigrl5uZq69at/tccOnSoJk+erHfeeUf9+/dvj7YRoQjxiDi7d+/WgAED9Pjjj2v69OmhLgcA0A5s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",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee      0.0,  86.1,  99.9,  17.1\n",
      "y_ddg    0.00,  1.88,  4.50,  0.73\n",
      "0\n",
      "LassoCV time: 5 sec\n",
      "GaussianProcess_CV time: 7 sec\n",
      "GradientBoostingRegressor_CV_rs time: 8 sec\n",
      "RandomForestRegressor_CV_rs time: 21 sec\n",
      "ExtraTreesRegressor_CV_rs time: 21 sec\n",
      "LassoCV time: 7 sec\n",
      "GaussianProcess_CV time: 5 sec\n",
      "GradientBoostingRegressor_CV_rs time: 8 sec\n",
      "RandomForestRegressor_CV_rs time: 22 sec\n",
      "ExtraTreesRegressor_CV_rs time: 18 sec\n",
      "1\n",
      "GaussianProcess_CV time: 7 sec\n",
      "GradientBoostingRegressor_CV_rs time: 9 sec\n",
      "RandomForestRegressor_CV_rs time: 21 sec\n",
      "ExtraTreesRegressor_CV_rs time: 23 sec\n",
      "GaussianProcess_CV time: 5 sec\n",
      "GradientBoostingRegressor_CV_rs time: 8 sec\n",
      "RandomForestRegressor_CV_rs time: 22 sec\n",
      "ExtraTreesRegressor_CV_rs time: 19 sec\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"8\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"5\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"8\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_train</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_train</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>MAE_train</th>\n",
       "      <th>MAE_test</th>\n",
       "      <th>MAErel_train</th>\n",
       "      <th>MAErel_test</th>\n",
       "      <th>R2_train</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>...</th>\n",
       "      <th>MAErel_train_std</th>\n",
       "      <th>MAErel_test_std</th>\n",
       "      <th>R2_train_std</th>\n",
       "      <th>R2_test_std</th>\n",
       "      <th>RMSE_train_std</th>\n",
       "      <th>RMSE_test_std</th>\n",
       "      <th>MAE_train_std</th>\n",
       "      <th>MAE_test_std</th>\n",
       "      <th>MAErel_train_std</th>\n",
       "      <th>MAErel_test_std</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LinearRegression</th>\n",
       "      <td>0.74</td>\n",
       "      <td>-2.631115e+25</td>\n",
       "      <td>8.79</td>\n",
       "      <td>6.953028e+13</td>\n",
       "      <td>4.02</td>\n",
       "      <td>2.367263e+13</td>\n",
       "      <td>0.24</td>\n",
       "      <td>1.384981e+12</td>\n",
       "      <td>0.10</td>\n",
       "      <td>-33.38</td>\n",
       "      <td>...</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.02</td>\n",
       "      <td>2.640279e+25</td>\n",
       "      <td>0.01</td>\n",
       "      <td>3.230753e+11</td>\n",
       "      <td>0.00</td>\n",
       "      <td>3.977034e+09</td>\n",
       "      <td>0.00</td>\n",
       "      <td>5.477380e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.65</td>\n",
       "      <td>2.400000e-01</td>\n",
       "      <td>10.13</td>\n",
       "      <td>1.429000e+01</td>\n",
       "      <td>5.80</td>\n",
       "      <td>8.970000e+00</td>\n",
       "      <td>0.34</td>\n",
       "      <td>5.200000e-01</td>\n",
       "      <td>0.41</td>\n",
       "      <td>-0.15</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.03</td>\n",
       "      <td>1.100000e-01</td>\n",
       "      <td>0.01</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.63</td>\n",
       "      <td>2.500000e-01</td>\n",
       "      <td>10.53</td>\n",
       "      <td>1.417000e+01</td>\n",
       "      <td>6.50</td>\n",
       "      <td>8.640000e+00</td>\n",
       "      <td>0.38</td>\n",
       "      <td>5.100000e-01</td>\n",
       "      <td>0.44</td>\n",
       "      <td>0.11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.05</td>\n",
       "      <td>1.200000e-01</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.26</td>\n",
       "      <td>2.300000e-01</td>\n",
       "      <td>14.81</td>\n",
       "      <td>1.447000e+01</td>\n",
       "      <td>10.40</td>\n",
       "      <td>1.013000e+01</td>\n",
       "      <td>0.61</td>\n",
       "      <td>5.900000e-01</td>\n",
       "      <td>-0.06</td>\n",
       "      <td>-0.18</td>\n",
       "      <td>...</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.19</td>\n",
       "      <td>1.500000e-01</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.08</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>0.11</td>\n",
       "      <td>1.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.61</td>\n",
       "      <td>2.400000e-01</td>\n",
       "      <td>10.68</td>\n",
       "      <td>1.426000e+01</td>\n",
       "      <td>6.65</td>\n",
       "      <td>8.670000e+00</td>\n",
       "      <td>0.39</td>\n",
       "      <td>5.100000e-01</td>\n",
       "      <td>0.41</td>\n",
       "      <td>0.10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.01</td>\n",
       "      <td>1.000000e-01</td>\n",
       "      <td>0.02</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.60</td>\n",
       "      <td>2.800000e-01</td>\n",
       "      <td>10.83</td>\n",
       "      <td>1.388000e+01</td>\n",
       "      <td>6.75</td>\n",
       "      <td>8.830000e+00</td>\n",
       "      <td>0.39</td>\n",
       "      <td>5.200000e-01</td>\n",
       "      <td>0.41</td>\n",
       "      <td>0.07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.06</td>\n",
       "      <td>1.200000e-01</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KernelRidge_poly_CV</th>\n",
       "      <td>0.64</td>\n",
       "      <td>2.700000e-01</td>\n",
       "      <td>10.35</td>\n",
       "      <td>1.402000e+01</td>\n",
       "      <td>6.06</td>\n",
       "      <td>8.950000e+00</td>\n",
       "      <td>0.35</td>\n",
       "      <td>5.200000e-01</td>\n",
       "      <td>0.47</td>\n",
       "      <td>0.06</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.08</td>\n",
       "      <td>1.100000e-01</td>\n",
       "      <td>0.05</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>0.04</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>0.06</td>\n",
       "      <td>2.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KernelRidge_rbf_CV</th>\n",
       "      <td>0.66</td>\n",
       "      <td>-1.900000e-01</td>\n",
       "      <td>10.05</td>\n",
       "      <td>1.783000e+01</td>\n",
       "      <td>6.27</td>\n",
       "      <td>1.181000e+01</td>\n",
       "      <td>0.37</td>\n",
       "      <td>6.900000e-01</td>\n",
       "      <td>0.18</td>\n",
       "      <td>-1.32</td>\n",
       "      <td>...</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.03</td>\n",
       "      <td>1.400000e-01</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.000000e-02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GaussianProcess_CV</th>\n",
       "      <td>0.66</td>\n",
       "      <td>2.300000e-01</td>\n",
       "      <td>9.98</td>\n",
       "      <td>1.431000e+01</td>\n",
       "      <td>5.72</td>\n",
       "      <td>8.850000e+00</td>\n",
       "      <td>0.33</td>\n",
       "      <td>5.200000e-01</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.03</td>\n",
       "      <td>1.500000e-01</td>\n",
       "      <td>0.02</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs0</th>\n",
       "      <td>0.63</td>\n",
       "      <td>2.600000e-01</td>\n",
       "      <td>10.47</td>\n",
       "      <td>1.383000e+01</td>\n",
       "      <td>6.67</td>\n",
       "      <td>8.160000e+00</td>\n",
       "      <td>0.39</td>\n",
       "      <td>4.800000e-01</td>\n",
       "      <td>0.41</td>\n",
       "      <td>0.14</td>\n",
       "      <td>...</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.11</td>\n",
       "      <td>2.300000e-01</td>\n",
       "      <td>0.08</td>\n",
       "      <td>6.000000e-02</td>\n",
       "      <td>0.06</td>\n",
       "      <td>4.000000e-02</td>\n",
       "      <td>0.08</td>\n",
       "      <td>5.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs1</th>\n",
       "      <td>0.82</td>\n",
       "      <td>-9.000000e-02</td>\n",
       "      <td>7.25</td>\n",
       "      <td>1.675000e+01</td>\n",
       "      <td>2.42</td>\n",
       "      <td>8.690000e+00</td>\n",
       "      <td>0.14</td>\n",
       "      <td>5.100000e-01</td>\n",
       "      <td>0.76</td>\n",
       "      <td>-0.30</td>\n",
       "      <td>...</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.12</td>\n",
       "      <td>0.01</td>\n",
       "      <td>1.800000e-01</td>\n",
       "      <td>0.01</td>\n",
       "      <td>3.000000e-02</td>\n",
       "      <td>0.01</td>\n",
       "      <td>5.000000e-02</td>\n",
       "      <td>0.02</td>\n",
       "      <td>6.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_hrs2</th>\n",
       "      <td>0.66</td>\n",
       "      <td>2.100000e-01</td>\n",
       "      <td>9.97</td>\n",
       "      <td>1.440000e+01</td>\n",
       "      <td>6.35</td>\n",
       "      <td>8.520000e+00</td>\n",
       "      <td>0.37</td>\n",
       "      <td>5.000000e-01</td>\n",
       "      <td>0.38</td>\n",
       "      <td>0.06</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.02</td>\n",
       "      <td>2.300000e-01</td>\n",
       "      <td>0.01</td>\n",
       "      <td>6.000000e-02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>4.000000e-02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>5.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GradientBoostingRegressor_CV_rs</th>\n",
       "      <td>0.64</td>\n",
       "      <td>1.400000e-01</td>\n",
       "      <td>10.26</td>\n",
       "      <td>1.501000e+01</td>\n",
       "      <td>6.28</td>\n",
       "      <td>8.530000e+00</td>\n",
       "      <td>0.37</td>\n",
       "      <td>5.000000e-01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>-0.26</td>\n",
       "      <td>...</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.03</td>\n",
       "      <td>2.100000e-01</td>\n",
       "      <td>0.03</td>\n",
       "      <td>5.000000e-02</td>\n",
       "      <td>0.03</td>\n",
       "      <td>4.000000e-02</td>\n",
       "      <td>0.04</td>\n",
       "      <td>5.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RandomForestRegressor_CV_hrs0</th>\n",
       "      <td>0.67</td>\n",
       "      <td>9.000000e-02</td>\n",
       "      <td>9.82</td>\n",
       "      <td>1.531000e+01</td>\n",
       "      <td>5.86</td>\n",
       "      <td>8.620000e+00</td>\n",
       "      <td>0.34</td>\n",
       "      <td>5.000000e-01</td>\n",
       "      <td>0.50</td>\n",
       "      <td>0.09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.38</td>\n",
       "      <td>6.000000e-02</td>\n",
       "      <td>0.20</td>\n",
       "      <td>8.000000e-02</td>\n",
       "      <td>0.16</td>\n",
       "      <td>7.000000e-02</td>\n",
       "      <td>0.22</td>\n",
       "      <td>9.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RandomForestRegressor_CV_rs</th>\n",
       "      <td>0.61</td>\n",
       "      <td>3.100000e-01</td>\n",
       "      <td>10.70</td>\n",
       "      <td>1.357000e+01</td>\n",
       "      <td>6.31</td>\n",
       "      <td>8.100000e+00</td>\n",
       "      <td>0.37</td>\n",
       "      <td>4.700000e-01</td>\n",
       "      <td>0.53</td>\n",
       "      <td>0.18</td>\n",
       "      <td>...</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.11</td>\n",
       "      <td>1.900000e-01</td>\n",
       "      <td>0.08</td>\n",
       "      <td>4.000000e-02</td>\n",
       "      <td>0.07</td>\n",
       "      <td>2.000000e-02</td>\n",
       "      <td>0.09</td>\n",
       "      <td>3.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExtraTreesRegressor_CV_rs</th>\n",
       "      <td>0.65</td>\n",
       "      <td>2.600000e-01</td>\n",
       "      <td>10.10</td>\n",
       "      <td>1.397000e+01</td>\n",
       "      <td>5.73</td>\n",
       "      <td>8.060000e+00</td>\n",
       "      <td>0.34</td>\n",
       "      <td>4.700000e-01</td>\n",
       "      <td>0.60</td>\n",
       "      <td>0.21</td>\n",
       "      <td>...</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.03</td>\n",
       "      <td>2.200000e-01</td>\n",
       "      <td>0.01</td>\n",
       "      <td>5.000000e-02</td>\n",
       "      <td>0.01</td>\n",
       "      <td>3.000000e-02</td>\n",
       "      <td>0.01</td>\n",
       "      <td>4.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExtraTreesRegressor_CV_hrs2</th>\n",
       "      <td>0.44</td>\n",
       "      <td>-5.000000e-02</td>\n",
       "      <td>12.13</td>\n",
       "      <td>1.679000e+01</td>\n",
       "      <td>7.28</td>\n",
       "      <td>9.800000e+00</td>\n",
       "      <td>0.43</td>\n",
       "      <td>5.700000e-01</td>\n",
       "      <td>0.34</td>\n",
       "      <td>-0.04</td>\n",
       "      <td>...</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.17</td>\n",
       "      <td>0.03</td>\n",
       "      <td>2.400000e-01</td>\n",
       "      <td>0.02</td>\n",
       "      <td>5.000000e-02</td>\n",
       "      <td>0.01</td>\n",
       "      <td>3.000000e-02</td>\n",
       "      <td>0.01</td>\n",
       "      <td>4.000000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.50</td>\n",
       "      <td>-1.100000e-01</td>\n",
       "      <td>11.95</td>\n",
       "      <td>1.695000e+01</td>\n",
       "      <td>7.26</td>\n",
       "      <td>9.620000e+00</td>\n",
       "      <td>0.42</td>\n",
       "      <td>5.600000e-01</td>\n",
       "      <td>0.40</td>\n",
       "      <td>0.01</td>\n",
       "      <td>...</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.14</td>\n",
       "      <td>3.000000e-01</td>\n",
       "      <td>0.06</td>\n",
       "      <td>6.000000e-02</td>\n",
       "      <td>0.05</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>0.07</td>\n",
       "      <td>1.000000e-02</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>18 rows × 48 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                        ee                           \\\n",
       "                                  R2_train       R2_test RMSE_train   \n",
       "LinearRegression                      0.74 -2.631115e+25       8.79   \n",
       "RidgeCV                               0.65  2.400000e-01      10.13   \n",
       "LassoCV                               0.63  2.500000e-01      10.53   \n",
       "LarsCV                                0.26  2.300000e-01      14.81   \n",
       "LassoLarsCV                           0.61  2.400000e-01      10.68   \n",
       "ElasticNetCV                          0.60  2.800000e-01      10.83   \n",
       "KernelRidge_poly_CV                   0.64  2.700000e-01      10.35   \n",
       "KernelRidge_rbf_CV                    0.66 -1.900000e-01      10.05   \n",
       "GaussianProcess_CV                    0.66  2.300000e-01       9.98   \n",
       "GradientBoostingRegressor_CV_hrs0     0.63  2.600000e-01      10.47   \n",
       "GradientBoostingRegressor_CV_hrs1     0.82 -9.000000e-02       7.25   \n",
       "GradientBoostingRegressor_CV_hrs2     0.66  2.100000e-01       9.97   \n",
       "GradientBoostingRegressor_CV_rs       0.64  1.400000e-01      10.26   \n",
       "RandomForestRegressor_CV_hrs0         0.67  9.000000e-02       9.82   \n",
       "RandomForestRegressor_CV_rs           0.61  3.100000e-01      10.70   \n",
       "ExtraTreesRegressor_CV_rs             0.65  2.600000e-01      10.10   \n",
       "ExtraTreesRegressor_CV_hrs2           0.44 -5.000000e-02      12.13   \n",
       "KNeighborsRegressor                   0.50 -1.100000e-01      11.95   \n",
       "\n",
       "                                                                         \\\n",
       "                                      RMSE_test MAE_train      MAE_test   \n",
       "LinearRegression                   6.953028e+13      4.02  2.367263e+13   \n",
       "RidgeCV                            1.429000e+01      5.80  8.970000e+00   \n",
       "LassoCV                            1.417000e+01      6.50  8.640000e+00   \n",
       "LarsCV                             1.447000e+01     10.40  1.013000e+01   \n",
       "LassoLarsCV                        1.426000e+01      6.65  8.670000e+00   \n",
       "ElasticNetCV                       1.388000e+01      6.75  8.830000e+00   \n",
       "KernelRidge_poly_CV                1.402000e+01      6.06  8.950000e+00   \n",
       "KernelRidge_rbf_CV                 1.783000e+01      6.27  1.181000e+01   \n",
       "GaussianProcess_CV                 1.431000e+01      5.72  8.850000e+00   \n",
       "GradientBoostingRegressor_CV_hrs0  1.383000e+01      6.67  8.160000e+00   \n",
       "GradientBoostingRegressor_CV_hrs1  1.675000e+01      2.42  8.690000e+00   \n",
       "GradientBoostingRegressor_CV_hrs2  1.440000e+01      6.35  8.520000e+00   \n",
       "GradientBoostingRegressor_CV_rs    1.501000e+01      6.28  8.530000e+00   \n",
       "RandomForestRegressor_CV_hrs0      1.531000e+01      5.86  8.620000e+00   \n",
       "RandomForestRegressor_CV_rs        1.357000e+01      6.31  8.100000e+00   \n",
       "ExtraTreesRegressor_CV_rs          1.397000e+01      5.73  8.060000e+00   \n",
       "ExtraTreesRegressor_CV_hrs2        1.679000e+01      7.28  9.800000e+00   \n",
       "KNeighborsRegressor                1.695000e+01      7.26  9.620000e+00   \n",
       "\n",
       "                                                               ee2ddg          \\\n",
       "                                  MAErel_train   MAErel_test R2_train R2_test   \n",
       "LinearRegression                          0.24  1.384981e+12     0.10  -33.38   \n",
       "RidgeCV                                   0.34  5.200000e-01     0.41   -0.15   \n",
       "LassoCV                                   0.38  5.100000e-01     0.44    0.11   \n",
       "LarsCV                                    0.61  5.900000e-01    -0.06   -0.18   \n",
       "LassoLarsCV                               0.39  5.100000e-01     0.41    0.10   \n",
       "ElasticNetCV                              0.39  5.200000e-01     0.41    0.07   \n",
       "KernelRidge_poly_CV                       0.35  5.200000e-01     0.47    0.06   \n",
       "KernelRidge_rbf_CV                        0.37  6.900000e-01     0.18   -1.32   \n",
       "GaussianProcess_CV                        0.33  5.200000e-01     0.52    0.07   \n",
       "GradientBoostingRegressor_CV_hrs0         0.39  4.800000e-01     0.41    0.14   \n",
       "GradientBoostingRegressor_CV_hrs1         0.14  5.100000e-01     0.76   -0.30   \n",
       "GradientBoostingRegressor_CV_hrs2         0.37  5.000000e-01     0.38    0.06   \n",
       "GradientBoostingRegressor_CV_rs           0.37  5.000000e-01     0.36   -0.26   \n",
       "RandomForestRegressor_CV_hrs0             0.34  5.000000e-01     0.50    0.09   \n",
       "RandomForestRegressor_CV_rs               0.37  4.700000e-01     0.53    0.18   \n",
       "ExtraTreesRegressor_CV_rs                 0.34  4.700000e-01     0.60    0.21   \n",
       "ExtraTreesRegressor_CV_hrs2               0.43  5.700000e-01     0.34   -0.04   \n",
       "KNeighborsRegressor                       0.42  5.600000e-01     0.40    0.01   \n",
       "\n",
       "                                   ...                                   \\\n",
       "                                   ... MAErel_train_std MAErel_test_std   \n",
       "LinearRegression                   ...             0.02            0.03   \n",
       "RidgeCV                            ...             0.00            0.03   \n",
       "LassoCV                            ...             0.04            0.03   \n",
       "LarsCV                             ...             0.06            0.00   \n",
       "LassoLarsCV                        ...             0.08            0.01   \n",
       "ElasticNetCV                       ...             0.04            0.03   \n",
       "KernelRidge_poly_CV                ...             0.00            0.04   \n",
       "KernelRidge_rbf_CV                 ...             0.03            0.03   \n",
       "GaussianProcess_CV                 ...             0.03            0.03   \n",
       "GradientBoostingRegressor_CV_hrs0  ...             0.09            0.05   \n",
       "GradientBoostingRegressor_CV_hrs1  ...             0.05            0.12   \n",
       "GradientBoostingRegressor_CV_hrs2  ...             0.01            0.02   \n",
       "GradientBoostingRegressor_CV_rs    ...             0.05            0.02   \n",
       "RandomForestRegressor_CV_hrs0      ...             0.06            0.01   \n",
       "RandomForestRegressor_CV_rs        ...             0.06            0.02   \n",
       "ExtraTreesRegressor_CV_rs          ...             0.06            0.04   \n",
       "ExtraTreesRegressor_CV_hrs2        ...             0.39            0.17   \n",
       "KNeighborsRegressor                ...             0.16            0.07   \n",
       "\n",
       "                                           ddg                               \\\n",
       "                                  R2_train_std   R2_test_std RMSE_train_std   \n",
       "LinearRegression                          0.02  2.640279e+25           0.01   \n",
       "RidgeCV                                   0.03  1.100000e-01           0.01   \n",
       "LassoCV                                   0.05  1.200000e-01           0.02   \n",
       "LarsCV                                    0.19  1.500000e-01           0.09   \n",
       "LassoLarsCV                               0.01  1.000000e-01           0.02   \n",
       "ElasticNetCV                              0.06  1.200000e-01           0.03   \n",
       "KernelRidge_poly_CV                       0.08  1.100000e-01           0.05   \n",
       "KernelRidge_rbf_CV                        0.03  1.400000e-01           0.01   \n",
       "GaussianProcess_CV                        0.03  1.500000e-01           0.02   \n",
       "GradientBoostingRegressor_CV_hrs0         0.11  2.300000e-01           0.08   \n",
       "GradientBoostingRegressor_CV_hrs1         0.01  1.800000e-01           0.01   \n",
       "GradientBoostingRegressor_CV_hrs2         0.02  2.300000e-01           0.01   \n",
       "GradientBoostingRegressor_CV_rs           0.03  2.100000e-01           0.03   \n",
       "RandomForestRegressor_CV_hrs0             0.38  6.000000e-02           0.20   \n",
       "RandomForestRegressor_CV_rs               0.11  1.900000e-01           0.08   \n",
       "ExtraTreesRegressor_CV_rs                 0.03  2.200000e-01           0.01   \n",
       "ExtraTreesRegressor_CV_hrs2               0.03  2.400000e-01           0.02   \n",
       "KNeighborsRegressor                       0.14  3.000000e-01           0.06   \n",
       "\n",
       "                                                                             \\\n",
       "                                  RMSE_test_std MAE_train_std  MAE_test_std   \n",
       "LinearRegression                   3.230753e+11          0.00  3.977034e+09   \n",
       "RidgeCV                            1.000000e-02          0.00  1.000000e-02   \n",
       "LassoCV                            0.000000e+00          0.02  0.000000e+00   \n",
       "LarsCV                             0.000000e+00          0.08  1.000000e-02   \n",
       "LassoLarsCV                        1.000000e-02          0.02  0.000000e+00   \n",
       "ElasticNetCV                       0.000000e+00          0.02  0.000000e+00   \n",
       "KernelRidge_poly_CV                1.000000e-02          0.04  1.000000e-02   \n",
       "KernelRidge_rbf_CV                 0.000000e+00          0.00  2.000000e-02   \n",
       "GaussianProcess_CV                 1.000000e-02          0.01  0.000000e+00   \n",
       "GradientBoostingRegressor_CV_hrs0  6.000000e-02          0.06  4.000000e-02   \n",
       "GradientBoostingRegressor_CV_hrs1  3.000000e-02          0.01  5.000000e-02   \n",
       "GradientBoostingRegressor_CV_hrs2  6.000000e-02          0.00  4.000000e-02   \n",
       "GradientBoostingRegressor_CV_rs    5.000000e-02          0.03  4.000000e-02   \n",
       "RandomForestRegressor_CV_hrs0      8.000000e-02          0.16  7.000000e-02   \n",
       "RandomForestRegressor_CV_rs        4.000000e-02          0.07  2.000000e-02   \n",
       "ExtraTreesRegressor_CV_rs          5.000000e-02          0.01  3.000000e-02   \n",
       "ExtraTreesRegressor_CV_hrs2        5.000000e-02          0.01  3.000000e-02   \n",
       "KNeighborsRegressor                6.000000e-02          0.05  1.000000e-02   \n",
       "\n",
       "                                                                    \n",
       "                                  MAErel_train_std MAErel_test_std  \n",
       "LinearRegression                              0.00    5.477380e+09  \n",
       "RidgeCV                                       0.00    1.000000e-02  \n",
       "LassoCV                                       0.02    0.000000e+00  \n",
       "LarsCV                                        0.11    1.000000e-02  \n",
       "LassoLarsCV                                   0.03    0.000000e+00  \n",
       "ElasticNetCV                                  0.03    0.000000e+00  \n",
       "KernelRidge_poly_CV                           0.06    2.000000e-02  \n",
       "KernelRidge_rbf_CV                            0.00    2.000000e-02  \n",
       "GaussianProcess_CV                            0.01    0.000000e+00  \n",
       "GradientBoostingRegressor_CV_hrs0             0.08    5.000000e-02  \n",
       "GradientBoostingRegressor_CV_hrs1             0.02    6.000000e-02  \n",
       "GradientBoostingRegressor_CV_hrs2             0.00    5.000000e-02  \n",
       "GradientBoostingRegressor_CV_rs               0.04    5.000000e-02  \n",
       "RandomForestRegressor_CV_hrs0                 0.22    9.000000e-02  \n",
       "RandomForestRegressor_CV_rs                   0.09    3.000000e-02  \n",
       "ExtraTreesRegressor_CV_rs                     0.01    4.000000e-02  \n",
       "ExtraTreesRegressor_CV_hrs2                   0.01    4.000000e-02  \n",
       "KNeighborsRegressor                           0.07    1.000000e-02  \n",
       "\n",
       "[18 rows x 48 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for dataset in settings.keys():  \n",
    "    if dataset in datasets.keys():\n",
    "        continue\n",
    "\n",
    "    print(\"\\n\",\"-\"*100,\"\\n\",\"-\"*100,\"\\n\",dataset)\n",
    "    \n",
    "    filefolder = settings[dataset][\"filefolder\"]\n",
    "    filename = settings[dataset][\"filename\"]\n",
    "    y_column = settings[dataset][\"y_column\"]\n",
    "    origdomain = settings[dataset][\"origdomain\"]    \n",
    "    features = settings[dataset][\"features\"]\n",
    "    \n",
    "#     if filename.split(\".\")[-1] == \"xlsx\":\n",
    "#         sheet_name = settings[dataset][\"sheet_name\"]\n",
    "#         df = pd.read_excel(filefolder+filename,index_col=0,sheet_name=sheet_name)\n",
    "    if filename.split(\".\")[-1] == \"csv\":\n",
    "        df = pd.read_csv(filefolder+filename,sep=sep)\n",
    "\n",
    "    if type(settings[dataset][\"T\"]) == int:\n",
    "        T_vect = pd.Series(np.ones(df.shape[0]) * settings[dataset][\"T\"],index=df.index,dtype=float)\n",
    "        \n",
    "    elif type(settings[dataset][\"T\"]) == str:\n",
    "        T_vect = df[settings[dataset][\"T\"]]\n",
    "        \n",
    "    if origdomain == \"ddg\":\n",
    "        y_ddg = df[y_column]\n",
    "        y_ee = g2ee(y_ddg,T_vect)\n",
    "\n",
    "    elif origdomain == \"ee\":\n",
    "        y_ee = df[y_column]\n",
    "        y_ddg = ee2g(y_ee,T_vect)\n",
    "\n",
    "    cols = df.columns\n",
    "    indices = df.index\n",
    "    \n",
    "    if features == \"descriptors\":\n",
    "        usecolumns = settings[dataset][\"usecolumns\"]\n",
    "        X = np.asarray(df[cols[usecolumns[0]:usecolumns[1]]])\n",
    "    elif features == \"fingerprint\":\n",
    "        smi_column = settings[dataset][\"smi_column\"]\n",
    "        X = np.asarray([smi_fp(sm,fp_size) for sm in df[smi_column]])\n",
    "\n",
    "    if verbose_min:\n",
    "        print(y_ee.shape)\n",
    "        print(y_ddg.shape)\n",
    "        print(X.shape)\n",
    "\n",
    "        plt.figure(figsize=(9,4))\n",
    "        plt.subplot(1,2,1)\n",
    "        plt.hist(y_ee, color=\"black\")\n",
    "        plt.title(\"y_ee\")\n",
    "\n",
    "        plt.subplot(1,2,2)\n",
    "        plt.hist(y_ddg, color=\"black\")\n",
    "        plt.title(\"y_ddg\")\n",
    "        plt.show()\n",
    "\n",
    "        print(f\"{'min':>13},{'mean':>6},{'max':>6},{'stdev':>6}\")\n",
    "        print(f\"{'y_ee':<6} {y_ee.min():>6.1f},{y_ee.mean():>6.1f},{y_ee.max():>6.1f},{y_ee.std():>6.1f}\")\n",
    "        print(f\"{'y_ddg':<6} {y_ddg.min():>6.2f},{y_ddg.mean():>6.2f},{y_ddg.max():>6.2f},{y_ddg.std():>6.2f}\")\n",
    "        # print(f\"y_ddg,y_ddg.min().round(2),y_ddg.mean().round(2),y_ddg.max().round(2),y_ddg.std().round(2)\")\n",
    "\n",
    "\n",
    "    ys = {\"ee\":y_ee,\n",
    "          \"ddg\":y_ddg}\n",
    "    domains = [\"ee\",\"ee2ddg\",\"ddg\"]\n",
    "    scores = [\"R2_train\",\"R2_test\",\"RMSE_train\",\"RMSE_test\",\"MAE_train\",\"MAE_test\",\"MAErel_train\",\"MAErel_test\"]\n",
    "    \n",
    "    all_model_results = {}\n",
    "    for i in itertools.product(models.keys(),itertools.product(domains,scores)):\n",
    "        all_model_results[i] = pd.Series(index=range(num_trials), dtype=float)\n",
    "    \n",
    "    for random_state in range(num_trials):\n",
    "        if verbose_min: print(random_state)\n",
    "        train_idx,test_idx = train_test_split(range(len(indices)),test_size = test_size, random_state = random_state)\n",
    "\n",
    "        model_results = pd.DataFrame(\n",
    "            columns = pd.MultiIndex.from_product((domains,scores)),\n",
    "            dtype=float)\n",
    "        \n",
    "        for domain in [\"ee\",\"ddg\"]:\n",
    "            y = ys[domain]\n",
    "\n",
    "#             X_train, y_train, T_train = X.loc[train_idx], y.loc[train_idx], T_vect[train_idx]\n",
    "#             X_test, y_test, T_test = X.loc[test_idx], y.loc[test_idx], T_vect[test_idx]\n",
    "\n",
    "            X_train, y_train, T_train = X[train_idx], y[train_idx], T_vect[train_idx]\n",
    "            X_test, y_test, T_test = X[test_idx], y[test_idx], T_vect[test_idx]\n",
    "\n",
    "            # perform feature scaling\n",
    "            scaler = StandardScaler() \n",
    "            # scaler = RobustScaler()\n",
    "            # scaler = RobustScaler(quantile_range=(5.0, 95.0)) \n",
    "            # scaler = MinMaxScaler()\n",
    "\n",
    "            scaler.fit(X_train)\n",
    "            X_train = scaler.transform(X_train)\n",
    "            X_test  = scaler.transform(X_test)\n",
    "            \n",
    "            if verbose:\n",
    "                print(\"-\"*50,\"\\n\",domain,\"\\n\")\n",
    "                print(f\"Range of target values: {y.min():.2f} to {y.max():.2f} (Delta = {y.max()-y.min():.2f})\")\n",
    "                print(f\"Target standard deviation: {y.std():.2f}\\n\")\n",
    "\n",
    "                # visualize target distribution across the sets\n",
    "                plt.figure(figsize=(5,5))\n",
    "                _, bins, _ = plt.hist(y_train,alpha=0.5,label=\"training\",color=\"black\")\n",
    "                plt.hist(y_test,alpha=0.5,label=\"test\",color=\"blue\", bins=bins)\n",
    "                plt.xlabel(\"Selectivity\")\n",
    "                plt.ylabel(\"number of samples, N\")\n",
    "                plt.legend()\n",
    "                plt.show()\n",
    "\n",
    "                print(f\"size of \\ntraining set: {X_train.shape[0]:6.0f} = {X_train.shape[0]/X.shape[0]*100:.0f}%\\ntest set: {X_test.shape[0]:10.0f} = {X_test.shape[0]/X.shape[0]*100:.0f}%\\n\")\n",
    "                print(f\"mean and variance of \\ntraining set: {y_train.mean():6.2f}   {y_train.var():.2f}\\ntest set: {y_test.mean():10.2f}   {y_test.var():.2f}\\n\")\n",
    "\n",
    "            # fit each model\n",
    "            for modelname,model in models.items():\n",
    "                try:\n",
    "                    results = run_model(X_train,X_test,y_train,y_test,T_train,T_test,modelname,model,domain=domain,verbose=verbose)\n",
    "                    model_results.loc[modelname,results.keys()] = results\n",
    "                    for sc in results.keys():\n",
    "                        all_model_results[(modelname,sc)][random_state] = results[sc]\n",
    "                except ValueError:\n",
    "                    print(f\"{modelname} failed\")\n",
    "                    pass\n",
    "\n",
    "#         datasets[dataset] = model_results\n",
    "#         model_results.to_csv(dataset+\"_model_results.csv\",sep=\";\")\n",
    "#         model_results.round(2)\n",
    "\n",
    "    with open(f\"{dataset}_{date.today().isoformat()}_all_model_results\",\"wb\") as f:\n",
    "        pickle.dump(all_model_results,f)\n",
    "\n",
    "    fin_model_results = pd.DataFrame(\n",
    "        columns = pd.MultiIndex.from_product((domains,scores)),\n",
    "        index = model_results.index,\n",
    "        dtype=float)\n",
    "    \n",
    "    for (modelname,(domain,score)),result_series in all_model_results.items():\n",
    "        #all_model_results[i]# = pd.Series(index=range(num_trials))\n",
    "        \n",
    "        fin_model_results.loc[modelname,(domain,score)] = result_series.mean()\n",
    "        fin_model_results.loc[modelname,(domain,score+\"_std\")] = result_series.std()\n",
    "        \n",
    "    datasets[dataset] = fin_model_results\n",
    "    fin_model_results.to_csv(f\"{dataset}_{date.today().isoformat()}_fin_model_results.csv\",sep=\";\")\n",
    "    if verbose_min:\n",
    "        display(fin_model_results.round(2))\n",
    "    \n",
    "with open(f\"datasets_{date.today().isoformat()}.p\",\"wb\") as f:\n",
    "    pickle.dump(datasets,f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "f8d99f6a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T17:33:39.276289Z",
     "start_time": "2023-04-17T17:33:39.242287Z"
    }
   },
   "outputs": [],
   "source": [
    "# optionally re-read results from individual csvs\n",
    "for dataset in settings.keys():\n",
    "    fin_model_results = pd.read_csv(dataset+\"fin_model_results.csv\",sep=\";\",index_col=0,header=[0,1])\n",
    "    datasets[dataset] = fin_model_results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "852f8884",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-14T12:43:22.572009Z",
     "start_time": "2023-04-14T12:43:22.556010Z"
    }
   },
   "outputs": [],
   "source": [
    "# optionally restore results\n",
    "with open(f\"datasets_2023-04-17.p\",\"rb\") as f:\n",
    "    datasets = pickle.load(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "e1cfcf3a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T17:37:21.221734Z",
     "start_time": "2023-04-17T17:37:21.003735Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sunoj_DD_2_FP\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.89</td>\n",
       "      <td>9.01</td>\n",
       "      <td>0.50</td>\n",
       "      <td>0.44</td>\n",
       "      <td>0.84</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.89</td>\n",
       "      <td>9.01</td>\n",
       "      <td>0.43</td>\n",
       "      <td>0.47</td>\n",
       "      <td>0.84</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.89</td>\n",
       "      <td>9.04</td>\n",
       "      <td>0.51</td>\n",
       "      <td>0.44</td>\n",
       "      <td>0.84</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LinearRegression</th>\n",
       "      <td>0.90</td>\n",
       "      <td>8.93</td>\n",
       "      <td>0.33</td>\n",
       "      <td>0.49</td>\n",
       "      <td>0.84</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.88</td>\n",
       "      <td>9.61</td>\n",
       "      <td>0.58</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.84</td>\n",
       "      <td>0.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.81</td>\n",
       "      <td>12.20</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.32</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.11</td>\n",
       "      <td>26.17</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.62</td>\n",
       "      <td>0.66</td>\n",
       "      <td>0.37</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "LassoCV                0.89      9.01    0.50      0.44    0.84      0.25\n",
       "RidgeCV                0.89      9.01    0.43      0.47    0.84      0.25\n",
       "ElasticNetCV           0.89      9.04    0.51      0.44    0.84      0.25\n",
       "LinearRegression       0.90      8.93    0.33      0.49    0.84      0.25\n",
       "LassoLarsCV            0.88      9.61    0.58      0.39    0.84      0.26\n",
       "KNeighborsRegressor    0.81     12.20    0.75      0.32    0.75      0.32\n",
       "LarsCV                 0.11     26.17    0.06      0.62    0.66      0.37"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sunoj_DD_3_FP\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.24</td>\n",
       "      <td>14.26</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.65</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.25</td>\n",
       "      <td>14.17</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.65</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.28</td>\n",
       "      <td>13.88</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.66</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.24</td>\n",
       "      <td>14.29</td>\n",
       "      <td>-0.15</td>\n",
       "      <td>0.73</td>\n",
       "      <td>0.31</td>\n",
       "      <td>0.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>-0.11</td>\n",
       "      <td>16.95</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.17</td>\n",
       "      <td>0.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.23</td>\n",
       "      <td>14.47</td>\n",
       "      <td>-0.18</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.64</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "LassoLarsCV            0.24     14.26    0.10      0.65    0.37      0.55\n",
       "LassoCV                0.25     14.17    0.11      0.65    0.35      0.55\n",
       "ElasticNetCV           0.28     13.88    0.07      0.66    0.34      0.56\n",
       "RidgeCV                0.24     14.29   -0.15      0.73    0.31      0.57\n",
       "KNeighborsRegressor   -0.11     16.95    0.01      0.69    0.17      0.62\n",
       "LarsCV                 0.23     14.47   -0.18      0.75    0.13      0.64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Denmark_OPRD_FP\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.67</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.68</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.66</td>\n",
       "      <td>12.01</td>\n",
       "      <td>0.68</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.66</td>\n",
       "      <td>0.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.66</td>\n",
       "      <td>11.98</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.65</td>\n",
       "      <td>0.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.65</td>\n",
       "      <td>12.25</td>\n",
       "      <td>0.65</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.64</td>\n",
       "      <td>0.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.32</td>\n",
       "      <td>16.99</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.25</td>\n",
       "      <td>0.33</td>\n",
       "      <td>0.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.39</td>\n",
       "      <td>16.32</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.25</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "RidgeCV                0.67     11.93    0.68      0.18    0.67      0.18\n",
       "LassoCV                0.66     12.01    0.68      0.18    0.66      0.18\n",
       "ElasticNetCV           0.66     11.98    0.67      0.18    0.65      0.18\n",
       "LassoLarsCV            0.65     12.25    0.65      0.18    0.64      0.19\n",
       "KNeighborsRegressor    0.32     16.99    0.36      0.25    0.33      0.25\n",
       "LarsCV                 0.39     16.32    0.36      0.25     NaN       NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Toste_Desc\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.58</td>\n",
       "      <td>13.51</td>\n",
       "      <td>0.62</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.53</td>\n",
       "      <td>0.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.59</td>\n",
       "      <td>13.98</td>\n",
       "      <td>0.51</td>\n",
       "      <td>0.27</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.58</td>\n",
       "      <td>14.03</td>\n",
       "      <td>0.51</td>\n",
       "      <td>0.27</td>\n",
       "      <td>0.51</td>\n",
       "      <td>0.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.38</td>\n",
       "      <td>16.72</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.31</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.56</td>\n",
       "      <td>14.61</td>\n",
       "      <td>0.46</td>\n",
       "      <td>0.29</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.62</td>\n",
       "      <td>13.65</td>\n",
       "      <td>0.55</td>\n",
       "      <td>0.26</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LinearRegression</th>\n",
       "      <td>-206.22</td>\n",
       "      <td>194.11</td>\n",
       "      <td>-231.61</td>\n",
       "      <td>4.96</td>\n",
       "      <td>-121.03</td>\n",
       "      <td>3.40</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "KNeighborsRegressor    0.58     13.51    0.62      0.24    0.53      0.26\n",
       "LassoLarsCV            0.59     13.98    0.51      0.27    0.52      0.27\n",
       "LassoCV                0.58     14.03    0.51      0.27    0.51      0.27\n",
       "LarsCV                 0.38     16.72    0.35      0.31    0.37      0.30\n",
       "RidgeCV                0.56     14.61    0.46      0.29    0.39      0.31\n",
       "ElasticNetCV           0.62     13.65    0.55      0.26    0.34      0.32\n",
       "LinearRegression    -206.22    194.11 -231.61      4.96 -121.03      3.40"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Biscoe_Desc\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LinearRegression</th>\n",
       "      <td>0.36</td>\n",
       "      <td>24.95</td>\n",
       "      <td>-3.87</td>\n",
       "      <td>1.52</td>\n",
       "      <td>0.74</td>\n",
       "      <td>0.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.08</td>\n",
       "      <td>26.94</td>\n",
       "      <td>-10.27</td>\n",
       "      <td>2.17</td>\n",
       "      <td>0.68</td>\n",
       "      <td>0.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.06</td>\n",
       "      <td>27.30</td>\n",
       "      <td>-10.36</td>\n",
       "      <td>2.19</td>\n",
       "      <td>0.64</td>\n",
       "      <td>0.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.23</td>\n",
       "      <td>31.29</td>\n",
       "      <td>0.49</td>\n",
       "      <td>0.58</td>\n",
       "      <td>0.49</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.01</td>\n",
       "      <td>27.86</td>\n",
       "      <td>-14.90</td>\n",
       "      <td>2.56</td>\n",
       "      <td>0.53</td>\n",
       "      <td>0.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.02</td>\n",
       "      <td>27.60</td>\n",
       "      <td>-14.92</td>\n",
       "      <td>2.58</td>\n",
       "      <td>0.44</td>\n",
       "      <td>0.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.36</td>\n",
       "      <td>28.09</td>\n",
       "      <td>0.56</td>\n",
       "      <td>0.60</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.80</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "LinearRegression       0.36     24.95   -3.87      1.52    0.74      0.46\n",
       "RidgeCV                0.08     26.94  -10.27      2.17    0.68      0.51\n",
       "ElasticNetCV           0.06     27.30  -10.36      2.19    0.64      0.55\n",
       "KNeighborsRegressor    0.23     31.29    0.49      0.58    0.49      0.58\n",
       "LassoCV                0.01     27.86  -14.90      2.56    0.53      0.62\n",
       "LassoLarsCV            0.02     27.60  -14.92      2.58    0.44      0.67\n",
       "LarsCV                 0.36     28.09    0.56      0.60    0.21      0.80"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Doyle_Desc\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.67</td>\n",
       "      <td>7.22</td>\n",
       "      <td>0.54</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.54</td>\n",
       "      <td>0.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.50</td>\n",
       "      <td>8.95</td>\n",
       "      <td>0.41</td>\n",
       "      <td>0.27</td>\n",
       "      <td>0.53</td>\n",
       "      <td>0.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>-0.59</td>\n",
       "      <td>14.38</td>\n",
       "      <td>-15.74</td>\n",
       "      <td>1.11</td>\n",
       "      <td>0.53</td>\n",
       "      <td>0.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>-0.59</td>\n",
       "      <td>14.36</td>\n",
       "      <td>-15.74</td>\n",
       "      <td>1.11</td>\n",
       "      <td>0.53</td>\n",
       "      <td>0.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>-0.70</td>\n",
       "      <td>14.95</td>\n",
       "      <td>-15.94</td>\n",
       "      <td>1.15</td>\n",
       "      <td>-0.11</td>\n",
       "      <td>0.37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>-0.51</td>\n",
       "      <td>14.29</td>\n",
       "      <td>-15.95</td>\n",
       "      <td>1.16</td>\n",
       "      <td>-0.35</td>\n",
       "      <td>0.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LinearRegression</th>\n",
       "      <td>-23.44</td>\n",
       "      <td>56.96</td>\n",
       "      <td>-44.73</td>\n",
       "      <td>2.41</td>\n",
       "      <td>-20.08</td>\n",
       "      <td>1.46</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "KNeighborsRegressor    0.67      7.22    0.54      0.24    0.54      0.24\n",
       "LarsCV                 0.50      8.95    0.41      0.27    0.53      0.24\n",
       "LassoCV               -0.59     14.38  -15.74      1.11    0.53      0.24\n",
       "LassoLarsCV           -0.59     14.36  -15.74      1.11    0.53      0.24\n",
       "ElasticNetCV          -0.70     14.95  -15.94      1.15   -0.11      0.37\n",
       "RidgeCV               -0.51     14.29  -15.95      1.16   -0.35      0.40\n",
       "LinearRegression     -23.44     56.96  -44.73      2.41  -20.08      1.46"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sunoj_Desc\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>-0.02</td>\n",
       "      <td>12.43</td>\n",
       "      <td>-0.18</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.11</td>\n",
       "      <td>0.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.05</td>\n",
       "      <td>12.03</td>\n",
       "      <td>-0.24</td>\n",
       "      <td>0.71</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.05</td>\n",
       "      <td>12.03</td>\n",
       "      <td>-0.24</td>\n",
       "      <td>0.71</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.06</td>\n",
       "      <td>12.02</td>\n",
       "      <td>-0.24</td>\n",
       "      <td>0.71</td>\n",
       "      <td>0.08</td>\n",
       "      <td>0.61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.07</td>\n",
       "      <td>11.93</td>\n",
       "      <td>-0.23</td>\n",
       "      <td>0.70</td>\n",
       "      <td>0.06</td>\n",
       "      <td>0.62</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "KNeighborsRegressor   -0.02     12.43   -0.18      0.69    0.11      0.59\n",
       "LassoLarsCV            0.05     12.03   -0.24      0.71    0.08      0.61\n",
       "LassoCV                0.05     12.03   -0.24      0.71    0.08      0.61\n",
       "ElasticNetCV           0.06     12.02   -0.24      0.71    0.08      0.61\n",
       "RidgeCV                0.07     11.93   -0.23      0.70    0.06      0.62"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sunoj_JPC_Desc\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.16</td>\n",
       "      <td>10.51</td>\n",
       "      <td>-0.47</td>\n",
       "      <td>0.61</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.29</td>\n",
       "      <td>9.67</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.41</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.14</td>\n",
       "      <td>10.64</td>\n",
       "      <td>-0.03</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.33</td>\n",
       "      <td>0.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.05</td>\n",
       "      <td>11.25</td>\n",
       "      <td>-1.49</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.33</td>\n",
       "      <td>0.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.05</td>\n",
       "      <td>11.23</td>\n",
       "      <td>-1.48</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.33</td>\n",
       "      <td>0.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.11</td>\n",
       "      <td>10.79</td>\n",
       "      <td>-1.74</td>\n",
       "      <td>0.82</td>\n",
       "      <td>0.32</td>\n",
       "      <td>0.42</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "ElasticNetCV           0.16     10.51   -0.47      0.61    0.35      0.41\n",
       "KNeighborsRegressor    0.29      9.67    0.36      0.41    0.34      0.41\n",
       "LarsCV                 0.14     10.64   -0.03      0.52    0.33      0.41\n",
       "LassoCV                0.05     11.25   -1.49      0.80    0.33      0.41\n",
       "LassoLarsCV            0.05     11.23   -1.48      0.80    0.33      0.41\n",
       "RidgeCV                0.11     10.79   -1.74      0.82    0.32      0.42"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "HongAckermann_Desc\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.73</td>\n",
       "      <td>11.89</td>\n",
       "      <td>0.64</td>\n",
       "      <td>0.59</td>\n",
       "      <td>0.77</td>\n",
       "      <td>0.47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.74</td>\n",
       "      <td>11.88</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.78</td>\n",
       "      <td>0.76</td>\n",
       "      <td>0.47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.71</td>\n",
       "      <td>12.44</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.76</td>\n",
       "      <td>0.48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.71</td>\n",
       "      <td>12.47</td>\n",
       "      <td>0.52</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.76</td>\n",
       "      <td>0.48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.86</td>\n",
       "      <td>8.77</td>\n",
       "      <td>0.68</td>\n",
       "      <td>0.55</td>\n",
       "      <td>0.72</td>\n",
       "      <td>0.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LinearRegression</th>\n",
       "      <td>0.72</td>\n",
       "      <td>12.08</td>\n",
       "      <td>-0.07</td>\n",
       "      <td>1.01</td>\n",
       "      <td>0.63</td>\n",
       "      <td>0.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.54</td>\n",
       "      <td>15.83</td>\n",
       "      <td>-0.13</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.88</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "ElasticNetCV           0.73     11.89    0.64      0.59    0.77      0.47\n",
       "RidgeCV                0.74     11.88    0.35      0.78    0.76      0.47\n",
       "LassoCV                0.71     12.44    0.52      0.67    0.76      0.48\n",
       "LassoLarsCV            0.71     12.47    0.52      0.67    0.76      0.48\n",
       "KNeighborsRegressor    0.86      8.77    0.68      0.55    0.72      0.52\n",
       "LinearRegression       0.72     12.08   -0.07      1.01    0.63      0.59\n",
       "LarsCV                 0.54     15.83   -0.13      1.00    0.19      0.88"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Denmark_OPRD_Desc\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"2\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>RidgeCV</th>\n",
       "      <td>0.69</td>\n",
       "      <td>11.44</td>\n",
       "      <td>0.68</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ElasticNetCV</th>\n",
       "      <td>0.69</td>\n",
       "      <td>11.53</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.17</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoCV</th>\n",
       "      <td>0.68</td>\n",
       "      <td>11.60</td>\n",
       "      <td>0.68</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LassoLarsCV</th>\n",
       "      <td>0.69</td>\n",
       "      <td>11.51</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.17</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KNeighborsRegressor</th>\n",
       "      <td>0.61</td>\n",
       "      <td>12.77</td>\n",
       "      <td>0.64</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.63</td>\n",
       "      <td>0.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LarsCV</th>\n",
       "      <td>0.26</td>\n",
       "      <td>17.44</td>\n",
       "      <td>0.23</td>\n",
       "      <td>0.27</td>\n",
       "      <td>0.28</td>\n",
       "      <td>0.26</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         ee            ee2ddg               ddg          \n",
       "                    R2_test RMSE_test R2_test RMSE_test R2_test RMSE_test\n",
       "RidgeCV                0.69     11.44    0.68      0.18    0.69      0.17\n",
       "ElasticNetCV           0.69     11.53    0.69      0.17    0.69      0.17\n",
       "LassoCV                0.68     11.60    0.68      0.18    0.69      0.17\n",
       "LassoLarsCV            0.69     11.51    0.69      0.17    0.67      0.18\n",
       "KNeighborsRegressor    0.61     12.77    0.64      0.19    0.63      0.19\n",
       "LarsCV                 0.26     17.44    0.23      0.27    0.28      0.26"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for dataset,df in datasets.items():\n",
    "    print(dataset)\n",
    "    show_ind = [m for m in df.index if df.loc[m].max() < 1000] # skip models with extremely bad performance for prettier formatting\n",
    "    display(df.loc[show_ind,show].sort_values(by=(\"ddg\",\"RMSE_test\")).round(2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "76909cac",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "6d3b8706",
   "metadata": {},
   "source": [
    "# Skew scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "a60ff98d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T17:45:18.351590Z",
     "start_time": "2023-04-17T17:45:18.339590Z"
    }
   },
   "outputs": [],
   "source": [
    "skew_scores = {}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "834ed309",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T18:22:01.802916Z",
     "start_time": "2023-04-17T18:22:00.094905Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Toste_Desc\n",
      "y size: (37,)\n",
      "Skew ee/ddG: -0.15 0.40\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAF0CAYAAABiwYzBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAs3ElEQVR4nO3de3RUVZ7+/6dISAWQlBoJkKYIwaGJXKIIKgiCNhebRkYdRWWADl6mxY4SZGwBtVtAoEKPOk47GoXBAIOATXNpRgWFHsKlEbkIigEBhYaoXBqVFOCiGJL9+8Mf9bVMgqmkatft/VrrLNfZtU+dT+0cdx5OTp3jMMYYAQAAALCiQaQLAAAAABIJARwAAACwiAAOAAAAWEQABwAAACwigAMAAAAWEcABAAAAiwjgAAAAgEUEcAAAAMAiAjgAAABgEQEcAADElZKSEjkcDpWUlPxo3xtvvFE33nhj2GsCvo8ADgAAAFhEAAcAAAAsIoAjqq1fv14Oh0MLFiyo8trcuXPlcDi0ZcuWWr2X1+vVY489puzsbKWkpOgnP/mJxowZo9OnTwf0M8bo5Zdf1lVXXaVGjRrpkksu0Z133qn9+/eH5DMBQKIL5dz+ySef6Oc//7kaN26syy67TKNGjdLJkyer9DPG6Pe//72ysrKUmpqqq6++WitWrKj2PUtLSzVgwAA1btxYzZo1U35+vt56661aX9YC/BiHMcZEugjgQq6++mo1btxYGzZsCGi/9tprJUmbN2/+0ff49ttv1bNnT33++ed64oknlJubq9LSUv3ud79T165dtXr1ajkcDknSr371K82ePVujR49W//799fXXX2vy5Mn65ptv9OGHH6p58+ah/5AAkGBCMbcfPXpUubm5atiwoaZMmaLmzZvr9ddf1/r163Xo0CGtWbPGf333xIkTNWnSJN1///268847VVZWpkmTJqmiokLt27f3B+vDhw+rc+fOatKkiSZPnqyMjAwtWLBA69ev19/+9reA9wTqzABRrri42Egy27dv97dt3rzZSDJz5syp1Xt4PB7ToEEDs2XLloD2P/3pT0aSefvtt40xxrz33ntGknnuuecC+pWVlZlGjRqZxx9/vH4fBgBgjAnN3D5u3DjjcDjMjh07Atr79+9vJJk1a9YYY4z55ptvTGpqqrn99tsD+v31r381kkyfPn38bb/5zW+Mw+EwpaWlAX1vvvnmgPcE6oNLUBD1hg4dqoyMDL300kv+thdffFHNmjXT3XffXav3ePPNN9WpUyddddVVOnfunH+5+eabA/6k+Oabb8rhcGj48OEB/Vq0aKErr7ySPz0CQIiEYm5fs2aNOnbsqCuvvDKg/Z//+Z8D1t977z2dOXNGw4YNC2i//vrrlZWVFdC2du1aderUSR06dKhSLxAqBHBEPafTqQcffFDz58/XiRMn9Pe//11//OMf9cADD8jpdNbqPY4ePaqPPvpIDRs2DFiaNm0qY4yOHz/u72eMUfPmzav03bRpk78fAKB+QjG3f/XVV2rRokWV9h+2ffXVV9W219S3uksNufwQoZQc6QKA2njooYdUWFio1157TWfOnNG5c+c0atSoWm9/2WWXqVGjRnrttddqfP38fx0Oh9avX1/tL4Da/lIAAPy4+s7t6enpOnLkSJX2H7alp6dX236+rU2bNgF9jx49+qPvCdQHARwxoWXLlhoyZIhefvllnT17VoMHD1br1q1rvf0tt9yiadOmKT09XdnZ2RfsV1hYqC+++EJ33XVXKEoHANSgvnP7TTfdpN///vf68MMPAy5DmT9/fkC/7t27KzU1Va+//rruuOMOf/vGjRt18ODBgADep08fPfvss9q1a1fAZSgLFy6swycEqsddUBAzNm/erOuuu06StHr1avXt27fW254+fVo33HCD/v73v+vRRx9Vbm6uKisrdejQIb377rv613/9V/97P/jgg5o3b57y8/PVu3dvNWnSRIcPH9aGDRvUuXNnPfTQQ2H5fACQiOoztx85ckS5ublKSUkJuAvKunXrVFZWFnDHkt/+9reaMmWK7r//fg0ZMkRlZWWaOHFilbugfPnll8rNzfXfBaV58+aaP3++1q1bp4MHD2rt2rXq3bt3qIcBCYYAjpiSnZ2tRo0aadeuXUFve/r0aRUWFmrRokU6cOCAGjVqpNatW6tfv34aN25cwPV9xcXFevXVV/Xxxx+rsrJSmZmZ6tmzp0aPHq2uXbuG8iMBQMKrz9y+e/duFRQUaP369WrcuLFuv/12/eM//qNuvfXWgABujNH06dP18ssv6+jRo8rJydHUqVP17LPPSlLAl+xLS0s1ZswYbdiwwf+evXv3Vl5enj788EPl5uaG4mMjgRHAETM++ugjXXnllXrppZf061//OtLl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r8XCWM+aNUv9+vWr8gCocI11XUTDcR0Kto/r+ojkcR0K1gL48ePHVVFRoebNmwe0N2/eXEeOHLFVRlQwxmjs2LHq1auXOnXqJEn+MUik8Vm4cKE++OADeTyeKq8l4njs379fRUVFateund555x2NGjVKo0eP1ty5cyUl5piMGzdOQ4cOVU5Ojho2bKguXbpozJgxGjp0qKTEHJNoUpd5/ciRI9X2P3funI4fP37BPqH6mYbi99Fzzz2n06dP66677vK35eTkaPbs2Vq+fLkWLFig1NRU9ezZU/v27YtIzS1bttSMGTO0ePFiLVmyRO3bt1ffvn21bt06f59oH+vDhw9rxYoVeuCBBwLawznWdRENx3Uo2D6u6yIajutQCPpR9PXlcDgC1o0xVdri3cMPP6yPPvpIGzZsqPJaooxPWVmZCgoK9O677yo1NbXGfokyHtJ3Zx66deumadOmSfruX/elpaUqKirSL3/5S3+/RBqTN954Q/PmzdP8+fPVsWNH7dixQ2PGjFFmZqby8vL8/RJpTKJRsONfXf8fttv4mdZ1HwsWLNDEiRP15z//WRkZGf727t27q3v37v71nj176uqrr9aLL76oP/zhD9Zrbt++vdq3b+9f79Gjh8rKyvTss8+qd+/edXrPuqrrPmbPnq2LL75Yt912W0C7jbEOVrQc13UVyeM6GNF0XNeHtTPgl112mZKSkqr86+PYsWNV/pUSzx555BEtX75ca9asUatWrfztLVq0kKSEGZ9t27bp2LFj6tq1q5KTk5WcnKy1a9fqD3/4g5KTk/2fOVHGQ/ruX/UdOnQIaLviiit06NAhSYl3jEjSb37zG40fP1733HOPOnfurBEjRujRRx/1/9UkEcckmtRlXm/RokW1/ZOTk5Wenn7BPqH6mdbn99Ebb7yh+++/X3/84x+rXDr3Qw0aNNA111wTkjOFofod2r1794B6onmsjTF67bXXNGLECKWkpFywbyjHui6i4biuj0gd16Fi+7gOBWsBPCUlRV27dtWqVasC2letWqXrr7/eVhkRY4zRww8/rCVLluh///d/lZ2dHfB6dna2WrRoETA+Z8+e1dq1a+NyfPr27audO3dqx44d/qVbt24aNmyYduzYobZt2ybUeEjfnVX44a0p9+7d67/uMdGOEUn69ttv1aBB4DSVlJTkvw1hIo5JNKnLvN6jR48q/d99911169ZNDRs2vGCfUP1M6/r7aMGCBRo5cqTmz5+vQYMG/eh+jDHasWOHWrZsGbGaf2j79u0B9UTrWEvf3dbv008/1f333/+j+wnlWNdFNBzXdRXJ4zpUbB/XIWHzG5/nb0U0a9Yss2vXLjNmzBjTpEmTgG82x6uHHnrIuFwuU1JSEnDbnG+//dbfp7Cw0LhcLrNkyRKzc+dOM3To0IS6ndr374JiTOKNx+bNm01ycrKZOnWq2bdvn3n99ddN48aNzbx58/x9Em1M8vLyzE9+8hP/bQiXLFliLrvsMvP444/7+yTamESbH5vXx48fb0aMGOHvf/52bY8++qjZtWuXmTVrVpXbtf31r381SUlJprCw0OzevdsUFhaG7dZ4ta17/vz5Jjk52bz00ksBc/iJEyf8fSZOnGhWrlxpPvvsM7N9+3Zz7733muTkZPP+++9HpOZ///d/N0uXLjV79+41H3/8sRk/fryRZBYvXuzvE41jfd7w4cPNddddV+17hnusT548abZv3262b99uJJnnn3/ebN++3X/rxGg9roOtOxqO62Brjpbjur6sBnBjjHnppZdMVlaWSUlJMVdffbX/NnzxTlK1S3Fxsb9PZWWlefrpp02LFi2M0+k0vXv3Njt37oxc0Zb9MIAn4nj8z//8j+nUqZNxOp0mJyfHzJgxI+D1RBsTr9drCgoKTOvWrU1qaqpp27atefLJJ43P5/P3SbQxiUYXmtfz8vJMnz59AvqXlJSYLl26mJSUFNOmTRtTVFRU5T0XLVpk2rdvbxo2bGhycnICfrlGou4+ffpUO4fn5eX5+4wZM8a0bt3apKSkmGbNmpkBAwaYjRs3Rqzm6dOnm8svv9ykpqaaSy65xPTq1cu89dZbVd4z2sbamO/uBd6oUaMqc+B54R7r87e6q+nnHa3HdbB1R8NxHWzN0XRc14fDmP//WwIAAAAAws76o+gBAACAREYABwAAACwigAMAAAAWEcABAAAAiwjgAAAAgEUEcAAAAMAiAjgAAABgEQEcAAAAsIgADgAAAFhEAAcAAAAsIoADAAAAFhHAAQAAAIv+P+o1ctxNZQpZAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee      4.0,  51.3,  88.0,  24.0\n",
      "y_ddg    0.05,  0.75,  1.63,  0.44\n",
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Biscoe_Desc\n",
      "y size: (24,)\n",
      "Skew ee/ddG: -0.67 0.35\n"
     ]
    },
    {
     "data": {
      "image/png": "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m/bt25sXX3zRlJaWmjfffNN06NDBLFmyxDfGyf3V1NSYHj16mNmzZ9fa5+S+srKyzI033ui7DeHbb79tunTpYp555hnfGCf3t379erNu3Tpz6NAh895775mMjAzzta99zVy6dMkY46zeKisrze7du83u3buNJPPTn/7U7N692xw5csQY07BeJk+ebLp37242bdpkdu3aZe666y5uQ2jJ9ebv2WefNZMmTfKNv3JLtKeeesocOHDAvP766632lmiB9vbv//7vZtWqVeaTTz4x+/fvN88++6yRZFauXBmsFuo1ZcoUExsbawoKCvxuuff555/7xjh57hrTn1PmLycnx2zZssUcPnzY7N2718yZM8e0a9fOvPfee8YYZ89bU7W5AH7lvrzh4eEmKSnJfOMb3zAlJSW+/ZcvXzbPP/+8SUhIMG6324wYMcLs27cviBUH5j//8z9NWlqacbvdpk+fPmbhwoV++53c34YNG3z3Pb2ak/vyeDxmxowZpkePHiYyMtL07NnTPPfcc8br9frGOLm/5cuXm549e5qIiAiTkJBgsrOzzfnz5337ndTblVt/Xf3IysoyxjSsl//93/81U6dONZ07dzZRUVHm3nvvNUePHg1CN23P9eYvKyvL3HnnnX7HFBQUmAEDBpiIiAhz0003mby8PPuFN0Cgvb388sumV69eJjIy0nTq1MkMHz7cvPPOO8Ep/jrq6kuSyc/P941x8tw1pj+nzN8TTzxhUlJSTEREhOnatasZPXq0L3wb4+x5ayqXMf//6nYAAAAALa7NXwMOAAAA2EQABwAAACwigAMAAAAWEcABAAAAiwjgAAAAgEUEcAAAAMAiAjgAAABgEQEcAAAAsIgADgAAAFhEAAcAAAAsIoADAAAAFhHAAQAAAIv+H+kYtD3fbUx6AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee    -89.7,  62.2,  97.8,  52.3\n",
      "y_ddg   -2.16,  1.54,  3.33,  1.36\n",
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Doyle_Desc\n",
      "y size: (29,)\n",
      "Skew ee/ddG: -0.01 0.28\n"
     ]
    },
    {
     "data": {
      "image/png": "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/ew+hYWF6tOnj2JjY9WxY0e98sorwS+0nvwdz7vvvqsRI0aodevWSkxMVP/+/fXhhx9aU2w9NeRn9KM///nPio6OVq9evYJWX0M0ZEzhsD4EQpML4JLUrVs3HTlyxLvt2rXL+9y8efP0wgsv6KWXXlJxcbHatm2rESNGqLy8PIQVW+fkyZMaOHCgWrZsqTVr1mj37t16/vnnff66aHOeo+LiYp/3zo9/RGTMmDGSmvfcSNLcuXP1yiuv6KWXXtKePXs0b948Pfvss/rDH/7g7dPc5+i+++7TunXr9NZbb2nXrl0aOXKkhg8frq+//loS8/NTK1as0KRJk/TYY49p+/btGjRokLKysnTo0KFa97n55pv18ccfa+HChdq7d6+WLVumzp07W1h13fwd0+bNm3XnnXfq3nvvVUlJid5++20VFxfrvvvus7jy2lVUVKhnz5566aWX6tX/wIEDuuaaazRo0CBt375d06dP14QJE/Sf//mfQa60fvwdz8aNGzVixAh98MEH2rZtm4YNG6bRo0dr+/btQa60/vwd049cLpfuvPNOXXXVVUGqrOEaMqamvj4EjGlinnzySdOzZ88an6uqqjJt27Y1c+bM8badPn3aOBwO88orr1hUYWhNnTrVXHnllbU+zxz5mjhxornoootMVVUVc2OMGTVqlLnnnnt82n71q1+ZO+64wxjD++eHH34wUVFRZvXq1T7tPXv2NI899lizn5+aXH755Wb8+PE+bZ07dzbTpk2rsf+aNWuMw+EwJ06csKK8BvF3TM8++6zp2LGjT9uLL75o2rVrF7QaG0OSWblyZZ19Hn30UdO5c2eftvvvv99cccUVQaysYeoznpp07drVzJw5M/AFBYA/Y7rlllvM448/Xmd+agrqM6ZwWB8CpUmeAd+/f79SU1OVkZGhW2+9VaWlpZL+8X/kR48e1ciRI7197Xa7hgwZok8++SRU5VrqvffeU9++fTVmzBglJyerd+/eeu2117zPM0f/58yZM1q8eLHuuece2Ww25kbSlVdeqY8//lj79u2TJO3cuVObN2/WNddcI4n3z9mzZ1VZWanY2Fif9ri4OG3evLnZz89PnTlzRtu2bfOZD0kaOXJkrfPx4xo2b948XXjhherUqZMefvhh/e///q8VJf+shoxpwIABOnz4sD744AMZY3Ts2DG98847GjVqlBUlB8Wnn35abQ6uvvpqbd26VX//+99DVFXgVFVVqby8XOeff36oS2mU/Px8ffXVV3ryySdDXUpANPX1IZD8/kuYwdavXz+9+eab6tSpk44dO6ann35aAwYMUElJiY4ePSpJatOmjc8+bdq00cGDB0NRruVKS0uVl5enKVOmaPr06dqyZYsmTJggu92uO++8kzn6J6tWrdL333+vu+66S5KYG0lTp06Vy+VS586dFRUVpcrKSs2ePVtjx46VxBwlJCSof//+euqpp9SlSxe1adNGy5Yt02effaaLL7642c/PTx0/flyVlZU1zsePc/VTpaWl2rx5s2JjY7Vy5UodP35cv/3tb/Xdd981ies8GzKmAQMGaMmSJbrlllt0+vRpnT17Vr/85S99Lu0KN0ePHq1xDs6ePavjx48rJSUlRJUFxvPPP6+KigrdfPPNoS6lwfbv369p06Zp06ZNio5ucnGuQZr6+hBITe4MeFZWlm688Ub16NFDw4cP1/vvvy9JWrRokbePzWbz2ccYU60tUlVVVenSSy/VM888o969e+v+++/Xr3/9a+Xl5fn0a85z9KOFCxcqKytLqampPu3NeW5WrFihxYsXa+nSpfr888+1aNEiPffccz6fL6l5z9Fbb70lY4wuvPBC2e12vfjii7rtttsUFRXl7dOc56cm/sxHVVWVbDablixZossvv1zXXHONXnjhBb3xxhtN6iyXP2PavXu3JkyYoCeeeELbtm3T2rVrdeDAAY0fP96KUoOmpjmoqT3cLFu2TDNmzNCKFSuUnJwc6nIapLKyUrfddptmzpypTp06hbqcgAmX9SEQmlwA/6lWrVqpR48e2r9/v/duKD89C/Htt99W+z/1SJWSkqKuXbv6tHXp0sX75SDm6B8OHjyo9evX+3wJirmRHnnkEU2bNk233nqrevTooXHjxmny5MlyOp2SmCNJuuiii1RYWKhTp06prKxMW7Zs0d///ndlZGQwPz9xwQUXKCoqyq/5SElJ0YUXXiiHw+Ft69Kli4wxOnz4cFDrrY+GjMnpdGrgwIF65JFHlJmZqauvvlrz58/X66+/riNHjlhRdsC1bdu2xjmIjo5WUlJSiKpqvBUrVujee+/VH//4Rw0fPjzU5TRYeXm5tm7dqgcffFDR0dGKjo7WrFmztHPnTkVHR+u///u/Q11igzT19SGQmnwA93g82rNnj1JSUrz/AP54ZwvpH9frFRYWasCAASGs0joDBw7U3r17fdr27dun9PR0SWKO/r/8/HwlJyf7XIPJ3Eg//PCDWrTw/dhHRUV5b0PIHP2fVq1aKSUlRSdPntSHH36o6667jvn5iZiYGPXp08dnPiRp3bp1tc7HwIED9c033+jUqVPetn379qlFixZq165dUOutj4aMqbbPlfR/Z43DTf/+/avNwUcffaS+ffuqZcuWIaqqcZYtW6a77rpLS5cuDevr8yUpMTFRu3bt0o4dO7zb+PHjdckll2jHjh3q169fqEtskKa+PgRUSL76WYff/e53pqCgwJSWlpqioiJz7bXXmoSEBPPXv/7VGGPMnDlzjMPhMO+++67ZtWuXGTt2rElJSTFutzvElVtjy5YtJjo62syePdvs37/fLFmyxMTHx5vFixd7+zT3OaqsrDTt27c3U6dOrfZcc5+b7Oxsc+GFF5rVq1ebAwcOmHfffddccMEF5tFHH/X2ae5ztHbtWrNmzRpTWlpqPvroI9OzZ09z+eWXmzNnzhhjmJ+fWr58uWnZsqVZuHCh2b17t5k0aZJp1aqVd82eNm2aGTdunLd/eXm5adeunbnppptMSUmJKSwsNBdffLG57777QjWEavwdU35+vomOjjbz5883X331ldm8ebPp27evufzyy0M1hGrKy8vN9u3bzfbt240k88ILL5jt27ebgwcPGmOqj6m0tNTEx8ebyZMnm927d5uFCxeali1bmnfeeSdUQ/Dh73iWLl1qoqOjzcsvv2yOHDni3b7//vtQDaEaf8f0U03xLij+jikc1odAaXIB/JZbbjEpKSmmZcuWJjU11fzqV78yJSUl3uerqqrMk08+adq2bWvsdrsZPHiw2bVrVwgrtt5//dd/me7duxu73W46d+5sFixY4PN8c5+jDz/80Egye/furfZcc58bt9ttJk6caNq3b29iY2NNx44dzWOPPWY8Ho+3T3OfoxUrVpiOHTuamJgY07ZtW5OTk+Pzj3Rzn5+avPzyyyY9Pd3ExMSYSy+91BQWFnqfy87ONkOGDPHpv2fPHjN8+HATFxdn2rVrZ6ZMmWJ++OEHi6uum79jevHFF03Xrl1NXFycSUlJMbfffrs5fPiwxVXXbsOGDUZStS07O9sYU/OYCgoKTO/evU1MTIzp0KGDycvLs77wWvg7niFDhtTZvyloyM/onzXFAN6QMYXD+hAINmPC9PdjAAAAQBhq8teAAwAAAJGEAA4AAABYiAAOAAAAWIgADgAAAFiIAA4AAABYiAAOAAAAWIgADgAAAFiIAA4AAABYiAAOAAAAWIgADgAAAFiIAA4AAABYiAAOAAAAWOj/ATUOI9A744m+AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee     49.9,  72.4,  89.9,  13.3\n",
      "y_ddg    0.65,  1.16,  1.74,  0.37\n",
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Sunoj_Desc\n",
      "y size: (371,)\n",
      "Skew ee/ddG: -3.24 -0.04\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAF0CAYAAACqrWYXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvFElEQVR4nO3df1yUZb7/8fcIMoJf4PhzxlnJcA+tFWqGraWmlIrrplZuWVm7evK0mj+SrDSzWvQkqLXmWSk7tq1aRnT2nGjbtnbF1lCPdUTSVOpYu5FiQZRLA6INidf3jx5NjaACAuM183o+Hvdjm+u+Zrg+OFzz3oub63YYY4wAAAAAWKNdsAcAAAAAoGkI8QAAAIBlCPEAAACAZQjxAAAAgGUI8QAAAIBlCPEAAACAZQjxAAAAgGUI8QAAAIBlCPEAAACAZQjxAAAADXjzzTflcDj05ptvnrFvamqqUlNTW31MwLcI8QAAAIBlCPEAAACAZQjxCAtbt26Vw+HQCy+8UO/cs88+K4fDocLCwka9VlVVle69914lJiYqKipKP/jBD5Senq6ampqAfsYYPfnkk7rkkksUHR2tTp066YYbbtBHH33UIjUBQLhrybn9//7v//STn/xEMTEx6tq1q6ZPn67q6up6/YwxWr58uXr16qUOHTro0ksv1euvv97gaxYXFystLU0xMTHq1q2bZs6cqT/96U+NvkQHOB2HMcYEexBAW7j00ksVExOjbdu2BbT/+Mc/liTt2LHjjK9x9OhRDRkyRIcOHdIDDzygfv36qbi4WA8//LBSUlK0adMmORwOSdIvf/lLrVu3TnfddZdGjRqlf/zjH1q8eLEqKyv17rvvyuVytXyRABBmWmJu/+yzz9SvXz+1b99ejzzyiFwul55//nlt3bpVBw8e1ObNm/3Xu2dkZGjRokWaOnWqbrjhBpWWlmrRokWqq6vTj370I384LysrU9++fdWxY0ctXrxY3bt31wsvvKCtW7fq448/DnhNoFkMECbWrl1rJJldu3b523bs2GEkmfXr1zfqNbKysky7du1MYWFhQPt//dd/GUnmtddeM8YY89ZbbxlJ5te//nVAv9LSUhMdHW3mzZt3dsUAAIwxLTO3z58/3zgcDrN79+6A9lGjRhlJZvPmzcYYYyorK02HDh3M9ddfH9Dvf/7nf4wkM3z4cH/bfffdZxwOhykuLg7oO3r06IDXBJqLy2kQNm655RZ1795dTzzxhL9t1apV6tatm2666aZGvcarr76q5ORkXXLJJTp+/Lj/GD16dMCvR1999VU5HA7ddtttAf3cbrf69+/Pr1EBoIW0xNy+efNmXXzxxerfv39A+6RJkwIev/XWW/rqq6906623BrQPHjxYvXr1CmgrKChQcnKyLrroonrjBVoCIR5hw+l0atq0acrJydGXX36pzz//XP/5n/+pf/3Xf5XT6WzUa3z22Wfas2eP2rdvH3DExsbKGKMvvvjC388YI5fLVa/v22+/7e8HADg7LTG3Hz58WG63u177yW2HDx9usP1UfRu6bJJLKdFSIoM9AKAt3XnnnVq6dKl+97vf6auvvtLx48c1ffr0Rj+/a9euio6O1u9+97tTnv/2fx0Oh7Zu3drgh0hjP1gAAGd2tnN7ly5dVF5eXq/95LYuXbo02P5t2/nnnx/Q97PPPjvjawLNRYhHWOnRo4duvPFGPfnkk6qtrdW4ceN03nnnNfr5Y8eOVWZmprp06aLExMTT9lu6dKk++eQTTZw4sSWGDgA4hbOd26+66iotX75c7777bsAlNTk5OQH9Lr/8cnXo0EHPP/+8fvazn/nbt2/frgMHDgSE+OHDh+uxxx7Te++9F3BJTW5ubjMqBOpjdxqEnR07dmjQoEGSpE2bNmnEiBGNfm5NTY2uvPJKff7557r77rvVr18/nThxQgcPHtTGjRt1zz33+F972rRp2rBhg2bOnKlhw4apY8eOKisr07Zt29S3b1/deeedrVIfAISjs5nby8vL1a9fP0VFRQXsTrNlyxaVlpYG7CTz0EMP6ZFHHtHUqVN14403qrS0VBkZGfV2p/n000/Vr18//+40LpdLOTk52rJliw4cOKCCggINGzaspb8NCCOEeISlxMRERUdH67333mvyc2tqarR06VL9/ve/V0lJiaKjo3Xeeedp5MiRmj9/fsD1jmvXrtV//Md/aN++fTpx4oQ8Ho+GDBmiu+66SykpKS1ZEgCEvbOZ299//33NmTNHW7duVUxMjK6//nqNHz9e1157bUCIN8Zo2bJlevLJJ/XZZ5+pT58+WrJkiR577DFJCti4oLi4WOnp6dq2bZv/NYcNG6bJkyfr3XffVb9+/VqibIQpQjzCzp49e9S/f3898cQTmjFjRrCHAwBoAbbM7b/85S/1wgsv6PDhw4qKigr2cGAxrolH2Pj73/+uAwcO6IEHHlCPHj00ZcqUYA8JAHCWzuW5ffHixfJ4POrdu7eOHDmiV199Vb/97W/14IMPEuBx1gjxCBv/9m//pueee04XXnihfv/73ysmJsZ/zhijurq60z4/IiLCfzdWAMC54Vye29u3b69HH31Uhw4d0vHjx5WUlKQVK1Zozpw5rfL1EF64nAbQN9cwXnXVVafts3bt2nNqhQcAcHrM7QhlhHhAUnV1tfbv33/aPomJif49ggEA5z7mdoQyQjwAAABgmXbBHgAAAACAprHyD1tPnDihTz/9VLGxsfyhIYCQZ4xRdXW1PB6P2rULv7UX5nwA4aSxc76VIf7TTz9VQkJCsIcBAG2qtLRUPXv2DPYw2hxzPoBwdKY538oQHxsbK+mb4uLi4oI8GgBoXVVVVUpISPDPfeGGOR9AOGnsnG9liP/216lxcXFM6ADCRrheSsKcDyAcnWnOD7+LKwEAAADLEeIBAAAAyxDiAQAAAMsQ4gEAAADLEOIBAAAAyxDiAQAN2rJli8aNGyePxyOHw6GXX3454LwxRhkZGfJ4PIqOjlZqaqqKi4sD+vh8Ps2ePVtdu3ZVx44dNX78eB06dKgNqwCA0ESIBwA0qKamRv3791d2dnaD55cvX64VK1YoOztbhYWFcrvdGjVqlKqrq/190tPTlZeXp9zcXG3btk1HjhzR2LFjVVdX11ZlAEBIsnKfeABA6xszZozGjBnT4DljjFauXKmFCxdqwoQJkqT169fL5XIpJydH06ZNk9fr1TPPPKPnnntOI0eOlCRt2LBBCQkJ2rRpk0aPHt1mtQBAqGElHgDQZCUlJSovL1daWpq/zel0avjw4dq+fbskqaioSF9//XVAH4/Ho+TkZH+fhvh8PlVVVQUcAIBAhHgAQJOVl5dLklwuV0C7y+XynysvL1dUVJQ6dep0yj4NycrKUnx8vP9ISEho4dEDgP0I8QCAZjv5tuDGmDPeKvxMfRYsWCCv1+s/SktLW2SsABBKCPEAgCZzu92SVG9FvaKiwr8673a7VVtbq8rKylP2aYjT6VRcXFzAAQAIRIgHELYcDkebH6EiMTFRbrdb+fn5/rba2loVFBRo8ODBkqSUlBS1b98+oE9ZWZn27dvn7wM0BT+vwHfYnQYA0KAjR47ob3/7m/9xSUmJdu/erc6dO+u8885Tenq6MjMzlZSUpKSkJGVmZiomJkaTJk2SJMXHx2vq1Km655571KVLF3Xu3Fn33nuv+vbt69+tBgDQPIR4AECDdu7cqauuusr/eO7cuZKkyZMna926dZo3b56OHTumGTNmqLKyUoMGDdLGjRsVGxvrf87jjz+uyMhITZw4UceOHdOIESO0bt06RUREtHk9ABBKHMYYE+xBNFVVVZXi4+Pl9Xq5VhJAswXj1+XNmXLDfc4L9/rxnbb+mbUwIiEENHbO45p4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMk0K8VlZWbrssssUGxur7t2767rrrtP+/fsD+hhjlJGRIY/Ho+joaKWmpqq4uDigj8/n0+zZs9W1a1d17NhR48eP16FDh86+GgAAACAMNCnEFxQUaObMmXr77beVn5+v48ePKy0tTTU1Nf4+y5cv14oVK5Sdna3CwkK53W6NGjVK1dXV/j7p6enKy8tTbm6utm3bpiNHjmjs2LGqq6trucoAAACAEOUwxpjmPvnzzz9X9+7dVVBQoGHDhskYI4/Ho/T0dM2fP1/SN6vuLpdLy5Yt07Rp0+T1etWtWzc999xzuummmyRJn376qRISEvTaa69p9OjRZ/y6VVVVio+Pl9frVVxcXHOHDyDMORyONv+azZlyw33OC/f68Z22/pk9i4gENFtj57yzuibe6/VKkjp37ixJKikpUXl5udLS0vx9nE6nhg8fru3bt0uSioqK9PXXXwf08Xg8Sk5O9vcBAAAAcGqRzX2iMUZz587V0KFDlZycLEkqLy+XJLlcroC+LpdLBw4c8PeJiopSp06d6vX59vkn8/l88vl8/sdVVVXNHTYAAABgvWavxM+aNUt79uzRCy+8UO/cyb/uMsac8Vdgp+uTlZWl+Ph4/5GQkNDcYQMAAADWa1aInz17tl555RVt3rxZPXv29Le73W5JqreiXlFR4V+dd7vdqq2tVWVl5Sn7nGzBggXyer3+o7S0tDnDBgAAAEJCk0K8MUazZs3SSy+9pL/+9a9KTEwMOJ+YmCi32638/Hx/W21trQoKCjR48GBJUkpKitq3bx/Qp6ysTPv27fP3OZnT6VRcXFzAAQAAAISrJl0TP3PmTOXk5OgPf/iDYmNj/Svu8fHxio6OlsPhUHp6ujIzM5WUlKSkpCRlZmYqJiZGkyZN8vedOnWq7rnnHnXp0kWdO3fWvffeq759+2rkyJEtXyEAAAAQYpoU4levXi1JSk1NDWhfu3atpkyZIkmaN2+ejh07phkzZqiyslKDBg3Sxo0bFRsb6+//+OOPKzIyUhMnTtSxY8c0YsQIrVu3ThEREWdXDQAAABAGzmqf+GBhz2AALYF94u0Q7vXjO+wTj3DQJvvEAwAAAGh7hHgAQLMcP35cDz74oBITExUdHa3evXtr8eLFOnHihL+PMUYZGRnyeDyKjo5WamqqiouLgzhqAAgNhHgAQLMsW7ZMTz31lLKzs/X+++9r+fLlevTRR7Vq1Sp/n+XLl2vFihXKzs5WYWGh3G63Ro0aperq6iCOHADsR4gHADTLW2+9pWuvvVbXXHONzj//fN1www1KS0vTzp07JX2zCr9y5UotXLhQEyZMUHJystavX6+jR48qJycnyKMHALsR4gEAzTJ06FC98cYb+uCDDyRJ7777rrZt26af/vSnkqSSkhKVl5crLS3N/xyn06nhw4dr+/btp3xdn8+nqqqqgAMAEKhJW0wCAPCt+fPny+v1qk+fPoqIiFBdXZ2WLFmiW265RdJ3d+8++W7cLpdLBw4cOOXrZmVladGiRa03cAAIAazEAwCa5cUXX9SGDRuUk5Ojd955R+vXr9djjz2m9evXB/Q7eVtAY8xptwpcsGCBvF6v/ygtLW2V8QOAzViJBwA0y3333af7779fN998sySpb9++OnDggLKysjR58mS53W5J36zI9+jRw/+8ioqKeqvz3+d0OuV0Olt38ABgOVbiAQDNcvToUbVrF/gxEhER4d9iMjExUW63W/n5+f7ztbW1Kigo0ODBg9t0rAAQaliJBwA0y7hx47RkyRKdd955uvjii7Vr1y6tWLFCt99+u6RvLqNJT09XZmamkpKSlJSUpMzMTMXExGjSpElBHj0A2I0QDwBollWrVumhhx7SjBkzVFFRIY/Ho2nTpunhhx/295k3b56OHTumGTNmqLKyUoMGDdLGjRsVGxsbxJEDgP0cxhgT7EE0VVVVleLj4+X1ehUXFxfs4QCw1On+uLK1NGfKDfc5L9zrx3fa+mfWwoiEENDYOY9r4gEAAADLEOIBAAAAyxDiAQAAAMsQ4gEAAADLEOIBAAAAyxDiAQAAAMsQ4gEAAADLEOIBAAAAy3DHVgAA0GTBuFkagO+wEg8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFimySF+y5YtGjdunDwejxwOh15++eWA81OmTJHD4Qg4Lr/88oA+Pp9Ps2fPVteuXdWxY0eNHz9ehw4dOqtCAAAAgHDR5BBfU1Oj/v37Kzs7+5R9fvKTn6isrMx/vPbaawHn09PTlZeXp9zcXG3btk1HjhzR2LFjVVdX1/QKAAAAgDAT2dQnjBkzRmPGjDltH6fTKbfb3eA5r9erZ555Rs8995xGjhwpSdqwYYMSEhK0adMmjR49uqlDAgAAAMJKq1wT/+abb6p79+664IILdMcdd6iiosJ/rqioSF9//bXS0tL8bR6PR8nJydq+fXtrDAcAAAAIKU1eiT+TMWPG6MYbb1SvXr1UUlKihx56SFdffbWKiorkdDpVXl6uqKgoderUKeB5LpdL5eXlDb6mz+eTz+fzP66qqmrpYQMAAADWaPEQf9NNN/n/Ozk5WQMHDlSvXr30pz/9SRMmTDjl84wxcjgcDZ7LysrSokWLWnqoAAAAgJVafYvJHj16qFevXvrwww8lSW63W7W1taqsrAzoV1FRIZfL1eBrLFiwQF6v13+Ulpa29rABAACAc1arh/jDhw+rtLRUPXr0kCSlpKSoffv2ys/P9/cpKyvTvn37NHjw4AZfw+l0Ki4uLuAAAAAAwlWTL6c5cuSI/va3v/kfl5SUaPfu3ercubM6d+6sjIwM/exnP1OPHj308ccf64EHHlDXrl11/fXXS5Li4+M1depU3XPPPerSpYs6d+6se++9V3379vXvVgMAAADg1Jq8Er9z504NGDBAAwYMkCTNnTtXAwYM0MMPP6yIiAjt3btX1157rS644AJNnjxZF1xwgd566y3Fxsb6X+Pxxx/Xddddp4kTJ2rIkCGKiYnRH//4R0VERLRcZQCAVvfJJ5/otttuU5cuXRQTE6NLLrlERUVF/vPGGGVkZMjj8Sg6OlqpqakqLi4O4ogBIDQ4jDEm2INoqqqqKsXHx8vr9XJpDYBmO9Uf07em5ky55+qcV1lZqQEDBuiqq67SnXfeqe7du+vvf/+7zj//fP3whz+UJC1btkxLlizRunXrdMEFF+iRRx7Rli1btH///oDFndM5V+sPd8H4+WlrFkYkhIDGznktvjsNACA8LFu2TAkJCVq7dq2/7fzzz/f/tzFGK1eu1MKFC/27k61fv14ul0s5OTmaNm1aWw8ZAEJGq/9hKwAgNL3yyisaOHCgbrzxRnXv3l0DBgzQ008/7T9fUlKi8vLygJv7OZ1ODR8+/LQ39/P5fKqqqgo4AACBCPEAgGb56KOPtHr1aiUlJekvf/mLpk+frrvuukvPPvusJPlv4Hfy9sGnu7mf9M29QeLj4/1HQkJC6xUBAJYixAMAmuXEiRO69NJLlZmZqQEDBmjatGm64447tHr16oB+J187fbqb+0ncGwQAGoMQDwBolh49euiiiy4KaLvwwgt18OBBSd/c3E9SvVX3093cT+LeIADQGIR4AECzDBkyRPv37w9o++CDD9SrVy9JUmJiotxud8DN/Wpra1VQUHDKm/sBABqH3WkAAM1y9913a/DgwcrMzNTEiRO1Y8cOrVmzRmvWrJH0zWU06enpyszMVFJSkpKSkpSZmamYmBhNmjQpyKMHALsR4gEAzXLZZZcpLy9PCxYs0OLFi5WYmKiVK1fq1ltv9feZN2+ejh07phkzZqiyslKDBg3Sxo0bG71HPACgYdzsCUDY4mZPdgj3+s9V3OypddgyL6H1NHbO45p4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAykcEeAAAAODsOhyPYQwDQxliJBwAAACxDiAcAAAAsQ4gHAAAALEOIBwAAACxDiAcAAAAsw+40AAAADWDXH5zLWIkHAAAALEOIBwAAACxDiAcAAAAsQ4gHAAAALEOIBwAAACxDiAcAAAAsQ4gHAAAALEOIBwAAACxDiAcAAAAsQ4gHAAAALEOIBwAAACxDiAcAAAAsQ4gHAAAALEOIBwAAACxDiAcAAAAsQ4gHAAAALEOIBwAAACxDiAcAAAAsQ4gHAAAALEOIBwAAACxDiAcAAAAsQ4gHAAAALEOIBwAAACxDiAcAAAAsQ4gHAAAALNPkEL9lyxaNGzdOHo9HDodDL7/8csB5Y4wyMjLk8XgUHR2t1NRUFRcXB/Tx+XyaPXu2unbtqo4dO2r8+PE6dOjQWRUCAAAAhIsmh/iamhr1799f2dnZDZ5fvny5VqxYoezsbBUWFsrtdmvUqFGqrq7290lPT1deXp5yc3O1bds2HTlyRGPHjlVdXV3zKwEAAADCRGRTnzBmzBiNGTOmwXPGGK1cuVILFy7UhAkTJEnr16+Xy+VSTk6Opk2bJq/Xq2eeeUbPPfecRo4cKUnasGGDEhIStGnTJo0ePfosygEAAABCX4teE19SUqLy8nKlpaX525xOp4YPH67t27dLkoqKivT1118H9PF4PEpOTvb3OZnP51NVVVXAAQAAAISrFg3x5eXlkiSXyxXQ7nK5/OfKy8sVFRWlTp06nbLPybKyshQfH+8/EhISWnLYAAAAgFVaZXcah8MR8NgYU6/tZKfrs2DBAnm9Xv9RWlraYmMFALSMrKwsORwOpaen+9sas9kBAKDpWjTEu91uSaq3ol5RUeFfnXe73aqtrVVlZeUp+5zM6XQqLi4u4AAAnDsKCwu1Zs0a9evXL6C9MZsdAACarkVDfGJiotxut/Lz8/1ttbW1Kigo0ODBgyVJKSkpat++fUCfsrIy7du3z98HAGCPI0eO6NZbb9XTTz8dcKnkyZsdJCcna/369Tp69KhycnKCOGIAsF+TQ/yRI0e0e/du7d69W9I3f8y6e/duHTx40P9r1MzMTOXl5Wnfvn2aMmWKYmJiNGnSJElSfHy8pk6dqnvuuUdvvPGGdu3apdtuu019+/b171YDALDHzJkzdc0119Sbwxuz2QEAoHmavMXkzp07ddVVV/kfz507V5I0efJkrVu3TvPmzdOxY8c0Y8YMVVZWatCgQdq4caNiY2P9z3n88ccVGRmpiRMn6tixYxoxYoTWrVuniIiIFigJANBWcnNz9c4776iwsLDeudNtdnDgwIFTvqbP55PP5/M/ZkcyAKivySE+NTVVxphTnnc4HMrIyFBGRsYp+3To0EGrVq3SqlWrmvrlAQDniNLSUs2ZM0cbN25Uhw4dTtmvqZsdZGVladGiRS02TgAIRa2yOw0AIPQVFRWpoqJCKSkpioyMVGRkpAoKCvSb3/xGkZGR/hX402120BB2JAOAM2vySjwAAJI0YsQI7d27N6DtX/7lX9SnTx/Nnz9fvXv39m92MGDAAEnfbXawbNmyU76u0+mU0+ls1bEDgO0I8QCAZomNjVVycnJAW8eOHdWlSxd/+7ebHSQlJSkpKUmZmZkBmx0AAJqHEA8AaDWN2ewAANB0DnO6v1I9R1VVVSk+Pl5er5cbPwFotjPdSbo1NGfKDfc5L9zrb4xgvJcROiyMgiGtsXMef9gKAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWCYy2AMAAElyOBzBHgIAANZgJR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsEyLh/iMjAw5HI6Aw+12+88bY5SRkSGPx6Po6GilpqaquLi4pYcBAAAAhKxWWYm/+OKLVVZW5j/27t3rP7d8+XKtWLFC2dnZKiwslNvt1qhRo1RdXd0aQwEAAABCTquE+MjISLndbv/RrVs3Sd+swq9cuVILFy7UhAkTlJycrPXr1+vo0aPKyclpjaEAAAAAIadVQvyHH34oj8ejxMRE3Xzzzfroo48kSSUlJSovL1daWpq/r9Pp1PDhw7V9+/ZTvp7P51NVVVXAAQAIrqysLF122WWKjY1V9+7ddd1112n//v0BfbiEEgBaR4uH+EGDBunZZ5/VX/7yFz399NMqLy/X4MGDdfjwYZWXl0uSXC5XwHNcLpf/XEOysrIUHx/vPxISElp62ACAJiooKNDMmTP19ttvKz8/X8ePH1daWppqamr8fbiEEgBah8MYY1rzC9TU1OiHP/yh5s2bp8svv1xDhgzRp59+qh49evj73HHHHSotLdWf//znBl/D5/PJ5/P5H1dVVSkhIUFer1dxcXGtOXwAbcThcAR7CG2iOVNuVVWV4uPjz/k57/PPP1f37t1VUFCgYcOGyRgjj8ej9PR0zZ8/X9I387nL5dKyZcs0bdq0Rr2uLfUHU7j8/KB1tHIURBM1ds5r9S0mO3bsqL59++rDDz/071Jz8qp7RUVFvdX573M6nYqLiws4AADnFq/XK0nq3LmzJC6hBIDW1Ooh3ufz6f3331ePHj2UmJgot9ut/Px8//na2loVFBRo8ODBrT0UAEArMcZo7ty5Gjp0qJKTkyWJSygBoBW1eIi/9957VVBQoJKSEv3v//6vbrjhBlVVVWny5MlyOBxKT09XZmam8vLytG/fPk2ZMkUxMTGaNGlSSw8FANBGZs2apT179uiFF16od+7kSz2MMae9/GPBggXyer3+o7S0tMXHCwC2i2zpFzx06JBuueUWffHFF+rWrZsuv/xyvf322+rVq5ckad68eTp27JhmzJihyspKDRo0SBs3blRsbGxLDwUA0AZmz56tV155RVu2bFHPnj397d+/hPL7fwfVmEsonU5n6w0YAEJAi4f43Nzc0553OBzKyMhQRkZGS39pAEAbMsZo9uzZysvL05tvvqnExMSA89+/hHLAgAGSvruEctmyZcEYMgCEjBYP8QCA8DBz5kzl5OToD3/4g2JjY/3XucfHxys6OjrgEsqkpCQlJSUpMzOTSygBoAUQ4gEAzbJ69WpJUmpqakD72rVrNWXKFElcQgkAraXV94lvDewZDISecNnnOpT3iW8t4V5/Y4TLzw9ah4VRMKSdM/vEAwAAAGhZhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDLsEw+gQWxZBwDAuYuVeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAykcEeAAAArcXhcLT51zTGtPnXBBB+WIkHAAAALEOIBwAAACzD5TQAAABhjMvO7MRKPAAAAGAZQjwAAABgGUI8AAAAYBlCPAAAAGAZQjwAAABgGUI8AAAAYBlCPAAAAGAZQjwAAABgGW72BABACwrGjXMAhB9W4gEAAADLEOIBAAAAyxDiAQAAAMsQ4gEAAADLEOIBAAAAyxDiAQAAAMsQ4gEAAADLsE88YAH2nQYAAN/HSjwAAABgGUI8AAAAYBlCPAAAAGAZQjwAAABgGUI8AAAAYBlCPAAAAGCZsNxiMhjb9Rlj2vxrAgAAIDSxEg8AAABYhhAPAAAAWIYQDwAAAFgmqCH+ySefVGJiojp06KCUlBRt3bo1mMMBALQS5nsAaFlBC/Evvvii0tPTtXDhQu3atUtXXnmlxowZo4MHDwZrSCHF4XC0+REu+N4CTcN8D+BkwfgsDbXPbocJ0rYpgwYN0qWXXqrVq1f72y688EJdd911ysrKOu1zq6qqFB8fL6/Xq7i4uCZ/bUJR6wiXHXh4/+BsNOfn5GznvGA7m/leOrv6+XkFECzNzUWNnfOCssVkbW2tioqKdP/99we0p6Wlafv27fX6+3w++Xw+/2Ov1yvpmyJx7gjGh+W37wXAFs2Zt759jo3/R7mp873EnA8gNDR3zmrsnB+UEP/FF1+orq5OLpcroN3lcqm8vLxe/6ysLC1atKhee0JCQquNEXaIj48P9hCAJjmb92x1dbV17/mmzvcScz6A0HC28/WZ5vyg3uzp5JVbY0yDq7kLFizQ3Llz/Y9PnDihf/zjH+rSpUuTV3+rqqqUkJCg0tJSK38t3RjhUKNEnaEmHOpsbo3GGFVXV8vj8bTi6FpXY+d7qeXm/HB4T51OuNcv8T2gfjvrb+ycH5QQ37VrV0VERNRbhamoqKi3WiNJTqdTTqczoO2f/umfzmoMcXFxVv2DNkc41ChRZ6gJhzqbU6NtK/Dfaup8L7X8nB8O76nTCff6Jb4H1G9f/Y2Z84OyO01UVJRSUlKUn58f0J6fn6/BgwcHY0gAgFbAfA8ArSNol9PMnTtXP//5zzVw4EBdccUVWrNmjQ4ePKjp06cHa0gAgFbAfA8ALS9oIf6mm27S4cOHtXjxYpWVlSk5OVmvvfaaevXq1apf1+l06le/+lW9X9WGknCoUaLOUBMOdYZDjQ1hvg+OcK9f4ntA/aFdf9D2iQcAAADQPEG7YysAAACA5iHEAwAAAJYhxAMAAACWIcQDAAAAlgmrEP/kk08qMTFRHTp0UEpKirZu3RrsIZ2VrKwsXXbZZYqNjVX37t113XXXaf/+/QF9jDHKyMiQx+NRdHS0UlNTVVxcHKQRn72srCw5HA6lp6f720Klxk8++US33XabunTpopiYGF1yySUqKirynw+FOo8fP64HH3xQiYmJio6OVu/evbV48WKdOHHC38fGOrds2aJx48bJ4/HI4XDo5ZdfDjjfmJp8Pp9mz56trl27qmPHjho/frwOHTrUhlWEnlCb85viTO/JUNaYz8ZQtnr1avXr189/g6MrrrhCr7/+erCHFTQN5YZQETYh/sUXX1R6eroWLlyoXbt26corr9SYMWN08ODBYA+t2QoKCjRz5ky9/fbbys/P1/Hjx5WWlqaamhp/n+XLl2vFihXKzs5WYWGh3G63Ro0aperq6iCOvHkKCwu1Zs0a9evXL6A9FGqsrKzUkCFD1L59e73++ut677339Otf/zrgLpWhUOeyZcv01FNPKTs7W++//76WL1+uRx99VKtWrfL3sbHOmpoa9e/fX9nZ2Q2eb0xN6enpysvLU25urrZt26YjR45o7Nixqqura6syQkoozvlNcab3ZChrzGdjKOvZs6eWLl2qnTt3aufOnbr66qt17bXXnvOLIa3hVLkhZJgw8eMf/9hMnz49oK1Pnz7m/vvvD9KIWl5FRYWRZAoKCowxxpw4ccK43W6zdOlSf5+vvvrKxMfHm6eeeipYw2yW6upqk5SUZPLz883w4cPNnDlzjDGhU+P8+fPN0KFDT3k+VOq85pprzO233x7QNmHCBHPbbbcZY0KjTkkmLy/P/7gxNX355Zemffv2Jjc319/nk08+Me3atTN//vOf22zsoSQc5vzGOvk9GW5O/mwMR506dTK//e1vgz2MNnWq3BBKwmIlvra2VkVFRUpLSwtoT0tL0/bt24M0qpbn9XolSZ07d5YklZSUqLy8PKBup9Op4cOHW1f3zJkzdc0112jkyJEB7aFS4yuvvKKBAwfqxhtvVPfu3TVgwAA9/fTT/vOhUufQoUP1xhtv6IMPPpAkvfvuu9q2bZt++tOfSgqdOr+vMTUVFRXp66+/Dujj8XiUnJxsbd3BFC5zPhrn5M/GcFJXV6fc3FzV1NToiiuuCPZw2tSpckMoCdodW9vSF198obq6OrlcroB2l8ul8vLyII2qZRljNHfuXA0dOlTJycmS5K+toboPHDjQ5mNsrtzcXL3zzjsqLCysdy5Uavzoo4+0evVqzZ07Vw888IB27Nihu+66S06nU7/4xS9Cps758+fL6/WqT58+ioiIUF1dnZYsWaJbbrlFUuj8e35fY2oqLy9XVFSUOnXqVK9PqMxRbSkc5nw0TkOfjeFg7969uuKKK/TVV1/p//2//6e8vDxddNFFwR5WmzldbgglYRHiv+VwOAIeG2Pqtdlq1qxZ2rNnj7Zt21bvnM11l5aWas6cOdq4caM6dOhwyn421yhJJ06c0MCBA5WZmSlJGjBggIqLi7V69Wr94he/8Pezvc4XX3xRGzZsUE5Oji6++GLt3r1b6enp8ng8mjx5sr+f7XU2pDk1hULdwRSK7yM0zek+G0PZj370I+3evVtffvml/vu//1uTJ09WQUFBWAT5xuaGUBAWl9N07dpVERER9VZgKioq6q3U2Gj27Nl65ZVXtHnzZvXs2dPf7na7JcnquouKilRRUaGUlBRFRkYqMjJSBQUF+s1vfqPIyEh/HTbXKEk9evSoN7leeOGF/j/CC4V/S0m67777dP/99+vmm29W37599fOf/1x33323srKyJIVOnd/XmJrcbrdqa2tVWVl5yj5ovFCf89E4p/psDAdRUVH653/+Zw0cOFBZWVnq37+//v3f/z3Yw2oTZ8oNobRZQFiE+KioKKWkpCg/Pz+gPT8/X4MHDw7SqM6eMUazZs3SSy+9pL/+9a9KTEwMOJ+YmCi32x1Qd21trQoKCqype8SIEdq7d692797tPwYOHKhbb71Vu3fvVu/eva2vUZKGDBlSbwu0Dz74QL169ZIUGv+WknT06FG1axc47URERPi3mAyVOr+vMTWlpKSoffv2AX3Kysq0b98+a+sOplCd89E4Z/psDEfGGPl8vmAPo02cKTdEREQEe4gtJyh/ThsEubm5pn379uaZZ54x7733nklPTzcdO3Y0H3/8cbCH1mx33nmniY+PN2+++aYpKyvzH0ePHvX3Wbp0qYmPjzcvvfSS2bt3r7nllltMjx49TFVVVRBHfnZO/ivzUKhxx44dJjIy0ixZssR8+OGH5vnnnzcxMTFmw4YN/j6hUOfkyZPND37wA/Pqq6+akpIS89JLL5muXbuaefPm+fvYWGd1dbXZtWuX2bVrl5FkVqxYYXbt2mUOHDhgjGlcTdOnTzc9e/Y0mzZtMu+88465+uqrTf/+/c3x48eDVZbVQnHOb4ozvSdDWWM+G0PZggULzJYtW0xJSYnZs2ePeeCBB0y7du3Mxo0bgz20oAnV3WnCJsQbY8wTTzxhevXqZaKiosyll15q/XZTkho81q5d6+9z4sQJ86tf/cq43W7jdDrNsGHDzN69e4M36BZw8g9jqNT4xz/+0SQnJxun02n69Olj1qxZE3A+FOqsqqoyc+bMMeedd57p0KGD6d27t1m4cKHx+Xz+PjbWuXnz5gZ/FidPnmyMaVxNx44dM7NmzTKdO3c20dHRZuzYsebgwYNBqCZ0hNqc3xRnek+GssZ8Noay22+/3f++79atmxkxYkRYB3hjQjfEO4wxpu3W/QEAAACcrbC4Jh4AAAAIJYR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAy/x/tPt3FyHDHqgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee      0.0,  87.1,  99.9,  17.1\n",
      "y_ddg    0.00,  1.97,  4.49,  0.74\n",
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Sunoj_JPC_Desc\n",
      "y size: (398,)\n",
      "Skew ee/ddG: -3.54 -0.39\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAF0CAYAAACqrWYXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0oklEQVR4nO3de3hU1b3/8c+Yy5DkhEgSM5PRGGOf1FsCYrAgUggFQqlA1Soq2sIpx0K5SATKRWpP8Gii1ALPEaUHjwUUYzytYq1aS6gQ4KAFAlHAFrFGCJqYSuOEAE64rN8f/tjHIQFyJazJ+/U8+6mz9pqd9WXDyqcrO2tcxhgjAAAAANa4oKMHAAAAAKB5CPEAAACAZQjxAAAAgGUI8QAAAIBlCPEAAACAZQjxAAAAgGUI8QAAAIBlCPEAAACAZQjxAAAAgGUI8QAAAI1Yt26dXC6X1q1bd9a+2dnZys7ObvcxAScR4gEAAADLEOIBAAAAyxDi0Sls2LBBLpdLL7zwQoNzzz77rFwul7Zs2dKka9XW1mrGjBlKS0tTZGSkLr74YuXm5urQoUNB/Ywxeuqpp3TttdcqKipK3bp102233aaPPvqoTWoCgM6uLef2v/3tb/rud7+r6OhoJSYmasKECTp48GCDfsYYzZ8/X6mpqerSpYuuu+46/fGPf2z0mrt27VJOTo6io6N10UUXadKkSXr99deb/IgOcCYuY4zp6EEA58J1112n6Ohobdy4Maj9W9/6liRp8+bNZ73G4cOHdeONN2r//v164IEH1L17d+3atUu/+MUvlJWVpTVr1sjlckmSfvKTn2j58uW67777NGTIEP3zn//UQw89pJqaGr377rvyeDxtXyQAdDJtMbd/9tln6t69uyIiIvTwww/L4/Ho+eef14YNG7Rv3z6tXbvWed49Ly9P8+bN07hx43TbbbepoqJC8+bN0/Hjx3XFFVc44byyslKZmZmKiYnRQw89pKSkJL3wwgvasGGDPv7446BrAi1igE5i2bJlRpLZvn2707Z582YjyaxYsaJJ1ygoKDAXXHCB2bJlS1D77373OyPJvPHGG8YYY95++20jyfzqV78K6ldRUWGioqLMzJkzW1cMAMAY0zZz+6xZs4zL5TJlZWVB7UOGDDGSzNq1a40xxtTU1JguXbqYW265Jajf//7v/xpJZsCAAU7bz372M+NyucyuXbuC+g4dOjTomkBL8TgNOo277rpLSUlJevLJJ522J554QhdddJHuuOOOJl3jtddeU0ZGhq699lodO3bMOYYOHRr049HXXntNLpdL99xzT1A/r9erHj168GNUAGgjbTG3r127Vtdcc4169OgR1D569Oig12+//ba+/PJL3X333UHtffv2VWpqalBbSUmJMjIydPXVVzcYL9AWCPHoNNxut8aPH6/CwkJ98cUX+sc//qH/+Z//0b/927/J7XY36RqfffaZ3nvvPUVERAQdsbGxMsbo888/d/oZY+TxeBr0feedd5x+AIDWaYu5/cCBA/J6vQ3aT207cOBAo+2n69vYY5M8Som2Et7RAwDOpZ/+9Kd69NFH9Zvf/EZffvmljh07pgkTJjT5/YmJiYqKitJvfvOb054/+b8ul0sbNmxo9JtIU7+xAADOrrVze0JCgqqqqhq0n9qWkJDQaPvJtssuuyyo72effXbWawItRYhHp5KcnKzbb79dTz31lOrr6zVixAhdeumlTX7/8OHDlZ+fr4SEBKWlpZ2x36OPPqpPPvlEo0aNaouhAwBOo7Vz+8CBAzV//ny9++67QY/UFBYWBvXr06ePunTpoueff14/+MEPnPZNmzZp7969QSF+wIABevzxx/X+++8HPVJTVFTUggqBhtidBp3O5s2b1bt3b0nSmjVrNGjQoCa/99ChQ/r2t7+tf/zjH7r//vvVvXt3nThxQvv27dPq1as1ffp059rjx4/XypUrNWnSJPXv318xMTGqrKzUxo0blZmZqZ/+9KftUh8AdEatmdurqqrUvXt3RUZGBu1Os379elVUVATtJPPggw/q4Ycf1rhx43T77beroqJCeXl5DXan+fTTT9W9e3dndxqPx6PCwkKtX79ee/fuVUlJifr379/WfwzoRAjx6JTS0tIUFRWl999/v9nvPXTokB599FH99re/VXl5uaKionTppZdq8ODBmjVrVtDzjsuWLdN//dd/aefOnTpx4oR8Pp9uvPFG3XfffcrKymrLkgCg02vN3P7Xv/5VU6dO1YYNGxQdHa1bbrlFI0eO1Pe///2gEG+M0WOPPaannnpKn332ma688ko98sgjevzxxyUpaOOCXbt2KTc3Vxs3bnSu2b9/f40ZM0bvvvuuunfv3hZlo5MixKPTee+999SjRw89+eSTmjhxYkcPBwDQ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AABYg5V4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDKEeAAAAMAyhHgAAADAMoR4AAAAwDJtHuLz8vLkcrmCDq/X65w3xigvL08+n09RUVHKzs7Wrl272noYAAAAQMhql5X4a665RpWVlc6xY8cO59z8+fO1YMECLV68WFu2bJHX69WQIUN08ODB9hgKAAAAEHLaJcSHh4fL6/U6x0UXXSTpq1X4RYsWae7cubr11luVkZGhFStW6PDhwyosLGyPoQAAAAAhp11C/J49e+Tz+ZSWlqY777xTH330kSSpvLxcVVVVysnJcfq63W4NGDBAmzZtao+hAADaSUFBga6//nrFxsYqKSlJN998s3bv3h3Uh0coAaB9tHmI7927t5599ln96U9/0tNPP62qqir17dtXBw4cUFVVlSTJ4/EEvcfj8TjnGhMIBFRbWxt0AAA6VklJiSZNmqR33nlHxcXFOnbsmHJycnTo0CGnD49QAkD7CG/rCw4bNsz578zMTN1www36xje+oRUrVqhPnz6SJJfLFfQeY0yDtq8rKCjQvHnz2nqoAIBWePPNN4NeL1u2TElJSSotLVX//v0bPEIpSStWrJDH41FhYaHGjx/fEcMGgJDQ7ltMxsTEKDMzU3v27HF2qTl11b26urrB6vzXzZkzR36/3zkqKiradcwAgObz+/2SpPj4eEktf4SSn74CwNm1e4gPBAL661//quTkZKWlpcnr9aq4uNg5X19fr5KSEvXt2/e013C73eratWvQAQA4fxhjNG3aNPXr108ZGRmS1OJHKAsKChQXF+ccKSkp7TdwALBUm4f4GTNmqKSkROXl5frLX/6i2267TbW1tRozZoxcLpdyc3OVn5+vVatWaefOnRo7dqyio6M1evToth4KAOAcmTx5st577z298MILDc419xFKfvoKAGfX5s/E79+/X3fddZc+//xzXXTRRerTp4/eeecdpaamSpJmzpypI0eOaOLEiaqpqVHv3r21evVqxcbGtvVQAADnwJQpU/Tqq69q/fr1uuSSS5z2rz9CmZyc7LSf7RFKt9stt9vdfgMGgBDQ5iG+qKjojOddLpfy8vKUl5fX1l8aAHAOGWM0ZcoUrVq1SuvWrVNaWlrQ+a8/QtmzZ09J//cI5WOPPdYRQwaAkNHmIR4A0DlMmjRJhYWF+v3vf6/Y2FjnOfe4uDhFRUUFPUKZnp6u9PR05efn8wglALQBQjwAoEWWLFkiScrOzg5qX7ZsmcaOHSuJRygBoL24jDGmowfRXLW1tYqLi5Pf72enGiBEnOkXHUNJS6bczj7ndfb68X86yzyB0NDSiN3UOa/dt5gEAAAA0LZ4nAYAADQbq+JAx2IlHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAwhHgAAALBMeEcPAMD5yeVydfQQAADAabASDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYht1pAACwHLtJAZ0PK/EAAACAZQjxAAAAgGUI8QAAAIBlCPEAAACAZQjxAAAAgGUI8QAAAIBl2GISsADbxwEAgK9jJR4AAACwDCEeAAAAsAwhHgAAALAMIR4AAACwDCEeAAAAsAy70wAAQhY7OwEIVazEAwAAAJYhxAMAAACW6dAQ/9RTTyktLU1dunRRVlaWNmzY0JHDAQC0E+Z7AGhbHRbiX3zxReXm5mru3Lnavn27vv3tb2vYsGHat29fRw0JreRyuc75QZ3A+Y/5HgDanssYYzriC/fu3VvXXXedlixZ4rRdddVVuvnmm1VQUHDG99bW1iouLk5+v19du3Zt9tfuiFDUQX/M51Rn+XMlVKM1WvJ3trVzXkdrzXwvta5+/r0C6CgtzShNnfM6ZHea+vp6lZaWavbs2UHtOTk52rRpU4P+gUBAgUDAee33+yV9VaQtzvU3kpN/RqGOb9CwTUvmrZPvsXExoLnzvRQacz4AtHTOauqc3yEh/vPPP9fx48fl8XiC2j0ej6qqqhr0Lygo0Lx58xq0p6SktNsYbRcXF9fRQwDQiNb82zx48KB1/7abO99LzPkAQkNr5+uzzfkduk/8qauoxphGV1bnzJmjadOmOa9PnDihf/7zn0pISDjtSmxtba1SUlJUUVFh5Y+fm4t6Qxv1hraz1WuM0cGDB+Xz+TpgdG2jqfO91LI5/+tC8e8PNdkjFOsKxZqk87eups75HRLiExMTFRYW1mAVprq6usFqjSS53W653e6gtgsvvLBJX6tr167n1Y1pb9Qb2qg3tJ2pXttW4E9q7nwvtW7O/7pQ/PtDTfYIxbpCsSbp/KyrKXN+h+xOExkZqaysLBUXFwe1FxcXq2/fvh0xJABAO2C+B4D20WGP00ybNk0//OEP1atXL91www1aunSp9u3bpwkTJnTUkAAA7YD5HgDaXoeF+DvuuEMHDhzQQw89pMrKSmVkZOiNN95Qampqm1zf7Xbr3//93xv8SDZUUW9oo97QFur1tvd8f6pQ/POkJnuEYl2hWJNkf10dtk88AAAAgJbpsE9sBQAAANAyhHgAAADAMoR4AAAAwDKEeAAAAMAyIRnin3rqKaWlpalLly7KysrShg0bOnpIbaKgoEDXX3+9YmNjlZSUpJtvvlm7d+8O6mOMUV5ennw+n6KiopSdna1du3Z10IjbVkFBgVwul3Jzc522UKv3k08+0T333KOEhARFR0fr2muvVWlpqXM+lOo9duyYfv7znystLU1RUVG6/PLL9dBDD+nEiRNOH5vrXb9+vUaMGCGfzyeXy6VXXnkl6HxTagsEApoyZYoSExMVExOjkSNHav/+/eewivNTc+f4kpISZWVlqUuXLrr88sv161//+hyNtHmaU9e6devkcrkaHH/729/O4YjP7Gz/Bhpzvt+r5tZkw31qSrZozPl+r1pSlw33K4gJMUVFRSYiIsI8/fTT5v333zdTp041MTExZu/evR09tFYbOnSoWbZsmdm5c6cpKyszN910k7n00ktNXV2d0+fRRx81sbGx5qWXXjI7duwwd9xxh0lOTja1tbUdOPLW27x5s7nssstM9+7dzdSpU532UKr3n//8p0lNTTVjx441f/nLX0x5eblZs2aN+fDDD50+oVTvww8/bBISEsxrr71mysvLzW9/+1vzL//yL2bRokVOH5vrfeONN8zcuXPNSy+9ZCSZVatWBZ1vSm0TJkwwF198sSkuLjbbtm0zAwcOND169DDHjh07x9WcP5o7x3/00UcmOjraTJ061bz//vvm6aefNhEREeZ3v/vdOR75mTW3rrVr1xpJZvfu3aaystI5zqe/G2f7N3AqG+5Vc2uy4T41JVucyoZ71ZK6bLhfXxdy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",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee      2.0,  88.4,  98.0,  12.1\n",
      "y_ddg    0.02,  1.85,  2.72,  0.52\n",
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " HongAckermann_Desc\n",
      "y size: (127,)\n",
      "Skew ee/ddG: -1.49 -0.54\n"
     ]
    },
    {
     "data": {
      "image/png": "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BQVqbW2NYuWRU1dXp6eeekrZ2dkh7fE47paWFl1zzTXq37+/Vq9erZ07d+rRRx8N+ZXEeBz34sWL9eSTT6q6ulrvvvuuKisr9fOf/1yPPfZYsE88jLutrU2jR49WdXX1Sc93ZoylpaVatWqVVq5cqY0bN+rgwYP6xje+oaNHj/bWMGLGCy+8oNLSUs2bN0/btm3TV7/6VRUVFWnPnj3RLi2mnOl1izPrzHs5Tm/48OFatGiRtmzZoi1btujaa6/VTTfdFHMLNb3KoNc0NzcbScbj8RhjjDl27JhxuVxm0aJFwT6fffaZcTgc5sknn4xWmRHT2tpqMjMzTW1trcnLyzMPPPCAMSZ+xz1nzhwzfvz4U56P13HfeOON5p577glpmzx5srnrrruMMfE5bklm1apVwdudGeOBAwdM//79zcqVK4N9Pv74Y3PWWWeZV199tddqjxVf+cpXzPTp00PaLrroIvPQQw9FqaLY98XXLbrmi+/l6JpzzjnH/PrXv452GZbFCnov8vl8kqTBgwdLkhobG+X1elVYWBjsY7fblZeXp02bNkWlxkgqKSnRjTfeqK997Wsh7fE67pdfflljx47VbbfdptTUVF1xxRV6+umng+fjddzjx4/Xn/70J73//vuSpHfeeUcbN27UDTfcICl+x32izoxx69at+t///d+QPm63W1lZWXHzPERKe3u7tm7dGvJcSVJhYSHPFaLui+/lCM/Ro0e1cuVKtbW1ady4cdEux7J65JdE0ZExRrNmzdL48eOVlZUlSfJ6vZIkp9MZ0tfpdGr37t29XmMkrVy5Um+//bbq6uo6nIvXcX/wwQdaunSpZs2apYcfflhvvfWW7r//ftntdn3nO9+J23HPmTNHPp9PF110kfr166ejR49q4cKFuuOOOyTF73/vE3VmjF6vVwMGDNA555zToc/x++Nzn376qY4ePXrS55PnCtF0svdydM6OHTs0btw4ffbZZzr77LO1atUqXXLJJdEuy7II6L1k5syZ2r59uzZu3NjhnM1mC7ltjOnQFkuampr0wAMPaM2aNRo4cOAp+8XbuI8dO6axY8eqvLxcknTFFVeooaFBS5cu1Xe+851gv3gb9wsvvKAVK1aopqZGl156qerr61VaWiq3263i4uJgv3gb98l0ZYzx+DxESl94zSC2nO69HKd34YUXqr6+XgcOHNB//Md/qLi4WB6Ph5B+Cmxx6QX33XefXn75Zb3xxhsaPnx4sN3lcklShxWh5ubmDitHsWTr1q1qbm7WmDFjlJCQoISEBHk8Hv3qV79SQkJCcGzxNu60tLQOE83FF18c/FJbvP73/tGPfqSHHnpI3/72t3XZZZfp7rvv1g9/+ENVVFRIit9xn6gzY3S5XGpvb1dLS8sp++BzQ4cOVb9+/eL6NYPYc6r3cnTOgAEDdMEFF2js2LGqqKjQ6NGj9ctf/jLaZVkWAb0HGWM0c+ZMvfjii3r99deVkZERcj4jI0Mul0u1tbXBtvb2dnk8HuXm5vZ2uRFz3XXXaceOHaqvrw8eY8eO1Z133qn6+nqdd955cTnua665psOlt95//32NHDlSUvz+9z506JDOOit0KunXr1/wMovxOu4TdWaMY8aMUf/+/UP67N27V3/+85/j5nmIlAEDBmjMmDEhz5Uk1dbW8lyh153pvRxdY4xRIBCIdhnWFZ3vpvYN9957r3E4HGbdunVm7969wePQoUPBPosWLTIOh8O8+OKLZseOHeaOO+4waWlpxu/3R7HyyDvxKi7GxOe433rrLZOQkGAWLlxodu3aZZ577jmTlJRkVqxYEewTj+MuLi42X/7yl80rr7xiGhsbzYsvvmiGDh1qZs+eHewTD+NubW0127ZtM9u2bTOSTFVVldm2bZvZvXu3MaZzY5w+fboZPny4Wbt2rXn77bfNtddea0aPHm2OHDkSrWFZ1sqVK03//v3Nb37zG7Nz505TWlpqBg0aZD788MNolxZTzvS6xZl15r0cpzd37lyzfv1609jYaLZv324efvhhc9ZZZ5k1a9ZEuzTLIqD3IEknPZYtWxbsc+zYMfOzn/3MuFwuY7fbzYQJE8yOHTuiV3QP+WJAj9dx/+d//qfJysoydrvdXHTRReapp54KOR+P4/b7/eaBBx4wI0aMMAMHDjTnnXeemTdvngkEAsE+8TDuN95446T/nouLi40xnRvj4cOHzcyZM83gwYNNYmKi+cY3vmH27NkThdHEhscff9yMHDnSDBgwwFx55ZVc1q4LzvS6xZl15r0cp3fPPfcE/y0PGzbMXHfddYTzM7AZY0zvrdcDAAAAOB32oAMAAAAWQkAHAAAALISADgAAAFgIAR0AAACwEAI6AAAAYCEEdAAAAMBCCOgAAACAhRDQAQAAAAshoAMAAAAWQkAHAAAALISADgAAAFgIAR0AAACwkP8DdYiMXQYxR8cAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee      6.0,  81.5,  99.0,  26.0\n",
      "y_ddg    0.08,  2.20,  3.61,  1.07\n",
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Denmark_OPRD_Desc\n",
      "y size: (471,)\n",
      "Skew ee/ddG: -1.05 -0.60\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAF0CAYAAACqrWYXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAzvUlEQVR4nO3de3hU1b3/8c9IwiThJCMEmcnUAOE8OSIGlJsoUBIfIFRBpRxFuShUewqCSkDlUrwEjiZAFXkKigeOQhQD1gpKrR6JigEaLeHmJVjQmkJUYrzESbiYCFm/P/yx2yEBcplhsjPv1/Psp83aa/Z81x5m5ePOnjUOY4wRAAAAANs4L9QFAAAAAGgYQjwAAABgM4R4AAAAwGYI8QAAAIDNEOIBAAAAmyHEAwAAADZDiAcAAABshhAPAAAA2AwhHgAAALAZQjwAAEAd3nnnHTkcDr3zzjtn7ZuWlqa0tLSg1wScRIgHAAAAbIYQDwAAANgMIR5hYevWrXI4HFq7dm2tfc8++6wcDocKCwvrdayKigrde++9SkpKUuvWrfWzn/1MGRkZOnLkiF8/Y4yefPJJXXbZZYqOjlbbtm11ww036LPPPgvImAAg3AVybv/b3/6mX/ziF4qJiVH79u01efJkVVZW1upnjNGiRYvUqVMnRUVFqVevXnr99dfrPGZRUZHS09MVExOjCy64QFOnTtWf//znet+iA5yJwxhjQl0EcC706tVLMTEx2rZtm1/75ZdfLknavn37WY9x9OhRDRgwQJ9//rl++9vfqkePHioqKtKDDz6o3r17680335TD4ZAk/eY3v9Hq1at19913a+jQofruu+80f/58lZeX6/3335fb7Q78IAEgzARibv/qq6/Uo0cPRUZG6uGHH5bb7dbzzz+vrVu36uDBg9q8ebN1v3tmZqbmzZun22+/XTfccINKSko0b948nThxQhdddJEVzg8dOqTu3burTZs2mj9/vjp06KC1a9dq69at+sc//uF3TKBRDBAmVq1aZSSZ3bt3W23bt283kkxOTk69jpGdnW3OO+88U1hY6Nf+xz/+0Ugyr732mjHGmHfffddIMo899phfv5KSEhMdHW1mzpzZtMEAAIwxgZnbZ82aZRwOh9mzZ49f+9ChQ40ks3nzZmOMMeXl5SYqKsr88pe/9Ov3l7/8xUgyqampVtt9991nHA6HKSoq8us7bNgwv2MCjcXtNAgbY8aMUYcOHfTEE09YbUuXLtUFF1ygm266qV7HePXVV5WSkqLLLrtMx48ft7Zhw4b5/Xn01VdflcPh0Pjx4/36eTweXXrppfwZFQACJBBz++bNm3XJJZfo0ksv9WsfO3as38/vvvuufvjhB40bN86vvX///urUqZNfW35+vlJSUtStW7da9QKBQIhH2HA6nZo0aZJyc3P1/fff6+uvv9Yf/vAH/frXv5bT6azXMb766it98MEHioyM9NtiY2NljNE333xj9TPGyO121+r73nvvWf0AAE0TiLn922+/lcfjqdV+atu3335bZ/vp+tZ12yS3UiJQIkJdAHAu3XHHHVqwYIGeeeYZ/fDDDzp+/LgmT55c78e3b99e0dHReuaZZ067/+T/OhwObd26tc5fIvX9xQIAOLumzu3x8fEqLS2t1X5qW3x8fJ3tJ9s6d+7s1/err7466zGBxiLEI6wkJCToxhtv1JNPPqnq6mpde+216tixY70fP2LECGVlZSk+Pl5JSUln7LdgwQJ98cUXGj16dCBKBwCcRlPn9quuukqLFi3S+++/73dLTW5url+/K664QlFRUXr++ef1n//5n1Z7QUGBDhw44BfiU1NT9eijj2rv3r1+t9SsW7euESMEamN1GoSd7du3q1+/fpKkN998U4MHD673Y48cOaKf//zn+vrrrzV9+nT16NFDNTU1OnjwoDZt2qR77rnHOvakSZO0Zs0aTZ06VYMGDVKbNm106NAhbdu2Td27d9cdd9wRlPEBQDhqytxeWlqqHj16qHXr1n6r02zZskUlJSV+K8k88MADevjhh3X77bfrxhtvVElJiTIzM2utTvPll1+qR48e1uo0brdbubm52rJliw4cOKD8/HwNGjQo0KcBYYQQj7CUlJSk6Oho7d27t8GPPXLkiBYsWKAXX3xRxcXFio6OVseOHTVkyBDNmjXL737HVatW6X/+53/00UcfqaamRl6vVwMGDNDdd9+t3r17B3JIABD2mjK3f/zxx5o2bZq2bt2qmJgY/fKXv9R1112n66+/3i/EG2O0cOFCPfnkk/rqq6/UtWtXPfLII3r00UclyW/hgqKiImVkZGjbtm3WMQcNGqQJEybo/fffV48ePQIxbIQpQjzCzgcffKBLL71UTzzxhKZMmRLqcgAAAWCXuf03v/mN1q5dq2+//VatW7cOdTmwMe6JR9j4+9//rgMHDui3v/2tEhISNHHixFCXBABoouY8t8+fP19er1ddunTR4cOH9eqrr+p///d/df/99xPg0WSEeISN//7v/9Zzzz2niy++WC+++KJiYmKsfcYYnThx4oyPb9WqlfVtrACA5qE5z+2RkZH63e9+p88//1zHjx9XcnKyFi9erGnTpgXl+RBeuJ0G0E/3MF511VVn7LNq1apmdYUHAHBmzO1oyQjxgKTKykrt27fvjH2SkpKsNYIBAM0fcztaMkI8AAAAYDPnhboAAAAAAA1jyw+21tTU6Msvv1RsbCwfNATQ4hljVFlZKa/Xq/POC79rL8z5AMJJfed8W4b4L7/8UomJiaEuAwDOqZKSEl144YWhLuOcY84HEI7ONufbMsTHxsZK+mlwcXFxIa4GAIKroqJCiYmJ1twXbpjzAYST+s75tgzxJ/+cGhcXx4QOIGyE660kzPkAwtHZ5vzwu7kSAAAAsDlCPAAAAGAzhHgAAADAZgjxAAAAgM0Q4gEAAACbIcQDAAAANkOIBwAAAGyGEA8AAADYDCEeAAAAsBlCPAAAAGAzhHgAAADAZgjxAAAAgM1EhLoAAJAkh8Nxzp/TGHPOnxMAzoS5EPXFlXgAAADAZgjxAAAAgM0Q4gEAAACbIcQDAAAANkOIBwAAAGyGEA8AAADYDCEeAAAAsBlCPAAAAGAzhHgAAADAZgjxAAAAgM0Q4gEAAACbIcQDAAAANhMR6gIAAAAQOg6H45w/pzHmnD9nS8OVeAAAAMBmCPEAAACAzTQ4xG/ZskXXXnutvF6vHA6HXn75ZWvfjz/+qFmzZql79+5q06aNvF6vbr31Vn355Zd+x6iqqtJdd92l9u3bq02bNrruuuv0+eefN3kwAAAAQDhocIg/cuSILr30Ui1btqzWvqNHj2rXrl164IEHtGvXLq1fv1779+/Xdddd59cvIyNDGzZs0Lp167Rt2zYdPnxYI0aM0IkTJxo/EgAAACBMOEwTPlngcDi0YcMGjRw58rR9CgsLdfnll+vAgQPq2LGjfD6fLrjgAj333HO66aabJElffvmlEhMT9dprr2nYsGFnfd6Kigq5XC75fD7FxcU1tnwAzQgfrDq9cJ/zwn38CC+hmAtDwS7zbyjUd84L+j3xPp9PDodD559/viRp586d+vHHH5Wenm718Xq9SklJUUFBQZ3HqKqqUkVFhd8GAAAAhKughvgffvhBs2fP1tixY63/kigtLVXr1q3Vtm1bv75ut1ulpaV1Hic7O1sul8vaEhMTg1k2AAAA0KwFLcT/+OOPuvnmm1VTU6Mnn3zyrP2NMaf9E9KcOXPk8/msraSkJNDlAgAAALYRlBD/448/avTo0SouLlZeXp7f/Twej0fV1dUqLy/3e0xZWZncbnedx3M6nYqLi/PbAAAAgHAV8BB/MsB/8sknevPNNxUfH++3v3fv3oqMjFReXp7VdujQIX300Ufq379/oMsBAAAAWpyIhj7g8OHD+vTTT62fi4uLtWfPHrVr105er1c33HCDdu3apVdffVUnTpyw7nNv166dWrduLZfLpdtvv1333HOP4uPj1a5dO917773q3r27hgwZEriRAQAAAC1Ug6/E79ixQz179lTPnj0lSTNmzFDPnj314IMP6vPPP9fGjRv1+eef67LLLlNCQoK1/evKM48//rhGjhyp0aNHa8CAAYqJidGf/vQntWrVKnAjAwAE1fHjx3X//fcrKSlJ0dHR6tKli+bPn6+amhqrjzFGmZmZ8nq9io6OVlpamoqKikJYNQC0DA2+Ep+WlnbGtT3rs+5nVFSUli5dqqVLlzb06QEAzcTChQv11FNPKScnR5dccol27NihX/3qV3K5XJo2bZokadGiRVq8eLFWr16t//iP/9DDDz+soUOHat++fYqNjQ3xCADAvoK+TjwAoGV69913df3112v48OHq3LmzbrjhBqWnp2vHjh2Sfrqos2TJEs2dO1ejRo1SSkqKcnJydPToUeXm5oa4egCwN0I8AKBRBg4cqLfeekv79++XJL3//vvatm2brrnmGkk/fWaqtLTU78v9nE6nUlNTT/vlfgCA+mnw7TQAAEjSrFmz5PP51LVrV7Vq1UonTpzQI488ojFjxkiStbDBqcsHu91uHThw4LTHraqqUlVVlfUz39INALVxJR4A0CgvvPCC1qxZo9zcXO3atUs5OTl69NFHlZOT49fv1C/yO9OX+0l8SzcA1AchHgDQKPfdd59mz56tm2++Wd27d9ctt9yi6dOnKzs7W9JPX+4n/fOK/Eln+nI/iW/pBoD6IMQDABrl6NGjOu88/18jrVq1spaYTEpKksfj8ftyv+rqauXn55/xy/34lm4AODvuiQcA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nDght9vt1+52u1VaWhqiqkLLGKMZM2Zo4MCBSklJkSTrXITjeVq3bp127dql7OzsWvvC9bx89tlnWr58uZKTk/XGG29o8uTJuvvuu/Xss89KCt/zMmvWLI0ZM0Zdu3ZVZGSkevbsqYyMDI0ZM0ZS+J6XYGrMHF5aWlpn/+PHj+ubb745Y59QvE6B+D312GOP6ciRIxo9erTV1rVrV61evVobN27U2rVrFRUVpQEDBuiTTz4JaP1n05jxJSQkaMWKFXrppZe0fv16XXTRRRo8eLC2bNli9Wkur2FTX79Dhw7p9ddf169//Wu/9uby+jWG3d6DTRWK919EQI5iEw6Hw+9nY0yttnBx55136oMPPtC2bdtq7Qu381RSUqJp06Zp06ZNioqKOm2/cDsvNTU16tOnj7KysiT9dDWsqKhIy5cv16233mr1C7fz8sILL2jNmjXKzc3VJZdcoj179igjI0Ner1cTJkyw+oXbeTkXGnpO6+p/antze50aW8/atWuVmZmpV155RR06dLDar7jiCl1xxRXWzwMGDFCvXr20dOlS/f73vw9c4fXUkPFddNFFuuiii6yfr7zySpWUlOjRRx/VoEGDGnXMYGtsLatXr9b555+vkSNH+rU3t9evoez4HmyMUL3/wuJKfPv27dWqVata/2VXVlZW678Aw8Fdd92ljRs3avPmzbrwwgutdo/HI0lhd5527typsrIy9e7dWxEREYqIiFB+fr5+//vfKyIiwhp7uJ2XhIQEdevWza/t4osv1sGDByWF77+X++67T7Nnz9bNN9+s7t2765ZbbtH06dOtv+KE63kJpsbM4R6Pp87+ERERio+PP2OfULxOTfk99cILL+j222/XH/7wh1q3A57qvPPOU9++fc/5ldxA/R6+4oor/GpvLq9hU8ZnjNEzzzyjW265Ra1btz5j31C9fo1ht/dgY4Xy/RcWIb5169bq3bu38vLy/Nrz8vLUv3//EFV17hljdOedd2r9+vV6++23lZSU5Lc/KSlJHo/H7zxVV1crPz+/RZ+nwYMH68MPP9SePXusrU+fPho3bpz27NmjLl26hOV5GTBgQK0lSPfv32/drxmu/16OHj2q887znzpbtWplLTEZruclmBozh1955ZW1+m/atEl9+vRRZGTkGfuE4nVq7O+ptWvXauLEicrNzdXw4cPP+jzGGO3Zs0cJCQlNrrkhAvV7ePfu3X61N5fXsCnjy8/P16effqrbb7/9rM8TqtevMez2HmyMkL//gvaR2Wbm5NJPTz/9tNm7d6/JyMgwbdq08fsUeEt3xx13GJfLZd555x2/pY6OHj1q9VmwYIFxuVxm/fr15sMPPzRjxowJy6Xx/nV1GmPC87xs377dREREmEceecR88skn5vnnnzcxMTFmzZo1Vp9wPC8TJkwwP/vZz6wlJtevX2/at29vZs6cafUJx/MSbGebw2fPnm1uueUWq//J5e2mT59u9u7da55++ulay9v95S9/Ma1atTILFiwwH3/8sVmwYEGzWGKyvmPMzc01ERER5oknnvCb07///nurT2Zmpvm///s/8/e//93s3r3b/OpXvzIRERHmr3/9a7Mf3+OPP242bNhg9u/fbz766CMze/ZsI8m89NJLVp/m9Bo2dHwnjR8/3vTr16/OYzan16+ystLs3r3b7N6920gyixcvNrt377aW0LT7e7Ch42sO77+wCfHGGPPEE0+YTp06mdatW5tevXpZSyuGC0l1bqtWrbL61NTUmIceesh4PB7jdDrNoEGDzIcffhi6okPk1BAfruflT3/6k0lJSTFOp9N07drVrFixwm9/OJ6XiooKM23aNNOxY0cTFRVlunTpYubOnWuqqqqsPuF4Xs6FM83hEyZMMKmpqX7933nnHdOzZ0/TunVr07lzZ7N8+fJax3zxxRfNRRddZCIjI03Xrl39AmIoNGSMqampdc7pEyZMsPpkZGSYjh07mtatW5sLLrjApKenm4KCgnM4In8NGd/ChQvNv//7v5uoqCjTtm1bM3DgQPPnP/+51jGb02vY0H+j33//vYmOjq41t57UnF6/k0t+nu7fm93fgw0dX3N4/zmM+f+fMgAAAABgC2FxTzwAAADQkhDiAQAAAJshxAMAAAA2Q4gHAAAAbIYQDwAAANgMIR4AAACwGUI8AAAAYDOEeAAAAMBmCPEAAACAzRDiAQAAAJshxAMAAAA2Q4gHAAAAbOb/AS3ZmurZSwWeAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee    -17.0,  55.2,  82.3,  20.6\n",
      "y_ddg   -0.19,  0.73,  1.28,  0.31\n",
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Sunoj_DD_2_FP\n",
      "y size: (1027,)\n",
      "Skew ee/ddG: -0.63 0.86\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAF0CAYAAACqrWYXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA2RklEQVR4nO3de3xU1b3///eYy5DQJCUJyWRqiKEnamsAJVgQKSQCwVTgKBbw0jY8pBQqUFKgYLR+DR5L0LbanlLpDUEEDMcKlAptCRUCHPSIQZSEFrFGCDUxSmEmQZxwWb8//DF1SAK5TDLZM6/n47Efh1l7zcxn7Y5r3mdnzd42Y4wRAAAAAMu4ItAFAAAAAGgbQjwAAABgMYR4AAAAwGII8QAAAIDFEOIBAAAAiyHEAwAAABZDiAcAAAAshhAPAAAAWAwhHgAAALAYQjwAAEAzduzYIZvNph07dly2b3Z2trKzszu9JuACQjwAAABgMYR4AAAAwGII8QgJu3btks1m0/PPP99k36pVq2Sz2bR3795WvZbb7db8+fOVnp6uyMhIfeELX1BBQYFOnTrl088Yo6efflrXX3+9oqKi1KtXL33961/Xu+++65cxAUCo8+fc/ve//1233nqroqOjlZiYqBkzZqi+vr5JP2OMnnjiCaWlpalHjx4aOHCg/vSnPzX7mpWVlcrNzVV0dLR69+6tmTNnavPmza1eogNcis0YYwJdBNAVBg4cqOjoaO3evdun/Stf+Yok6bXXXrvsa3z88ce6+eabdezYMT344IPq37+/Kisr9f/+3/9TVlaWtm3bJpvNJkn6zne+o5UrV+p73/ueRo8erX/961969NFHdeLECb355ptKTk72/yABIMT4Y27/4IMP1L9/f0VEROixxx5TcnKy1qxZo127duno0aPavn27d717UVGRFi1apKlTp+rrX/+6qqurtWjRIp07d07XXHONN5zX1NSoX79+6tmzpx599FElJSXp+eef165du/Tee+/5vCbQLgYIEStWrDCSzBtvvOFte+2114wk8+yzz7bqNYqLi80VV1xh9u7d69P++9//3kgyW7ZsMcYY88orrxhJ5qc//alPv+rqahMVFWUWLFjQscEAAIwx/pnbFy5caGw2m9m/f79P++jRo40ks337dmOMMSdOnDA9evQwd9xxh0+///3f/zWSzIgRI7xtP/jBD4zNZjOVlZU+fceMGePzmkB7sZwGIePuu+9WUlKSfvnLX3rbfvGLX6h3796aPHlyq17jpZdeUmZmpq6//nqdPXvWu40ZM8bnz6MvvfSSbDabvvGNb/j0czgcGjBgAH9GBQA/8cfcvn37dl133XUaMGCAT/s999zj8/iVV17RJ598onvvvdenfejQoUpLS/NpKysrU2Zmpr785S83qRfwB0I8Qobdbtf06dO1du1anTx5Uh9++KH+53/+R9/+9rdlt9tb9RoffPCB3nrrLUVERPhsMTExMsboo48+8vYzxig5OblJ31dffdXbDwDQMf6Y248fPy6Hw9Gk/eK248ePN9veUt/mlk2ylBL+Eh7oAoCu9N3vfldLlizRM888o08++URnz57VjBkzWv38xMRERUVF6Zlnnmlx/4X/a7PZtGvXrma/RFr7xQIAuLyOzu0JCQmqra1t0n5xW0JCQrPtF9quuuoqn74ffPDBZV8TaC9CPEJKSkqKJk6cqKefflqNjY0aN26c+vTp0+rnjx07VosXL1ZCQoLS09Mv2W/JkiX65z//qUmTJvmjdABACzo6t+fk5OiJJ57Qm2++6bOkZu3atT79hgwZoh49emjNmjW68847ve179uzRkSNHfEL8iBEj9JOf/EQHDx70WVJTUlLSjhECTXF1GoSc1157TYMHD5Ykbdu2TSNHjmz1c0+dOqWvfvWr+vDDD/X9739f/fv31/nz53X06FFt3bpV8+bN87729OnTtXr1as2cOVPDhw9Xz549VVNTo927d6tfv3767ne/2ynjA4BQ1JG5vba2Vv3791dkZKTP1Wl27typ6upqnyvJPPzww3rsscc0depUTZw4UdXV1SoqKmpydZr3339f/fv3916dJjk5WWvXrtXOnTt15MgRlZWVafjw4f4+DAghhHiEpPT0dEVFRengwYNtfu6pU6e0ZMkSvfDCC6qqqlJUVJT69OmjUaNGaeHChT7rHVesWKFf//rXqqio0Pnz5+V0OnXzzTfre9/7nrKysvw5JAAIeR2Z2//2t79pzpw52rVrl6Kjo3XHHXdo/Pjx+s///E+fEG+M0eOPP66nn35aH3zwga699lr96Ec/0k9+8hNJ8rlwQWVlpQoKCrR7927vaw4fPlz5+fl688031b9/f38MGyGKEI+Q89Zbb2nAgAH65S9/qfvvvz/Q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",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee      0.0,  61.4,  99.0,  27.0\n",
      "y_ddg    0.00,  1.04,  3.14,  0.67\n",
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Sunoj_DD_3_FP\n",
      "y size: (368,)\n",
      "Skew ee/ddG: -2.79 0.03\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAF0CAYAAACqrWYXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvrElEQVR4nO3de3jU1Z3H8c+Yy5CwSUpAZjIlYNhNvQVQg0UDhSAQSgVUqqhoxUd2C3KRiAgi2gZWE4iK7BrFxVpAMeJ2V6xrdZdQMcCiS4ggEF3UNUJQxqiNkwAxkXD2Dx+nDuGSTC7jmXm/nuf31Dm/M5PvtyZnPp788huHMcYIAAAAgDXOCnUBAAAAAFqHEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAAFiGEA8AAABYhhAPAAAAWIYQDwAAcBJvvPGGHA6H3njjjTPOzc7OVnZ2dofXBHyHEA8AAABYhhAPAAAAWIYQj4iwZcsWORwOPf/8883OPfPMM3I4HCorK2vRa9XW1mru3LlKS0tTbGysfvzjHys3N1dHjhwJmGeM0RNPPKGLLrpIcXFx6tatm6699lp99NFH7dITAES69lzb//d//1c///nPFR8frx49emjatGmqq6trNs8Yo8LCQvXp00ddunTRJZdcotdee+2kr1lRUaGcnBzFx8fr7LPP1owZM/SnP/2pxZfoAKfjMMaYUBcBdIZLLrlE8fHx2rp1a8D4T3/6U0nS9u3bz/gaR48e1eDBg3Xw4EHde++96t+/vyoqKvSb3/xGmZmZ2rhxoxwOhyTp17/+tVavXq077rhDo0aN0l/+8hctXrxYNTU1euedd+Ryudq/SQCIMO2xtn/22Wfq37+/YmJi9MADD8jlcum5557Tli1bdODAAW3atMl/vXteXp4WLVqkKVOm6Nprr1VVVZUWLVqkpqYmnXvuuf5wfujQIfXr109du3bV4sWL1bNnTz3//PPasmWLPv7444DXBIJigAixatUqI8ns3LnTP7Z9+3YjyaxZs6ZFr1FQUGDOOussU1ZWFjD+b//2b0aSefXVV40xxrz55ptGknnkkUcC5lVVVZm4uDgzb968tjUDADDGtM/aPn/+fONwOMyuXbsCxkeNGmUkmU2bNhljjKmpqTFdunQx11xzTcC8//7v/zaSzLBhw/xjd999t3E4HKaioiJg7ujRowNeEwgWl9MgYtx4443q2bOnHn/8cf/YY489prPPPlvXX399i17jlVdeUUZGhi666CIdO3bMf4wePTrg16OvvPKKHA6Hbr755oB5brdbAwYM4NeoANBO2mNt37Rpky688EINGDAgYHzSpEkBj9988019/fXXuummmwLGs7Ky1KdPn4Cx0tJSZWRk6IILLmhWL9AeCPGIGE6nU1OnTlVxcbG++uorff755/rXf/1X/f3f/72cTmeLXuOzzz7T7t27FRMTE3AkJCTIGKMvvvjCP88YI5fL1WzuW2+95Z8HAGib9ljbv/zyS7nd7mbjJ459+eWXJx0/1dyTXTbJpZRoL9GhLgDoTLfffruWLFmi3//+9/r666917NgxTZs2rcXP79Gjh+Li4vT73//+lOe/+1+Hw6EtW7ac9E2kpW8sAIAza+va3r17d3m93mbjJ4517979pOPfjZ1zzjkBcz/77LMzviYQLEI8IkpKSoquu+46PfHEE2psbNS4cePUu3fvFj9/7Nixys/PV/fu3ZWWlnbaeUuWLNEnn3yiiRMntkfpAIBTaOvaPnz4cBUWFuqdd94JuKSmuLg4YN5ll12mLl266LnnntMvf/lL//i2bdu0f//+gBA/bNgwPfzww3r33XcDLqlZt25dEB0CzXF3GkSc7du3a9CgQZKkjRs3asSIES1+7pEjR/Szn/1Mn3/+ue688071799fx48f14EDB7Rhwwbddddd/teeOnWq1q5dqxkzZmjo0KHq2rWrDh06pK1bt6pfv366/fbbO6Q/AIhEbVnbvV6v+vfvr9jY2IC702zevFlVVVUBd5K5//779cADD2jKlCm67rrrVFVVpby8vGZ3p/n000/Vv39//91pXC6XiouLtXnzZu3fv1+lpaUaOnRoe//fgAhCiEdESktLU1xcnN59991WP/fIkSNasmSJ/vCHP6iyslJxcXHq3bu3Ro4cqfnz5wdc77hq1Sr9y7/8i/bu3avjx4/L4/Fo8ODBuuOOO5SZmdmeLQFAxGvL2v7ee+9p9uzZ2rJli+Lj43XNNddo/PjxuuqqqwJCvDFGS5cu1RNPPKHPPvtM5513nh588EE9/PDDkhRw44KKigrl5uZq69at/tccOnSoJk+erHfeeUf9+/dvj7YRoQjxiDi7d+/WgAED9Pjjj2v69OmhLgcA0A5s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",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee      0.0,  86.1,  99.9,  17.1\n",
      "y_ddg    0.00,  1.88,  4.50,  0.73\n",
      "\n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " ---------------------------------------------------------------------------------------------------- \n",
      " Denmark_OPRD_FP\n",
      "y size: (471,)\n",
      "Skew ee/ddG: -1.05 -0.60\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAF0CAYAAACqrWYXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAzvUlEQVR4nO3de3hU1b3/8c9IwiThJCMEmcnUAOE8OSIGlJsoUBIfIFRBpRxFuShUewqCSkDlUrwEjiZAFXkKigeOQhQD1gpKrR6JigEaLeHmJVjQmkJUYrzESbiYCFm/P/yx2yEBcplhsjPv1/Psp83aa/Z81x5m5ePOnjUOY4wRAAAAANs4L9QFAAAAAGgYQjwAAABgM4R4AAAAwGYI8QAAAIDNEOIBAAAAmyHEAwAAADZDiAcAAABshhAPAAAA2AwhHgAAALAZQjwAAEAd3nnnHTkcDr3zzjtn7ZuWlqa0tLSg1wScRIgHAAAAbIYQDwAAANgMIR5hYevWrXI4HFq7dm2tfc8++6wcDocKCwvrdayKigrde++9SkpKUuvWrfWzn/1MGRkZOnLkiF8/Y4yefPJJXXbZZYqOjlbbtm11ww036LPPPgvImAAg3AVybv/b3/6mX/ziF4qJiVH79u01efJkVVZW1upnjNGiRYvUqVMnRUVFqVevXnr99dfrPGZRUZHS09MVExOjCy64QFOnTtWf//znet+iA5yJwxhjQl0EcC706tVLMTEx2rZtm1/75ZdfLknavn37WY9x9OhRDRgwQJ9//rl++9vfqkePHioqKtKDDz6o3r17680335TD4ZAk/eY3v9Hq1at19913a+jQofruu+80f/58lZeX6/3335fb7Q78IAEgzARibv/qq6/Uo0cPRUZG6uGHH5bb7dbzzz+vrVu36uDBg9q8ebN1v3tmZqbmzZun22+/XTfccINKSko0b948nThxQhdddJEVzg8dOqTu3burTZs2mj9/vjp06KC1a9dq69at+sc//uF3TKBRDBAmVq1aZSSZ3bt3W23bt283kkxOTk69jpGdnW3OO+88U1hY6Nf+xz/+0Ugyr732mjHGmHfffddIMo899phfv5KSEhMdHW1mzpzZtMEAAIwxgZnbZ82aZRwOh9mzZ49f+9ChQ40ks3nzZmOMMeXl5SYqKsr88pe/9Ov3l7/8xUgyqampVtt9991nHA6HKSoq8us7bNgwv2MCjcXtNAgbY8aMUYcOHfTEE09YbUuXLtUFF1ygm266qV7HePXVV5WSkqLLLrtMx48ft7Zhw4b5/Xn01VdflcPh0Pjx4/36eTweXXrppfwZFQACJBBz++bNm3XJJZfo0ksv9WsfO3as38/vvvuufvjhB40bN86vvX///urUqZNfW35+vlJSUtStW7da9QKBQIhH2HA6nZo0aZJyc3P1/fff6+uvv9Yf/vAH/frXv5bT6azXMb766it98MEHioyM9NtiY2NljNE333xj9TPGyO121+r73nvvWf0AAE0TiLn922+/lcfjqdV+atu3335bZ/vp+tZ12yS3UiJQIkJdAHAu3XHHHVqwYIGeeeYZ/fDDDzp+/LgmT55c78e3b99e0dHReuaZZ067/+T/OhwObd26tc5fIvX9xQIAOLumzu3x8fEqLS2t1X5qW3x8fJ3tJ9s6d+7s1/err7466zGBxiLEI6wkJCToxhtv1JNPPqnq6mpde+216tixY70fP2LECGVlZSk+Pl5JSUln7LdgwQJ98cUXGj16dCBKBwCcRlPn9quuukqLFi3S+++/73dLTW5url+/K664QlFRUXr++ef1n//5n1Z7QUGBDhw44BfiU1NT9eijj2rv3r1+t9SsW7euESMEamN1GoSd7du3q1+/fpKkN998U4MHD673Y48cOaKf//zn+vrrrzV9+nT16NFDNTU1OnjwoDZt2qR77rnHOvakSZO0Zs0aTZ06VYMGDVKbNm106NAhbdu2Td27d9cdd9wRlPEBQDhqytxeWlqqHj16qHXr1n6r02zZskUlJSV+K8k88MADevjhh3X77bfrxhtvVElJiTIzM2utTvPll1+qR48e1uo0brdbubm52rJliw4cOKD8/HwNGjQo0KcBYYQQj7CUlJSk6Oho7d27t8GPPXLkiBYsWKAXX3xRxcXFio6OVseOHTVkyBDNmjXL737HVatW6X/+53/00UcfqaamRl6vVwMGDNDdd9+t3r17B3JIABD2mjK3f/zxx5o2bZq2bt2qmJgY/fKXv9R1112n66+/3i/EG2O0cOFCPfnkk/rqq6/UtWtXPfLII3r00UclyW/hgqKiImVkZGjbtm3WMQcNGqQJEybo/fffV48ePQIxbIQpQjzCzgcffKBLL71UTzzxhKZMmRLqcgAAAWCXuf03v/mN1q5dq2+//VatW7cOdTmwMe6JR9j4+9//rgMHDui3v/2tEhISNHHixFCXBABoouY8t8+fP19er1ddunTR4cOH9eqrr+p///d/df/99xPg0WSEeISN//7v/9Zzzz2niy++WC+++KJiYmKsfcYYnThx4oyPb9WqlfVtrACA5qE5z+2RkZH63e9+p88//1zHjx9XcnKyFi9erGnTpgXl+RBeuJ0G0E/3MF511VVn7LNq1apmdYUHAHBmzO1oyQjxgKTKykrt27fvjH2SkpKsNYIBAM0fcztaMkI8AAAAYDPnhboAAAAAAA1jyw+21tTU6Msvv1RsbCwfNATQ4hljVFlZKa/Xq/POC79rL8z5AMJJfed8W4b4L7/8UomJiaEuAwDOqZKSEl144YWhLuOcY84HEI7ONufbMsTHxsZK+mlwcXFxIa4GAIKroqJCiYmJ1twXbpjzAYST+s75tgzxJ/+cGhcXx4QOIGyE660kzPkAwtHZ5vzwu7kSAAAAsDlCPAAAAGAzhHgAAADAZgjxAAAAgM0Q4gEAAACbIcQDAAAANkOIBwAAAGyGEA8AAADYDCEeAAAAsBlCPAAAAGAzhHgAAADAZgjxAAAAgM1EhLoAAJAkh8Nxzp/TGHPOnxMAzoS5EPXFlXgAAADAZgjxAAAAgM0Q4gEAAACbIcQDAAAANkOIBwAAAGyGEA8AAADYDCEeAAAAsBlCPAAAAGAzhHgAAADAZgjxAAAAgM0Q4gEAAACbIcQDAAAANhMR6gIAAAAQOg6H45w/pzHmnD9nS8OVeAAAAMBmCPEAAACAzTQ4xG/ZskXXXnutvF6vHA6HXn75ZWvfjz/+qFmzZql79+5q06aNvF6vbr31Vn355Zd+x6iqqtJdd92l9u3bq02bNrruuuv0+eefN3kwAAAAQDhocIg/cuSILr30Ui1btqzWvqNHj2rXrl164IEHtGvXLq1fv1779+/Xdddd59cvIyNDGzZs0Lp167Rt2zYdPnxYI0aM0IkTJxo/EgAAACBMOEwTPlngcDi0YcMGjRw58rR9CgsLdfnll+vAgQPq2LGjfD6fLrjgAj333HO66aabJElffvmlEhMT9dprr2nYsGFnfd6Kigq5XC75fD7FxcU1tnwAzQgfrDq9cJ/zwn38CC+hmAtDwS7zbyjUd84L+j3xPp9PDodD559/viRp586d+vHHH5Wenm718Xq9SklJUUFBQZ3HqKqqUkVFhd8GAAAAhKughvgffvhBs2fP1tixY63/kigtLVXr1q3Vtm1bv75ut1ulpaV1Hic7O1sul8vaEhMTg1k2AAAA0KwFLcT/+OOPuvnmm1VTU6Mnn3zyrP2NMaf9E9KcOXPk8/msraSkJNDlAgAAALYRlBD/448/avTo0SouLlZeXp7f/Twej0fV1dUqLy/3e0xZWZncbnedx3M6nYqLi/PbAAAAgHAV8BB/MsB/8sknevPNNxUfH++3v3fv3oqMjFReXp7VdujQIX300Ufq379/oMsBAAAAWpyIhj7g8OHD+vTTT62fi4uLtWfPHrVr105er1c33HCDdu3apVdffVUnTpyw7nNv166dWrduLZfLpdtvv1333HOP4uPj1a5dO917773q3r27hgwZEriRAQAAAC1Ug6/E79ixQz179lTPnj0lSTNmzFDPnj314IMP6vPPP9fGjRv1+eef67LLLlNCQoK1/evKM48//rhGjhyp0aNHa8CAAYqJidGf/vQntWrVKnAjAwAE1fHjx3X//fcrKSlJ0dHR6tKli+bPn6+amhqrjzFGmZmZ8nq9io6OVlpamoqKikJYNQC0DA2+Ep+WlnbGtT3rs+5nVFSUli5dqqVLlzb06QEAzcTChQv11FNPKScnR5dccol27NihX/3qV3K5XJo2bZokadGiRVq8eLFWr16t//iP/9DDDz+soUOHat++fYqNjQ3xCADAvoK+TjwAoGV69913df3112v48OHq3LmzbrjhBqWnp2vHjh2Sfrqos2TJEs2dO1ejRo1SSkqKcnJydPToUeXm5oa4egCwN0I8AKBRBg4cqLfeekv79++XJL3//vvatm2brrnmGkk/fWaqtLTU78v9nE6nUlNTT/vlfgCA+mnw7TQAAEjSrFmz5PP51LVrV7Vq1UonTpzQI488ojFjxkiStbDBqcsHu91uHThw4LTHraqqUlVVlfUz39INALVxJR4A0CgvvPCC1qxZo9zcXO3atUs5OTl69NFHlZOT49fv1C/yO9OX+0l8SzcA1AchHgDQKPfdd59mz56tm2++Wd27d9ctt9yi6dOnKzs7W9JPX+4n/fOK/Eln+nI/iW/pBoD6IMQDABrl6NGjOu88/18jrVq1spaYTEpKksfj8ftyv+rqauXn55/xy/34lm4AODvuiQcA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nDght9vt1+52u1VaWhqiqkLLGKMZM2Zo4MCBSklJkSTrXITjeVq3bp127dql7OzsWvvC9bx89tlnWr58uZKTk/XGG29o8uTJuvvuu/Xss89KCt/zMmvWLI0ZM0Zdu3ZVZGSkevbsqYyMDI0ZM0ZS+J6XYGrMHF5aWlpn/+PHj+ubb745Y59QvE6B+D312GOP6ciRIxo9erTV1rVrV61evVobN27U2rVrFRUVpQEDBuiTTz4JaP1n05jxJSQkaMWKFXrppZe0fv16XXTRRRo8eLC2bNli9Wkur2FTX79Dhw7p9ddf169//Wu/9uby+jWG3d6DTRWK919EQI5iEw6Hw+9nY0yttnBx55136oMPPtC2bdtq7Qu381RSUqJp06Zp06ZNioqKOm2/cDsvNTU16tOnj7KysiT9dDWsqKhIy5cv16233mr1C7fz8sILL2jNmjXKzc3VJZdcoj179igjI0Ner1cTJkyw+oXbeTkXGnpO6+p/antze50aW8/atWuVmZmpV155RR06dLDar7jiCl1xxRXWzwMGDFCvXr20dOlS/f73vw9c4fXUkPFddNFFuuiii6yfr7zySpWUlOjRRx/VoEGDGnXMYGtsLatXr9b555+vkSNH+rU3t9evoez4HmyMUL3/wuJKfPv27dWqVata/2VXVlZW678Aw8Fdd92ljRs3avPmzbrwwgutdo/HI0lhd5527typsrIy9e7dWxEREYqIiFB+fr5+//vfKyIiwhp7uJ2XhIQEdevWza/t4osv1sGDByWF77+X++67T7Nnz9bNN9+s7t2765ZbbtH06dOtv+KE63kJpsbM4R6Pp87+ERERio+PP2OfULxOTfk99cILL+j222/XH/7wh1q3A57qvPPOU9++fc/5ldxA/R6+4oor/GpvLq9hU8ZnjNEzzzyjW265Ra1btz5j31C9fo1ht/dgY4Xy/RcWIb5169bq3bu38vLy/Nrz8vLUv3//EFV17hljdOedd2r9+vV6++23lZSU5Lc/KSlJHo/H7zxVV1crPz+/RZ+nwYMH68MPP9SePXusrU+fPho3bpz27NmjLl26hOV5GTBgQK0lSPfv32/drxmu/16OHj2q887znzpbtWplLTEZruclmBozh1955ZW1+m/atEl9+vRRZGTkGfuE4nVq7O+ptWvXauLEicrNzdXw4cPP+jzGGO3Zs0cJCQlNrrkhAvV7ePfu3X61N5fXsCnjy8/P16effqrbb7/9rM8TqtevMez2HmyMkL//gvaR2Wbm5NJPTz/9tNm7d6/JyMgwbdq08fsUeEt3xx13GJfLZd555x2/pY6OHj1q9VmwYIFxuVxm/fr15sMPPzRjxowJy6Xx/nV1GmPC87xs377dREREmEceecR88skn5vnnnzcxMTFmzZo1Vp9wPC8TJkwwP/vZz6wlJtevX2/at29vZs6cafUJx/MSbGebw2fPnm1uueUWq//J5e2mT59u9u7da55++ulay9v95S9/Ma1atTILFiwwH3/8sVmwYEGzWGKyvmPMzc01ERER5oknnvCb07///nurT2Zmpvm///s/8/e//93s3r3b/OpXvzIRERHmr3/9a7Mf3+OPP242bNhg9u/fbz766CMze/ZsI8m89NJLVp/m9Bo2dHwnjR8/3vTr16/OYzan16+ystLs3r3b7N6920gyixcvNrt377aW0LT7e7Ch42sO77+wCfHGGPPEE0+YTp06mdatW5tevXpZSyuGC0l1bqtWrbL61NTUmIceesh4PB7jdDrNoEGDzIcffhi6okPk1BAfruflT3/6k0lJSTFOp9N07drVrFixwm9/OJ6XiooKM23aNNOxY0cTFRVlunTpYubOnWuqqqqsPuF4Xs6FM83hEyZMMKmpqX7933nnHdOzZ0/TunVr07lzZ7N8+fJax3zxxRfNRRddZCIjI03Xrl39AmIoNGSMqampdc7pEyZMsPpkZGSYjh07mtatW5sLLrjApKenm4KCgnM4In8NGd/ChQvNv//7v5uoqCjTtm1bM3DgQPPnP/+51jGb02vY0H+j33//vYmOjq41t57UnF6/k0t+nu7fm93fgw0dX3N4/zmM+f+fMgAAAABgC2FxTzwAAADQkhDiAQAAAJshxAMAAAA2Q4gHAAAAbIYQDwAAANgMIR4AAACwGUI8AAAAYDOEeAAAAMBmCPEAAACAzRDiAQAAAJshxAMAAAA2Q4gHAAAAbOb/AS3ZmurZSwWeAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          min,  mean,   max, stdev\n",
      "y_ee    -17.0,  55.2,  82.3,  20.6\n",
      "y_ddg   -0.19,  0.73,  1.28,  0.31\n"
     ]
    }
   ],
   "source": [
    "raw_data = {}\n",
    "y_ee_all = {}\n",
    "y_ddg_all = {}\n",
    "for dataset in settings.keys():\n",
    "    print(\"\\n\",\"-\"*100,\"\\n\",\"-\"*100,\"\\n\",dataset)\n",
    "    \n",
    "    filefolder = settings[dataset][\"filefolder\"]\n",
    "    filename = settings[dataset][\"filename\"]\n",
    "    y_column = settings[dataset][\"y_column\"]\n",
    "    origdomain = settings[dataset][\"origdomain\"]    \n",
    "    \n",
    "#     if filename.split(\".\")[-1] == \"xlsx\":\n",
    "#         sheet_name = settings[dataset][\"sheet_name\"]\n",
    "#         df = pd.read_excel(filefolder+filename,index_col=0,sheet_name=sheet_name)\n",
    "    if filename.split(\".\")[-1] == \"csv\":\n",
    "#         sep = settings[dataset][\"sep\"]\n",
    "        df = pd.read_csv(filefolder+filename,index_col=0,sep=sep)\n",
    "\n",
    "    if type(settings[dataset][\"T\"]) == int:\n",
    "        T_vect = pd.Series(np.ones(df.shape[0]) * settings[dataset][\"T\"],index=df.index)\n",
    "#         T_vect = np.ones(df.shape[0]) * settings[dataset][\"T\"]\n",
    "        \n",
    "    elif type(settings[dataset][\"T\"]) == str:\n",
    "        T_vect = df[settings[dataset][\"T\"]]\n",
    "        \n",
    "    if origdomain == \"ddg\":\n",
    "        y_ddg = df[y_column]\n",
    "        y_ee = g2ee(y_ddg,T_vect)\n",
    "\n",
    "    elif origdomain == \"ee\":\n",
    "        y_ee = df[y_column]\n",
    "        y_ddg = ee2g(y_ee,T_vect)\n",
    "\n",
    "    cols = df.columns\n",
    "    indices = df.index\n",
    "\n",
    "    raw_data[dataset] = df\n",
    "    y_ee_all[dataset] = y_ee\n",
    "    y_ddg_all[dataset] = y_ddg\n",
    "    skew_scores[dataset] = (skew(np.abs(y_ee)),skew(np.abs(y_ddg)))    \n",
    "\n",
    "    print(f\"y size: {y_ee.shape}\")        \n",
    "    print(f\"Skew ee/ddG: {skew(np.abs(y_ee)):.2f} {skew(np.abs(y_ddg)):.2f}\")\n",
    "\n",
    "    plt.figure(figsize=(9,4))\n",
    "    plt.subplot(1,2,1)\n",
    "    plt.hist(np.abs(y_ee), color=\"black\")\n",
    "    plt.title(\"y_ee\")\n",
    "    # plt.show()\n",
    "\n",
    "    plt.subplot(1,2,2)\n",
    "    plt.hist(np.abs(y_ddg), color=\"black\")\n",
    "    plt.title(\"y_ddg\")\n",
    "    plt.show()\n",
    "\n",
    "    print(f\"{'min':>13},{'mean':>6},{'max':>6},{'stdev':>6}\")\n",
    "    print(f\"{'y_ee':<6} {y_ee.min():>6.1f},{y_ee.mean():>6.1f},{y_ee.max():>6.1f},{y_ee.std():>6.1f}\")\n",
    "    print(f\"{'y_ddg':<6} {y_ddg.min():>6.2f},{y_ddg.mean():>6.2f},{y_ddg.max():>6.2f},{y_ddg.std():>6.2f}\")\n",
    "    # print(f\"y_ddg,y_ddg.min().round(2),y_ddg.mean().round(2),y_ddg.max().round(2),y_ddg.std().round(2)\")\n",
    "\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "d36137f5",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T18:22:09.916287Z",
     "start_time": "2023-04-17T18:22:09.890260Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "average skew y_ee  -1.46\n",
      "average skew y_ddg -0.02\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>y_ee</th>\n",
       "      <th>y_ddg</th>\n",
       "      <th>diff</th>\n",
       "      <th>N</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Doyle_Desc</th>\n",
       "      <td>-0.01</td>\n",
       "      <td>0.28</td>\n",
       "      <td>0.29</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Denmark_OPRD_Desc</th>\n",
       "      <td>-1.05</td>\n",
       "      <td>-0.60</td>\n",
       "      <td>0.44</td>\n",
       "      <td>471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Denmark_OPRD_FP</th>\n",
       "      <td>-1.05</td>\n",
       "      <td>-0.60</td>\n",
       "      <td>0.44</td>\n",
       "      <td>471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Toste_Desc</th>\n",
       "      <td>-0.15</td>\n",
       "      <td>0.40</td>\n",
       "      <td>0.55</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HongAckermann_Desc</th>\n",
       "      <td>-1.49</td>\n",
       "      <td>-0.54</td>\n",
       "      <td>0.96</td>\n",
       "      <td>127</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Biscoe_Desc</th>\n",
       "      <td>-0.67</td>\n",
       "      <td>0.35</td>\n",
       "      <td>1.02</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunoj_DD_2_FP</th>\n",
       "      <td>-0.63</td>\n",
       "      <td>0.86</td>\n",
       "      <td>1.49</td>\n",
       "      <td>1027</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunoj_DD_3_FP</th>\n",
       "      <td>-2.79</td>\n",
       "      <td>0.03</td>\n",
       "      <td>2.82</td>\n",
       "      <td>368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunoj_JPC_Desc</th>\n",
       "      <td>-3.54</td>\n",
       "      <td>-0.39</td>\n",
       "      <td>3.15</td>\n",
       "      <td>398</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunoj_Desc</th>\n",
       "      <td>-3.24</td>\n",
       "      <td>-0.04</td>\n",
       "      <td>3.20</td>\n",
       "      <td>371</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    y_ee  y_ddg  diff     N\n",
       "Doyle_Desc         -0.01   0.28  0.29    29\n",
       "Denmark_OPRD_Desc  -1.05  -0.60  0.44   471\n",
       "Denmark_OPRD_FP    -1.05  -0.60  0.44   471\n",
       "Toste_Desc         -0.15   0.40  0.55    37\n",
       "HongAckermann_Desc -1.49  -0.54  0.96   127\n",
       "Biscoe_Desc        -0.67   0.35  1.02    24\n",
       "Sunoj_DD_2_FP      -0.63   0.86  1.49  1027\n",
       "Sunoj_DD_3_FP      -2.79   0.03  2.82   368\n",
       "Sunoj_JPC_Desc     -3.54  -0.39  3.15   398\n",
       "Sunoj_Desc         -3.24  -0.04  3.20   371"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "df = pd.DataFrame.from_dict(skew_scores,orient=\"index\", columns = [\"y_ee\",\"y_ddg\"])\n",
    "#display(df.round(2))\n",
    "\n",
    "print(\"average skew y_ee \",df[\"y_ee\"].mean().round(2))\n",
    "print(\"average skew y_ddg\",df[\"y_ddg\"].mean().round(2))\n",
    "\n",
    "\n",
    "df[\"diff\"] = abs(df[\"y_ee\"] - df[\"y_ddg\"])\n",
    "for dataset in df.index:\n",
    "    df.loc[dataset,\"N\"] = raw_data[dataset].shape[0]\n",
    "df[\"N\"] = df[\"N\"].astype(int)\n",
    "display(df.sort_values(by=\"diff\").round(2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "dd5a55d3",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T18:20:20.078477Z",
     "start_time": "2023-04-17T18:20:19.917479Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "y size: (1457,)\n",
      "Skew ee/ddG: -1.25 0.38\n"
     ]
    },
    {
     "data": {
      "image/png": "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4IMPdNttt+mOO+7wBvWlS5dq+fLlWrFihQoLC+VwODRixAhVV1d7X4P1kQAQGO655x7dfvvtSk1N1ZgxY/TOO+/o008/1dtvv33B5xljZLPZzns9JydHdrvdeyQlJbV11wHA8poV4seMGaPvf//7uuqqq3TVVVfpiSee0GWXXaZdu3bJGKOnn35aixYt0vjx45Wamqo1a9bo5MmTWr9+vaR/ro9ctmyZhg8frn79+mndunUqKSnR5s2b26VAAEDHSExMVM+ePXXgwAFJksPhUF1dnSorK33aVVRUKCEh4byvs2DBArndbu9RVlbWrv0GACtq8Zr4+vp65ebmqqamRgMHDlRpaalcLpfP2seIiAgNGTLEu/aR9ZEAELiOHTumsrIyJSYmSpLS0tIUFham/Px8b5vy8nLt3btXgwYNOu/rREREeJdtfn0AAHw1e3eakpISDRw4UKdOndJll12mvLw8XXvttd4Qfu7sSkJCgg4ePCipdesjv15jKYn1kQDQAU6cOKG//vWv3selpaUqLi5WTEyMYmJilJWVpbvuukuJiYn6/PPPtXDhQsXFxenOO++UJNntdk2ZMkVz5sxRbGysYmJiNHfuXPXu3du7Ww0AoGWaHeJ79eql4uJiHT9+XL///e+VkZGhgoIC7/Vz1zlebO1jU9rk5OTo0UcfbW5XAQCt8MEHH+jWW2/1Pp49e7YkKSMjQytXrlRJSYlefvllHT9+XImJibr11lv12muvKTo62vucp556SqGhoZowYYJqa2s1bNgwrV69WiEhIR1eDwAEEpsxxrTmBYYPH64rr7xS8+fP15VXXqkPP/xQ/fr1816/44479I1vfENr1qzRe++9p2HDhumrr77ymY3v27evxo0bd96g3thMfFJSktxuN79mBdBiF5tgaA8tGXKrqqpkt9uDdsyzWv3+eF+hfbQyIgEt0tQxr9X7xBtj5PF4lJycLIfD4bP2sa6uTgUFBd61j6yPBAAAAFqvWctpFi5cqFGjRikpKUnV1dXKzc3V1q1btXHjRtlsNmVmZio7O1spKSlKSUlRdna2oqKiNHHiREmsjwQAAADaQrNC/NGjR3X//fervLxcdrtdffr00caNGzVixAhJ0rx581RbW6vp06ersrJSAwYM0KZNm1gfCQAAALShVq+J9werrY8EcGliTbw1WK1+1sQHDgtGJASA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",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_ee_combine = pd.concat([y_ee_all[k] for k in y_ee_all.keys() if \"_Desc\" in k])\n",
    "y_ddg_combine = pd.concat([y_ddg_all[k] for k in y_ee_all.keys() if \"_Desc\" in k])\n",
    "\n",
    "print(f\"y size: {y_ee_combine.shape}\")        \n",
    "print(f\"Skew ee/ddG: {skew(np.abs(y_ee_combine)):.2f} {skew(np.abs(y_ddg_combine)):.2f}\")\n",
    "\n",
    "plt.figure(figsize=(9,4))\n",
    "plt.subplot(1,2,1)\n",
    "plt.hist(np.abs(y_ee_combine), color=\"black\",bins=10)\n",
    "plt.title(\"y_ee\")\n",
    "# plt.show()\n",
    "\n",
    "plt.subplot(1,2,2)\n",
    "plt.hist(np.abs(y_ddg_combine), color=\"black\",bins=10)\n",
    "plt.title(\"y_ddg\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1e6e302a",
   "metadata": {},
   "source": [
    "# Aggregate modeling results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "3ff4c275",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-14T13:04:10.575614Z",
     "start_time": "2023-04-14T13:04:10.570613Z"
    }
   },
   "outputs": [],
   "source": [
    "with open(\"datasets_23_04_12.p\",\"rb\") as f:\n",
    "    datasets = pickle.load(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "id": "c512c54b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T19:26:00.453334Z",
     "start_time": "2023-04-17T19:26:00.446334Z"
    }
   },
   "outputs": [],
   "source": [
    "overview = pd.DataFrame(\n",
    "        columns = pd.MultiIndex.from_product(([\"ee\",\"ee2ddg\",\"ddg\"],[\"Model\",\"R2_test\",\"RMSE_test\",\"MAErel_test\"])),)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "id": "78fcb9a5",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T19:26:01.215899Z",
     "start_time": "2023-04-17T19:26:01.181899Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Toste_Desc\n",
      "Biscoe_Desc\n",
      "Doyle_Desc\n",
      "Sunoj_DD_3_FP\n"
     ]
    }
   ],
   "source": [
    "for dataset,df in datasets.items():\n",
    "    print(dataset)\n",
    "    for domain in [\"ee\",\"ee2ddg\",\"ddg\"]:\n",
    "        top = df.idxmin()        \n",
    "        topmodel = top[(domain,\"MAErel_test\")]\n",
    "        overview.loc[dataset,(domain,\"Model\")] = topmodel\n",
    "        overview.loc[dataset,(domain,\"R2_test\")] = df.loc[topmodel,(domain,\"R2_test\")]\n",
    "        overview.loc[dataset,(domain,\"RMSE_test\")] = df.loc[topmodel,(domain,\"RMSE_test\")]\n",
    "        overview.loc[dataset,(domain,\"MAErel_test\")] = df.loc[topmodel,(domain,\"MAErel_test\")]\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "d81372a6",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-14T13:04:52.622960Z",
     "start_time": "2023-04-14T13:04:52.593962Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"3\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"3\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"3\" halign=\"left\">ddg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>Model</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>Model</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>Model</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Sunoj_DD_3_FP</th>\n",
       "      <td>ElasticNetCV</td>\n",
       "      <td>0.426861</td>\n",
       "      <td>13.267378</td>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.466405</td>\n",
       "      <td>0.512668</td>\n",
       "      <td>RandomForestRegressor_CV_rs</td>\n",
       "      <td>0.469045</td>\n",
       "      <td>0.511398</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunoj_DD_2_FP</th>\n",
       "      <td>GradientBoostingRegressor_CV_rs</td>\n",
       "      <td>0.949398</td>\n",
       "      <td>6.274202</td>\n",
       "      <td>GradientBoostingRegressor_CV_hrs2</td>\n",
       "      <td>0.920123</td>\n",
       "      <td>0.199768</td>\n",
       "      <td>GradientBoostingRegressor_CV_rs</td>\n",
       "      <td>0.931651</td>\n",
       "      <td>0.184792</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Denmark_OPRD_FP</th>\n",
       "      <td>GradientBoostingRegressor_CV_rs</td>\n",
       "      <td>0.667353</td>\n",
       "      <td>11.829671</td>\n",
       "      <td>GradientBoostingRegressor_CV_rs</td>\n",
       "      <td>0.690962</td>\n",
       "      <td>0.169679</td>\n",
       "      <td>GradientBoostingRegressor_CV_hrs2</td>\n",
       "      <td>0.690296</td>\n",
       "      <td>0.169862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Toste_desc</th>\n",
       "      <td>KernelRidge_poly_CV</td>\n",
       "      <td>0.6721</td>\n",
       "      <td>14.070099</td>\n",
       "      <td>KernelRidge_poly_CV</td>\n",
       "      <td>0.679613</td>\n",
       "      <td>0.214737</td>\n",
       "      <td>GaussianProcess_CV</td>\n",
       "      <td>0.671405</td>\n",
       "      <td>0.21747</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Biscoe_desc</th>\n",
       "      <td>GradientBoostingRegressor_CV_hrs2</td>\n",
       "      <td>0.461047</td>\n",
       "      <td>14.174057</td>\n",
       "      <td>KernelRidge_poly_CV</td>\n",
       "      <td>0.490594</td>\n",
       "      <td>0.761834</td>\n",
       "      <td>LassoCV</td>\n",
       "      <td>0.938814</td>\n",
       "      <td>0.264032</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunoj_desc</th>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.124873</td>\n",
       "      <td>16.094713</td>\n",
       "      <td>GradientBoostingRegressor_CV_hrs2</td>\n",
       "      <td>-0.073698</td>\n",
       "      <td>0.755097</td>\n",
       "      <td>GradientBoostingRegressor_CV_rs</td>\n",
       "      <td>0.333039</td>\n",
       "      <td>0.595131</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HongAckermann_desc</th>\n",
       "      <td>GradientBoostingRegressor_CV_hrs2</td>\n",
       "      <td>0.774326</td>\n",
       "      <td>9.761245</td>\n",
       "      <td>GradientBoostingRegressor_CV_hrs2</td>\n",
       "      <td>0.630685</td>\n",
       "      <td>0.532373</td>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.830299</td>\n",
       "      <td>0.360877</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunoj_JPC_desc</th>\n",
       "      <td>KernelRidge_poly_CV</td>\n",
       "      <td>0.714382</td>\n",
       "      <td>6.818052</td>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.651651</td>\n",
       "      <td>0.282768</td>\n",
       "      <td>KernelRidge_poly_CV</td>\n",
       "      <td>0.597843</td>\n",
       "      <td>0.303823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Denmark_OPRD_desc</th>\n",
       "      <td>GradientBoostingRegressor_CV_hrs1</td>\n",
       "      <td>0.717082</td>\n",
       "      <td>10.909656</td>\n",
       "      <td>RandomForestRegressor_CV_rs</td>\n",
       "      <td>0.727717</td>\n",
       "      <td>0.15927</td>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.709566</td>\n",
       "      <td>0.164493</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                   ee                       \\\n",
       "                                                Model   R2_test  RMSE_test   \n",
       "Sunoj_DD_3_FP                            ElasticNetCV  0.426861  13.267378   \n",
       "Sunoj_DD_2_FP         GradientBoostingRegressor_CV_rs  0.949398   6.274202   \n",
       "Denmark_OPRD_FP       GradientBoostingRegressor_CV_rs  0.667353  11.829671   \n",
       "Toste_desc                        KernelRidge_poly_CV    0.6721  14.070099   \n",
       "Biscoe_desc         GradientBoostingRegressor_CV_hrs2  0.461047  14.174057   \n",
       "Sunoj_desc                  ExtraTreesRegressor_CV_rs  0.124873  16.094713   \n",
       "HongAckermann_desc  GradientBoostingRegressor_CV_hrs2  0.774326   9.761245   \n",
       "Sunoj_JPC_desc                    KernelRidge_poly_CV  0.714382   6.818052   \n",
       "Denmark_OPRD_desc   GradientBoostingRegressor_CV_hrs1  0.717082  10.909656   \n",
       "\n",
       "                                               ee2ddg                      \\\n",
       "                                                Model   R2_test RMSE_test   \n",
       "Sunoj_DD_3_FP               ExtraTreesRegressor_CV_rs  0.466405  0.512668   \n",
       "Sunoj_DD_2_FP       GradientBoostingRegressor_CV_hrs2  0.920123  0.199768   \n",
       "Denmark_OPRD_FP       GradientBoostingRegressor_CV_rs  0.690962  0.169679   \n",
       "Toste_desc                        KernelRidge_poly_CV  0.679613  0.214737   \n",
       "Biscoe_desc                       KernelRidge_poly_CV  0.490594  0.761834   \n",
       "Sunoj_desc          GradientBoostingRegressor_CV_hrs2 -0.073698  0.755097   \n",
       "HongAckermann_desc  GradientBoostingRegressor_CV_hrs2  0.630685  0.532373   \n",
       "Sunoj_JPC_desc              ExtraTreesRegressor_CV_rs  0.651651  0.282768   \n",
       "Denmark_OPRD_desc         RandomForestRegressor_CV_rs  0.727717   0.15927   \n",
       "\n",
       "                                                  ddg                      \n",
       "                                                Model   R2_test RMSE_test  \n",
       "Sunoj_DD_3_FP             RandomForestRegressor_CV_rs  0.469045  0.511398  \n",
       "Sunoj_DD_2_FP         GradientBoostingRegressor_CV_rs  0.931651  0.184792  \n",
       "Denmark_OPRD_FP     GradientBoostingRegressor_CV_hrs2  0.690296  0.169862  \n",
       "Toste_desc                         GaussianProcess_CV  0.671405   0.21747  \n",
       "Biscoe_desc                                   LassoCV  0.938814  0.264032  \n",
       "Sunoj_desc            GradientBoostingRegressor_CV_rs  0.333039  0.595131  \n",
       "HongAckermann_desc          ExtraTreesRegressor_CV_rs  0.830299  0.360877  \n",
       "Sunoj_JPC_desc                    KernelRidge_poly_CV  0.597843  0.303823  \n",
       "Denmark_OPRD_desc           ExtraTreesRegressor_CV_rs  0.709566  0.164493  "
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "overview"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "7ce40a4b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-14T19:55:14.555156Z",
     "start_time": "2023-04-14T19:55:14.550156Z"
    }
   },
   "outputs": [],
   "source": [
    "with open(\"overview_23_04_14.p\",\"wb\") as f:\n",
    "    pickle.dump(overview,f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "id": "06ce1a05",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T19:43:24.407408Z",
     "start_time": "2023-04-17T19:43:24.302408Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"4\" halign=\"left\">ee</th>\n",
       "      <th colspan=\"4\" halign=\"left\">ee2ddg</th>\n",
       "      <th colspan=\"4\" halign=\"left\">ddg</th>\n",
       "      <th>set</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>Model</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>MAErel_test</th>\n",
       "      <th>Model</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>MAErel_test</th>\n",
       "      <th>Model</th>\n",
       "      <th>R2_test</th>\n",
       "      <th>RMSE_test</th>\n",
       "      <th>MAErel_test</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Toste_Desc_desc_linear</th>\n",
       "      <td>ElasticNetCV</td>\n",
       "      <td>0.61671</td>\n",
       "      <td>13.648965</td>\n",
       "      <td>0.486241</td>\n",
       "      <td>ElasticNetCV</td>\n",
       "      <td>0.554809</td>\n",
       "      <td>0.261288</td>\n",
       "      <td>0.50207</td>\n",
       "      <td>LassoLarsCV</td>\n",
       "      <td>0.51951</td>\n",
       "      <td>0.270239</td>\n",
       "      <td>0.531384</td>\n",
       "      <td>desc_linear</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Toste_Desc_desc_other</th>\n",
       "      <td>GaussianProcess_CV</td>\n",
       "      <td>0.662196</td>\n",
       "      <td>12.961174</td>\n",
       "      <td>0.438059</td>\n",
       "      <td>GaussianProcess_CV</td>\n",
       "      <td>0.650635</td>\n",
       "      <td>0.230919</td>\n",
       "      <td>0.423332</td>\n",
       "      <td>GaussianProcess_CV</td>\n",
       "      <td>0.562197</td>\n",
       "      <td>0.258662</td>\n",
       "      <td>0.440506</td>\n",
       "      <td>desc_other</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Biscoe_Desc_desc_linear</th>\n",
       "      <td>LarsCV</td>\n",
       "      <td>0.357872</td>\n",
       "      <td>28.08653</td>\n",
       "      <td>0.326159</td>\n",
       "      <td>LarsCV</td>\n",
       "      <td>0.555253</td>\n",
       "      <td>0.600032</td>\n",
       "      <td>0.33524</td>\n",
       "      <td>LinearRegression</td>\n",
       "      <td>0.742897</td>\n",
       "      <td>0.459682</td>\n",
       "      <td>0.287615</td>\n",
       "      <td>desc_linear</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Biscoe_Desc_desc_other</th>\n",
       "      <td>KernelRidge_poly_CV</td>\n",
       "      <td>0.462883</td>\n",
       "      <td>23.572987</td>\n",
       "      <td>0.342175</td>\n",
       "      <td>KNeighborsRegressor</td>\n",
       "      <td>0.491638</td>\n",
       "      <td>0.580211</td>\n",
       "      <td>0.29875</td>\n",
       "      <td>GaussianProcess_CV</td>\n",
       "      <td>0.720929</td>\n",
       "      <td>0.475373</td>\n",
       "      <td>0.298118</td>\n",
       "      <td>desc_other</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doyle_Desc_desc_linear</th>\n",
       "      <td>LarsCV</td>\n",
       "      <td>0.504243</td>\n",
       "      <td>8.946251</td>\n",
       "      <td>0.551908</td>\n",
       "      <td>LarsCV</td>\n",
       "      <td>0.405356</td>\n",
       "      <td>0.272235</td>\n",
       "      <td>0.588927</td>\n",
       "      <td>LassoCV</td>\n",
       "      <td>0.533406</td>\n",
       "      <td>0.2439</td>\n",
       "      <td>0.539399</td>\n",
       "      <td>desc_linear</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doyle_Desc_desc_other</th>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.679707</td>\n",
       "      <td>7.208235</td>\n",
       "      <td>0.435713</td>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.649105</td>\n",
       "      <td>0.211072</td>\n",
       "      <td>0.461716</td>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.57218</td>\n",
       "      <td>0.23183</td>\n",
       "      <td>0.487162</td>\n",
       "      <td>desc_other</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunoj_DD_3_FP_fp_all</th>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.25572</td>\n",
       "      <td>13.970194</td>\n",
       "      <td>0.471829</td>\n",
       "      <td>ExtraTreesRegressor_CV_rs</td>\n",
       "      <td>0.210273</td>\n",
       "      <td>0.604437</td>\n",
       "      <td>0.624707</td>\n",
       "      <td>GradientBoostingRegressor_CV_hrs1</td>\n",
       "      <td>0.416154</td>\n",
       "      <td>0.520391</td>\n",
       "      <td>0.536969</td>\n",
       "      <td>fp_all</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                ee                       \\\n",
       "                                             Model   R2_test  RMSE_test   \n",
       "Toste_Desc_desc_linear                ElasticNetCV   0.61671  13.648965   \n",
       "Toste_Desc_desc_other           GaussianProcess_CV  0.662196  12.961174   \n",
       "Biscoe_Desc_desc_linear                     LarsCV  0.357872   28.08653   \n",
       "Biscoe_Desc_desc_other         KernelRidge_poly_CV  0.462883  23.572987   \n",
       "Doyle_Desc_desc_linear                      LarsCV  0.504243   8.946251   \n",
       "Doyle_Desc_desc_other    ExtraTreesRegressor_CV_rs  0.679707   7.208235   \n",
       "Sunoj_DD_3_FP_fp_all     ExtraTreesRegressor_CV_rs   0.25572  13.970194   \n",
       "\n",
       "                                                        ee2ddg            \\\n",
       "                        MAErel_test                      Model   R2_test   \n",
       "Toste_Desc_desc_linear     0.486241               ElasticNetCV  0.554809   \n",
       "Toste_Desc_desc_other      0.438059         GaussianProcess_CV  0.650635   \n",
       "Biscoe_Desc_desc_linear    0.326159                     LarsCV  0.555253   \n",
       "Biscoe_Desc_desc_other     0.342175        KNeighborsRegressor  0.491638   \n",
       "Doyle_Desc_desc_linear     0.551908                     LarsCV  0.405356   \n",
       "Doyle_Desc_desc_other      0.435713  ExtraTreesRegressor_CV_rs  0.649105   \n",
       "Sunoj_DD_3_FP_fp_all       0.471829  ExtraTreesRegressor_CV_rs  0.210273   \n",
       "\n",
       "                                               \\\n",
       "                        RMSE_test MAErel_test   \n",
       "Toste_Desc_desc_linear   0.261288     0.50207   \n",
       "Toste_Desc_desc_other    0.230919    0.423332   \n",
       "Biscoe_Desc_desc_linear  0.600032     0.33524   \n",
       "Biscoe_Desc_desc_other   0.580211     0.29875   \n",
       "Doyle_Desc_desc_linear   0.272235    0.588927   \n",
       "Doyle_Desc_desc_other    0.211072    0.461716   \n",
       "Sunoj_DD_3_FP_fp_all     0.604437    0.624707   \n",
       "\n",
       "                                                       ddg            \\\n",
       "                                                     Model   R2_test   \n",
       "Toste_Desc_desc_linear                         LassoLarsCV   0.51951   \n",
       "Toste_Desc_desc_other                   GaussianProcess_CV  0.562197   \n",
       "Biscoe_Desc_desc_linear                   LinearRegression  0.742897   \n",
       "Biscoe_Desc_desc_other                  GaussianProcess_CV  0.720929   \n",
       "Doyle_Desc_desc_linear                             LassoCV  0.533406   \n",
       "Doyle_Desc_desc_other            ExtraTreesRegressor_CV_rs   0.57218   \n",
       "Sunoj_DD_3_FP_fp_all     GradientBoostingRegressor_CV_hrs1  0.416154   \n",
       "\n",
       "                                                       set  \n",
       "                        RMSE_test MAErel_test               \n",
       "Toste_Desc_desc_linear   0.270239    0.531384  desc_linear  \n",
       "Toste_Desc_desc_other    0.258662    0.440506   desc_other  \n",
       "Biscoe_Desc_desc_linear  0.459682    0.287615  desc_linear  \n",
       "Biscoe_Desc_desc_other   0.475373    0.298118   desc_other  \n",
       "Doyle_Desc_desc_linear     0.2439    0.539399  desc_linear  \n",
       "Doyle_Desc_desc_other     0.23183    0.487162   desc_other  \n",
       "Sunoj_DD_3_FP_fp_all     0.520391    0.536969       fp_all  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "linearmodels = [\"LinearRegression\",\"RidgeCV\",\"LassoCV\",\"LarsCV\",\"LassoLarsCV\",\"ElasticNetCV\",]\n",
    "othermodels = [i for i in models.keys() if i not in linearmodels]\n",
    "\n",
    "overview_sets = pd.DataFrame(\n",
    "        columns = pd.MultiIndex.from_product(([\"ee\",\"ee2ddg\",\"ddg\"],[\"Model\",\"R2_test\",\"RMSE_test\",\"MAErel_test\"])),)\n",
    "overview_sep[\"set\"] = []\n",
    "for dataset,df in datasets.items():\n",
    "    if \"_Desc\" in dataset: \n",
    "        for domain in [\"ee\",\"ee2ddg\",\"ddg\"]:\n",
    "            #linear models\n",
    "            top = df.loc[linearmodels].idxmin()        \n",
    "            topmodel = top[(domain,\"MAErel_test\")]\n",
    "            overview_sets.loc[dataset+\"_desc_linear\",(domain,\"Model\")] = topmodel\n",
    "            overview_sets.loc[dataset+\"_desc_linear\",\"set\"] = \"desc_linear\"            \n",
    "            overview_sets.loc[dataset+\"_desc_linear\",(domain,\"R2_test\")] = df.loc[topmodel,(domain,\"R2_test\")]\n",
    "            overview_sets.loc[dataset+\"_desc_linear\",(domain,\"RMSE_test\")] = df.loc[topmodel,(domain,\"RMSE_test\")]\n",
    "            overview_sets.loc[dataset+\"_desc_linear\",(domain,\"MAErel_test\")] = df.loc[topmodel,(domain,\"MAErel_test\")]\n",
    "            \n",
    "            #other models\n",
    "            top = df.loc[othermodels].idxmin()        \n",
    "            topmodel = top[(domain,\"MAErel_test\")]\n",
    "            overview_sets.loc[dataset+\"_desc_other\",(domain,\"Model\")] = topmodel\n",
    "            overview_sets.loc[dataset+\"_desc_other\",\"set\"] = \"desc_other\"\n",
    "            overview_sets.loc[dataset+\"_desc_other\",(domain,\"R2_test\")] = df.loc[topmodel,(domain,\"R2_test\")]\n",
    "            overview_sets.loc[dataset+\"_desc_other\",(domain,\"RMSE_test\")] = df.loc[topmodel,(domain,\"RMSE_test\")]\n",
    "            overview_sets.loc[dataset+\"_desc_other\",(domain,\"MAErel_test\")] = df.loc[topmodel,(domain,\"MAErel_test\")]\n",
    "            \n",
    "    if \"_FP\" in dataset: \n",
    "        for domain in [\"ee\",\"ee2ddg\",\"ddg\"]:\n",
    "            top = df.idxmin()        \n",
    "            topmodel = top[(domain,\"MAErel_test\")]\n",
    "            overview_sets.loc[dataset+\"_fp_all\",(domain,\"Model\")] = topmodel\n",
    "            overview_sets.loc[dataset+\"_fp_all\",\"set\"] = \"fp_all\"\n",
    "            overview_sets.loc[dataset+\"_fp_all\",(domain,\"R2_test\")] = df.loc[topmodel,(domain,\"R2_test\")]\n",
    "            overview_sets.loc[dataset+\"_fp_all\",(domain,\"RMSE_test\")] = df.loc[topmodel,(domain,\"RMSE_test\")]\n",
    "            overview_sets.loc[dataset+\"_fp_all\",(domain,\"MAErel_test\")] = df.loc[topmodel,(domain,\"MAErel_test\")]\n",
    "\n",
    "display(overview_sets)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 236,
   "id": "59cb0f2a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T20:19:09.093361Z",
     "start_time": "2023-04-17T20:19:08.849365Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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lSlSlZubq7z11luKqamp8tRTTylffPGF4uvrq4SEhCiKoij5+fnKRx99pLRp00YxNjZWbG1tlVdffVU5ceKEoiiKEhwcrDz99NOKiYmJ0rJlS+Xtt99WMjMz1fKPHz+u9O3bVzE1NVUsLCwUHx8fJTU1tdy4CgoKlDlz5igODg6KsbGx8txzzyk7duzQOWfFihWKk5OT2iaKoigjRoxQAgMDdc4LCQlRj1ekTlFRUYqVlVXlGlJRlOzsbAVQsrOzK32tEKJ6VebzWam5OF599VUePnxIVFQUt27dYtq0afz666/ExcXh7OzM9evXsbe3N/glr+o7mYtDCMNVmc9npbo4Dh48yLx582jRogUuLi5s376dv/71r/j4+PD7778/UdBCCCF0VepHwnv37tG4se4ly5Yto1GjRvj6+vLtt99WaXA14c8jJh61Y8cO+QFPCFFrKpWgO3TowNGjR9Uf34otXboURVEYOHBglQZXE5KSkko95uDgUHOBCCHEIyqVoF999VU2bdrE22+/XeLY3//+dwoLC1m+fHmVBVcTXFxcajsEIYR4LJmwvx6SHwmFMFzV9iPho86dO8euXbu4d+8eUP4TgUIIISpOrwR98+ZN/P39cXNzo3///urq3u+88w6hoaFVGqAQQjRUeiXod999l8aNG5Oeno6pqam6f/DgwTpzJQshhNCfXnNxxMTEsGvXLnU60GKurq4yobwQQlQRve6g79y5o3PnXCwzM1NmVRNCiCqiV4Lu2bOnzqRIxdNoLly4kF69elVZcEII0ZDp1cWxcOFC/Pz8OHr0qLqu3smTJ7l58yYHDx6s6hhrlaIojBs3js2bN5OVlVXtq3fHxcXRq1cvsrKysLa2Zs2aNUydOpVbt25V23sK0VDlR5bsCXicJu/ereZIHk+vO+hnnnmGEydO4OXlRZ8+fbhz5w6vvfYaSUlJPP3001UdY63auXMna9as4YcffuDq1av83//9X22HJIRoIPSesD8lJYVz585x8+ZNNm/ejIODA+vXr6dt27a88MILVRljrUpNTcXOzo4ePXrUdihCiAZGrzvof//73/Tr1w9TU1OOHTumriidm5urLnZaHwQFBTF58mTS09PRaDS0adMGPz8/goODCQ4OxtraGq1Wy6xZsyr8kM6GDRvw9PTEwsICW1tbhg4dSkZGRjXXRAhRF+mVoOfO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",
      "text/plain": [
       "<Figure size 300x300 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_score = \"MAErel_test\" \n",
    "palette = \"inferno\"\n",
    "\n",
    "plt.figure(figsize=(3,3))\n",
    "plt.subplot(3,1,1)\n",
    "ax = sns.swarmplot(data=overview_sets,x=(\"ee\",plot_score),y=\"set\",\n",
    "                   marker=\"s\",palette=palette,size=7)\n",
    "# sns.move_legend(ax, \"upper left\", bbox_to_anchor=(1, 1))\n",
    "ax.set_xticklabels([])\n",
    "ax.set(xlabel=None)\n",
    "plt.xlim(0,0.7)\n",
    "plt.ylabel(\"ee\")\n",
    "# plt.show()\n",
    "\n",
    "# plt.figure(figsize=(4,1))\n",
    "plt.subplot(3,1,2)\n",
    "ax = sns.swarmplot(data=overview_sets,x=(\"ee2ddg\",plot_score),y=\"set\",legend=False,\n",
    "                   marker=\"s\",palette=palette,size=7)\n",
    "ax.set_xticklabels([])\n",
    "ax.set(xlabel=None)\n",
    "plt.xlim(0,0.7)\n",
    "plt.ylabel(\"ee2ddg\")\n",
    "# plt.show()\n",
    "\n",
    "# plt.figure(figsize=(4,1))\n",
    "plt.subplot(3,1,3)\n",
    "ax=sns.swarmplot(data=overview_sets,x=(\"ddg\",plot_score),y=\"set\",legend=False,\n",
    "                 marker=\"s\",palette=palette,size=7)\n",
    "ax.set(xlabel=None)\n",
    "plt.xlim(0,0.7)\n",
    "plt.xlabel(plot_score)\n",
    "plt.ylabel(\"ddg\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "abde2a8a",
   "metadata": {},
   "source": [
    "# G-ee curves for demonstration"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "8c7d056c",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T18:46:52.972865Z",
     "start_time": "2023-04-17T18:46:52.791866Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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atu2bSorK9Mjjzzi79L8rra2VqdOnXI9P336tIqLi9W/f39FRUX5sTL/Wbx4sbKysrR3716FhIS4ziLDwsIUFBTk5+r866c//ammTZumyMhInTt3Tnv27NH+/fv13nvv+bs0vwoJCWkxZtSnTx8NGDDA82NJHp9vZBGbNm0yoqOjjV69ehnjxo1jut//+/DDDw1JLR4PPvigv0vzmyv9HpKMHTt2+Ls0v5s/f77r/6Prr7/emDp1qpGbm+vvskzJW1NEuZQ0AFgYYwIAYGGEAABYGCEAABZGCACAhRECAGBhhAAAWBghAAAWRggAgIURAgg4CQkJbd5m78Ybb9T69es98nmeeC9P1nMlq1ev1pgxY7z2/lfDbUQDGyEAyzh27JjmzJmjQYMGyW63Kzo6WnfffbfefvttXW3hfGFhoX7yk5/4sFLPWb16tR544AF/lwETIwRgCXv37tV3vvMd1dbWateuXTp+/Lj+8z//U7NmzdIzzzzjutvXlVx//fUKDg72YbWes2/fPs2cOdPfZcDECAGY2vnz5zVv3jz17dtXgwYN0ssvv9xin8rKSt1zzz0KCgpSTEyM/v3f/73FeyxYsEAzZszQO++8o6SkJN1000267bbb9OMf/1gff/yxwsLCWq3h2105NptNr776qmbPnq3g4GA5nU7t27evQ99rx44dCgsLc12SvKmpSZmZmRo6dKjsdruioqL0wgsvuPZfsWKFbr75ZgUHB2vIkCFatWqV/vGPf1z1M8rLy/XZZ59p2rRprrq3bt2qu+++W8HBwYqNjdVHH32kU6dOKSEhQX369NHEiRP1pz/9ye19tmzZoptuukm9evXSsGHD9Nprr3Xou8LcCAGY2rJly/Thhx8qOztbubm52r9/v4qKitz2eeihh/Q///M/+uCDD/Tmm29q8+bNqqysdP09NzdXX331lZYvX97q53T0rnBr1qzR/fffr08++UTTp0/X3Llz9fXXX7frtb/4xS/01FNP6f3331diYqIkKS0tTZmZmVq1apWOHz+urKwst5sUhYSEaOfOnTp+/Lg2bNig7du365VXXrnq5+zbt0933HGH+vXr59r2/PPPa968eSouLtbw4cOVnJyslJQUpaWl6ciRI5Iu3f2sWXZ2tpYsWaInn3xSn332mVJSUvTwww/rww8/bO9PBbPz+HVJAQ85d+6c0atXL2PPnj2ubV999ZURFBTkuqTuiRMnDEnGoUOHXPt8/vnnhiTjlVdeMQzDMF588UVDkvH111+79jl8+LDRp08f1+Ptt99utY7o6GjXexnGpUtDP/PMM67ntbW1hs1mM3Jyctp8j6efftoYNGiQ8cknn7j+VlNTY9jtdmP79u1t/ibN1q5da8TFxbmeP/vss8att97qtk9iYqLxy1/+stW6P/roI0OS8Zvf/Ma1bffu3Ubv3r1dzydNmmQsXLjQ7X3/9V//1Zg+fbrb+2ZnZ7e7dpgLN5WBaf3pT39SfX29Jk6c6NrWv39/DRs2zPX8888/1zXXXKP4+HjXtuHDh7sd/V7J6NGjVVxcLElyOp1qaGjoUG2jR492/btPnz4KCQlxO/u4kpdfflnnz5/XkSNHNGTIELfvUFdXp6lTp7b62jfffFPr16/XqVOnVFtbq4aGBoWGhra6f01NjfLz87V9+/ZW624+07jlllvctl28eFE1NTUKDQ3V559/3mJQfPLkydqwYcNVvysCB91BMC2jHbe6aN7nat05TqdTknTixAnXNrvdrqFDh7rubdtR1157rdtzm82mpqamq77mu9/9rhobG/Uf//EfbtvburvYoUOH9MADD2jatGn67//+bx07dkwrV65UfX19q6/JyclRbGysoqOjW627+Te70rbLv8u3f1vDMDrcfQbzIgRgWkOHDtW1116rQ4cOubZVVVXp5MmTruexsbFqaGhw9WdLlxr7v//9767nSUlJ6t+/vzIzM31Sd2tuu+02vffee0pPT9dLL73k2u50OhUUFKTf//73V3zdH//4R0VHR2vlypWKj4+X0+nUmTNnrvpZe/fu1b333tvlmmNjY3Xw4EG3bQUFBYqNje3ye8Mc6A6CafXt21cLFizQsmXLNGDAADkcDq1cuVI9evzz2GXYsGG66667tHDhQm3btk3XXHONUlNT3Y6u+/btq1dffVVz5szRjBkz9Pjjj8vpdKq2ttZ1L1tP3rj7aiZOnKicnBzddddduuaaa/TEE0+od+/eWrFihZYvX65evXpp8uTJ+utf/6qSkhItWLBAQ4cOVVlZmfbs2aPx48frnXfeUXZ2dquf0dDQoJycHP3ud7/rcr3Lli3T/fffr3Hjxmnq1Kl6++239dZbb3nkvWEOnAnA1F566SXdcccduvfee3XnnXfq9ttvV1xcnNs+O3bsUGRkpKZMmaL77rtPP/nJT3TDDTe47TN79mwVFBQoODhY8+bN07Bhw/T9739fH3zwgfbs2aO7777bZ99p8uTJeuedd7Rq1Sr98pe/lCStWrVKTz75pH72s58pNjZWc+bMcY0xzJw5U0888YQeffRRjRkzRgUFBVq1alWr75+fn6++ffu2+J06Y9asWdqwYYNeeukljRw5Ulu3btWOHTuUkJDQ5feGOXCPYaCbefzxx9XQ0KDNmzf7uxQEALqDgG5m1KhRbjOqgKvhTAAALIwxAQCwMEIAACyMEAAACyMEAMDCCAEAsDBCAAAsjBAAAAsjBADAwggBALCw/wNkM2szf2TFcAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAFzCAYAAADYA7U2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJaElEQVR4nO3de3hTVb4//vfOtUmbtjSlLT1WBCkXQRQBFVBBhR7xhnp+3nDG6zD4iEplFLlYLYLtgGewzogXcAY4KuKMR0Y9Dg7Md0bUQY8IVqR46qCIzECpTe9Nmuv+/bGbNGmTNpedZLd5v56nD8nubrKa6vrsvT6ftZYgiqIIIiJKSapkN4CIiJKHQYCIKIUxCBARpTAGASKiFMYgQESUwhgEiIhSGIMAEVEKYxAgIkphmmQ3QAk8Hg9OnDgBk8kEQRCS3RwiopiJooi2tjYUFhZCpQp9vc8gAODEiRMoKipKdjOIiGR3/PhxnHbaaSG/zyAAwGQyAZA+rMzMzCS3hogodq2trSgqKvL1b6EwCAC+IaDMzEwGASIaVPob4mZimIgohTEIEBGlMAYBIqIUxiBARJTCGASIiFIYgwARUQpLahD48MMPcc0116CwsBCCIOCPf/xjwPdFUUR5eTkKCwthMBgwa9Ys1NTUBJxjt9vxwAMPIDc3F+np6bj22mvxz3/+M4G/BRHRwJXUINDR0YFzzjkHzz33XNDvr1u3DuvXr8dzzz2Hffv2oaCgAHPmzEFbW5vvnNLSUuzYsQPbt2/Hxx9/jPb2dlx99dVwu92J+jWIiAYsQSkbzQuCgB07duC6664DIN0FFBYWorS0FI8++igA6ao/Pz8fa9euxcKFC9HS0oKhQ4filVdewc033wygewmIP/3pT/j3f//3sN67tbUVWVlZaGlp4WQxonixWACHQ3rc2Cj9m5PT/RgAnE5Aq+1+7v/9SB/L8XpxbJOluRkOpxPIzkbjsWPSqcOHh3wMALr0dJiLixGOcPs1xc4YPnr0KOrq6lBSUuI7ptfrMXPmTOzduxcLFy7E/v374XQ6A84pLCzEhAkTsHfv3rCDAFFK669zlqOzBICqKsB7F3/woPTvmDFAbS3gcknPPR7Au9iZRtP9ff9zw3ncx+tZamrgEEVg1Cg0dv1czpgxvR93jSY43W5o1WrpNdTq4OeG89jv9ToAbGltRRsAmEw4+OOPUvPNZtRaLL0eTywoQJpOh2yTCWW//33YgSAcig0CdXV1AID8/PyA4/n5+TjWFR3r6uqg0+kwZMiQXud4fz4Yu90Ou93ue97a2ipXs4mSJ5LOHJA67Y4OYMuW0J1zOI/D6cCLi4GaGsBoBCZN8nWIyMiQHrvdgFoN6HTS67ndgCB0f7/rXIvDIXXgKhUarVbp1wr22OUC1Go4VSponU7pNTQawOlE1alTaPN4AIcDB0+elH4VpxO1p04FPHZ5PIAgwIPucXONIAQ9N5zH/q8nAHCJIkwqFSbl5sLhGQIROqg0w2B15wIAVBqD77FWPwQeAHXNVjg6Ovr+7yBCig0CXj3XvRBFsd+1MPo7p7KyEqtWrZKlfUQJ4+3kGxt7X3UDfV9p+z/277QFQXpuMgXvnMN5HE4HnpkpneN2A2lpsABSZw6g0eXytcmpVkPrdvue53i/DwB2O6oaGqQOvLpa6sBFEWMA1PZ47OtwBQEqjweA1IEXiyJqbDYYBQGTdDp4M4cZaWm9HrsBqAUBOpUKLo8HblGEEOJc72OHmNPVmZ8Gq0e6OFVpMmD1DIHL44FapYJKpYfHY4dbFNEhqmBDERo818ODDFQ3Z+CkZwRECEDzcZz0nAYRAj5rOAaNygnR1YDGZjWGhfGfS7gUGwQKCgoASFf7w4Z1/8r19fW+u4OCggI4HA40NTUF3A3U19dj+vTpIV97+fLlWLJkie+5d7U9IkUIdkUPSJ18Q4PUkTscgVfd/V1p+z/u2WmrVL7OGZquLsFoDP+xKEoBKS0N6OyExe0O7ODh15nb7cC//oWqujqpM//wQxz077TR46r7gw98V9TFdjtqOjqkDlwU4e7q3DMEoddjtyhCDUAHwAX4OvBMlQpqUYQbQBq6O0BjkMciAEHMgUZMg0v0wOXOlD4rVwZcHoN0st9ju70QDe4b4REzUP2jESfdZ0IEgPofcNJ9OjxQQ3ADglsDD6TPRfC4Ya87jg7xTAiwQvTUwgM1ABGCu833WCU2Q/QADk8mnE559zxRbBAYMWIECgoKsHv3bkyaNAkA4HA4sGfPHqxduxYAMHnyZGi1WuzevRs33XQTAODkyZM4dOgQ1q1bF/K19Xo99Hp9/H8Jop7CSY4Gu6L3dvJarXQF3/Oqu8eVdiSdNgDptbzDKECfjy12u9TJNzSgsaOje+jFakWH04ktLS3SWHdXBw9A6szr6wGPB8WdnaixWmFUqTDJ4+m+6oZfpw1AEEVkdHXYEEVkQroydwNI83igUakAUYRRFHs9Fj0eaAUBaYKArt8QGkGAURQBIRedHg0a2k3o8IwFRBEN7dpej+1uEzpwF0RkQoQGdoyF4AY+OHkUp9wjAAQ+ttcfQ4dYLHXm7q+7O3NPOzxQQ4QKgAdAZ9dvq4UIERBbIHR9Ah7RChVcEAGIaPc99rhboVGroNPmQWs0RvgfXd+SGgTa29tx5MgR3/OjR4+iuroaOTk5OP3001FaWoqKigoUFxejuLgYFRUVMBqNmD9/PgAgKysL99xzD37xi1/AbDYjJycHDz/8MM4++2zMnj07Wb8WUSD/YZz+hmxCXdH7d/I9O3CNpruDD6cz976mKHbfFTidQGur9BgA2tthEcXuzt7plI6fONE9JPPppzj4449wdV31e7qGYV2iCJNa7evgIYrIUKng1ukAQUDm1KlQf/UV3Go10qZPh2bvXoguF7RaLdK0WnQ6HIDbDY1aDWPX9wH4HrvcblgnT4Zr/37p1+rx2P7Zt3C6VLAjB1aVzjf0olGpcHLM2ahvvBBOpx6fIBsNwr8BAmD3nIJFyA94LKpUEKGFIDggwAHAAFHwQByiBxr0Ukft9xhDtBAaBABp8JgzoDolQIQA0WyA6pQAj0eAoAIEuABoodNqoVFrMX3WDOyvNsHtETD5nALs/1IHAAGPz78wH4IKcLh1yBkpbwVjUoPA559/jksvvdT33DtEc8cdd2DLli1YunQpbDYb7rvvPjQ1NeGCCy7Arl27AjZJeOaZZ6DRaHDTTTfBZrPh8ssvx5YtW6D2/sdMlEg9r/Sbm6XEa0uLNBTS35BNf1f03o5fFAPvBDo7u4d1enTmvR57q8IdDkCng2XECDiys4EFC9DY0iJ9LysLVc89h7aODkCnQ1e4QrFGgxqTCca0NEw691y49+2D2+WCWqORxs7dbqg8Hrh1Ol8HD3R14P/7v4AgwFhYCM1338HlcsEKwKXRSMFCpYIoCHCp1dKdgEbj+z4AdKpUUBmNcNtsaHW5IOqGQRS1aLBmwamaAAA40VyIhrZb4HJlwuE4Ex6PBoIgDRUJggfOQ41wek6HzuDC1PON+PJL6ap68uR/w/79qoDHLpf0kWu1Hng8AtxuAWq1iOnTC7B3r3SVH+yx2w1Mnnya3+udFvB6KpXY9efWQqsFDDkaGLMBmw1waQFjlvRZe/Tdj51aE9LSgIJs6SZQTkkNArNmzUJf0xQEQUB5eTnKy8tDnpOWlobf/OY3+M1vfhOHFhKFoa8rfadT6qx1uu7/e8MZsul5Re/t5L0VON6cgFotfdntwPjxUoK3tLS7bT2qgyzffQeH04nGlhY4bTZp+Ob999FmswEvvoiDXXcnxcXFqKmpgdFoxKRJk+DuSkJn5uVB/f33cGs0SMvJgSY9HaLTKV3Fp6Whs7MTcDrhEoSADtwKwNVVrNHZ2QmVSgW3243W1lao1WpfP+BwOLr2wzXD40lDQ4MWTqdUDtncbMBpp5XAaEzH7bf/FK+8YkZHhxo6nRbeTIJGI8JkUkGjkWpwBEHqcD0eFdRqEZMnF6K6WguNRkBBgQbegYjcXCA9PfCxN/euVgfedPn/6/9YpZL+fDab9Gfzjtp4PNJj/3y8/+uE+acDIP0nZDZDVorNCRApWrCO3+MBDhwIvNL3eLqHb7xJ2L6GbEJd0fv3FHfeKfVSPWvyAV8vYbFY4Oi6I/FlGxobUbVlCxoaGlBbWwuHwyEN37hcMJlMUmffdUeSmZkJtVoNt9uNtLQ0aLp6LaPRCI1GI13FW61wuVy+nxFFEW63G2q1Gk6n09fBA9LQr/ex3W7H+PHjYTKZUFpaiuZmNZxOAS0tKthsbjidWrz99pBeHbzDIeLIEQ0EQcDvfqcJuKnyfhR5ecD33/dOe3g79Nzc7j9Ff6Nm3nhrt0s/r9FIf45gN1c9/0ShOnMg+HQKvz9dgGFylgGFwCBAFK5wOv6eQzne3sg7fBNi/D2sngTo81LQ2/E31tSgqqrKt7xKz6t7rVYLj8cDnU4Hl8vluyrvr7MH+r+K1+l0GDNmDHJzc1Hq1/6cnBw0dvWE0mMBUho4B1u2BBY99axa9XaYubnAd99JjxMxaqZWA6NGSe+flSXF3uzsvufOhfoTJaIzjxaDAFFfoun4/S8z/S8n3W5g7FjpclWm+35fx9/Y6Ov4PR4PDhw40D2UE+TqPmD4Bgirswd6X8X7c3YNC+Xk5ECn08FsNgekSNBV3R7so+xZ9BRu1WqcRs36/XP4d+pK7uDDwSBAFIzFAtTVSb1VsKRusI4/2GVmz8vJ0lKgoCCmS8VwOv6+hnK8HX9fwzehOvucrl7R28n7f1w9K1+9H1+oateeH2UkVasyjZqF/BMM9I49EgwCRF49r/rr66XeyjuxCui747fZoh7KCd0kv7H9xkY0Nzdjy5YtaGlpgd1uD0je9uz4Q13dezweqFSqfodvpCYHdvbBPjL/WOl0Rlbt6v0o/Ydv+qhalWPUjHpgEKDU1tdwj7c0pGdSt6+OPycn5h4o2JU+II3tO51OuFwu6HQ66LoCU8+OP5yhnDvvvBPp6em9hm+i+ch6xkqHQ3rc37i9/0fpP3yj00lTJ3Jzk1Mtk2oYBCj1RDLOHyypm6COP9jYvsfj8Y3ne5O6PTt+m80W0VBOfx8TEHxCc1+xsq/5a6FiqP/wTaiPNJWGaRKFQYBSi8UCrF4tTeKyWvtO8NrtoZO6Cer4ew7xiKIIrVYLURThcrl84/k9O/5Ir+79P56+Jjf3NZ4vilKM7K8Sp+dQjgwfJcWAQYBSg7d3O3UKOHFC6sWGDOk7wQsAI0cCen3fSd2ommPB6tWr0dzcDKvV2mfH7z+27x3Pt9vtcLvdGDt2LPLy8mTv+INNeQCCD/H4x0r/enqO2w8MDAI0ePXVu2VmAhdeGF6CV8ZLVe/V/6lTp3DixAkYjUYMGTIkaMcfbGxfrVZj1KhR0Gq1yMrKQmlpKQoKCuLS8Yc7ng8Exkr/enqAnb3SMQjQ4NTfsE9Hh/SVwI4/2LBPZmYmLrzwwqAdv1xj+z0/lkgrX8MZz+ewzsDFIECDS3/DPunp0ldra9x7MYvFgrq6OlRVVYUs6ezo6EBHR0fIjj/aIZ5gH0m0la8czx/cGARo8Ah29d9z2MftBs45R7oLWLECyM+XveP3v+qvr69HTU0N1Gp1QElneno60tPT0drampCOP9bKVy8O8Qw+DAI0OFgswPHj0tV/WhpgMAQf9mlqku4OCguBoiJZe7JgyV6tVgu1Wt2rpNPtduOcc85BR0cHVqxYgfz8/Lh2/EmqfKUBgEGABj7vHcCJE1KPp9dLgUCvl+4IEjDs01eyN1hJZ1NTE4xGIwoLC1FUVBRT5+//ESig8pUGGAYBGrh6jv8DUscvitLYxoQJ0uM4DPt0N6H31b9/stdut8te0hn4/oqqfKUBiEGABqZQl77eFcjsdikAxGHYR3r70Ff//sleABg5ciT0en1MJZ2B7624ylcawBgEaGDp69LXbpfGP7x3AitWyBoA+iv1nDFjRtyTvf2Vdyaw8pUGCQYBGjhCVf/MmBFY9hmHxG9/M3w7OjrgcDhkT/Z2v39g2qNneWcCK19pkGEQIOXr6+q/o0P6XpzKPvtL+vqXesqd7A32qwPSWL53uMdb3hnnylcaxBgESNnCufqPU9lnf0nfZJR6GgzS4mw9yzvjWPlKgxyDACmbwyEFAINBugROwNU/IAWA48eP48SJE0hLS4PBYAg6wzfRpZ42m/RRsLyT5MIgQMrkPw5itUo9YVZW3K/+pbeW7gBOnDiBAwcOQK/XIy0tDXq9HlarNa4zfMNZ7YLlnSQnBgFSnlCXwxddlJAlH7zj/wCg1+shiiI6OzsxYcIEiKKYkGGfBK92QSmMQYCUx38IyGiU/rVagYaGhC75YDQakZaWhs7OTtjtdoiimLBhnwSudkEpjkGAlCPYEFBeHnDxxVIASMDVv3/1j91ux6RJk3x3AitWrIg5AChokVMiAAwCpBR9DQGJovQ4P1/WTWZDVf/0nPQlV+JXAYucEvXCIEDK0N8QUHZ29+yoGPW35IPck776m+bAYR9KJgYBSj6LpXsIyFv2EqchoHCu/uUs+wx3kjOHfShZGAQouYKth5CeDkycGJchIIfDgebmZhgMBuj1+rgu+dDXFgdxnuZAFDYGAUou7zBQerp0idzRIV0eW63SmEgchoCsViuMRiOysrLituRDf1sccNiHlIJBgJKjZyVQbi4we7a0PGZTk6wrgIYq/7zooovituRDErc4IIoIgwAlXl+VQCpV9zBQzFfjvRPAubm5MBgMsFqtaGhoSMiSDwna4oAoKgwClHgJqAQKlQCePXs2Lr74YjQ0NMTt6j+BWxwQxYxBgJLHaJRKYuJQCRQqAdzS0gKVSgWj0Yj8/HwMizHpnMQtDohkwSBAidMzD+Al42SwcBPA2dnZ0MVwt5HELQ6IZMUgQInhf8nc2QkcOiQdnzhRGjSP0xBQPBLASdzigEh2DAKUGP55ALNZ+rejA1i2LC5DQEajUfYEMK/+aTBiEKDE8uYBAGkYSKbJYBaLxTcEpNfrkZWVJWsCmFf/NFgxCFB8hcoD+D+O+S0CN4FRq9VIT0/HxIkTZUsAJ2mDM6K4YxCg+ElAHgDoHgZKT09HZmYmOjo60NraCqvVisLCQtkSwAne4IwoIRgEKH7inAfoWQmUm5uL2bNno6WlBU1NTTGv/5+kDc6IEopBgOIvDnmAviqB/OcBxBIA/Bd/y8hIyAZnRAnHIEDyS0AeoL9KoFjmAQRb/M1kAqZOBdrbefVPgwuDAMkrznmAYJPB8vLyZK0E8o5ieVf9FEVpE3iXKy6rWxMllaKDgMvlQnl5OV577TXU1dVh2LBhuPPOO/HYY49BpVIBAERRxKpVq7Bx40Y0NTXhggsuwIYNGzB+/Pgktz5FxTEP0NcQkCiKMVcC9byByciQ7gDa2qQ1gDo7ZV3dmkgRFB0E1q5dixdffBFbt27F+PHj8fnnn+Ouu+5CVlYWFi9eDABYt24d1q9fjy1btmD06NFYs2YN5syZg9raWpi849CUeHHIAyRiCKhnEnjKFOkOgIu/0WCl6CDwySefYN68ebjqqqsAAGeccQZef/11fP755wCku4CqqiqsXLkSN9xwAwBg69atyM/Px7Zt27Bw4cKktT3lxDEPkMghoJ4Lm7a3MwlMg5uig8BFF12EF198Ed988w1Gjx6NL7/8Eh9//DGqqqoAAEePHkVdXR1KSkp8P6PX6zFz5kzs3buXQSBR4pgHSPQQkNEI5OXFbYtjIsVRdBB49NFH0dLSgrFjx0KtVsPtduOpp57CrbfeCgCoq6sDAOTn5wf8XH5+Po4dOxbyde12O+x2u+95a2trHFqfQuKYB0jGENBFF8m6sCmRoik6CLzxxht49dVXsW3bNowfPx7V1dUoLS1FYWEh7rjjDt95giAE/Jwoir2O+ausrMSqVavi1u6UFad1gaSXNsJkMskyBBRsIbjc3LjsbUOkeIoOAo888giWLVuGW265BQBw9tln49ixY6isrMQdd9yBgoICAPBVDnnV19f3ujvwt3z5cixZssT3vLW1FUVFRXH6LVKId/w/DnkAr1iHgEItBDd7NoeAKDUpOghYrVZfKaiXWq2Gx+MBAIwYMQIFBQXYvXs3Jk2aBEAaPtizZw/Wrl0b8nX1ej30en38Gp4qvJfUjY2AVistpGOzSd+TKQ/Q2dmJQ105hokTJyItLS2mIaBQC8G1tARub8whIEoVig4C11xzDZ566imcfvrpGD9+PL744gusX78ed999NwBpGKi0tBQVFRUoLi5GcXExKioqYDQaMX/+/CS3fpDzv6QGpISwyQSUlgI5ObLlAcxmMwwGAzo6OrBs2TJZhoD6WgiOQ0CUahQdBH7zm9+grKwM9913H+rr61FYWIiFCxfi8ccf952zdOlS2Gw23Hfffb7JYrt27eIcgXjrWVNptUp3ATk5sucBAGkYSM4hIC4ERyRRdBAwmUyoqqrylYQGIwgCysvLUV5enrB2kR//ZLB3KChKofIA1hhzDKHmAHAhOCKFBwEaAGRKBscjD8A5AET9YxCgyFks3clgi0UaUI9xUpjceQDOASAKD4MARabn7GCgOyFcUBDzJbVceYD+hoCYACaSMAhQZHrODvZPCMewOqg3D+DxeGCz2SCKoizN9aYsOAREFByDAEVHpoSwNxdQV1eHQ4cOweFwQKfTYeLEiSgoKIg5D+DFISCi4BgEKDoyJYS9uYAhQ4Zg1qxZaG9vR2dnJ5YtWxbx/sAJ2teeaFBhEKDI6HRSb9rcLMvsYC9vLsBgMMBisUS1P3Cc97UnGpQYBCg83nEWAFiwQPo3J0f6N4reVe45ARZL9xCQdzmInBzZ17EjGnQYBKh/PZeIAKSr/7KyqC6t5Z4T0HNjeLVaWg5i4sSIm0aUchgEqH/Blohobu6+M4j45eSdE+BtXnq6tCJoR4e0HpDVyj2BifrDIEDhk3GJCOnl5JkT4JWTIy0J3dIizV/jnsBE/WMQoPDFWBEUjzxAz3JQszlwSWgGAKK+MQhQ/2SoCIpXHoDloESxYRCg0GSsCIpXHoDloESxYRCg4GSuCPKKNQ8QbGXQOG1rTJQSGAQoOJkrgry84//R5AH6WxmUiCLHIEB9i7EiyJsMbmxshFarRVNTE2xdrxNpHoArgxLJj0GA+hZDRZB/MhgAOjs7YTKZUFpaipycnKj2Cga4MiiRnBgEKDgZKoL8k8FGoxFWqxU2mw05OTkx5QG8uDIoUewYBCiQzGsEAYHJYFuEQ0osBSWKLwYB6haniqBYksEsBSWKLwYB6iZTRZCcyWAvloISxQeDAPUWQ0WQXMngUHmAGPewIaIeGASotxgqguRIBjMPQJQ4DALUTcZdw2JJBjMPQJQ4DALUzWyWksD+OYAoe9xYksFezAMQxR+DAAWWhQIxbRcZSzKYeQCixGMQSHUylIXKkQxmHoAoORgEUp0MZaFyJIOZByBKDgYBksiwdWQsyeBgzWAegCj+GARIEuPWkdKPRpcMtli68wAejxSDuDQ0UWIwCKS6GMpC5UoGr14N1NVJeQCHQ3rriROBggLmAYjijUEg1UVZFirXzGBvLmDIEGDWLKC9XUoML1sGFBUxD0AUbwwCqSrGslC5lon28uYCDAapafn5DABEicAgkIpkXC1UjmQwIEtKgoiiwCCQimTcPziWZLDDATQ2Alot0NQU80oVRBQFBoFUFkNZqE6nQ3Z2Npqbm6NOBntvRDo7pWaUlkr713BOAFHiMAiksijHYLxVQQsWLIDT6YRWq40qGex/I2KzSQGAcwKIEotBIBXFWBbqXxUk/Wg2ysrKIt40Xob5aUQUIwaBVBTDaqHBqoKam5vhCCOfwAXiiJSHQSDVyLBiKBB5VRAXiCNSJgaBVCJjaWikVUFcII5ImRgEUokMpaGxVAUBXCCOSGkYBFJRFBlZb0UQACxYsAAAkJOTAwBhVwUBnBRGpDQMAqkowp44loogTgojUjZVshvQn3/961/4yU9+ArPZDKPRiHPPPRf79+/3fV8URZSXl6OwsBAGgwGzZs1CTU1NElusYN7SUJtN6p1ttrB6Yv+KILPZDIPBEFZFkDcFsXw58PTTQFubdAPyyCNAZWVUqQgikpmi7wSampowY8YMXHrppdi5cyfy8vLw7bffIjs723fOunXrsH79emzZsgWjR4/GmjVrMGfOHNTW1vqqV6hLjBvJR1oRxElhRMqn6CCwdu1aFBUVYfPmzb5jZ5xxhu+xKIqoqqrCypUrccMNNwAAtm7divz8fGzbtg0LFy5MdJOVL4ZL72jXCeKkMCLlUvRw0DvvvIMpU6bgxhtvRF5eHiZNmoRNmzb5vn/06FHU1dWhpKTEd0yv12PmzJnYu3dvMpqsTBYLcPJk95fFEtGPeyuCbDYbLBYLbDZbRBVBVqs0FMRkMJHyKPpO4LvvvsMLL7yAJUuWYMWKFfjss8/w4IMPQq/X4/bbb0ddXR0AID8/P+Dn8vPzcezYsZCva7fbYbfbfc9bW1vj8wsoQQxzA6KtCGIymGjgUHQQ8Hg8mDJlCioqKgAAkyZNQk1NDV544QXcfvvtvvMEQQj4OVEUex3zV1lZiVWrVsWn0UoT5dyAaCuCuEIo0cCi6OGgYcOG4ayzzgo4Nm7cOPzwww8AgIKCAgDw3RF41dfX97o78Ld8+XK0tLT4vo4fPy5zyxXIOzBvNIZ1erQVQT1nBg8ZAjid3clgBgAiZVF0EJgxYwZqa2sDjn3zzTcYPnw4AGDEiBEoKCjA7t27fd93OBzYs2cPpk+fHvJ19Xo9MjMzA74GvSgH5r0VQcYwg0f3z0UUc4goSRQ9HPTQQw9h+vTpqKiowE033YTPPvsMGzduxMaNGwFIw0ClpaWoqKhAcXExiouLUVFRAaPRiPnz5ye59QoRw7LRQPQVQZwZTDQwKDoITJ06FTt27MDy5cvx5JNPYsSIEaiqqsJtt93mO2fp0qWw2Wy477770NTUhAsuuAC7du3iHAGvKOcGRLpGEJPBRAOTIIqimOxGJFtrayuysrLQ0tKSGkNDffCvCGpsbATQf0UQk8FEyhNuv6boOwFKrGgrgjgzmGjgYhAYrKLYPCaWXcMAzgwmGogYBAajGDePiXSNIC8mg4kGHgaBwSjGzWPCrQhiMpho4GMQGMwiHJ+JpCKIyWCiwYFBYDCLcHzGbDajrKwsIAcQqiKIyWCiwYFBYDCKcIKYf1mo9OPhbxfJZDDRwMYgMBhFMEEslq0jASaDiQY6BoHBKswr+WjKQi2W7mSwxSIlhNPSmAwmGoiiDgIulwsffPABvv32W8yfPx8mkwknTpxAZmYmMjIy5GwjJUC4ZaH+CeHOTumYNyFcUMBkMNFAE1UQOHbsGK644gr88MMPsNvtmDNnDkwmE9atW4fOzk68+OKLcreTwhHFBDGvcMtCey4V7Z8QZgAgGniiCgKLFy/GlClT8OWXXwaMG19//fX42c9+JlvjKAJRThCLdKE4LyaEiQaHqILAxx9/jL///e+9Oorhw4fjX//6lywNowhFOEEs2q0jvZgQJhocogoCHo8Hbre71/F//vOfXMI52cK4RI+lIijG7QmISGGiCgJz5sxBVVVVwOYu7e3teOKJJ3DllVfK2kCKUBiX6NFWBHm/3XXjgK4bB84OJhrAogoCzzzzDC699FKcddZZ6OzsxPz58/GPf/wDubm5eP311+VuI4Ujikv0aCqCvCJYj46IFCyqIFBYWIjq6mq8/vrrOHDgADweD+655x7cdtttMBgMcreRwhHFDmLRVARFsR4dESlY1PMEDAYD7r77btx9991ytodiEeZlOSuCiMgr6iDwyiuv4KWXXsJ3332HTz75BMOHD8czzzyDkSNHYt68eXK2kWQWyUJx/lgRRDT4qKL5oRdeeAFLlizB3Llz0dTU5KsUGjJkCKqqquRsH/XHYgFOnuz+slj6Od2CkydP+gKATqfDsGHD+gwA3nSDzSa9vM3GiiCiwSKqjebPOussVFRU4LrrroPJZMKXX36JkSNH4tChQ5g1axYaGhri0da4GbAbzUeYsY20NNS/Iqhrz3lWBBENEHHdaP7o0aOYNGlSr+N6vR4dHR3RvCRFI8KMbSSloawIIkoNUQ0HjRgxAtXV1b2O79y5E2eddVasbaJIeTO2RmOYp0ulocY+zu+5RpDBwIogosEoqjuBRx55BIsWLUJnZydEUcRnn32G119/HZWVlXj55ZflbiP1J8KMbbiloQArgogGu6iCwF133QWXy4WlS5fCarVi/vz5OO200/Dss8/illtukbuNFEqEE8SiKQ1lRRDR4BZVYthffX093n//fWRnZ2Pq1KkYNgA3mB2wiWEg4uWj+9tK0vtyjY1AVRXQ1iZtGAMwJ0A0kMQ1Mez11ltv4e6778aYMWPgcDhQW1uLDRs24K677orlZSkSEfbIfZWC9kwGd3Z2bxiTk8OKIKLBKKIg0N7eHrBrWHl5OT777DOMHj0aAPDee+9hwYIFDAIKE+5G8sGKjbwbxgzAGzwiCkNEQWDy5MlYt26db0awRqNBfX29LwicOnWq36UHKLGiWTaayWCi1BFREPjzn/+M++67D1u2bMGGDRvw7LPP4uabb4bb7YbL5YJKpcKWLVvi1FTyiSAPEM2y0UwGE6WOiILAGWecgT/96U/Ytm0bZs6cicWLF+PIkSM4cuQI3G43xo4dizRvFpHiI8pZXOEsG80NY4hST1SJ4fnz52Pu3Ll4+OGHMWvWLGzcuBHnnnuuzE2joKJc17mvuQHcMIYodUUcBHbu3InDhw/jnHPOwW9/+1t88MEHmD9/Pq688ko8+eST3E8gUcIcuO9vbgCXhyBKbREFgaVLl2Lr1q249NJL8fzzz+POO+9EWVkZvvjiCzz55JM499xzUVVVhblz58arveQV5sB9f8tGc8MYotQWURD43e9+hz//+c+YPHkyGhsbceGFF6KsrAw6nQ5r1qzBrbfeioULFzIIxFOYA/fhloV6sSKIKDVFFASMRiOOHj2KyZMn4/jx472SwOPHj8fHH38sawOphzC2kYymLJQVQUSpKaIgUFlZidtvvx0PPvggrFYrtm7dGq92UV/6GayPpCyUFUFEqS2iIHDbbbfhiiuuwHfffYfi4mJkZ2fHqVkkh3DKQqPYn56IBpGIq4PMZnO/e9GSMoRbFgqw4ydKVTEtIEcJFEGvzbJQIgoXg8BAEGGvzbJQIgoXg8BAEEWvHc6QHctCiYhBYCDpp9eOdG4Ay0KJiEFgIOmj145kbgDLQonIi0FgIAij1w53boA3v7xgAeB0Alotdw0jSmUDKghUVlZixYoVWLx4MaqqqgAAoihi1apV2LhxI5qamnDBBRdgw4YNGD9+fHIbK6cIivn7mhvAqiAi6kmV7AaEa9++fdi4cSMmTpwYcHzdunVYv349nnvuOezbtw8FBQWYM2cO2traktTSODGbpT0evV8hl3+woq2tLejcAP/8stks/cuqIKLUNiCCQHt7O2677TZs2rQJQ4YM8R0XRRFVVVVYuXIlbrjhBkyYMAFbt26F1WrFtm3bktjixPPODbDZbLBYLLDZbAFzA/x588tGYxIaSkSKMiCGgxYtWoSrrroKs2fPxpo1a3zHjx49irq6OpSUlPiO6fV6zJw5E3v37sXChQuT0dyk6G9ugD9WBRGRl+KDwPbt23HgwAHs27ev1/fq6uoAAPn5+QHH8/PzcezYsZCvabfbYbfbfc9bW1tlam1y9Tc3gFVBRNSTooPA8ePHsXjxYuzatavPvYsFQQh4Lopir2P+KisrsWrVKtnaGVf9LBcRztwAbh9JRKEIoiiKyW5EKH/84x9x/fXXQ61W+4653W4IggCVSoXa2lqMGjUKBw4cwKRJk3znzJs3D9nZ2SGXug52J1BUVISWlhZkZmbG7xeKVD/lPOHMDWBFEFFqam1tRVZWVr/9mqLvBC6//HJ89dVXAcfuuusujB07Fo8++ihGjhyJgoIC7N692xcEHA4H9uzZg7Vr14Z8Xb1eD71eH9e2y6Kf5SLCmRvAdYKIqC+KDgImkwkTJkwIOJaeng6z2ew7XlpaioqKChQXF6O4uBgVFRUwGo2YP39+MpocH/0sFxHOvgFcJ4iIglF0EAjH0qVLYbPZcN999/kmi+3atcvXKQ4K/ZTz9LVvQJgvQUQpasAFgQ8++CDguSAIKC8vR3l5eVLaE1f9lPP0t29AGC9BRClO0YnhRAk3gZIUMlcHBXkJIhqEBkVimNBvbx1qbgA7fiIKB4PAANTf1T/LQokoXAwCA0w4cwNYFkpE4WIQGGDC3TcAYFkoEfWPQUCJwhjQD2duAMtCiag/DAJKE+aAfl9zA1gWSkThYhBQmn4G9PuaG8CF4ogoUgwCShViQD/UvgGAmRVBRBQxBgGl6mNAP9jcgJMnWRFERJFjEFCaGAf0WRFERJFgEFAas1kaw+lRHWQB4Dh50u8Qt44kotgxCChRr7V/+p8gxoogIooGg8AAEM4EsRA3EEwKE1GfGAQGkGATxLhQHBHFgkFgAOk5QayxUcCmTSwLJaLoMQgoRR+X9KEmiAE6loUSUUwYBJSgn6UiQk0Qczik6cAsCyWiaDEIKEEYaz+HmiAGsCyUiKLHIKAkQS7p+9pAhmWhRBQrBgEl6XFJb2lsxOpNm0LOD2BZKBHFikFACUJc0juAoPMD6uqc7PiJSBYMAkoQ6pK+67n//ICmJhWqqkxwOrtPZVkoEUWLQUApgvXgXZlf//kBHo8OLS0CzGaWhRJR7BgEFCzY/ICsrKFoa1OxLJSIZMEgoGDB5gc0Nurx9NNpLAslIlkwCChcz/kBLAslIjkxCAwwLAslIjkxCCRTiPWCgk0QA8zs+IlIdgwCyRJivSDLokVYvWFDwAQxvb4QQBnsdoP/qSwLJaKYMQgkS4j1ghwdHb0miFksHQBEloUSkexUyW5AyvPWehqNPQ5LE8SMfsdDnEpEFDXeCSRbiFrPwA1kdH2dSkQUNQaBZAlR66lLT+81QWzIkCEABNhsLAslInkJoiiKyW5EsrW2tiIrKwstLS3IzMxM3BuzOoiI4iTcfo13AskUohf3nyDGjeSJKJ4YBBSsn10niYhixiCgEMGGgBwOMzeSJ6K4YhBQAIvFgtWrV/faQWzBgscB5HDFUCKKGwYBBXA4HEF3EHN27RzD0lAiihcGgUQLlunt4r+DmM1mg1YrcsVQIoorBoFECpXpXbAAQM8JYkBOjsgVQ4korhgEEinEekE6oNcEsezsbOh0Onb4RBRXDALJ0CPTa87JCdhBrLFRAKCDw5GDkyd59U9E8cMgkAxBMr3eCWIWC7BpE+cGEFFiKDoIVFZW4q233sL//d//wWAwYPr06Vi7di3GjBnjO0cURaxatQobN25EU1MTLrjgAmzYsAHjx49PYstDCGNvyBAjRpwbQEnjdrt9lWqkHFqtFmq1OubXUXQQ2LNnDxYtWoSpU6fC5XJh5cqVKCkpweHDh5Geng4AWLduHdavX48tW7Zg9OjRWLNmDebMmYPa2lpfpY1i9Ngb0tLYCAcgPT950rdGENBrxIgo4URRRF1dXcD8FVKW7OxsFBQUQBCEqF9D0UHg/fffD3i+efNm5OXlYf/+/bjkkksgiiKqqqqwcuVK3HDDDQCArVu3Ij8/H9u2bcPChQuT0ey++YZ9LFi9aVPICWKcG0DJ5g0AeXl5MBqNMXU0JC9RFGG1WlFfXw8AGDZsWNSvpegg0FNLSwsAICcnBwBw9OhR1NXVoaSkxHeOXq/HzJkzsXfvXmUGgS6hJogBDs4NoKRzu92+AGBmMkqRDAZpu9n6+nrk5eVFPTQ0YIKAKIpYsmQJLrroIkyYMAGAdKUCAPn5+QHn5ufn49ixYyFfy263w263+563trbGocXh6TlBjHMDSAm8OQAjt7FTNO/fx+l0Dv4gcP/99+PgwYP4+OOPe32v522qKIp93rpWVlZi1apVsrcxGt6JYY2NAqzWLJw6pUJ+Pjt+UgYOASmbHH+fAREEHnjgAbzzzjv48MMPcdppp/mOFxQUAJDuCPzHxOrr63vdHfhbvnw5lixZ4nve2tqKoqKiOLQ8NJ1O55sg1tSkwsGD8wBk45e/zEJaGstCiSgxFB0ERFHEAw88gB07duCDDz7AiBEjAr4/YsQIFBQUYPfu3Zg0aRIAaax9z549WLt2bcjX1ev10Ov1cW17gCDrBZnNZt8EsVOnVKioMMFoFGA2p7EslIgSRpXsBvRl0aJFePXVV7Ft2zaYTCbU1dWhrq7Ot7SCIAgoLS1FRUUFduzYgUOHDuHOO++E0WjE/Pnzk9z6Lt71gpYv7/5avRqwWGA2mzFs2DDk5+fDaDTCbDbAZJLKQ4kocoIg9Pl15513Jqwt5eXlvd7fO3rhJYoiysvLUVhYCIPBgFmzZqGmpiZhbQQUfifwwgsvAABmzZoVcHzz5s2+P+bSpUths9lw3333+SaL7dq1SzlzBCKY/cWyUKLYnDx50vf4jTfewOOPP47a2lrfMW9FTaKMHz8ef/nLX3zPeyZvlTDPSdFBQBTFfs8RBAHl5eUoLy+Pf4Ni0TX7y2KzwWG1AqdOAZByAzqdmWWhRDLwv9LOysoKevWdSBqNJuT7K2Wek6KDwKBitcJis2H1Rx+h2WYDKioAoxHZ2dkoKytDWZmZZaE0OAXbQ0Nh/3FXVFSgoqKiz3N27tyJiy++OKLX/cc//oHCwkLo9XpccMEFqKiowMiRIwEoZ54Tg0C8+a0X5LBa0WyzwWA0wpibi0abESdOOHH8uItloTQ4hdpDQ2Glb/feey9uuummPs/5t3/7t4he84ILLsB//dd/YfTo0Th16hTWrFmD6dOno6amBmazOep5TnJjEIg3//WCTp0CKipgzM2FOmM4vvx0GlpbvZVBivx/gyg2A2RFxJycHN9KBJH66KOPMHfuXN/zl156CbfddlvAsbPPPhvTpk3DmWeeia1btwaUqEc6z0luDAKJ4N+rG42wiiI8LTZ0dGihVtswZIgHKpUi/98gkofCV0SMZThoypQpqK6u9j0PNUcpPT0dZ599Nv7xj38AiH6ek9wYBBLIf4KY1doEt9uNzEwBWVkquN2K/H+DSB4KL32LZTjIYDBg1KhR/b6H3W7H119/7Qsk0c5zkhuDQAKFmiDmdhuU+v8GUWzC2ENDCWIZDgrl4YcfxjXXXIPTTz8d9fX1WLNmDVpbW3HHHXcACJznVFxcjOLiYlRUVCR8nhODQIJ5V2TU6YDCQun/DYtF+p4C/98gik2PPTQApEwFxD//+U/ceuutaGhowNChQ3HhhRfi008/xfDhw33nKGGekyCGU4w/yLW2tiIrKwstLS3IzMxM2PsOgMo5SlGdnZ04evQoRowYgbS0tGQ3h0Lo6+8Ubr/GO4EkYodPRMnGIBBPXZf6lsZGOJxOQKtFI8wAdL7xR179E1EyMQjES9ckGUtdHVYfPIhmhwOdqqE4iDJAk4uJEyciLS2NcwOIKKkYBOKla5KMQ6dDsyDAoNNB79LB7TYBQjuyslycG0BESccgEG8GA6DVwqhWA51aaKAGNO3IyJDy8ZwbQETJxCAQbzYb4HTC6nDA48qAy+0GBD3a2wWoFL2bAxGlAnZD8dI1SUbncCBbFGFzONACB9TqNqjVGWhp0cBm49wAIkou3gnES9ckGbPDgbKg1UFSTS+rg4gomRgE4snbu+uGAV3J3xyw4yci5WAQiLMBspw6EaUo5gTiyGKx4PjxUzhxwgqPpwNGoxUGA8tCieJFKRvNf/nll7j11ltRVFQEg8GAcePG4dlnnw045/vvvw/axvfffz8hbfTinUCcWCwWrF69GidOiDhw4Ebo9W0wmQScd94lAIzJbh7RoKSUjeb379+PoUOH4tVXX0VRURH27t2Ln//851Cr1bj//vsDzv3LX/6C8ePH+57LvZppfxgE4sThcKC5uRlpafnQ6/UQRTfa2qxobxdZGkoUJ0rZaP7uu+8OeD5y5Eh88skneOutt3oFAbPZnJQ2erE7kpvFApw8KW0labUiQ+OByeSGIBhht5vQ2SmwLJRSisViwcmTJ31fFu/a6QpSUVGBjIyMPr8++uijmN6jpaUl6FX+tddei7y8PMyYMQNvvvlmTO8RDd4JyMk/C2y1AgcOQDT+H86bArS7VOjs7MSKFcUoKjIyKUwpwTss2uxXGZGdnY2ysjLf3hpKEI+N5v198skn+P3vf4/33nvPdywjIwPr16/HjBkzoFKp8M477+Dmm2/G1q1b8ZOf/CTq94oUg4Cc/DbV1hmNyDYY0Gy1Au3HoDIaUViYjaIiDQMApQzvsKjBYIDRaITVakVzczMcCquMiMfOYl41NTWYN28eHn/8ccyZM8d3PDc3Fw899JDv+ZQpU9DU1IR169YxCAx4RiPMJhMWTb0CHT+2AAseBIYORXq6FmZzYpM+REpgNBp9u2XZFLhgViwbzffl8OHDuOyyy7BgwQI89thj/Z5/4YUX4uWXX47oPWLFIBAPVissNiM27LsCzTY9sGkkYDRyfgClLGvXJtpWhW6mHY/hoJqaGlx22WW444478NRTT4X1M1988QWGDRsW0fvEikFATn6bajusrWi26WEwAsZcwCpyfgClHp1Oh+zsbDQ3N/vuALKzs6FTWGWE3MNBNTU1uPTSS1FSUoIlS5agrq4OAKBWqzF06FAAwNatW6HVajFp0iSoVCq8++67+PWvf421a9fK1o5wMAjIyX9T7VMqoMIEYy5gyjMCbVw2mlKP2WxGWVlZQA5Ap9MpKikcD3/4wx/w448/4rXXXsNrr73mOz58+HB8//33vudr1qzBsWPHoFarMXr0aPzud79LaD4A4EbzAOTdaN5iscDhcODUKRUqKkwwGgWYzQZYrVIQqKwEEny3RxQxbjQ/MHCjeYXxL4fr7EzHoUPzAGQHbCWpsLtgIkpxDAIy8i+HM5vTYDDsQkeHE8uWDUd+fhpXDyUixWEQkFlnZzr0+qEAMqDTtcNm+xH5+R4OARGRIjEIyKixUcDBg/Pgdpug0WjgcrmgVrehsVFgECAiRWIQkJUOQDaAdgB2APqu50wEEJEyMQjIwWIBHA7kOFWYWFyMrGw3MnKlzeRbWjS+rSSJiJSGQSBWAYvGZSGt5kaojAAuOg8qlRGsriMiJWMQiFXAonGZyDbY0WzVw9YAwAiWhRKRojEIyMDS2QmHXg9kWLHgvPeAZityVhQD+UaWhRKRojEIxMjS2IjVBw+i2e0GNBrA5UK2Wo0ybQPMw/KT3Twioj5xZ7EYOQDUubLgcQ2F3pkLj2so6lxZ4DpxRImXrI3ma2pq8B//8R8444wzIAgCqqqqgp73/PPP+5Z4mDx5cq/dykRRRHl5OQoLC2EwGDBr1izU1NTEpc1evBOIUSPMOIgyCOpsaLVaOOGEiGY0wgxODSBKrGRtNG+1WjFy5EjceOONARvF+HvjjTdQWlqK559/HjNmzMBLL72EuXPn4vDhwzj99NMBAOvWrcP69euxZcsWjB49GmvWrMGcOXNQW1vr249BbrwTiJHTKcDhyYSocUKd1g5R44TDkwmnU0h204hSTkFBge/Lf6N5/2PxMHXqVDz99NO45ZZboNfrg56zfv163HPPPfjZz36GcePGoaqqCkVFRXjhhRcASHcBVVVVWLlyJW644QZMmDABW7duhdVqxbZt2+LSboBBIGZarRY6nQ6CYIXb3QJBsEKn00Gr1Sa7aUSKYLEAJ092fylwn/m4bzTvcDiwf/9+lJSUBBwvKSnB3r17AQBHjx5FXV1dwDl6vR4zZ870nRMPHA6KUU5ODiZOnAidzg2DQYTNJsDhUHOCGBECp9F4KXGHvXhvNN/Q0AC32438/MBikfz8fN+GM95/g51z7NixqN+7PwwCMdLpgIKCNDQ3A3Y7oFIBBQWcG0AEBEyjgdEIWK3K3GEvnhvN+xOEwGFiURR7HQvnHDkxCMTIfzMxL84NIApkNALevKYSd9iL10bzXrm5uVCr1b6rfa/6+nrflX9BQQEA6Y7Af59h/3PiYdDkBPorvYons1naLcz7xQBAFMhqBdrapH+V6N5770V1dXWfX1OmTIn69XU6HSZPnozdu3cHHN+9ezemT58OABgxYgQKCgoCznE4HNizZ4/vnHgYFHcC4ZReye0fn32LjpbuS5r0LAOKzz8zLu9FNFDpdFIOoLm5+w5AiUupxDoc5HA4cPjwYd/jf/3rX6iurkZGRgZGjRoFAFiyZAl++tOfYsqUKZg2bRo2btyIH374Affeey8AaRiotLQUFRUVKC4uRnFxMSoqKmA0GjF//vzYf8lQxEHg/PPPF++9996AY2PHjhWXLVsW1s+3tLSIAMSWlpawzv/mf4+I5+a+Kp6Z8abv69zcV8Vv/vdIxG0nUiKbzSYePnxYtNlsMb9WQ4MonjjR/dXQIEMDw7B582YxKysrIe919OhREUCvr5kzZwact2HDBnH48OGiTqcTzzvvPHHPnj0B3/d4POITTzwhFhQUiHq9XrzkkkvEr776KuT79vV3CrdfG/AbzTscDhiNRvzhD3/A9ddf7zu+ePFiVFdXY8+ePb1+xm63w263+563traiqKgo7I3mq3cfwv93Qy10GicMWidsTi0cLi3efGsMzp0zQZ5fjCiJuNH8wCDHRvMDPicQTulVT5WVlcjKyvJ9FRUVRfXeBq0TJqMbBq0zqp8nIkq2AR8EvCIpq1q+fDlaWlp8X8ePH4/qPW1OLdqsaticnBhGRAPTgE8Mh1N61ZNerw85tTsc6VkGmNI60daZBodLCgCmtE6kZ8VnXRIiongZ8EHAv/TKPyewe/duzJs3Ly7vWXz+mfj9e2B1EBENeAM+CAD9l17FAzt8SgUDvG5k0JPj7zMogsDNN98Mi8WCJ598EidPnsSECRPwpz/9CcOHD09204gGJO8CiFarNW7LL1PsrF2z72JZsHLAl4jKIdxSKqJUcvLkSTQ3NyMvLw9GozGu69dQZERRhNVqRX19PbKzswOWmfAKt18bFHcCRCQ/71o29fX1SW4JhZKdne37O0WLQYCIghIEAcOGDUNeXh6cTs6FURqtVgu1Wh3z6zAIEFGf1Gq1LJ0NKdOgmSxGRESRYxAgIkphDAJERCmMOQF0T7hobW1NckuIiOTh7c/6mwXAIACgra0NAKJeTZSISKna2tqQlZUV8vucLAbA4/HgxIkTMJlMEU2I8e5DcPz4cU4y88PPJTR+NsHxcwkt2s9GFEW0tbWhsLAQKlXokX/eCQBQqVQ47bTTov75zMxM/ocbBD+X0PjZBMfPJbRoPpu+7gC8mBgmIkphDAJERCmMQSAGer0eTzzxREwb1AxG/FxC42cTHD+X0OL92TAxTESUwngnQESUwhgEiIhSGIMAEVEKYxAgIkphDAJRev755zFixAikpaVh8uTJ+Oijj5LdJEX48MMPcc0116CwsBCCIOCPf/xjspuUdJWVlZg6dSpMJhPy8vJw3XXXoba2NtnNUoQXXngBEydO9E2EmjZtGnbu3JnsZilOZWUlBEFAaWmp7K/NIBCFN954A6WlpVi5ciW++OILXHzxxZg7dy5++OGHZDct6To6OnDOOefgueeeS3ZTFGPPnj1YtGgRPv30U+zevRsulwslJSXo6OhIdtOS7rTTTsMvf/lLfP755/j8889x2WWXYd68eaipqUl20xRj37592LhxIyZOnBifNxApYueff7547733BhwbO3asuGzZsiS1SJkAiDt27Eh2MxSnvr5eBCDu2bMn2U1RpCFDhogvv/xyspuhCG1tbWJxcbG4e/ducebMmeLixYtlfw/eCUTI4XBg//79KCkpCTheUlKCvXv3JqlVNJC0tLQAAHJycpLcEmVxu93Yvn07Ojo6MG3atGQ3RxEWLVqEq666CrNnz47be3ABuQg1NDTA7XYjPz8/4Hh+fj7q6uqS1CoaKERRxJIlS3DRRRdhwoQJyW6OInz11VeYNm0aOjs7kZGRgR07duCss85KdrOSbvv27Thw4AD27dsX1/dhEIhSzyWnRVGMaBlqSk33338/Dh48iI8//jjZTVGMMWPGoLq6Gs3Nzfjv//5v3HHHHdizZ09KB4Ljx49j8eLF2LVrF9LS0uL6XgwCEcrNzYVare511V9fX9/r7oDI3wMPPIB33nkHH374YUxLlw82Op0Oo0aNAgBMmTIF+/btw7PPPouXXnopyS1Lnv3796O+vh6TJ0/2HXO73fjwww/x3HPPwW63Q61Wy/JezAlESKfTYfLkydi9e3fA8d27d2P69OlJahUpmSiKuP/++/HWW2/hr3/9K0aMGJHsJimaKIqw2+3JbkZSXX755fjqq69QXV3t+5oyZQpuu+02VFdXyxYAAN4JRGXJkiX46U9/iilTpmDatGnYuHEjfvjhB9x7773JblrStbe348iRI77nR48eRXV1NXJycnD66acnsWXJs2jRImzbtg1vv/02TCaT7y4yKysLBoMhya1LrhUrVmDu3LkoKipCW1sbtm/fjg8++ADvv/9+spuWVCaTqVfOKD09HWazWf5ckuz1Riliw4YN4vDhw0WdTieed955LPfr8re//U0E0OvrjjvuSHbTkibY5wFA3Lx5c7KblnR333237/+joUOHipdffrm4a9euZDdLkeJVIsqlpImIUhhzAkREKYxBgIgohTEIEBGlMAYBIqIUxiBARJTCGASIiFIYgwARUQpjECAiSmEMAjTgzJo1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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "g = np.linspace(0,4,num=100)\n",
    "ee = g2ee(g)\n",
    "\n",
    "# ee = np.linspace(0,100,200)\n",
    "# g = ee2g(ee)\n",
    "\n",
    "plt.figure(figsize=(4,4))\n",
    "plt.scatter(g,ee,c=\"black\",marker=\"s\",s=5)\n",
    "# plt.xlim(0,1.75)\n",
    "# plt.ylim(0,90)\n",
    "plt.xlabel(\"ddG in kcal/mol\",fontsize=10)\n",
    "plt.ylabel(\"%ee\",fontsize=10)\n",
    "plt.show()\n",
    "\n",
    "#         plt.scatter(y_train,y_train_pred, label = \"train\", alpha = 0.5, marker=\"s\", color = \"black\", s = 10)\n",
    "#         plt.scatter(y_test,y_test_pred, label = \"test\", alpha = 0.5, marker=\"s\", color = \"red\", s = 10)\n",
    "#         plt.legend(loc='lower right')\n",
    "#         plt.show()\n",
    "\n",
    "\n",
    "ee_1 = g2ee(g,-50)\n",
    "ee_2 = g2ee(g,25)\n",
    "ee_3 = g2ee(g,100)\n",
    "\n",
    "plt.figure(figsize=(4,4))\n",
    "plt.scatter(g,ee_1,c=\"red\",  marker=\"s\",s=5,label=\"T = -50\", alpha=0.5)\n",
    "plt.scatter(g,ee_2,c=\"black\",marker=\"s\",s=5,label=\"T =  25\", alpha=0.5)\n",
    "plt.scatter(g,ee_3,c=\"blue\", marker=\"s\",s=5,label=\"T = 100\", alpha=0.5)\n",
    "# plt.xlim(0,1.75)\n",
    "# plt.ylim(0,90)\n",
    "plt.legend()\n",
    "plt.xlabel(\"ddG in kcal/mol\",fontsize=10)\n",
    "plt.ylabel(\"%ee\",fontsize=10)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "3dd119a3",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-04-17T18:45:10.271143Z",
     "start_time": "2023-04-17T18:45:09.806486Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "T = np.linspace(-79,120,num=100)\n",
    "# g = np.ones(100)*3\n",
    "ee_1 = g2ee(np.ones(100)*1,T)\n",
    "ee_2 = g2ee(np.ones(100)*2,T)\n",
    "ee_3 = g2ee(np.ones(100)*3,T)\n",
    "\n",
    "# ee = np.linspace(0,100,200)\n",
    "# g = ee2g(ee)\n",
    "\n",
    "plt.figure(figsize=(4,4))\n",
    "plt.scatter(T,ee_1,c=\"red\",marker=\"s\",s=5,label=\"G = 1 kcal/mol\", alpha=0.5)\n",
    "plt.scatter(T,ee_2,c=\"black\",marker=\"s\",s=5,label=\"G = 2 kcal/mol\", alpha=0.5)\n",
    "plt.scatter(T,ee_3,c=\"blue\",marker=\"s\",s=5,label=\"G = 3 kcal/mol\", alpha=0.5)\n",
    "# plt.xlim(0,1.75)\n",
    "# plt.ylim(0,90)\n",
    "plt.legend()\n",
    "plt.xlabel(\"T in C\",fontsize=10)\n",
    "plt.ylabel(\"%ee\",fontsize=10)\n",
    "plt.show()\n",
    "\n",
    "T = np.linspace(-79,120,num=100)\n",
    "# g = np.ones(100)*3\n",
    "ddg_1 = ee2g(np.ones(100)*75,T)\n",
    "ddg_2 = ee2g(np.ones(100)*90,T)\n",
    "ddg_3 = ee2g(np.ones(100)*99,T)\n",
    "\n",
    "# ee = np.linspace(0,100,200)\n",
    "# g = ee2g(ee)\n",
    "\n",
    "plt.figure(figsize=(4,4))\n",
    "plt.scatter(T,ddg_1,c=\"red\",marker=\"s\",s=5,label=\"ee = 75\", alpha=0.5)\n",
    "plt.scatter(T,ddg_2,c=\"black\",  marker=\"s\",s=5,label=\"ee = 90\", alpha=0.5)\n",
    "plt.scatter(T,ddg_3,c=\"blue\", marker=\"s\",s=5,label=\"ee = 99\", alpha=0.5)\n",
    "# plt.xlim(0,1.75)\n",
    "# plt.ylim(0,90)\n",
    "plt.legend()\n",
    "plt.xlabel(\"T in C\",fontsize=10)\n",
    "plt.ylabel(\"ddg in kcal/mol\",fontsize=10)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:intel]",
   "language": "python",
   "name": "conda-env-intel-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
