{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7\n", "\n", "# Part 1 - DT\n", "\n", "## Capital Bikeshare data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "- Capital Bikeshare dataset from Kaggle: [data](https://github.com/justmarkham/DAT8/blob/master/data/bikeshare.csv), [data dictionary](https://www.kaggle.com/c/bike-sharing-demand/data)\n", "- Each observation represents the bikeshare rentals initiated during a given hour of a given day" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import pandas as pd\n", "import numpy as np\n", "from sklearn.model_selection import cross_val_score\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.tree import DecisionTreeRegressor, export_graphviz" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# read the data and set \"datetime\" as the index\n", "bikes = pd.read_csv('../datasets/bikeshare.csv', index_col='datetime', parse_dates=True)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# \"count\" is a method, so it's best to rename that column\n", "bikes.rename(columns={'count':'total'}, inplace=True)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# create \"hour\" as its own feature\n", "bikes['hour'] = bikes.index.hour" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
seasonholidayworkingdayweathertempatemphumiditywindspeedcasualregisteredtotalhour
datetime
2011-01-01 00:00:0010019.8414.395810.0313160
2011-01-01 01:00:0010019.0213.635800.0832401
2011-01-01 02:00:0010019.0213.635800.0527322
2011-01-01 03:00:0010019.8414.395750.0310133
2011-01-01 04:00:0010019.8414.395750.00114
\n", "
" ], "text/plain": [ " season holiday workingday weather temp atemp \\\n", "datetime \n", "2011-01-01 00:00:00 1 0 0 1 9.84 14.395 \n", "2011-01-01 01:00:00 1 0 0 1 9.02 13.635 \n", "2011-01-01 02:00:00 1 0 0 1 9.02 13.635 \n", "2011-01-01 03:00:00 1 0 0 1 9.84 14.395 \n", "2011-01-01 04:00:00 1 0 0 1 9.84 14.395 \n", "\n", " humidity windspeed casual registered total hour \n", "datetime \n", "2011-01-01 00:00:00 81 0.0 3 13 16 0 \n", "2011-01-01 01:00:00 80 0.0 8 32 40 1 \n", "2011-01-01 02:00:00 80 0.0 5 27 32 2 \n", "2011-01-01 03:00:00 75 0.0 3 10 13 3 \n", "2011-01-01 04:00:00 75 0.0 0 1 1 4 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bikes.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
seasonholidayworkingdayweathertempatemphumiditywindspeedcasualregisteredtotalhour
datetime
2012-12-19 19:00:00401115.5819.6955026.0027732933619
2012-12-19 20:00:00401114.7617.4255715.00131023124120
2012-12-19 21:00:00401113.9415.9106115.0013416416821
2012-12-19 22:00:00401113.9417.425616.00321211712922
2012-12-19 23:00:00401113.1216.665668.99814848823
\n", "
" ], "text/plain": [ " season holiday workingday weather temp atemp \\\n", "datetime \n", "2012-12-19 19:00:00 4 0 1 1 15.58 19.695 \n", "2012-12-19 20:00:00 4 0 1 1 14.76 17.425 \n", "2012-12-19 21:00:00 4 0 1 1 13.94 15.910 \n", "2012-12-19 22:00:00 4 0 1 1 13.94 17.425 \n", "2012-12-19 23:00:00 4 0 1 1 13.12 16.665 \n", "\n", " humidity windspeed casual registered total hour \n", "datetime \n", "2012-12-19 19:00:00 50 26.0027 7 329 336 19 \n", "2012-12-19 20:00:00 57 15.0013 10 231 241 20 \n", "2012-12-19 21:00:00 61 15.0013 4 164 168 21 \n", "2012-12-19 22:00:00 61 6.0032 12 117 129 22 \n", "2012-12-19 23:00:00 66 8.9981 4 84 88 23 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bikes.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- **hour** ranges from 0 (midnight) through 23 (11pm)\n", "- **workingday** is either 0 (weekend or holiday) or 1 (non-holiday weekday)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.1\n", "\n", "Run these two `groupby` statements and figure out what they tell you about the data." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "workingday\n", "0 188.506621\n", "1 193.011873\n", "Name: total, dtype: float64" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# mean rentals for each value of \"workingday\"\n", "bikes.groupby('workingday').total.mean()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "hour\n", "0 55.138462\n", "1 33.859031\n", "2 22.899554\n", "3 11.757506\n", "4 6.407240\n", "5 19.767699\n", "6 76.259341\n", "7 213.116484\n", "8 362.769231\n", "9 221.780220\n", "10 175.092308\n", "11 210.674725\n", "12 256.508772\n", "13 257.787281\n", "14 243.442982\n", "15 254.298246\n", "16 316.372807\n", "17 468.765351\n", "18 430.859649\n", "19 315.278509\n", "20 228.517544\n", "21 173.370614\n", "22 133.576754\n", "23 89.508772\n", "Name: total, dtype: float64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# mean rentals for each value of \"hour\"\n", "bikes.groupby('hour').total.mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.2\n", "\n", "Run this plotting code, and make sure you understand the output. Then, separate this plot into two separate plots conditioned on \"workingday\". (In other words, one plot should display the hourly trend for \"workingday=0\", and the other should display the hourly trend for \"workingday=1\".)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEGCAYAAACevtWaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3deXxU9b3/8dd3MtlXQhJCNhLWQNgCSUCtRaBWUCu0bshVaWuvtmqtta3ya29rW2uv3i5atVevlrbuW9VKLeICiitLFpawh+whG8lkIfvMfH9/ZIIRA9lm5kxmPs/Hg0dmzpzMfDIMb04+53u+X6W1RgghhHcxGV2AEEII55NwF0IILyThLoQQXkjCXQghvJCEuxBCeCGz0QUAxMTE6NTUVKPLEEKIMSUvL++E1jp2oMc8ItxTU1PJzc01ugwhhBhTlFJlZ3pM2jJCCOGFJNyFEMILSbgLIYQXknAXQggvJOEuhBBeSMJdCCG8kIS7EEJ4IQl3IYRL9NjsPL29jJbOHqNL8UkS7kIIl/jo6Al+/s9C/vPJXDp7bEaX43Mk3IUQLpFXZkEp2FHSyB0v7cZml4WB3EnCXQjhEvnlFmYnRPKzi2eyaV8N97xxAFn5zX08Ym4ZIYR3sdrs7Klo4oqFSfznlydT29LJXz4qYUJEEN+7YIrR5fkECXchhNMdrm2lrdvGgknjAPjpxTOpa+3i/s2HiA0P5IqFSQZX6P0k3IUQTpdf3gTAgpTecDeZFL+/ch6Nbd3c9cpexocFsHRGnJElej3puQshnK6gzEJMWCBJ44JPbQswm3j02gWkx4dz8zP57K5oMrBC7yfhLoRwuvxyCwtSolBKfW57eJA/f/tWNjHhAXz777soOdFmUIXeT8JdCOFUDSe7KG1oZ6Gj3366uPAgnvr2IgCu/+sO6lo73Vmez5BwF0I41al++xnCHSAtJpS/fTObE63dfOtvu2iVq1idTsJdCOFU+eUWzCbFnMTIs+43LzmKR69dwOGaVr77TB7dVrubKvQNEu5CCKfKL7OQkRBBkL/foPteMCOO+y+fy8dFDfz45T3Y5SpWp5FwF0I4jdVmZ29lM5kpZ27JnO7yhUnctSKdjXuO89tNB11YnW+Rce5CCKc5VNNKR4/tjCdTz+S7Sz5/Fet/fnmyiyr0HRLuQginySuzAGc/mToQpRS/uHQW9Se7uHfTQeIiAlk1P9EVJfoMCXchhNPkl1uYEBFIQmTQsL/XZFL88ap5NJzs4scv7yE6NIDzp8W6oErfID13IYTT9F68NO4LFy8NVaDZj8evz2JyTBh3/WOvzCI5ChLuQginqG/toqKx49R8MiMVEeTPDV9K43hzJwerW51Une+RcBdCOEV++cj67QO5IL23HfPe4bpRP5evknAXQjhFfpmFAD8TsxMjRv1cceFBzE2KZMvBWidU5psk3IUQTpFfbiEjMYJA8+AXLw3F0hlxFFQ00djW7ZTn8zUS7kKIUeu29l68NNp+e3/LZ8ahNbwvrZkRkXAXQozaweoWuqx2p4b77IRIYsIC2XpIwn0kJNyFEKP22cVLUU57TpNJsSw9lg+O1NNjk0nFhkvCXQgxavnlFhIig5gYGTz4zsOwLD2Olk7rqf88xNBJuAshRq2gvIlMJwyBPN2XpsXi76d4T1ozwzbkcFdK+SmlCpRSbzjupymldiiljiqlXlRKBTi2BzruFzkeT3VN6UIIT1Db0klV0+gvXhpIWKCZRWnj2SLhPmzDOXL/AdB/Ps77gQe01tMAC3CDY/sNgEVrPRV4wLGfEMJL5ff121Oc12/vb2l6HEV1J6lobHfJ83urIYW7UioJuAT4i+O+ApYB/3Ds8iSw2nF7leM+jseXq5FONCGE8Hh5ZRYCzCYyEs6+8tJILU+PA5BRM8M01CP3B4E7gb5T1uOBJq211XG/EuibnzMRqABwPN7s2F8I4YXyyy3MTYwkwOyaU3ipMaFMjgmV1swwDfq3oZS6FKjTWuf13zzArnoIj/V/3huVUrlKqdz6+vohFSuE8CxdVhuFVS1OmU/mbJamx7H9WANtXdbBdxbA0I7czwMuU0qVAi/Q2455EIhSSvXNB58EHHfcrgSSARyPRwKNpz+p1vpxrXWW1jorNlbmbBZiLNp/vIVum91l/fY+y9Pj6LbZ+bjohEtfx5sMGu5a6/+ntU7SWqcCa4CtWuv/AN4DrnDstg543XF7o+M+jse3apmUWQiv9NnJVNceuWelRhMWaJZZIodhNE2yu4A7lFJF9PbUNzi2bwDGO7bfAawfXYlCCE+VX24haVwwcRHDX3lpOALMJr48PYath+pkAY8hGtYye1rr94H3HbeLgZwB9ukErnRCbUIID5df1kROWrRbXmvpjDg27ath//EWZie6ZmSON5ErVIUQI3K8qYOalk6X99v7XDCjd0ikXK06NBLuQogRcebKS0MRGx7IvOQoGRI5RBLuQogRyS9rIsjfxMyJo195aaiWzYhjT2UTJ052ue01xyoJdyHEiOSVW5ibFIW/n/ti5LMFPOTamMFIuAshhq2zx8aB485deWkoMhIiiAsPlL77EEi4CyGGrbCqmR6bdtvJ1D5KKZbOiJMFPIZAwl0IMWzuPpna37KZcbR2WdlV+oUL30U/Eu5CiGHLL2siJTqEmLBAt7/2l6bGEOBnktbMICTchRDDorUmr9zi9pZMn9BAM4smR8uQyEFIuAunk2Fq3q3S0kF9axcLDWjJ9FmWHkdxfRtlDW2G1eDpJNyFUxVWNZN977tsL24wuhThIn399kw3j5Tpb5ks4DEoCXfhVB8XnUBr2HZExiF7q4LyJkIC/EiPDzeshknjQ5kSGyrhfhYS7sKp8hxTwO4qkZEM3iq/3MLcpEjMbrx4aSDL0uPYUdzISVnAY0AS7sJptNanfmXfU9lEZ4/N4IqEs3V02zhwvMXtFy8NZKljAY+PjsoCHgORcBdOU9bQzomT3Xxl5gR6bJqC8iajSxJOtreyCatdG3oytU92ajThgWYZEnkGEu7CafpaMjctmYxSsFNaM14n3/EftpEnU/v4+5n48vRYth6uw26XBTxOJ+EunCav3EJ4oJmFKeOYGR/BzlIZMeNt8sstpMWEEh0aYHQpQG/fvb61i/3HW4wuxeNIuAunyS+zkDlpHCaTIictmvyyJpn/w4torSkot5Bp0MVLA7lgRixKyZDIgUi4C6do7ujhcG0rWY5ebE5aNB09Ngqrmg2uTDhLeWPvORVPOJnaZ3xYIPOSoth6qNboUjyOhLtwit0VTWjNqRNt2am962pK39179I2E8oSTqf0tT49jT2Uz9a1yZXR/Eu7CKfLKLJgUzEvu/ZU9NjyQybGhEu5eJL+sibBAM9MnGHfx0kCWOq5Wfe+wtGb6k3AXTpFfZiE9PoKwQPOpbYvSotlZ2ohNRjJ4hfxyC/OSI/EzKaNL+ZyMhAgmRMgCHqeTcBejZrXZKSi3kJX6+V/Xc9Kiae20crim1aDKhLO0dVk5VNPqUf32PkoplqXH8eHRE3Rb5QR+Hwl3MWqHa1tp67Z9oRfb13eXRRXGvj2VTdjs2iPDHWDpjDhOygIenyPhLkYt33Hx0un/8JPGhZAYFSx9dy9QcOriJc8ZBtnfeVNjCDCbZEhkPxLuYtTyyizEhQeSNC74C4/lpEWzo6QRraXvPpbll1mYEhtKVIhnXLx0utBAM4snj5dw70fCXYxabllvv12pL55oy0mL5sTJLkpOyKIKY1XfhHCe2pLpszw9jpITbfJZc5BwF6NS29JJpaXjjP/wc9JkvPtYV3KiDUt7jyGLYQ+HLODxeRLuYlT6+u1nurBlckwoMWEB7JQTXWNW32Rhnn7knhwdwtS4MLla1UHCXYxKXpmFQLOJjITIAR9XSpGdGi1H7mNYvmNCuGlxYUaXMqjl6XHsLGmktbPH6FIMJ+EuRiW3zMK8pCgCzGf+KOWkRVNp6aCqqcONlQlnaO+28u6BWrLTojF52MVLA1maHkePTfPBEVnAQ8JdjFhnj439x5sH7cX29d1l6b2xZ8OHJdS1dnHzBVOMLmVIsiaNIy48kFfyK40uxXAS7mLE9lU102MbfFWe9PgIwoPM7JBwH1PqW7t4bNsxLsqYQJbjgjRPZ/YzcWVWEu8frqO62bd/U5RwFyOWd+ripbNf2OJn6uu7y+IdY8lDW47SabVz54p0o0sZlquykrFreDnXt4/eBw13pVSQUmqnUmqPUmq/UupXju1pSqkdSqmjSqkXlVIBju2BjvtFjsdTXfsjCKPkllqYHBPK+LDAQffNTo3mWH0bJ07KtKxjwbH6kzy3s5y1OSlMifX8E6n9TRofynlTx/PirgqfXn5vKEfuXcAyrfU8YD6wQim1GLgfeEBrPQ2wADc49r8BsGitpwIPOPYTXubUhS1DHPvc13fPlSGRY8L/bD5EkNnEbcunGV3KiFydnUJVUwcfFfnuidVBw133Oum46+/4o4FlwD8c258EVjtur3Lcx/H4cjXQpYtiTCttaKexrXvICzfMSYwkyN8kffcxILe0kbf213LTkinEhg/+W5knuihjAlEh/ry4q8LoUgwzpJ67UspPKbUbqAPeAY4BTVprq2OXSiDRcTsRqABwPN4MjB/gOW9USuUqpXLr6+tH91MIt8sb5OKl0wWYTSxIGSfj3T2c1prfbjpIXHgg3zk/zehyRizQ7Mc3MpN4+0ANDT7aChxSuGutbVrr+UASkAPMHGg3x9eBjtK/0PjSWj+utc7SWmfFxsYOtV7hIfLKGokIMjN1GP3YnLRoDlS30CIXmHiszYU15Jc3cceF0wkJMA/+DR5sTU4yPTbNq/lVRpdiiGGNltFaNwHvA4uBKKVU399+EnDccbsSSAZwPB4JyOGal8kr6+23D+fClpzUaLT+7KhfeJYem537Nx9i+oQwrliYZHQ5ozZ9QjgLUqJ4fle5T85KOpTRMrFKqSjH7WDgK8BB4D3gCsdu64DXHbc3Ou7jeHyr9sV31os1d/RwpPYkC4c510hmyjjMJiWtGQ/13I5yShvaWb8yHbOfd4ySXpOTQnF9G7k+eEAxlL/BicB7Sqm9wC7gHa31G8BdwB1KqSJ6e+obHPtvAMY7tt8BrHd+2cJIBeXD67f3CQ7wY25SpIS7B2rt7OFPW46yeHI0S2fEGV2O01w6dyJhgWae31ludCluN2hTTWu9F8gcYHsxvf3307d3Alc6pTrhkfLKLPiZFPOSh78qT07aeDZ8VExHt43gAD8XVCdG4rFtx2hs6+anF88ccF7+sSokwMxl8xN4Nb+Su7+WQWSwv9EluY13/O4l3CqvzMLMieGEBg7/hNuitGh6bJqCCt/7NdlTVTd38JcPS7hsXgJzkzxzGb3RWJOdTGePnY27fevEqoS7GBarzc7uiqZh99v7LEwdh1Kwq0TC3VM88M4RtIafXDTD6FJcYk5iJLMmRvCCj415l3AXw3KoppX2btuIV+WJCPJnZnwEO0tlnhlPcKimhZfzKrn+nEkkR4cYXY5LKKVYk5PM/uMtFFY1G12O20i4i2HpG8Y4mlkCc9KiySuz0G21O6ssMUL3vXmI8EAzty6banQpLrVqfiKBZpNPnViVcBfDkldmIT4iiITIoBE/x6K0aDp77BQe952jKE/0cdEJ3j9cz63LphIVEmB0OS4VGezPJXMmsnH3cdq7rYN/gxeQcBfDkldmYeGkcaMaUZEti2Ybzm7vnWYgMSqY689JNboct1iTk0Jrl5V/7602uhS3kHAXQ1bT3ElVU8ewx7efLiYskCmxoRLuBtq45zj7j7fwk4tmEOTvG0NSs1PHMTk21GcmE5NwF0M23MnCziYnLZpdpY3YfHi+baN09tj43VuHyUiI4LJ5CUaX4zZKKdZkJ5NbZuFobavR5bichLsYsrwyC0H+JmYlRIz6uXLSomnttHK4xvv/kXmapz4tpaqpg59ePHNMLHrtTN9YkIS/n/KJo3cJdzFkeeUW5iZF4e+EeUdy0npngZal99yrqb2bR7YWccGMWM6bGmN0OW4XExbIhbMm8Ep+JV1Wm9HluJSEuxiSzh4b+6uayXJCSwYgMSqYxKhgdsrKTG71yNYiTnZZWb9ybK2L6kxXZ6dgae/hnQO1RpfiUmN7wmbhNnsrm7HatVP67X0WpUXzwdF6tNZeNZ8J9F7J22m109Fto7On909Hj633vtVOsL8fWcOcMnm0KhrbeerTMq5YmER6/Ohba2PV+VNjSIwK5oWdFVw613vPOUi4iyHJLes9ws4c4bQDA8lJi+bVgipKTrQxeYwtwtxltfHzfxZyuKaVjh4bnT323q/dNjqtNnpsg58oTokO4brFk7gyK8kt48x/99ZhTCb44YXTXf5ansxkUlyVlcwD7x6horHda6/MlXAXQ5JfZmFybCjRoc4Lof7j3cdauN/35iFeyq3k/GkxTIwMJjjAjyB/P4L8TQT7994O9vcjKMCPILOJ4AC/U9uD/P2oaurgmU/LuHfTQf7wzmFWz0/kunMmkZEQ6dQ6bXZNbmkjbxbWsHHPcW5ZOoWJkcFOfY2x6MqsJP605Qgv7qrgx146p46EuxiU1pq8MgsXzprg1OedHBNKTFgAO0saWZOT4tTndqW39tfwt49L+dZ5qdz9tYwRPcfCSeO4bF4CB4638PT2Ul4rqOKFXRVkp47j+nNSuSgjngDzyE6JdVltfHKsgbcKa3jnQC0Nbd0EmE1cPCee7y6ZMqLn9DYJUcEsmR7Ly3kV3P6VaV6zOEl/Eu5iUCUn2rC09zi13w69445z0qLZMYYuZqq0tPOTl/cwJzHSKSclZyVE8N/fmMv6FTN5Oa+Cp7eX8f3nC4gND2RtTgprF6UwIWLwqR7auqxsO1LP5sIa3jtUR2uXlbBAM0vT41iREc+SGbGEjWCKZm+2JieFm57OY9uRepbPdO6BiyeQv20xqFwnXrx0upzUaDbtq6GqqYPEKM9uF/TY7Nz2fAF2DY+szSTQ7LwrOyND/PnO+ZP59nlpbDtaz1OflPLQ1qP8+b0iVsyOZ925qWSdNu1DU3s37x6sY3NhDR8erafLaic6NICL50xkxex4zp063qk1eptl6XHEhAXy/M4KCXfhm/LLLEQG+zM5xvl98b7x7rtKGknMTHT68zvTH94+Qn55E4+szWTS+FCXvIbJpFg6I46lM+Ioa2jjme1lvLirgjf2VpMeH87156Ris9vZvL+G7cW9V/gmRAaxdlEKF2XEkzVpnFe2GFzB38/EFQuTeOLDYmpbOof0G9JYIuEuBtU3WZgrhu3NiA8nPMjMjpJGVntwuL93uI7Hth1j7aIUtw2fmzQ+lJ9dMos7LpzB67urePLTMn762j4ApsSG8t0lk7koI545iZFeN5TUXa7OTuaxbcf4R14ltyz1rmmPJdzFWTW393C07qTLgtfPpMhOjfboK1Vrmjv50Ut7SI8P5xeXznL76wcH+LEmJ4Wrs5PZV9VMSIAfU+PC3V6HN0qLCWXx5Ghe3FXB95ZM8arpGOT3N3FW+eW9/fYFThzffrqctGiO1bdx4mSXy15jpKw2O7e9UEBnj41H1i4wdAZFpRRzk6Ik2J3smpwUyhvb+bTYcw8wRkLCXZxVXpkFP5NiXrJzx1/3l+MY777LA0fNPLS1iJ0ljfxm9Wymxo2tsfhiaC7KiCcy2N/r1liVcBdnlVdmISMhgpAA13XwZidEEuzv53FDIj8pOsHDW49yxcIkvrEgyehyhIsE+fvx9cxE3iqsobGt2+hynEbCXZyR1WZnd0WTS1syAAFmEwsmRbHLgyYRq2/t4gcv7mZKbBi/XjWyC5XE2LEmJ5lum53XCqqMLsVpJNzFGR2s7p03xRXj20+XnRrNgeoWWjp7XP5ag7HbNT98cTctHT38ee0Cl/7WIjxDenwE85OjeG5HmdcsICPhLs4ozzFZmDvCPSctGq0hr9Ti8tcazKPbjvFR0Ql+dVkGM+Ll5KWv+M75aRyrb+PZHWVGl+IUEu7ijPLKm0iIDCLBDVeOZiaPw99PGd5331nSyB/ePsxl8xK4OjvZ0FqEe10yZyLnT4vhd5sPU9vSaXQ5oybhLs4ov8zCAjcctUPvWO65SVG8f7jOsF+LG9u6ue35AlKiQ7j367PlwiAfo5Ti16tm02Wzc88bB4wuZ9Qk3MWAqps7qGrqcEtLps91iydxqKaVh7ceddtr9rHbNT9+eQ+Nbd08snYB4UH+bq9BGC8tJpRbLpjKG3ur2Xak3uhyRkXCXQwoz4WThZ3J6sxEvp6ZyENbjrLTze2ZDR+VsPVQHf916UxmJ7puTL/wfN+9YDKTY0L5xeuFdPaM3XVWJdzFgPLKLAT7+zFzonuXY7tn9WySo0O4/YUCmtrdM+a4oNzC/ZsPsSIjnusWT3LLawrPFWj2457VsylraOd/3ysyupwRk3AXA8ottTAvORJ/N88wGBZo5uFrMqk/2cWd/9iL1q7tvze393DrcwXERwZx/xVzpc8uADhvagyr5yfw6LZjFNWdNLqcEZFwF1/Q0tnD/uPNp6bjdbe5SVHceVE6bx+o5Zkd5S57nc4eGzc/l0dtSycPX5NJZLD02cVnfnbJLIL8/fj5PwtdfpDhChLu4gvySi3YNSyeHG1YDTd8KY0l02O5540DHKppcfrzd1vt3PxsPh8XNXD/5XOduvC38A6x4YHctSKdT4sb+OfusXfl6qDhrpRKVkq9p5Q6qJTar5T6gWN7tFLqHaXUUcfXcY7tSin1kFKqSCm1Vym1wNU/hHCu7cUNBPiZXD7twNmYTIrfXzmPiCB/bn2ugI5u553Ystrs/PDF3Ww9VMdvVs/m8oUyb4wY2NqcFDJTovjNGwdpbjf+6unhGMqRuxX4kdZ6JrAYuEUpNQtYD2zRWk8DtjjuA6wEpjn+3Ag86vSqhUttL25gfnKUodPbQu+R0wNXz6Oo7iS/dtK4Y7tdc+cre/n3vmr+65KZXCsnUMVZmEyKe1fPoamjh/vfOmR0OcMyaLhrrau11vmO263AQSARWAU86djtSWC14/Yq4CndazsQpZSa6PTKhUu0dvawr6rZ0JZMf+dPi+W7S6bw/M5y/r23elTPpbXm568X8mp+FXdcOJ3vnD/ZSVUKbzYrIYJvnZvKczvKTw0RHguG1XNXSqUCmcAOYILWuhp6/wMA4hy7JQL9J0audGw7/bluVErlKqVy6+vH9sUC3iS3rK/fbszJ1IH86KvTmZccxfpX91LR2D6i59Ba89tNB3l2Rzk3LZnM95d515JqwrVuv3A6EyOD+Nlr+7Da7EaXMyRDDnelVBjwCnC71vpsZ7gGGkv2hVPNWuvHtdZZWuus2NjYoZYhXGx7cQP+fsqjTjD6+5l4eE0maPjBCwX0jOAf1wPvHuWJD0tYd84k1q9IlyGPYljCAs3c/bUMDtW08rePS40uZ0iGFO5KKX96g/1ZrfWrjs21fe0Wx9c6x/ZKoP+MS0nAceeUK1xte3Ej85OjCA4wtt9+upTxIdz7jTnklzfxp3eHNz3BY9uO8dCWo1y5MIm7v5YhwS5G5KKMCSxPj+OBd49Q1dRhdDmDGspoGQVsAA5qrf/Y76GNwDrH7XXA6/22X+8YNbMYaO5r3wjPdrLLSmFVs0e1ZPq7bF4CV2Ul8ef3i/ik6MSQvufJT0q5781DfG1eAvddPterFkAW7qWU4peXZWDXml9t3G90OYMaypH7ecB1wDKl1G7Hn4uB+4ALlVJHgQsd9wE2AcVAEfAEcLPzyxaukFvaiM2uPTbcAX55WQZpMaHc/uJuGgZZUPulXRXcvXE/F86awB+vmoefBLsYpeToEH6wfDpvH6jlnQO1RpdzVkMZLfOR1lppredqrec7/mzSWjdorZdrrac5vjY69tda61u01lO01nO01rmu/zGEM2wvbsTfTxk6vn0wIQG90xM0tffwk7NMT7Bxz3HuenUv50+L4ZG1mW6fRkF4r++cn8b0CWH8cuN+2rutRpdzRvKJF6fsKGlgXpLn9dtPl5EQyU8vTmfroboBT269vb+GH764m+zUaB6/LotAs2f/PGJs8fcz8ZvVc6hq6uBPW9w/PfVQSbgLANq6rOyt9Nx+++nWnZvKV2ZO4L43D1FY1Xxq+7Yj9dz6XAGzEyP56zezPf4/KjE25aRFc1VWEhs+LHHJ9BjOIOEugN7x7Ta7ZpGHXLw0GKUUv7tiLtGhAdz2fAFtXVZ2FDdw09O5TIkL46lv5RAWKAtbC9dZv3Im4UFm/uu1QuweuKi2hLsAYEdxA2aTcuviHKM1LjSAB66eT0lDG997Np9v/30XiVHBPH1DDpEhMsOjcK3o0AD+38UzyS2z8HJexeDf4GYS7gLovXhpXnIUIQFj62j3nCnj+f7SqXxwpJ7xYYE8+53FxIQFGl2W8BFXLkwiJzWa/37z0KCjt9xNwl3Q3t3bb1+UNjZaMqe7bfk0fr0qgxduXEx8ZJDR5QgfopTi3q/P5mSnlR+9vMejpiaQcBfklVmwevj49rMx+5m4/pxUEqKCjS5F+KBpE8L51aoM3j9cz6/fOOAxC3uMrd/BhUtsH4P9diE8yX8smkTpiTae+LCE1PGhfPtLaUaXJOEuei9empMUSaiMLhFixNavnElZQzv3/PsAKdEhfGXWBEPrkbaMj2vvtrKnomnMtmSE8BR+JsWDa+YzOyGS214o+Nz1F0aQcPdx+WVNY7rfLoQnCQkws2FdFlHB/tzw5C6qm42bPVLC3cdtL27AT/rtQjhNXEQQG76ZTVuXjRv+nktblzHzz0i4+7jtxQ3MSYyUqzmFcKKZEyN4eG0mh2pauO35AmwGXMEq4e7DOrpt7KmUfrsQrrB0Rhy/uiyDLYfquMdJC7wPhxyu+bD8cgs9Nu0xi2EL4W2uOyeVkhPt/PXjEtJiQll3bqrbXlvC3Yf19duzUiXchXCVn10yk/LGdn71r/0kRwezLN09QySlLePDdhQ3Mlv67UK4lJ9J8ac185mVEMH3nyvgwHH3TBEs4e6jOrpt7K5okpaMEG4QGmhmw7psIhxDJGtbOl3+mhLuPqqg3EK3zc7iNDmZKoQ7TIgIYsO6bFo6elPhoS8AAA7gSURBVLjhyV0uX6JPwt1HbS9pxKQgK1XGtwvhLrMSInhk7QIOHG/htud3u3SIpIS7j+ob3x4eJItaCOFOS9PjuPtrGbx7sJbfbjrosteRcPdBnT02dpc3sUjGtwthiHXnpvLNc1PZ8FEJT28vc8lryDAJH1RQ3tTbb5eTqUIY5ueXzqKisZ1fbtzP1Ngwzpni3IMtOXL3QduLGxz9dgl3IYziZ1L86ZpMJo0P4fvPF1Dn5BE0Eu4+aHtxAxkJkURIv10IQ4UFmnns2oW0dVm55bl8epy4TJ+Eu4/p7LFRIOPbhfAY0yeEc9/lc9hVauF/Nh9y2vNKuPuY3RVNdFvtMlmYEB5k1fxErj9nEk98WMKmfdVOeU4Jdx+zvbgBJf12ITzOzy6ZyfzkKO78x16K60+O+vkk3H1Mb789gshg6bcL4UkCzX78738swN9P8b1n8kd9BauEuw/p7LFRUN4kUw4I4aESooJ56JpMjtS18rPXCtF65FewSrj7kD0VTXRJv10Ij3b+tFh++JXpvFZQxTM7ykf8PBLuPmR7cSNKQXaa9NuF8GS3Lp3KBTNi+fW/9rO7omlEzyHh7kN2lDQwa6L024XwdCaT4sGr5xMXHsQtz+bT2NY9/OdwQV3CA3VZbeSVWaQlI8QYERUSwGPXLqS+tYsfvDD8RbYHDXel1F+VUnVKqcJ+26KVUu8opY46vo5zbFdKqYeUUkVKqb1KqQXD/omES+ypaKbLameRtGSEGDPmJEXyy8sy+PDoCR7acnRY3zuUI/e/AytO27Ye2KK1ngZscdwHWAlMc/y5EXh0WNUIl9nhGN+eI+EuxJhyTU4yly9I4qGtR3n/cN2Qv2/QcNdafwA0nrZ5FfCk4/aTwOp+25/SvbYDUUqpiUOuRrjM9pIGZsZHEBUSYHQpQohhUErxm9WzmTEhnNtf3E2lpX1I3zfSnvsErXU1gONrnGN7IlDRb79Kx7aBCr5RKZWrlMqtr68fYRliKLqtdvLKLCyS+WSEGJOCA/x47NqF2Gyam5/Np8tqG/R7nH1CVQ2wbcCzAFrrx7XWWVrrrNjYWCeXIfrbW9lEZ4+MbxdiLEuNCeX3V81jb2Uzv/7XgUH3H+liHbVKqYla62pH26WvEVQJJPfbLwk4PsLXEE7SN5+MnEwVYmy7KCOem5ZM5v+2FbNw0tnXPx7pkftGYJ3j9jrg9X7br3eMmlkMNPe1b4Rxthc3MmNCuPTbhfACP/nqDBalRfPT1/addb+hDIV8HvgUmKGUqlRK3QDcB1yolDoKXOi4D7AJKAaKgCeAm0f+Iwhn6LbayS1rlJaMEF7C7Gfi4bWZgy62M2hbRmt9zRkeWj7Avhq4ZUgVCrfYVyX9diG8TVx4EM98ZxEz/uvM+8gVql5ue3HvKFbptwvhXaZPCD/r4xLuXm57cQPp8eGMC5V+uxC+RMLdi/XY7OSWynwyQvgiCXcvtruiiY4emyyGLYQPknD3UlprHnz3CBFBZs6ZEmN0OUIIN5Nw91L/3lfNx0UN/OSiGTJ/uxA+SMLdC53ssnLPGwfISIhg7aJJRpcjhDDASKcfEB7s4S1HqW3p4tFrF+JnGmi6HyGEt5Mjdy9zpLaVDR+VsCY7mQUpZ597QgjhvSTcvYjWml+8XkhooJk7V6QbXY4QwkAS7l5k457jbC9u5M4VM4iWi5aE8GkS7l6itbOHe/99kLlJkazJTjG6HCGEwTwi3GuaO2nvthpdxpj24LtHqT/ZxT2rZstJVCGEZ4R7/ckuvvrAB7w3jMVfxWcO1bTw909KuSYnhXnJUUaXI4TwAB4R7pNjQgny9+Nbf9vFLc/lU9fSaXRJY4bWml/8cz8RQWZ+8tUZRpcjhPAQHhHuoYFmNt12Pj/+6nTeOVDL8j9s4+ntZdjtAy6/Kvp5raCKnaWNrF+ZLjM/CiFO8YhwBwgwm7h12TTevv3LzEuO4uf/LOTyxz7hYHWL0aV5rOaOHn676SDzk6O4cmHy4N8ghPAZHhPufVJjQnn6hhwevHo+5Q3tXPrwR/z3mwflhOsAHnjnCI1t3fxm9WxMchJVCNGPx4U7gFKK1ZmJbPnREq5cmMT/bSuWE66n2X+8mac+LeXaxZOYnRhpdDlCCA/jkeHeJyokgPsun8tLN50jJ1z7sds1v3h9P+NCAvjRhXISVQjxRR4d7n1y0qLlhGs/r+RXkldmYf3KdCJDZDpfIcQXjYlwh8+fcJ2bHHnqhOumfdW0dflOP765vYf73jzEwknjuHxBktHlCCE81Jib8jc1JpRnbljE67uP89tNB7n52XwCzSaWTI9lxex4lqdP8Oqj2d+/fRhLezdPr1okJ1GFEGc05sIdPjvheuncieSWWdhcWMPmwhrePlCL2aQ4d2oMKzLi+WrGBGLCAo0u12n2VTbzzI4y1p2TyqyECKPLEUJ4MKW18X3rrKwsnZubO6rnsNs1e6uaebOwms2FNZQ1tGNSkJUazYqMeFbMjichKthJFbuf3a75xqOfUGnpYOuPlxAR5L2/nQghhkYplae1zhrwMW8J9/601hyqaWVzYQ1v7a/hUE0rAPOSIrlodjwrZ08kLSbUaa/nDi/sLGf9q/t44Op5fD1Teu1CCB8M99MV15/krf21bN5fw56KJgBmTAhn5Zx4Lp4zkWlxYSjluf1rS1s3y/7wPtPiwnnxpsUeXasQwn18Ptz7O97U0duj31/DrtJGtIYpsaGsnD2RlXPimTUxwqPCs661k19tPMDm/TX8+7YvkR4vvXYhRC8J9zOoa+3sPaIvrObTYw3YNUwaH8LK2RO5eE48cxIjDQl6m13zwZF6XthVzpaDdVjtmtuWT+OOC6e7vRYhhOeScB+ChpNdvHOglk2FNXxSdAKrXZMYFczK2fGsnDORzOQolw89rLS081JuJS/nVlDd3Mn40ACuWJjEVdnJTIkNc+lrCyHGHgn3YWpu7+Gdg7W8ua+aD4+eoNtmJz4iiBWz41k5O575KVEEmv2c8lrdVjtbDtby/K4KPjxaD8D502K5JjuZ5TMnEGAeM9eZCSHcTMJ9FFo6e9h6sI43C6t5/3A9XVY7JgUp0SFMiQ1jSlwYU2PDmBIXypTYMKJChjan+rH6k7y4q4JX8ippaOtmYmQQV2Ylc1VWEknjQlz8UwkhvMHZwn1MXsTkThFB/qzOTGR1ZiJtXVY+OFLPweoWjtW3caz+JB8WnaDbaj+1//jQAKbEhfUGf2zoqfBPjAqm22Zn075qXthZwc7SRswmxfKZcazJSeHL02Jl7VMhhNO45MhdKbUC+BPgB/xFa33f2fb35CP3wdjsmipLB0X1rRyr6w38Y/UnKao7iaW959R+gWYTZpOirdtG6vgQrs5O4fKFicSFBxlYvRBiLHPrkbtSyg/4M3AhUAnsUkpt1FofcPZreQI/kyJlfAgp40NYlv75xxrbunvDvq438Nu6bXxtbgKLJ0d71HBLIYT3cUVbJgco0loXAyilXgBWAV4Z7mcTHRpAdGg02anRRpcihPAxrhiKkQhU9Ltf6dgmhBDCTVwR7gP1G77Q2FdK3aiUylVK5dbX17ugDCGE8F2uCPdKILnf/STg+Ok7aa0f11pnaa2zYmNjXVCGEEL4LleE+y5gmlIqTSkVAKwBNrrgdYQQQpyB00+oaq2tSqlbgbfoHQr5V631fme/jhBCiDNzyUVMWutNwCZXPLcQQojBycQlQgjhhSTchRDCC3nExGFKqVbgsNF1eLgY4ITRRXg4eY/OTt6fwY2192iS1nrA4YaeMnHY4TPNjyB6KaVy5T06O3mPzk7en8F503skbRkhhPBCEu5CCOGFPCXcHze6gDFA3qPByXt0dvL+DM5r3iOPOKEqhBDCuTzlyF0IIYQTSbgLIYQXMjzclVIrlFKHlVJFSqn1RtfjaZRSpUqpfUqp3UqpsbkWoZMppf6qlKpTShX22xatlHpHKXXU8XWckTUa7Qzv0S+VUlWOz9JupdTFRtZoNKVUslLqPaXUQaXUfqXUDxzbveKzZGi491uSbyUwC7hGKTXLyJo81FKt9XxvGX/rBH8HVpy2bT2wRWs9DdjiuO/L/s4X3yOABxyfpfmOOaB8mRX4kdZ6JrAYuMWRP17xWTL6yP3Uknxa626gb0k+Ic5Ia/0B0Hja5lXAk47bTwKr3VqUhznDeyT60VpXa63zHbdbgYP0rhrnFZ8lo8NdluQbnAbeVkrlKaVuNLoYDzZBa10Nvf9ogTiD6/FUtyql9jraNmOy3eAKSqlUIBPYgZd8lowO9yEtyefjztNaL6C3dXWLUurLRhckxqxHgSnAfKAa+IOx5XgGpVQY8Apwu9a6xeh6nMXocB/Skny+TGt93PG1DniN3laW+KJapdREAMfXOoPr8Tha61qttU1rbQeeQD5LKKX86Q32Z7XWrzo2e8VnyehwlyX5zkIpFaqUCu+7DXwVKDz7d/msjcA6x+11wOsG1uKR+gLL4ev4+GdJKaWADcBBrfUf+z3kFZ8lw69QdQzHepDPluS719CCPIhSajK9R+vQO4Pnc/L+gFLqeeACeqdnrQXuBv4JvASkAOXAlVprnz2heIb36AJ6WzIaKAVu6ust+yKl1JeAD4F9gN2x+af09t3H/GfJ8HAXQgjhfEa3ZYQQQriAhLsQQnghCXchhPBCEu5CCOGFJNyFEMILSbgLn6SUSu0/Y6IQ3kbCXQgnUUqZja5BiD4S7sKX+SmlnnDM5f22UipYKTVfKbXdMbnWa32Tayml3ldKZTluxyilSh23v6mUelkp9S/gbeN+FCE+T8Jd+LJpwJ+11hlAE3A58BRwl9Z6Lr1XLt49hOc5B1intV7mskqFGCYJd+HLSrTWux238+idMTFKa73Nse1JYCizcL4zFi9PF95Nwl34sq5+t21A1Fn2tfLZv5eg0x5rc2ZRQjiDhLsQn2kGLEqp8x33rwP6juJLgYWO21e4uS4hhk3O7gvxeeuAx5RSIUAx8C3H9t8DLymlrgO2GlWcEEMls0IKIYQXkraMEEJ4IQl3IYTwQhLuQgjhhSTchRDCC0m4CyGEF5JwF0IILyThLoQQXuj/A/fbMB6uUuy3AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# mean rentals for each value of \"hour\"\n", "bikes.groupby('hour').total.mean().plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot for workingday == 0 and workingday == 1" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# hourly rental trend for \"workingday=0\"\n", "bikes[bikes.workingday==0].groupby('hour').total.mean().plot()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# hourly rental trend for \"workingday=1\"\n", "bikes[bikes.workingday==1].groupby('hour').total.mean().plot()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# combine the two plots\n", "bikes.groupby(['hour', 'workingday']).total.mean().unstack().plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Write about your findings" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.3\n", "\n", "Fit a linear regression model to the entire dataset, using \"total\" as the response and \"hour\" and \"workingday\" as the only features. Then, print the coefficients and interpret them. What are the limitations of linear regression in this instance?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercice 7.4\n", "\n", "Create a Decision Tree to forecast \"total\" by manually iterating over the features \"hour\" and \"workingday\". The algorithm must at least have 6 end nodes." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.5\n", "\n", "Train a Decision Tree using scikit-learn. Comment about the performance of the models." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 2 - Bagging" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mashable news stories analysis\n", "\n", "Predicting if a news story is going to be popular" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
urltimedeltan_tokens_titlen_tokens_contentn_unique_tokensn_non_stop_wordsn_non_stop_unique_tokensnum_hrefsnum_self_hrefsnum_imgs...min_positive_polaritymax_positive_polarityavg_negative_polaritymin_negative_polaritymax_negative_polaritytitle_subjectivitytitle_sentiment_polarityabs_title_subjectivityabs_title_sentiment_polarityPopular
0http://mashable.com/2014/12/10/cia-torture-rep...28.09.0188.00.7326201.00.8442625.01.01.0...0.2000000.80-0.487500-0.60-0.2500000.90.80.40.81
1http://mashable.com/2013/10/18/bitlock-kicksta...447.07.0297.00.6531991.00.8157899.04.01.0...0.1600000.50-0.135340-0.40-0.0500000.1-0.10.40.10
2http://mashable.com/2013/07/24/google-glass-po...533.011.0181.00.6603771.00.7757014.03.01.0...0.1363641.000.0000000.000.0000000.31.00.21.00
3http://mashable.com/2013/11/21/these-are-the-m...413.012.0781.00.4974091.00.67735010.03.01.0...0.1000001.00-0.195701-0.40-0.0714290.00.00.50.00
4http://mashable.com/2014/02/11/parking-ticket-...331.08.0177.00.6857141.00.8303573.02.01.0...0.1000000.55-0.175000-0.25-0.1000000.00.00.50.00
\n", "

5 rows × 61 columns

\n", "
" ], "text/plain": [ " url timedelta \\\n", "0 http://mashable.com/2014/12/10/cia-torture-rep... 28.0 \n", "1 http://mashable.com/2013/10/18/bitlock-kicksta... 447.0 \n", "2 http://mashable.com/2013/07/24/google-glass-po... 533.0 \n", "3 http://mashable.com/2013/11/21/these-are-the-m... 413.0 \n", "4 http://mashable.com/2014/02/11/parking-ticket-... 331.0 \n", "\n", " n_tokens_title n_tokens_content n_unique_tokens n_non_stop_words \\\n", "0 9.0 188.0 0.732620 1.0 \n", "1 7.0 297.0 0.653199 1.0 \n", "2 11.0 181.0 0.660377 1.0 \n", "3 12.0 781.0 0.497409 1.0 \n", "4 8.0 177.0 0.685714 1.0 \n", "\n", " n_non_stop_unique_tokens num_hrefs num_self_hrefs num_imgs ... \\\n", "0 0.844262 5.0 1.0 1.0 ... \n", "1 0.815789 9.0 4.0 1.0 ... \n", "2 0.775701 4.0 3.0 1.0 ... \n", "3 0.677350 10.0 3.0 1.0 ... \n", "4 0.830357 3.0 2.0 1.0 ... \n", "\n", " min_positive_polarity max_positive_polarity avg_negative_polarity \\\n", "0 0.200000 0.80 -0.487500 \n", "1 0.160000 0.50 -0.135340 \n", "2 0.136364 1.00 0.000000 \n", "3 0.100000 1.00 -0.195701 \n", "4 0.100000 0.55 -0.175000 \n", "\n", " min_negative_polarity max_negative_polarity title_subjectivity \\\n", "0 -0.60 -0.250000 0.9 \n", "1 -0.40 -0.050000 0.1 \n", "2 0.00 0.000000 0.3 \n", "3 -0.40 -0.071429 0.0 \n", "4 -0.25 -0.100000 0.0 \n", "\n", " title_sentiment_polarity abs_title_subjectivity \\\n", "0 0.8 0.4 \n", "1 -0.1 0.4 \n", "2 1.0 0.2 \n", "3 0.0 0.5 \n", "4 0.0 0.5 \n", "\n", " abs_title_sentiment_polarity Popular \n", "0 0.8 1 \n", "1 0.1 0 \n", "2 1.0 0 \n", "3 0.0 0 \n", "4 0.0 0 \n", "\n", "[5 rows x 61 columns]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('../datasets/mashable.csv', index_col=0)\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(6000, 61)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.shape" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "X = df.drop(['url', 'Popular'], axis=1)\n", "y = df['Popular']" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y.mean()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "# train/test split\n", "from sklearn.model_selection import train_test_split\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.6\n", "\n", "Estimate a Decision Tree Classifier and a Logistic Regression\n", "\n", "Evaluate using the following metrics:\n", "* Accuracy\n", "* F1-Score" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.7\n", "\n", "Estimate 300 bagged samples\n", "\n", "Estimate the following set of classifiers:\n", "\n", "* 100 Decision Trees where max_depth=None\n", "* 100 Decision Trees where max_depth=2\n", "* 100 Logistic Regressions" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.8\n", "\n", "Ensemble using majority voting\n", "\n", "Evaluate using the following metrics:\n", "* Accuracy\n", "* F1-Score" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.9\n", "\n", "Estimate the probability as %models that predict positive\n", "\n", "Modify the probability threshold and select the one that maximizes the F1-Score" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.10\n", "\n", "Ensemble using weighted voting using the oob_error\n", "\n", "Evaluate using the following metrics:\n", "* Accuracy\n", "* F1-Score" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.11\n", "\n", "Estimate te probability of the weighted voting\n", "\n", "Modify the probability threshold and select the one that maximizes the F1-Score" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 7.12\n", "\n", "Estimate a logistic regression using as input the estimated classifiers\n", "\n", "Modify the probability threshold such that maximizes the F1-Score" ] }, { "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.4" } }, "nbformat": 4, "nbformat_minor": 1 }