diff --git a/answers.ipynb b/answers.ipynb new file mode 100644 index 0000000..80d90cb --- /dev/null +++ b/answers.ipynb @@ -0,0 +1,530 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Data\n", + "grad.csv is in this repository\n", + "\n", + "The Problem\n", + "\n", + "The data we will be using is admission data on Grad school acceptances.\n", + "\n", + "admit: whether or not the applicant was admitted to grad. school\n", + "\n", + "gpa: undergraduate GPA\n", + "\n", + "gre: score of GRE test\n", + "\n", + "rank: prestige of undergraduate school (1 is highest prestige, ala Harvard)\n", + "\n", + "We will use the GPA, GRE, and rank of the applicants to try to predict whether or not they will be accepted into graduate school.\n", + "\n", + "Before we get to predictions, we should do some data exploration." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "%matplotlib inline\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1. Load in the dataset into pandas: grad.csv.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "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", + "
admitgregparank
003803.613
116603.673
218004.001
316403.194
405202.934
\n", + "
" + ], + "text/plain": [ + " admit gre gpa rank\n", + "0 0 380 3.61 3\n", + "1 1 660 3.67 3\n", + "2 1 800 4.00 1\n", + "3 1 640 3.19 4\n", + "4 0 520 2.93 4" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_grad = pd.read_csv('grad.csv')\n", + "df_grad.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2. Use the pandas describe method to get some preliminary summary statistics on the data. In particular look at the mean values of the features." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "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", + "
admitgregparank
count400.000000400.000000400.000000400.00000
mean0.317500587.7000003.3899002.48500
std0.466087115.5165360.3805670.94446
min0.000000220.0000002.2600001.00000
25%0.000000520.0000003.1300002.00000
50%0.000000580.0000003.3950002.00000
75%1.000000660.0000003.6700003.00000
max1.000000800.0000004.0000004.00000
\n", + "
" + ], + "text/plain": [ + " admit gre gpa rank\n", + "count 400.000000 400.000000 400.000000 400.00000\n", + "mean 0.317500 587.700000 3.389900 2.48500\n", + "std 0.466087 115.516536 0.380567 0.94446\n", + "min 0.000000 220.000000 2.260000 1.00000\n", + "25% 0.000000 520.000000 3.130000 2.00000\n", + "50% 0.000000 580.000000 3.395000 2.00000\n", + "75% 1.000000 660.000000 3.670000 3.00000\n", + "max 1.000000 800.000000 4.000000 4.00000" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_grad.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['admit', 'gre', 'gpa', 'rank'], dtype='object')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_grad.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "####\n", + "Use the pandas crosstab method to see how many applicants from each rank of school were accepted. You should get a dataframe that looks like this:\n", + "\n", + "```\n", + "rank 1 2 3 4\n", + "admit\n", + "0 28 .. .. ..\n", + "1 33 .. .. ..\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "pd.crosstab()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "'DataFrame' objects are mutable, thus they cannot be hashed", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mdf_tab\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcrosstab\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf_grad\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madmit\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdf_grad\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrank\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\reshape\\pivot.py\u001b[0m in \u001b[0;36mcrosstab\u001b[1;34m(index, columns, values, rownames, colnames, aggfunc, margins, dropna, normalize)\u001b[0m\n\u001b[0;32m 491\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'__dummy__'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 492\u001b[0m table = df.pivot_table('__dummy__', index=rownames, columns=colnames,\n\u001b[1;32m--> 493\u001b[1;33m aggfunc=len, margins=margins, dropna=dropna)\n\u001b[0m\u001b[0;32m 494\u001b[0m \u001b[0mtable\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtable\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfillna\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mint64\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 495\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\reshape\\pivot.py\u001b[0m in \u001b[0;36mpivot_table\u001b[1;34m(data, values, index, columns, aggfunc, fill_value, margins, dropna, margins_name)\u001b[0m\n\u001b[0;32m 134\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[0mgrouped\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkeys\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 136\u001b[1;33m \u001b[0magged\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgrouped\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0magg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0maggfunc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 137\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 138\u001b[0m \u001b[0mtable\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0magged\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36maggregate\u001b[1;34m(self, arg, *args, **kwargs)\u001b[0m\n\u001b[0;32m 4034\u001b[0m versionadded=''))\n\u001b[0;32m 4035\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0maggregate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0marg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 4036\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mDataFrameGroupBy\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maggregate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4037\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4038\u001b[0m \u001b[0magg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0maggregate\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36maggregate\u001b[1;34m(self, arg, *args, **kwargs)\u001b[0m\n\u001b[0;32m 3474\u001b[0m \u001b[1;31m# grouper specific aggregations\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3475\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgrouper\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnkeys\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3476\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_python_agg_general\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3477\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3478\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36m_python_agg_general\u001b[1;34m(self, func, *args, **kwargs)\u001b[0m\n\u001b[0;32m 852\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 853\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moutput\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 854\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_python_apply_general\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 855\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 856\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgrouper\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_filter_empty_groups\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36m_python_apply_general\u001b[1;34m(self, f)\u001b[0m\n\u001b[0;32m 718\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_python_apply_general\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 719\u001b[0m keys, values, mutated = self.grouper.apply(f, self._selected_obj,\n\u001b[1;32m--> 720\u001b[1;33m self.axis)\n\u001b[0m\u001b[0;32m 721\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 722\u001b[0m return self._wrap_applied_output(\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36mapply\u001b[1;34m(self, f, data, axis)\u001b[0m\n\u001b[0;32m 1776\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mapply\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1777\u001b[0m \u001b[0mmutated\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmutated\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1778\u001b[1;33m \u001b[0msplitter\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_splitter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1779\u001b[0m \u001b[0mgroup_keys\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_group_keys\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1780\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36m_get_splitter\u001b[1;34m(self, data, axis)\u001b[0m\n\u001b[0;32m 1759\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1760\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_get_splitter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1761\u001b[1;33m \u001b[0mcomp_ids\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0m_\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mngroups\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgroup_info\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1762\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mget_splitter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcomp_ids\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mngroups\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1763\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mpandas/_libs/src\\properties.pyx\u001b[0m in \u001b[0;36mpandas._libs.lib.cache_readonly.__get__\u001b[1;34m()\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36mgroup_info\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 1871\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mcache_readonly\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1872\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mgroup_info\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1873\u001b[1;33m \u001b[0mcomp_ids\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mobs_group_ids\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_compressed_labels\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1874\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1875\u001b[0m \u001b[0mngroups\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mobs_group_ids\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36m_get_compressed_labels\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 1878\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1879\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_get_compressed_labels\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1880\u001b[1;33m \u001b[0mall_labels\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mping\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlabels\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mping\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgroupings\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1881\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mall_labels\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1882\u001b[0m group_index = get_group_index(all_labels, self.shape,\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 1878\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1879\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_get_compressed_labels\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1880\u001b[1;33m \u001b[0mall_labels\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mping\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlabels\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mping\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgroupings\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1881\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mall_labels\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1882\u001b[0m group_index = get_group_index(all_labels, self.shape,\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36mlabels\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 2531\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mlabels\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2532\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_labels\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2533\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_labels\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2534\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_labels\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2535\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\groupby.py\u001b[0m in \u001b[0;36m_make_labels\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 2543\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_labels\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_group_index\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2544\u001b[0m labels, uniques = algorithms.factorize(\n\u001b[1;32m-> 2545\u001b[1;33m self.grouper, sort=self.sort)\n\u001b[0m\u001b[0;32m 2546\u001b[0m \u001b[0muniques\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mIndex\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0muniques\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2547\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_labels\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlabels\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\algorithms.py\u001b[0m in \u001b[0;36mfactorize\u001b[1;34m(values, sort, order, na_sentinel, size_hint)\u001b[0m\n\u001b[0;32m 558\u001b[0m \u001b[0muniques\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mvec_klass\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 559\u001b[0m \u001b[0mcheck_nulls\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mis_integer_dtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moriginal\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 560\u001b[1;33m \u001b[0mlabels\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtable\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_labels\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0muniques\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mna_sentinel\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcheck_nulls\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 561\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 562\u001b[0m \u001b[0mlabels\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_ensure_platform_int\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlabels\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_labels\u001b[1;34m()\u001b[0m\n", + "\u001b[1;32m~\\anaconda\\anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\generic.py\u001b[0m in \u001b[0;36m__hash__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 877\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__hash__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 878\u001b[0m raise TypeError('{0!r} objects are mutable, thus they cannot be'\n\u001b[1;32m--> 879\u001b[1;33m ' hashed'.format(self.__class__.__name__))\n\u001b[0m\u001b[0;32m 880\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 881\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__iter__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mTypeError\u001b[0m: 'DataFrame' objects are mutable, thus they cannot be hashed" + ] + } + ], + "source": [ + "df_tab = pd.crosstab(df_grad.admit, df_grad.rank)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Make a bar plot of the percent of applicants from each rank who were accepted. \n", + "#### You can do .plot(kind=\"bar\") on a pandas dataframe." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nJXsRkRz4/yudKGb33KwsAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_tab = \n", + "df_grad.plot(kind=\"bar\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4. What does the distribution of the GPA and GRE scores look like? Do the distributions differ much?\n", + "\n", + "Hint: Use the pandas hist method." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[,\n", + " ],\n", + " [,\n", + " ]], dtype=object)" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_grad.hist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5. One of the issues with classification can be unbalanced classes. What percentage of the data was admitted? Do you think this will be a problem?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 6. Perform a Logistic Regression. (Do you need to change the rank column?)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 7. Use Cross Validation so the model doesn't overfit the data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 8. What's your accuracy?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 9. What is better to have, a higher recall or precison in the context of admitting someone into graduate school. Whichever metric you choose, what is the value from your model?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "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.6.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}