{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Regression\n",
    "#### See our powerpoint on Moodle for some theory on this.\n",
    "The good news is we can use Python and it's **Scikit-Learn** Package to implement regression."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- We need data to work with so lets use numpy, which is an array processing package for use with numbers, strings, records and objects. Scikit-learn also needs **numpy.**  Make sure you have Scikit-Learn installed in your conda environment. Conda will spot the numpy dependency and install that too!\n",
    "\n",
    "- We also need to load files - eg spreadsheet files full of our data, or comma separated (csv) files and do some efficient, fast data analysis on that data. The usual package to use is **pandas.** We'll need to install that.\n",
    "\n",
    "- Finally, we'll want to draw pretty pictures of our results so we'll use the **matplotlib** package which is a plotting package that emulates MATLAB's \"plot()\" features (most people who use MATLAB do like to use plot - alot).\n",
    "\n",
    "By the way, if you want to use MATLAB (or Octave - the free equivalent), well, feel free!\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.  Explore the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import sklearn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.frame.DataFrame"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#load the data\n",
    "attenVResults = pd.read_csv('c:/Users/sc-gd/Documents/Results.csv')\n",
    "type(attenVResults)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(27, 2)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#dimensions the data\n",
    "#what size is it\n",
    "attenVResults.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "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>Attendance</th>\n",
       "      <th>Classification</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>27.000000</td>\n",
       "      <td>27.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>5.625926</td>\n",
       "      <td>47.140741</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>2.707477</td>\n",
       "      <td>22.771427</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.280000</td>\n",
       "      <td>15.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>3.315000</td>\n",
       "      <td>27.100000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>5.350000</td>\n",
       "      <td>42.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>8.305000</td>\n",
       "      <td>68.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>9.900000</td>\n",
       "      <td>85.600000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Attendance  Classification\n",
       "count   27.000000       27.000000\n",
       "mean     5.625926       47.140741\n",
       "std      2.707477       22.771427\n",
       "min      1.280000       15.400000\n",
       "25%      3.315000       27.100000\n",
       "50%      5.350000       42.400000\n",
       "75%      8.305000       68.050000\n",
       "max      9.900000       85.600000"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# descriptive statistics\n",
    "attenVResults.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Prepare the Data\n",
    "This data doesn't need much preparation but we could split the data up into a \"training\" set and a \"test\" set\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[3.59],\n",
       "       [8.65],\n",
       "       [1.28],\n",
       "       [2.16],\n",
       "       [1.72],\n",
       "       [6.56]])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#X contains the first column\n",
    "X = attenVResults.iloc[:, :-1].values\n",
    "#y contains the second\n",
    "y = attenVResults.iloc[:, 1].values\n",
    "#now split the data 80:20.  train:test.\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n",
    "\n",
    "y_test\n",
    "X_test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Visualize the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "attenVResults.plot(kind='scatter', x='Attendance', y='Classification', style='o')\n",
    "plt.title('Attendance vs Classification')\n",
    "plt.xlabel('Hours Attended')\n",
    "plt.ylabel('Percentage Score')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Select a model\n",
    "We're going to use simple linear regression and train it with the training data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "#select the model\n",
    "from sklearn.linear_model import LinearRegression\n",
    "lin_reg_model=sklearn.linear_model.LinearRegression()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. Train the Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-0.7882163526651951\n",
      "[8.41294781]\n"
     ]
    }
   ],
   "source": [
    "#train the model\n",
    "lin_reg_model.fit(X_train, y_train)\n",
    "print(lin_reg_model.intercept_)\n",
    "print(lin_reg_model.coef_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6. Make a Prediction\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'numpy.ndarray'>\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>Actual</th>\n",
       "      <th>Predicted</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>24.4</td>\n",
       "      <td>29.414266</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>77.5</td>\n",
       "      <td>71.983782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>15.4</td>\n",
       "      <td>9.980357</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>21.7</td>\n",
       "      <td>17.383751</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>18.1</td>\n",
       "      <td>13.682054</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>55.9</td>\n",
       "      <td>54.400721</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Actual  Predicted\n",
       "0    24.4  29.414266\n",
       "1    77.5  71.983782\n",
       "2    15.4   9.980357\n",
       "3    21.7  17.383751\n",
       "4    18.1  13.682054\n",
       "5    55.9  54.400721"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred = lin_reg_model.predict(X_test)\n",
    "print(type(X_test))\n",
    "#compare with actual test values\n",
    "data = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})\n",
    "#print(y_test.shape)\n",
    "#print(y_pred.shape)\n",
    "data\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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3/V6REakzqaI6toXX3whAIglS5YIIYQoLCwUTZs2FSqVymjct99+KwCIHTt2mJxj4MCBolWrVib9a9euFQDEd999Z9Sfnp4uAIhFixYZ+lq1aiUcHR3FhQsXDH03b94UzZs3FxMmTDD0DR8+XDg5OYmcnBxDX0lJiWjXrp3JzEx5paWl4vbt2yI1NdVohkMI3cwMAPHNN98Yfc+AAQNE27ZtDW3972rZsmWVXkMI3awRADF//nyj/szMTOHk5CSmTZtW5fcKIcTUqVOFk5OTuHr1qqHv5MmTAoD45JNPhBBC/P333wKA0QxGdezZs0cAEDNmzKj291ScmamopKRE3L59W4wfP15069bN0P/RRx8JAEY/R0WDBg0SXbt2veP1K87MCCHE7NmzBQDx119/GY2tODNTnferIq1WK27fvi2++OILIZfLxZUrVwzHqvo7F8J0ZmbEiBFCoVCIP/74w2hc//79hbOzs+H3op+ZGTBggNG4b775RgAQu3fvrnbsRHosAKYGZ/ny5XBycsKIESMAAE2bNsUzzzwDjUaDs2fP1urcP/zwA5o1a4bBgwejpKTE8OratSu8vLywc+dOo/Fdu3aFv7+/oe3o6Ig2bdrgwoULhr4dO3agT58+RrMbcrkcw4cPN7n++fPnERkZCS8vL8jlcjRp0gQhISEAgFOnThmNlclkGDx4sFFfly5djK69adMmODo6Yty4cXf8mWUyGUaNGmX0M3t5eeGBBx4w+ZkrGjduHG7evImvv/7a0Ldy5UooFApERkYCAJo3b47WrVvjww8/xIIFC3Do0CGUlpbe8byW9O2336JXr15o2rQpGjdujCZNmmD58uVGv9OHH34YADBs2DB88803yMrKMjlPjx49cOTIEUyaNAk//vgjCgoKLBpndd4vADh06BCeeuopeHh4GP5ORo8eDa1WizNnztTo2tu3b0efPn3g5+dn1D927FjcuHHDpC7pqaeeMmrrZ+DK//0RVReTGWpQfvvtN/z8888YOHAghBC4evUqrl69ioiICABlTzjV1J9//omrV6/CwcEBTZo0MXrl5OTg77//Nhrv4eFhcg6FQoGbN28a2pcvX4aXl5fJuIp9165dg0qlwt69ezF37lzs3LkT6enpUKvVAGB0TgBwdnaGo6OjybVv3bplaP/111/w8fFBo0ZV/6/izz//hBACnp6e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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Draw the fitted line (our linear model) on the scatter plot\n",
    "plt.scatter(X_train, y_train, color='black')\n",
    "plt.plot( X_test,y_pred, color='blue', linewidth=1)\n",
    "plt.title('Attendance vs Classification')\n",
    "plt.xlabel('Hours Attended')\n",
    "plt.ylabel('Percentage Score')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "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.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
