{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d563033c",
   "metadata": {},
   "source": [
    "# Import tools/models be used"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "fc9e6e26",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from math import pi\n",
    "from sklearn.ensemble import RandomForestRegressor     \n",
    "import joblib                                         # to store model\n",
    "import os\n",
    "import errno\n",
    "from sklearn.model_selection import train_test_split  # this is very important"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "313e157e",
   "metadata": {},
   "source": [
    "# Read data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bdc08ed0",
   "metadata": {},
   "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 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>$M_{inv}$</th>\n",
       "      <th>$rapidity$</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>512.889687</td>\n",
       "      <td>-1.698364</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>349.604335</td>\n",
       "      <td>0.649795</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>102.015218</td>\n",
       "      <td>0.935912</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>475.693746</td>\n",
       "      <td>1.691695</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>422.624040</td>\n",
       "      <td>1.233733</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8604</th>\n",
       "      <td>310.392511</td>\n",
       "      <td>1.763102</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8605</th>\n",
       "      <td>322.772764</td>\n",
       "      <td>1.343101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8606</th>\n",
       "      <td>373.867518</td>\n",
       "      <td>-0.255696</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8607</th>\n",
       "      <td>275.877980</td>\n",
       "      <td>0.169265</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8608</th>\n",
       "      <td>440.485176</td>\n",
       "      <td>0.265116</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8609 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       $M_{inv}$  $rapidity$\n",
       "0     512.889687   -1.698364\n",
       "1     349.604335    0.649795\n",
       "2     102.015218    0.935912\n",
       "3     475.693746    1.691695\n",
       "4     422.624040    1.233733\n",
       "...          ...         ...\n",
       "8604  310.392511    1.763102\n",
       "8605  322.772764    1.343101\n",
       "8606  373.867518   -0.255696\n",
       "8607  275.877980    0.169265\n",
       "8608  440.485176    0.265116\n",
       "\n",
       "[8609 rows x 2 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "directory = '../data/'\n",
    "filein    = 'checkNLO.txt'\n",
    "file      = directory+filein\n",
    "data = np.genfromtxt(file)\n",
    "\n",
    "m        = data[:,0:1]\n",
    "rap      = data[:,1:2]\n",
    "x2       = data[:,2:3]\n",
    "\n",
    "m = np.concatenate((m),axis=0) \n",
    "rap = np.concatenate((rap),axis=0) \n",
    "x2 = np.concatenate((x2),axis=0) \n",
    "\n",
    "Data_ave = np.stack((m,rap),axis=-1)\n",
    "df = pd.DataFrame(Data_ave)\n",
    "df.columns = ['$M_{inv}$','$rapidity$']\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0248b96b",
   "metadata": {},
   "source": [
    "# Split data into training and testing sub-sets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "de4cf784",
   "metadata": {},
   "outputs": [],
   "source": [
    "# for reproducibility\n",
    "#X_train, X_test, y_train, y_test = train_test_split(Data_ave, x2, test_size=0.4, train_size=0.6 , random_state=0)\n",
    "X_train, X_test, y_train, y_test = train_test_split(Data_ave, x2, test_size=0.4, train_size=0.6 )\n",
    "\n",
    "# rename data for convenience\n",
    "x2_train   = y_train\n",
    "m_train    = X_train[:,0:1]\n",
    "rap_train  = X_train[:,1:2]\n",
    "\n",
    "x2_test   = y_test\n",
    "m_test    = X_test[:,0:1]\n",
    "rap_test  = X_test[:,1:2]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2624e86c",
   "metadata": {},
   "source": [
    "# Now let's do some training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "b8ef444a",
   "metadata": {},
   "outputs": [],
   "source": [
    "'''Training and prediction with Linear Model'''\n",
    "#-----------------------------------------------------------------------------#\n",
    "# Input:                                                                      #\n",
    "# X_train  := training data set                                               #\n",
    "# y_train  := targets for training                                            #\n",
    "# X_trest  := testing data set                                                #\n",
    "# y_test   := targets for testing                                             #\n",
    "# filename := name for training storage                                       #\n",
    "# model    := name of the mode we want to use                                 #\n",
    "# ----------------------------------------------------------------------------#\n",
    "# Output:                                                                     #  \n",
    "# loaded_model := trained model                                               #\n",
    "# R2 := quality of the training on the testing set                            #\n",
    "# y_fit := predicted targets                                                  #\n",
    "# y_est := estimated targets                                                  #\n",
    "# ----------------------------------------------------------------------------#\n",
    "# Output labelling :                                                          #\n",
    "# Training(X,y,filename)[0] -> R2                                             #\n",
    "# Training(X,y,filename)[1] -> y_new                                          #\n",
    "# ----------------------------------------------------------------------------#\n",
    "\n",
    "def training (X_train, y_train, X_test, y_test,filename,model):\n",
    "\n",
    "    # train \n",
    "    model.fit(X_train, y_train)\n",
    "\n",
    "    # save trained model\n",
    "    joblib.dump(model, filename)\n",
    "\n",
    "    # load model \n",
    "    loaded_model = joblib.load(filename)\n",
    "\n",
    "    # R^2\n",
    "    R2   = loaded_model.score(X_test, y_test)\n",
    "    \n",
    "    # predicted targets \n",
    "    y_fit = loaded_model.predict(X_test)\n",
    "    \n",
    "    # estimated targets\n",
    "    y_est = loaded_model.predict(X_train)\n",
    "\n",
    "    \n",
    "    return R2, y_fit,y_est#, model.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "06b6bed9",
   "metadata": {},
   "outputs": [],
   "source": [
    "x2_train,x2_test;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "ca19e5ea",
   "metadata": {},
   "outputs": [],
   "source": [
    "m_train,m_test;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "be16d388",
   "metadata": {},
   "outputs": [],
   "source": [
    "# name of the model for storage\n",
    "filename = 'storage/x2_NLO_RandomForest.sav'\n",
    "\n",
    "# train \n",
    "Training_machine_learning = training(X_train,y_train,X_test,y_test,filename,RandomForestRegressor())\n",
    "\n",
    "# predict\n",
    "R2    = Training_machine_learning[0] \n",
    "y_fit = Training_machine_learning[1]\n",
    "y_est = Training_machine_learning[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "id": "3b225d13",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_est,y_train;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "id": "1cf2c418",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_fit,y_test;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "49492be3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9993286031666634"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "R2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "id": "93efe92e",
   "metadata": {},
   "outputs": [],
   "source": [
    "coefs;"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56253913",
   "metadata": {},
   "source": [
    "# Let's plot and see what we have"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "c97b86ca",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, (ax1, ax2) = plt.subplots(1, 2)\n",
    "\n",
    "ax1.scatter(m, x2, label='data')\n",
    "ax1.scatter(m_test, y_fit,label='prediction')\n",
    "ax1.scatter(m_train, y_est,label='estimated')\n",
    "ax1.legend()\n",
    "\n",
    "ax1.set_xlabel(xlabel='m',fontsize=16)\n",
    "ax1.set_ylabel(ylabel=r'$x_2$',fontsize=16)\n",
    "\n",
    "ax2.scatter(rap, x2, label='data')\n",
    "ax2.scatter(rap_test, y_fit,label='prediction')\n",
    "ax2.scatter(rap_train, y_est,label='estimated')\n",
    "\n",
    "ax2.set_xlabel(xlabel='rapidity',fontsize=16)\n",
    "\n",
    "plt.savefig('Plots/x2_LO_RandomForest_1.pdf')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "3a651a0f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, (ax1) = plt.subplots(1, 1)\n",
    "\n",
    "plt.ylim(-100,100)\n",
    "ax1.scatter(m_test, (y_test-y_fit)/y_test*100,label='relative % diff test')\n",
    "ax1.scatter(m_train, (y_train-y_est)/y_train*100,label='relative % diff train')\n",
    "ax1.legend()\n",
    "\n",
    "ax1.set_xlabel(xlabel='m',fontsize=16)\n",
    "ax1.set_ylabel(ylabel=r'$\\% diff$',fontsize=16)\n",
    "\n",
    "plt.savefig('Plots/x2_LO_RandomForest_2.pdf')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f9556065",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "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.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
