{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2017-03-08T21:36:41.287006", "start_time": "2017-03-08T21:36:39.767559" }, "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pylab as plt\n", "import seaborn as sns\n", "from mlxtend.association import apriori\n", "from mlxtend.preprocessing import OnehotTransactions\n", "\n", "# Pandas Printing Options\n", "pd.set_option('display.float_format', lambda x: '%.7f' % x)\n", "pd.set_option('display.max_rows', 500)\n", "pd.set_option('display.max_columns', 500)\n", "pd.set_option('display.width', 1000)\n", "\n", "sns.set_style('white')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# LOAD" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2017-03-08T21:36:41.534836", "start_time": "2017-03-08T21:36:41.288567" }, "collapsed": false }, "outputs": [], "source": [ "injuries = pd.read_csv(\"../data/injuries_2013_present.csv\", index_col=['DATE'], parse_dates=['DATE'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# FILTER CONTRIBUTING FACTORS" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2017-03-08T21:36:41.545166", "start_time": "2017-03-08T21:36:41.536348" }, "collapsed": false }, "outputs": [], "source": [ "contributing_factors = injuries[['CONTRIBUTING FACTOR VEHICLE 1',\n", " 'CONTRIBUTING FACTOR VEHICLE 2',\n", " 'CONTRIBUTING FACTOR VEHICLE 3',\n", " 'CONTRIBUTING FACTOR VEHICLE 4',\n", " 'CONTRIBUTING FACTOR VEHICLE 5']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# HELPER FUNCTIONS" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2017-03-08T21:36:41.555919", "start_time": "2017-03-08T21:36:41.546682" }, "collapsed": true }, "outputs": [], "source": [ "def filter_set(row):\n", " filtered = [element for element in row if str(element) != 'nan']\n", " filtered = [element for element in filtered if str(element) != 'Unspecified']\n", " return filtered\n", "\n", "def my_generator(contributing_factors):\n", " for i in contributing_factors.as_matrix():\n", " if filter_set(i):\n", " yield filter_set(i)\n", " \n", "def get_factors(dataset):\n", " oht = OnehotTransactions()\n", " oht_ary = oht.fit(dataset).transform(dataset)\n", " return pd.DataFrame(oht_ary, columns=oht.columns_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# GET FACTORS" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2017-03-08T21:36:42.091238", "start_time": "2017-03-08T21:36:41.557361" }, "collapsed": true }, "outputs": [], "source": [ "factors_obj = my_generator(contributing_factors)\n", "contributing_factors_to_injuries = [fact for fact in factors_obj]\n", "df = get_factors(contributing_factors_to_injuries)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# RUN APRIORI" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2017-03-08T21:36:42.097442", "start_time": "2017-03-08T21:36:42.092787" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(19641, 47)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.shape" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2017-03-08T21:36:42.426404", "start_time": "2017-03-08T21:36:42.099277" }, "collapsed": false }, "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", "
supportitemsetslengthcount
00.0004073[Accelerator Defective]18.0000000
10.0134922[Aggressive Driving/Road Rage]1265.0000000
20.0125757[Alcohol Involvement]1247.0000000
30.0707703[Backing Unsafely]11390.0000000
40.0019347[Brakes Defective]138.0000000
\n", "
" ], "text/plain": [ " support itemsets length count\n", "0 0.0004073 [Accelerator Defective] 1 8.0000000\n", "1 0.0134922 [Aggressive Driving/Road Rage] 1 265.0000000\n", "2 0.0125757 [Alcohol Involvement] 1 247.0000000\n", "3 0.0707703 [Backing Unsafely] 1 1390.0000000\n", "4 0.0019347 [Brakes Defective] 1 38.0000000" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = apriori(df, min_support=0.0001, use_colnames=True)\n", "results['count'] = results['support'] * 19641\n", "results.head()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2017-03-08T21:40:56.009997", "start_time": "2017-03-08T21:40:56.000872" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Driver Inattention/Distraction 6249\n", "Failure to Yield Right-of-Way 5704\n", "Backing Unsafely 1390\n", "Passenger Distraction 1271\n", "Other Vehicular 693\n", "Traffic Control Disregarded 452\n", "Glare 445\n", "View Obstructed/Limited 440\n", "Pavement Slippery 316\n", "Driver Inexperience 304\n", "dtype: int64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reasons = df.sum().sort_values(ascending=False)[:10]\n", "reasons" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# PLOT RESULTS" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2017-03-08T21:41:09.087915", "start_time": "2017-03-08T21:41:08.720023" }, "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnEAAAFpCAYAAADz4H5TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlUlVX////nAXJEywq/d6m3Q94i86ioqKlMjjhkeWth\nmGam3hHd5pQDH4ccSkszLU3B0u6stDTESlOcFSFRyQE1JzQzc8YBOJzfHy6vX0dAcUi86vVYy7U4\n+7quvd9701q91t7nHCw2m82GiIiIiJiKQ0kXICIiIiK3TiFORERExIQU4kRERERMSCFORERExIQU\n4kRERERMSCFORERExIQU4kRERERMSCFO7nt5eXlkZWWRl5dX0qWIiIjcNxTi5L53/PhxQkJCOH78\neEmXIiIict9QiBMRERExIYU4ERERERNyKukCRIorq0kT9K44ERG539Q4cKBExtVOnIiIiIgJKcSJ\niIiImJBCnIiIiIgJKcSJiIiImJBCnIiIiIgJKcSJiIiImJBCnIiIiIgJKcSJiIiImJBCnIiIiIgJ\nFSvEHTx4EEdHR3x9ffH19cXb25uAgAA+/vjjIp8ZMWLEDa/fibi4OPr373/bz589e5YWLVoYr0eN\nGsXixYvvqKbw8HBOnjwJQOvWrdm5c+cd9Tdt2jSmTZtGXFwcLi4uxtp7eHjQrl07MjMzjXt9fX05\nc+ZMkX1dP987dX1/NxtfRERE7r5i/9mtsmXLkp6ebrw+dOgQISEhlC9fnqeeeqrA/aNGjbo7Ff4J\nTp8+TUpKivF65cqVuLu731Gfy5cvN35OSkq6o74AlixZwuzZs5k9ezZdunRh2rRpxrVPPvmEkJAQ\nfvrpJypWrGj3eynM9fO9U9f3d7PxRURE5O677ePU6tWrM2rUKN566y0AoqOjiYyMxMPDg0GDBhEd\nHc3bb7/NzJkzadu2rfHc7t27qVKlClarlV27dhEeHk5AQAC+vr7MmTMHgOTkZHx8fGjUqBE+Pj5c\nuXKlyDqio6N55ZVXaN68ObVr16Zt27ZcuHABgDlz5hAUFISfnx/Vq1dnxowZAPTo0YNLly7h6+vL\n+++/T2pqKq+//jpfffUVOTk5xMbG4u/vj4+PD9HR0Zw7dw6AGjVqEBcXR5MmTahevToDBw40+gNo\n3rw5R44coUaNGqSmpgIwc+ZMPD098fHxITw83NhBu1HdZ86c4fz581SrVq3QOUdFReHm5sann34K\ngMVi4eTJkxw/fpzw8HD8/f3x9/dn+PDhBeZrtVopXbo0zzzzDK6urqSmpha5TgDjxo2jbt26eHp6\n0rFjR86ePVugv2vjA4wePRp3d3e8vb3p3Lkzx48fB6BZs2YMGTKEpk2bUqNGDaKiosjPz7/Zf2Yi\nIiJShDt6T5yPjw87duwwXl+8eJGffvqJCRMmGG1du3Zl3bp1xv/M4+Pj6dGjBzabjc6dOzN+/HjS\n0tJYvXo1b7/9Nps2bQIgIyOD//3vf2zbto3SpUvfsI60tDS+/fZbdu3axbFjx/jiiy+4cOECs2bN\nIikpia1bt7JgwQIjdMXHxxs7i/369SMwMJC33nqLjh07Mn78eJycnEhLS2Pbtm08/vjjDB482Bjr\nwoULrF27lg0bNvDee+9x4MAB4uPjAVi1apVd8Fq5ciUTJ05k1apVbNu2jW7dutGhQwdsNluRdcPV\nnbzWrVvf0toDzJo1i1q1avHjjz+ydu1a9u7dy9mzZ+3m6+joSE5ODu3atWPPnj3UrVu3yHVasmQJ\nCQkJbNy4kYyMDGrWrMm0adMK9HdNfHw8y5YtY8uWLWzfvh1PT0+io6ON6/v37yc5OZkdO3awcuVK\nVq9efcM5wtWj85o1a970PhERkb+bYh+nFsZisVCuXDnjdePGjQvcU6FCBTp37sy8efOIjY1l3rx5\nrFu3jszMTPbv388LL7xg3Hvp0iW2bt2Km5sb1apVo3r16sWqo2XLlkbQ8/Ly4tSpUzg7O5OYmMjS\npUvZu3cv6enpxk7XjSQmJnLmzBnjeDQnJ4fKlSsb19u3bw9AlSpVqFy5MqdOnSoyZHz77bd06dIF\nFxcX4OruW0xMDAcPHiyyboCvv/6aYcOG3bDO69f+Wn+tW7fm8OHDhIaGMn78eB588EFOnz5d4Pkm\nTZoA3HCdVqxYwdNPP02lSpUAmDx5MoBR//WWLVtGjx49KF++PAAxMTGMHTuWnJwcANq1a4eDgwMV\nKlSgdu3axnxvJC4ujl69ehESEnLTe0VERP5O7mgnbsuWLXh5eRmvnZ2dC72vV69efPzxx3z77be4\nu7tTs2ZNrFYrDz30EOnp6ca/TZs2GUeTRfVVmLJlyxo/WywWbDYbWVlZ+Pr6cujQIRo3bsyYMWOK\n1ZfVamXKlClGTSkpKXz55Zc3HKsohR0X2mw2cnNzi+wrJyeHzMxMvL29b1jn9WsPUK9ePQ4cOEDv\n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\nmTNn8u9//xsfHx+GDx/OkiVLKF++vHHPAw88wNdff83w4cPx9fVl0aJFt/Q+r2effZbAwED++9//\n2rUPGTKEMmXK4OXlRWhoKJUrV6ZcuXI37e/aemRkZNi1X6vzdtenVatWbN++3S7EhYeHs3PnTuP9\ncAAjRoxgwIABBAQEGLX88b+JHj16cOLECbp3716scUVERKRwFtv153ByX/jss8+oWLEirVu3Jj8/\nn6eeeorw8HBefvnlki7tttlsNiZMmMChQ4eMTzIXR1ZWFiEhIczNyeEff2J9IiJy/6uht9gYivXB\nBrn3PD09eemllxg6dCg5OTk0b978pl+yfL+79h7Ea59qFRERkdunEHef8vT0ZP369SVdxl2lDyiI\niIjcPfrbqSIiIiImpBAnIiIiYkIKcSIiIiImpBAnIiIiYkIKcSIiIiImpBAnIiIiYkL6ihExjapr\n11K1atWSLkNEROS+oJ04ERERERNSiBMRERExIYU4ERERERNSiBMRERExIYU4ERERERPSp1PFNKZM\nmYKzs3NJl/G3MnLkyJIuQUREiqCdOBERERETUogTERERMSGFOBERERETUogTERERMSGFOBERERET\nUogTERERMSGFOBERERETUogTERERMSGFOBERERETUoi7zsGDB3F0dMTX1xdfX1+8vLwICgpi/fr1\nt91ndHQ0b7/9doH2ESNG8PHHH99JuYaDBw8W+tcM3n77baKjo+/KGH9ktVpp3749derUYdq0aUXe\nl5ycjKen510fX0RE5O9Of3arEGXLliU9Pd14/fnnnxMdHc3evXvv6jijRo26q/3dS0ePHuW7774j\nOzsbR0fHki5HRETkb0c7ccXw+++/89hjjwGQn59PTEwMQUFBuLu74+bmZuzSXbhwgR49elCnTh3c\n3d0ZOnQoNpvNrq/XXnuNkJAQLly4YLdDV6ZMGeLi4ggODqZmzZq8++67wNUdr9dee43atWsTEBBA\n3759adas2W3NIzo6mldeeYXmzZtTu3Zt2rZty4ULF4CrfyPT29ubwMBAIiIi+OWXXwCYM2cOQUFB\n+Pn5Ub16dWbMmMH58+dp2bIlubm5BAQEsH//fnbt2kV4eDgBAQH4+voyZ84cu7EvXrxIpUqVyMzM\nNNrCwsJYvHjxbc1FRETk7047cYW4dOkSvr6+AJw+fZpffvnFCBubN2/m2LFjbNy4EQcHB8aPH8/4\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "values = reasons.values\n", "labels = reasons.index\n", "\n", "plt.figure(figsize=(8, 6))\n", "colors = ['gray' if (x < 5000) else 'red' for x in values]\n", "sns.barplot(reasons.values, labels, palette=colors)\n", "plt.tick_params(direction='inout', length=4, width=1, colors='black')\n", "plt.yticks(fontsize=12)\n", "plt.xticks(fontsize=12)\n", "sns.despine(bottom=True)" ] } ], "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.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }