{
 "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": 1,
   "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": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.frame.DataFrame"
      ]
     },
     "execution_count": 2,
     "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": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(27, 2)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#dimensions the data\n",
    "#what size is it\n",
    "attenVResults.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "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": 4,
     "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": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEWCAYAAABhffzLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAhLElEQVR4nO3debwcZZ3v8c83CyEkQEK2CUsISwbcCMsZBwQ1bF5BJDgMCMoYgSsyelmUAaLXFy53vEbxcgd3I4tRFo0shgujLFHwqoieRFYDRnYkJIcQlrCELL/5o56WzuEsdU66unr5vl+vfnVXVVf1r/skv376eZ76lSICMzNrH0PKDsDMzOrLid/MrM048ZuZtRknfjOzNuPEb2bWZpz4zczajBO/lUrSVEkhaVjZsdRT0e9b0qclXVS1/D5Jj0taLWkvSfdJmlHA6/5M0qxaH9dqS57H354k3QpMB/4uItZUrX8E+O8RcUtango8DAyPiHUFxFHo8csk6e+BLwIHAsOBR4HvAxcCO1DH9y3pQeCTEbGghsf8HLBrRJxQq2NafbjF34ZSsn07EMCR5UbTmiTtAtwBPA68JSK2Bo4BOoAtSwhpR+C+El7XGlFE+NZmN+A84DfABcD1Vet/CGwAXgZWA+cAj5F9QaxOt/3Sc08ClgCrgBuBHauOE8CpwNK0/Zu89utyKPBV4GngIeDj6fnD0vYT03FfSNs/WnXcGcATwFnACmAZcGLV9pHA/yFrWT8H/BoYmbbtC/wWeBa4C5jRy2czG7iq27oLga+lxx9Ocb1A1mL/YC/HuQy4oY+/wdQBvO/xwPUp9meA/w8MSdvOBf6a9nsAODit/1yKYUT6uwXwIvBg2v4IcEjV3+TTwIPpOIuAHare++PA82n929P6dwOvAmvT8e9K628l+8UIWcPyM+nvsQL4AbB1t/c/i+zf2NPA/yz7/0a73EoPwLcS/ujwF+BjwD7pP+6kqm1/SwhpeaMEldYdlY7xBmBY+s/926rtkRLVGGAK0AW8O207FbifrKtjG+CX3RLge4BdAAHvBF4C9k7bZgDrgC+QdZ0cnraPTdu/mRLPdimZvS0lvu2Alen5Q4BD0/KEHj6bHdMxt0rLQ8m+YPYFRqUEuFvaNhl4Uy+f8VNUfSn1sH2jz7Wf9/0l4DvpPQ8n+7UmYDeypLxt1TF3SY8/B1zW7W+ya09/Z+Bs4J50PJF1AY5L204AxqW/81npfW3e02ukdbfyWuI/iezfyc7AaOAa4Ifd3v/3yL6wpwNrgDeU/f+jHW6lB+Bbnf/gcABZsh+flu8HPlG1/W8JIS1vlKDSup8BJ1ctD0mJase0HMABVdvnA7PT418Ap1Zte1f343eL96fAGenxDLJfI9WxrCBLykPStuk9HOPcSsKpWncjMKuX1/w18KH0+FBeayWPImt1H036JdHH57yW9GXXy/bXfa59vO8vAAuqE3dav2t6/4eQjRVUb9soKdN34n8AmJnz38+qymfc/TXSult5LfEvBD5WtW239LkMq3r/21dt/z1wXNn/R9rh5j7+9jMLuCkink7LV6R1A7EjcKGkZyU9S9b9ILKWdcVTVY9fImvxAWxL1kqteLT6wJIOk/Q7Sc+kYx9O1tVRsTI2HgytHHs8sDlZd0VP8R5TiTcd9wCyFntPrgCOT48/kJaJiBeB95P9alkm6QZJu/dyjJV9HP91+nnf55O1nG+S9JCk2SmevwBnkiXgFZJ+JGnbvK9ZZQd6/tyQdJakJZKeS3FtzcZ/j75sy8Z/30fJkv6kqnW9/TuxAjnxtxFJI4FjgXdKekrSU8AngOmSpqenRbfdui9Dlrg/GhFjqm4jI+K3OcJYRpZoKqZUxTcCuJpsDGBSRIwB/pPsS6U/TwOvkHWX9BTvD7vFOyoi5vRyrJ8AMyRtD7yPlPgBIuLGiDiULKnfT9ZV0ZNbyH4Z9Ku/9x0RL0TEWRGxM/Be4JOSDk7broiIA8i+3AL4cp7X7OZxevjcJL2d7NfSsWTdaWPIxk4qf4+e/m1UezLFVTGFrKtu+SBitBpy4m8vRwHrgTcCe6bbG8gGCz+UnrOcrE+2ootswLd63XeAT0l6E4CkrSUdkzOG+cDpkraXNJZsMLViM7I++S5gnaTDyLqC+hURG4BLgAskbStpqKT9UlK9DHivpP+W1m8uqZLYezpWF1mXxaXAwxGxJL3PSZKOlDSKrD96Ndnn2ZPPAm+TdL6kv0v77yrpMkljuj23z/ct6Yi0r8jGGNYD6yXtJumg9B5fIevq6i2evlwE/C9J05TZQ9I4stlH61JcwySdB2xVtd9yYKqk3vLIlcAnJO0kaTTwv4EfR4tN221GTvztZRZwaUQ8FhFPVW7AN4APppOJvgR8JnWJ/FtEvEQ2F/03ad2+EXEtWcvyR5KeB+4FDssZw/fI+tfvAhaTDfgBWcsWOJ3sy2EVWTfLdQN4f/9GNkj5B7Lupy+TzX55HJhJNnOli6yFezZ9//u/gqzv/IqqdUPIBjifTMd/J9kg+etExIPAfmR92fdJeo6sVd9JNnOm+rn9ve9pZL8gVgO3A9+KiFvJvizmkP3aeQqYmN7jQF2QXvsmsi+Wi8kGXG8kG8/5M1k3zSts3E33k3S/UtLiHo57CdlMsV+RzYB6BThtEPFZjfkELjOzNuMWv5lZm3HiNzNrM078ZmZtxonfzKzNNEUp3PHjx8fUqVPLDsPMrKksWrTo6YiY0H19UyT+qVOn0tnZWXYYZmZNRdKjPa13V4+ZWZtx4jczazNO/GZmbcaJ38yszTjxm5m1GSd+M7MGs3L1Gu56/FlWrl5TyPGbYjqnmVm7WHDnXzn36rsZPmQIazds4CtH78GRe27X/44D4Ba/mVmDWLl6DedefTevrN3AC2vW8craDZxz9d01b/k78ZuZNYgnVr3M8CEbp+XhQ4bwxKqXa/o6TvxmZg1i+7EjWbthw0br1m7YwPZjR9b0dZz4zcwaxLjRI/jK0Xuw+fAhbDliGJsPH8JXjt6DcaNH1PR1PLhrZtZAjtxzO/bfdTxPrHqZ7ceOrHnSByd+M7OGM270iEISfoW7eszM2owTv5lZm3HiNzNrM078ZmZtxonfzKzNOPGbmbUZJ34zszbjxG9m1mYKTfySPiHpPkn3SrpS0uaStpF0s6Sl6X5skTGYmdnGCkv8krYDTgc6IuLNwFDgOGA2sDAipgEL07KZmdVJ0V09w4CRkoYBWwBPAjOBeWn7POCogmMwM2tKRV2Jq7BaPRHxV0lfBR4DXgZuioibJE2KiGXpOcskTexpf0mnAKcATJkypagwzcwaUpFX4iqyq2csWet+J2BbYJSkE/LuHxFzI6IjIjomTJhQVJhmZg2n6CtxFdnVcwjwcER0RcRa4BrgbcBySZMB0v2KAmMwM2s6RV+Jq8jE/xiwr6QtJAk4GFgCXAfMSs+ZBSwoMAYzs6ZT9JW4Ckv8EXEHcBWwGLgnvdZcYA5wqKSlwKFp2cysUEUNlBah6CtxKSJqcqAidXR0RGdnZ9lhmFmTGsxA6crVawq9ClYemxqDpEUR0dF9va/AZWYtrXqg9BWy7pNzrr6b/Xcd32syLXJGzUAUdSUul2wws5a1cvUafnn/CoYN0Ubr+xooLXpGTSNwi9/MWlKl1T5U4sVX12+0ra+B0sqMmsqvA3jti6KsLp9ac+I3s5ZT3WqvNmrEUNZviD4HSoueUdMInPjNrOX01GoftdlQPv/eN3Hg7hP7bLlXZtSc062Pv1Va++DEb2YtqKdW+/qIfpN+xZF7bsf+u44vfVZPUTy4a2Ytpxbz4MeNHsH0Hca0XNIHt/jNrEW1eqt9Uzjxm1nLKmoefLNzV4+ZWZtx4jczazNO/GZmg9BMRd+6cx+/mdkANUotn8Fyi9/MbABaoZaPE7+Z2QAUfXWsenDiNzMbgFao5ePEb2Y2AEVfHasePLhrZjZAzX5WsBO/mdkgNPNZwYV19UjaTdKdVbfnJZ0paRtJN0tamu7HFhWDmZm9XmGJPyIeiIg9I2JPYB/gJeBaYDawMCKmAQvTspmZ1Um9BncPBh6MiEeBmcC8tH4ecFSdYjAzM+qX+I8DrkyPJ0XEMoB0P7GnHSSdIqlTUmdXV1edwjQza32FJ35JmwFHAj8ZyH4RMTciOiKiY8KECcUEZ2Z118w1blpFPWb1HAYsjojlaXm5pMkRsUzSZGBFHWIwswbQ7DVuWkU9unqO57VuHoDrgFnp8SxgQR1iMLOStUKNm1ZRaOKXtAVwKHBN1eo5wKGSlqZtc4qMwcwaQ9E1btyFlF+hXT0R8RIwrtu6lWSzfMysjRRZ48ZdSAPjWj1mVhdF1bhxF9LAuWSDmdVNETVuKl1Ir/Dar4lKF1KzllQomhO/mdVVrWvctEKZ5HpzV4+ZNbVWKJNcb27xm1nTa/YyyfXmxG9mLaGZyyTXm7t6zMzaTK7EL+kASSemxxMk7VRsWGZmVpR+E7+kzwLnAp9Kq4YDlxUZlJmZFSdPi/99ZNU1XwSIiCeBLYsMyszMipMn8b8aEQEEgKRRxYZkZmZFypP450v6LjBG0keAW4DvFRuWmZkVpc/pnJIE/BjYHXge2A04LyJurkNsZmZWgD4Tf0SEpJ9GxD6Ak72ZlWrl6jU+SasG8pzA9TtJ/xARfyg8GjOzXrj0cu3k6eM/kCz5Pyjpbkn3SLq76MDMzCpcerm28rT4Dys8CjOzPrj0cm312+KPiEeBMcB7021MWmdmVhcuvVxbec7cPQO4HJiYbpdJOq3owMysHI147VqXXq4tZedm9fGErD9/v4h4MS2PAm6PiD36Pbg0BrgIeDPZCWAnAQ+QTRGdCjwCHBsRq/o6TkdHR3R2dvb3cma2iRp9ANWzegZG0qKI6Oi+Ps/groD1Vcvr07o8LgR+HhG7A9OBJcBsYGFETAMWpmUzK1kzDKCOGz2C6TuMcdLfRHkGdy8F7pB0bVo+Cri4v50kbQW8A/gwQES8CrwqaSYwIz1tHnArWRE4MyuRB1DbR7+JPyIukHQrcABZS//EiPhjjmPvDHQBl0qaDiwCzgAmRcSydOxlkib2tLOkU4BTAKZMmZLj5cxsU3gAtX3kGdzdF1gaEV+LiAuBv0j6xxzHHgbsDXw7IvYiq+6Zu1snIuZGREdEdEyYMCHvbmY2SB5AbR95unq+TZbAK17sYV1PngCeiIg70vJVZIl/uaTJqbU/GVgxwJjNrCC+dm17yDW4G1VTfyJiA/m6iJ4CHpe0W1p1MPAn4DpgVlo3C1gwoIjNrFAeQG19eVr8D0k6nayVD/Ax4KGcxz8NuFzSZmmfE8m+bOZLOhl4DDhmYCGbmdmmyJP4TwW+BnwmLd9CGnTtT0TcCbxuDilZ69/MzEqQp8tmBXBcHWIxM7M66LWPX9JHJE1LjyXpEknPpQqd/Q3smplZg+prcPcMspIKAMeTnXm7M/BJsjNyzcysCfWV+NdFxNr0+AjgBxGxMiJuAXzBdbMG0oiF1axx9dXHvyHNs19FNhj7xaptPpXPrEE0emE1azx9tfjPAzrJunuui4j7ACS9k/zTOc2sQM1QWM0aT68t/oi4XtKOwJbdyiZ3Au8vPDIz65cLq9lg9DmdMyLWkXX1VK97sdCIzCw3F1azwchTssHMCjbYwVkXVrPByHPmrpkVaFMHZ11YzQYqT1lmSTpB0nlpeYqktxYfmlnrq9XgrAur2UDk6er5FrAf2UlcAC8A3ywsIrM2UhmcrVYZnDUrSp6unn+MiL0l/REgIlalaptmtok8OGtlyNPiXytpKBAAkiYAG/rexczy8OCslSFPi/9rwLXARElfBP6Z10o0m9km8uCs1VuessyXS1pEVrZBwFERsaTwyMzayLjRI5zwrW76TfyStiG7Lu6VVeuGVxVwMzOzJpKnj38x0AX8GViaHj8sabGkfYoMzszMai9P4v85cHhEjI+IccBhwHyya+9+q8jgzMys9vIk/o6IuLGyEBE3Ae+IiN8BfXZKSnpE0j2S7pTUmdZtI+lmSUvT/dhNegdmZjYgeRL/M5LOlbRjup0DrEpTPPNM6zwwIvaMiMpF12cDCyNiGrAwLZuZWZ3kSfwfALYHfgosAKakdUOBYwfxmjOBeenxPOCoQRzDzMwGKc90zqeB03rZ/Jf+dgdukhTAdyNiLjApIpalYy+TNLGnHSWdApwCMGXKlP7CNDOznPJM55wAnAO8Cdi8sj4iDspx/P0j4smU3G+WdH/ewNKXxFyAjo6OyLufWa2sXL3GJ1VZS8pz5u7lwI/JLrh+KjCLbEpnvyLiyXS/QtK1wFuB5ZImp9b+ZLJzBMwaiq9ja60sTx//uIi4GFgbEbdFxEnAvv3tJGmUpC0rj4F3AfcC15F9eZDuFwwqcrOC+Dq21urytPgrZ+guk/Qe4Emywd7+TAKulVR5nSsi4ueS/gDMl3Qy8BhwzMDDNiuOr2NrrS5P4v93SVsDZwFfB7YCzuxvp4h4CJjew/qVZHV/zBqSSyVbq8vT1bMqIp6LiHsj4sCI2Ad4pujAzMriUsnW6vK0+L8O7J1jnVnLcKlka2W9Jn5J+wFvAyZI+mTVpq3ITt4ya2kulWytqq8W/2bA6PScLavWP092MRYzM2tCvSb+iLgNuE3S9yPi0TrGZGZmBcrTxz9C0lxgavXzc565a2ZmDSZP4v8J8B3gImB9seGYmVnR8iT+dRHx7cIjMTOzusgzj///SfqYpMnpIirbpOvwmplZE8rT4q/U1Tm7al0AO9c+HDMzK1qeevw71SMQMzOrj367eiRtIekzaWYPkqZJOqL40MzMrAh5+vgvBV4lO4sX4Ang3wuLyMzMCpUn8e8SEV8hlWeOiJcBFRqVWRNauXoNdz3+rOv2W8PLM7j7qqSRZAO6SNoF8L9ssyq+Ypc1kzwt/s8CPwd2kHQ5sJDsGrxmhq/YZc0nz6yemyUtJrvcooAzIuLpwiMzaxK+Ypc1mzyzet5HdvbuDRFxPbBO0lGFR2bWJHzFLms2ubp6IuK5ykJEPEvW/WNm+Ipd1nzyDO729OWQZz8AJA0FOoG/RsQRqdzDj8mqfT4CHBsRq/Iez6wR+Ypd1kzytPg7JV0gaRdJO0v6v8CiAbzGGcCSquXZwMKImEY2UDx7AMcya1jjRo9g+g5jnPSt4eVJ/KeRncD1Y2A+8DLw8TwHl7Q98B6yks4VM4F56fE84KicsZqZWQ302WWTumkWRMQhgzz+f5BN/ay+dOOkiFgGEBHLJE0c5LHNzGwQ+mzxR8R64CVJWw/0wKmez4qIGEi3UPX+p0jqlNTZ1dU1mEOYmVkP8gzSvgLcI+lm4MXKyog4vZ/99geOlHQ4sDmwlaTLgOWSJqfW/mRgRU87R8RcYC5AR0dH5IjTzMxyyJP4b0i3AYmITwGfApA0A/i3iDhB0vlkNf7npPsFAz22mZkNXp4zd+elWj1TIuKBGrzmHGC+pJOBx4BjanBMq6OVq9d42qJZE+s38Ut6L/BVYDNgJ0l7Al+IiCPzvkhE3Arcmh6vBA4eRKzWAFyMzKz55ZnO+TngrcCzABFxJ+CrcrWhZi9G5rLJZpk8ffzrIuI5aaMS/B5sbUPNXIzMv1TMXpOnxX+vpA8AQ9NlF78O/LbguKwBNWsxsmb/pWJWa3nP3H0T2cVXrgCeA84sMCZrUM1ajKzyS6Va5ZeKWTvqtatH0ubAqcCuwD3AfhGxrl6BWWNqxmJkzfpLxawofbX45wEdZEn/MLKZPWZNV4ysWX+pmBWlr8HdN0bEWwAkXQz8vj4hWTuo97kAzfhLxawofSX+tZUHEbGu26wes0Era4bNuNEjnPDN6LurZ7qk59PtBWCPymNJz9crQGstnmFjVr5eW/wRMbSegVh7aOZzAcxaRZ7pnGY14xk2ZuVz4re68gwbs/Llvmi6Wa14ho1ZuZz4rRSeYWNWHnf1mJm1GSd+K5VLJZvVn7t6rDQulWxWDrf4rRQ+kcusPE78VgqXSjYrjxO/lcIncpmVp7DEL2lzSb+XdJek+yR9Pq3fRtLNkpam+7FFxWCNyydymZWnyMHdNcBBEbFa0nDg15J+BvwTsDAi5kiaDcwGzi0wDmtQPpHLrByFJf6ICGB1WhyebgHMBGak9fOAW3Hib1s+kcus/grt45c0VNKdwArg5oi4A5gUEcsA0v3EXvY9RVKnpM6urq4iwzQzayuFJv6IWB8RewLbA2+V9OYB7Ds3IjoiomPChAmFxWhm1m7qMqsnIp4l69J5N7Bc0mSAdL+iHjGYmVmmyFk9EySNSY9HAocA9wPXAbPS02YBC4qKwczMXq/IWT2TgXmShpJ9wcyPiOsl3Q7Ml3Qy8BhwTIExmJlZN0XO6rkb2KuH9SuBg4t63XaxcvWaXqdB9rWtzLjMrDG4SFsT6qu4WZmFz1x0zaw5uGRDk+mruFmZhc9cdM2seTjxN5m+ipuVWfjMRdfMmoe7eppMf8XNyip85qJrZs3DLf4m01dxszILn7nomlnzUFZSp7F1dHREZ2dn2WE0FM/qMbP+SFoUER3d17urp0n1VdyszMJnLrpm1vjc1WP98gXRzVqLW/zWJ8/NN2s9bvFbrzw336w1OfFbrzw336w1OfFbrzw336w1OfG3oFoNxnpuvllr8uBui6n1YKwviG7WetziL0gZUyCLGowdN3oE03cY46Rv1iLc4i9AWVMgK4Oxr/Bav3xlMNZJ28wq3OKvsTKnQHow1szycOKvsTKnQHow1szycFdPjZXd6vZgrJn1p7AWv6QdJP1S0hJJ90k6I63fRtLNkpam+7FFxVCGRmh1ezDWzPpSWFlmSZOByRGxWNKWwCLgKODDwDMRMUfSbGBsRJzb17GasSyzyxObWdnqXpY5IpYBy9LjFyQtAbYDZgIz0tPmAbcCfSb+ZuTyxGbWqOoyuCtpKrAXcAcwKX0pVL4cJvayzymSOiV1dnV11SPMpuJSyWY2WIUP7koaDVwNnBkRz0vKtV9EzAXmQtbVU1yEzcelks1sUxTa4pc0nCzpXx4R16TVy1P/f2UcYEWRMWyKRmxVu1SymW2qwlr8ypr2FwNLIuKCqk3XAbOAOel+QVExbIpGbVX77Fwz21RFtvj3B/4FOEjSnel2OFnCP1TSUuDQtNxQGrlVXfZ5AmbW/Iqc1fNroLcO/YOLet1aaORWdeU8gXO6/RopOy4zax4+c7cHjd6q9tm5ZrYpXKunB41w9m1/fHaumQ2WW/y9cKvazFqVE38ffPatmbWilu7qacR5+GZmZWvZFn+jzsM3MytbS7b4G3kevplZ2Voy8Zd5FSwzs0bXkom/0efhm5mVqSUTfzPMwzczK0vLDu56Hr6ZWc9aNvGD5+GbmfWkJbt6zMysd078ZmZtxonfzKzNOPGbmbUZJ34zszajiCg7hn5J6gIeLTuOfowHni47iAbkz6V3/mx65s+ldwP9bHaMiAndVzZF4m8GkjojoqPsOBqNP5fe+bPpmT+X3tXqs3FXj5lZm3HiNzNrM078tTO37AAalD+X3vmz6Zk/l97V5LNxH7+ZWZtxi9/MrM048ZuZtRkn/k0gaQdJv5S0RNJ9ks4oO6ZGImmopD9Kur7sWBqJpDGSrpJ0f/q3s1/ZMTUKSZ9I/5fulXSlpM3Ljqkski6RtELSvVXrtpF0s6Sl6X7sYI7txL9p1gFnRcQbgH2Bj0t6Y8kxNZIzgCVlB9GALgR+HhG7A9PxZwSApO2A04GOiHgzMBQ4rtyoSvV94N3d1s0GFkbENGBhWh4wJ/5NEBHLImJxevwC2X/g7cqNqjFI2h54D3BR2bE0EklbAe8ALgaIiFcj4tlSg2osw4CRkoYBWwBPlhxPaSLiV8Az3VbPBOalx/OAowZzbCf+GpE0FdgLuKPkUBrFfwDnABv6eV672RnoAi5N3WAXSRpVdlCNICL+CnwVeAxYBjwXETeVG1XDmRQRyyBreAITB3MQJ/4akDQauBo4MyKeLzueskk6AlgREYvKjqUBDQP2Br4dEXsBLzLIn+utJvVXzwR2ArYFRkk6odyoWpMT/yaSNJws6V8eEdeUHU+D2B84UtIjwI+AgyRdVm5IDeMJ4ImIqPwyvIrsi8DgEODhiOiKiLXANcDbSo6p0SyXNBkg3a8YzEGc+DeBJJH11S6JiAvKjqdRRMSnImL7iJhKNjj3i4hwyw2IiKeAxyXtllYdDPypxJAayWPAvpK2SP+3DsYD391dB8xKj2cBCwZzkJa+2Hod7A/8C3CPpDvTuk9HxH+WF5I1gdOAyyVtBjwEnFhyPA0hIu6QdBWwmGzG3B9p4/INkq4EZgDjJT0BfBaYA8yXdDLZF+Uxgzq2SzaYmbUXd/WYmbUZJ34zszbjxG9m1mac+M3M2owTv5lZm3Hit6YgaXW35Q9L+kadYxgm6WlJX+q2/tNVj8dI+lgNX3NqdXXGnPt8X9I/1yoGaz1O/NbWJA0dwNPfBTwAHJtOMKr4dNXjMUDNEr9ZEZz4relJ2lHSQkl3p/spaf1GLd/KrwZJM9J1FK4gO/lulKQbJN2V6sC/v5eXOp6spPJjZGW4kTSHrJrknZIuJzvBZpe0fH56ztmS/pDi+3xaNzXV4v9eqj9/k6SRads+KZbbgY9XxT9U0vlVx/poWi9J35D0J0k3MMjCXdY+fOauNYuRVWdHA2xDdvo6wDeAH0TEPEknAV+j/3K1bwXeHBEPSzoaeDIi3gMgaevuT05J+WDgo2St+uOB2yNitqT/ERF7pudNTcetLL8LmJZeT8B1kt5B9uUxDTg+Ij4iaT5wNHAZcClwWkTcVvnySE4mq1j5D5JGAL+RdBNZVdjdgLcAk8hKQFzSz/u3NuYWvzWLlyNiz8oNOK9q237AFenxD4EDchzv9xHxcHp8D3CIpC9LentEPNfD848AfhkRL5EV5Xtfzm6id6XbH8lKEexOlvAhK0h2Z3q8CJiavnTGRMRtVe+n+lgfSl+AdwDj0rHeAVwZEesj4kngFznisjbmFr+1okodknWkxk3qk9+s6jkv/u3JEX+WtA9wOPAlSTdFxBe6HfN4YP9UcRSypHsgcEs/sQj4UkR8d6OV2S+DNVWr1gMj0/N7q6Misl8CN3Y71uF97GP2Om7xWyv4La9dou+DwK/T40eAfdLjmcDwnnaWtC3wUkRcRnYhkL27bd+K7FfElIiYmqqOfpzsywBgbSrPDfACsGXV7jcCJ6VrNiBpO0m99sGnq3E9J6nyq+WD3Y71r5XXkvT36SIuvwKOS2MAk8m+kMx65Ra/tYLTgUsknU12datKtcvvAQsk/Z7s+qQv9rL/W4DzJW0A1gL/2m37P5GVlq5uoS8AvpL62ucCd0taHBEflPSbNAXzZxFxtqQ3ALeniUCrgRPIWvi9OTG9n5fIkn3FRcBUYHH6BdNFNpZxLXAQWZfVn4HbMOuDq3OambUZd/WYmbUZJ34zszbjxG9m1mac+M3M2owTv5lZm3HiNzNrM078ZmZt5r8AWp9hnt4BDuIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "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.7882163526651595\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",
      "(6,)\n",
      "(6,)\n"
     ]
    }
   ],
   "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": 10,
   "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": [
    "#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": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
