python modeling

profilenieyanan
TemplateCodefortheentirefinalproject.ipynb

{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# <font color=\"#0000E0\">Template for the Final Project</font>\n", "\n", "<font size=4>First part of this template collects most of the code we have learned to tidy, clean, and prepare data. The second part has all the code we learned to perform regression and classification tasks. It also contains code using different metrics to perform model evaluation. Use this template as a starting point. Select and modify the code fit your own data analysis needs. It is recommended to make a copy of the template, delete code cells you don't need and modify one that works. The notebook might not run smoothly since it is a collection and might not consistently use the same data source. Note, this is by no means exhaustive. If anything is not found on this template, library documentation and Google remain the most effective way to find help. </font>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## <font color=\"#0000E0\">Data Exploratory Analysis</font>\n", "\n", "<div class=\"alert alert-block alert-info\"><font color=\"#000000\">\n", "\n", "Use the following code selectively, based on your data types and applications. The goal here is to \n", "- Understand each variable, its type, distribution, missing values, and required preprocessing\n", "- Understand relationship between variables, linear or nonlinear, correlation, etc.\n", "- Understand basic patterns, trends, statistics\n", "- Generate more features, e.g., date, hour, transformed data using logarithm, moving averages, etc.\n", "</font></div>\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import data\n", "Example has only be given using read_csv(). It is easy to learn to read from excel file with read_excel()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<style>.container { width:100% !important; }</style>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from IPython.core.display import display, HTML\n", "display(HTML(\"<style>.container { width:100% !important; }</style>\"))\n", "\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import datetime\n", "np.set_printoptions(suppress=True, linewidth=200, edgeitems=100)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# use this option to read in a csv file in the same folder as the notebook.\n", "# if you want to use a specific column as the row index, use the index_col \n", "# argument. Additional argument examples see: \n", "# https://chrisalbon.com/python/data_wrangling/pandas_dataframe_importing_csv/\n", "# df = pd.read_csv('yourdatafile.csv', index_col='column_name')\n", "titanic_df = pd.read_csv('titanic.csv', index_col='Name')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# example of parsing a column into a datetime object. Note the arguments to use\n", "# parse_dates contains the column to be parsed. date_parser is the parser defined.\n", "parser = lambda x : pd.datetime.strptime(x, '%y%m%d%H')\n", "df = pd.read_csv('yourdatafile.csv', parse_dates = ['hour'], date_parser = parser)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Examine data loaded" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.shape # get the number of rows and columns" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.columns # get the column names" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.head() # get the top 5 rows" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "df.tail(5) # get the bottom 10 rows" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.info() # Get data types of columns, number of valid values in each column" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "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>id</th>\n", " <th>click</th>\n", " <th>C1</th>\n", " <th>banner_pos</th>\n", " <th>device_type</th>\n", " <th>device_conn_type</th>\n", " <th>C14</th>\n", " <th>C15</th>\n", " <th>C16</th>\n", " <th>C17</th>\n", " <th>C18</th>\n", " <th>C19</th>\n", " <th>C20</th>\n", " <th>C21</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>count</th>\n", " <td>1.000000e+04</td>\n", " <td>10000.000000</td>\n", " <td>10000.000000</td>\n", " <td>10000.000000</td>\n", " <td>10000.000000</td>\n", " <td>10000.000000</td>\n", " <td>10000.00000</td>\n", " <td>10000.000000</td>\n", " <td>10000.000000</td>\n", " <td>10000.000000</td>\n", " <td>10000.00000</td>\n", " <td>10000.000000</td>\n", " <td>10000.000000</td>\n", " <td>10000.000000</td>\n", " </tr>\n", " <tr>\n", " <th>mean</th>\n", " <td>9.195822e+18</td>\n", " <td>0.169300</td>\n", " <td>1004.962300</td>\n", " <td>0.285500</td>\n", " <td>1.013900</td>\n", " <td>0.334700</td>\n", " <td>18825.11210</td>\n", " <td>319.274400</td>\n", " <td>59.912600</td>\n", " <td>2111.950100</td>\n", " <td>1.43150</td>\n", " <td>232.725700</td>\n", " <td>53008.775700</td>\n", " <td>82.883300</td>\n", " </tr>\n", " <tr>\n", " <th>std</th>\n", " <td>5.348174e+18</td>\n", " <td>0.375035</td>\n", " <td>1.091512</td>\n", " <td>0.523275</td>\n", " <td>0.529089</td>\n", " <td>0.863105</td>\n", " <td>5020.29788</td>\n", " <td>23.375032</td>\n", " <td>47.277575</td>\n", " <td>615.974481</td>\n", " <td>1.32472</td>\n", " <td>354.721234</td>\n", " <td>49971.758929</td>\n", " <td>70.035042</td>\n", " </tr>\n", " <tr>\n", " <th>min</th>\n", " <td>1.798104e+15</td>\n", " <td>0.000000</td>\n", " <td>1001.000000</td>\n", " <td>0.000000</td>\n", " <td>0.000000</td>\n", " <td>0.000000</td>\n", " <td>375.00000</td>\n", " <td>216.000000</td>\n", " <td>36.000000</td>\n", " <td>112.000000</td>\n", " <td>0.00000</td>\n", " <td>33.000000</td>\n", " <td>-1.000000</td>\n", " <td>1.000000</td>\n", " </tr>\n", " <tr>\n", " <th>25%</th>\n", " <td>4.600729e+18</td>\n", " <td>0.000000</td>\n", " <td>1005.000000</td>\n", " <td>0.000000</td>\n", " <td>1.000000</td>\n", " <td>0.000000</td>\n", " <td>16920.00000</td>\n", " <td>320.000000</td>\n", " <td>50.000000</td>\n", " <td>1863.000000</td>\n", " <td>0.00000</td>\n", " <td>35.000000</td>\n", " <td>-1.000000</td>\n", " <td>23.000000</td>\n", " </tr>\n", " <tr>\n", " <th>50%</th>\n", " <td>9.233272e+18</td>\n", " <td>0.000000</td>\n", " <td>1005.000000</td>\n", " <td>0.000000</td>\n", " <td>1.000000</td>\n", " <td>0.000000</td>\n", " <td>20352.00000</td>\n", " <td>320.000000</td>\n", " <td>50.000000</td>\n", " <td>2325.000000</td>\n", " <td>2.00000</td>\n", " <td>39.000000</td>\n", " <td>100034.000000</td>\n", " <td>61.000000</td>\n", " </tr>\n", " <tr>\n", " <th>75%</th>\n", " <td>1.387513e+19</td>\n", " <td>0.000000</td>\n", " <td>1005.000000</td>\n", " <td>1.000000</td>\n", " <td>1.000000</td>\n", " <td>0.000000</td>\n", " <td>21953.25000</td>\n", " <td>320.000000</td>\n", " <td>50.000000</td>\n", " <td>2526.000000</td>\n", " <td>3.00000</td>\n", " <td>175.000000</td>\n", " <td>100084.000000</td>\n", " <td>101.000000</td>\n", " </tr>\n", " <tr>\n", " <th>max</th>\n", " <td>1.844332e+19</td>\n", " <td>1.000000</td>\n", " <td>1012.000000</td>\n", " <td>7.000000</td>\n", " <td>5.000000</td>\n", " <td>5.000000</td>\n", " <td>24043.00000</td>\n", " <td>1024.000000</td>\n", " <td>768.000000</td>\n", " <td>2757.000000</td>\n", " <td>3.00000</td>\n", " <td>1839.000000</td>\n", " <td>100248.000000</td>\n", " <td>253.000000</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " id click C1 banner_pos device_type \\\n", "count 1.000000e+04 10000.000000 10000.000000 10000.000000 10000.000000 \n", "mean 9.195822e+18 0.169300 1004.962300 0.285500 1.013900 \n", "std 5.348174e+18 0.375035 1.091512 0.523275 0.529089 \n", "min 1.798104e+15 0.000000 1001.000000 0.000000 0.000000 \n", "25% 4.600729e+18 0.000000 1005.000000 0.000000 1.000000 \n", "50% 9.233272e+18 0.000000 1005.000000 0.000000 1.000000 \n", "75% 1.387513e+19 0.000000 1005.000000 1.000000 1.000000 \n", "max 1.844332e+19 1.000000 1012.000000 7.000000 5.000000 \n", "\n", " device_conn_type C14 C15 C16 \\\n", "count 10000.000000 10000.00000 10000.000000 10000.000000 \n", "mean 0.334700 18825.11210 319.274400 59.912600 \n", "std 0.863105 5020.29788 23.375032 47.277575 \n", "min 0.000000 375.00000 216.000000 36.000000 \n", "25% 0.000000 16920.00000 320.000000 50.000000 \n", "50% 0.000000 20352.00000 320.000000 50.000000 \n", "75% 0.000000 21953.25000 320.000000 50.000000 \n", "max 5.000000 24043.00000 1024.000000 768.000000 \n", "\n", " C17 C18 C19 C20 C21 \n", "count 10000.000000 10000.00000 10000.000000 10000.000000 10000.000000 \n", "mean 2111.950100 1.43150 232.725700 53008.775700 82.883300 \n", "std 615.974481 1.32472 354.721234 49971.758929 70.035042 \n", "min 112.000000 0.00000 33.000000 -1.000000 1.000000 \n", "25% 1863.000000 0.00000 35.000000 -1.000000 23.000000 \n", "50% 2325.000000 2.00000 39.000000 100034.000000 61.000000 \n", "75% 2526.000000 3.00000 175.000000 100084.000000 101.000000 \n", "max 2757.000000 3.00000 1839.000000 100248.000000 253.000000 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe() # Summary statistics for numerical variables" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "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>site_id</th>\n", " <th>site_domain</th>\n", " <th>site_category</th>\n", " <th>app_id</th>\n", " <th>app_domain</th>\n", " <th>app_category</th>\n", " <th>device_id</th>\n", " <th>device_ip</th>\n", " <th>device_model</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>count</th>\n", " <td>10000</td>\n", " <td>10000</td>\n", " <td>10000</td>\n", " <td>10000</td>\n", " <td>10000</td>\n", " <td>10000</td>\n", " <td>10000</td>\n", " <td>10000</td>\n", " <td>10000</td>\n", " </tr>\n", " <tr>\n", " <th>unique</th>\n", " <td>562</td>\n", " <td>457</td>\n", " <td>16</td>\n", " <td>440</td>\n", " <td>47</td>\n", " <td>19</td>\n", " <td>1755</td>\n", " <td>9105</td>\n", " <td>1358</td>\n", " </tr>\n", " <tr>\n", " <th>top</th>\n", " <td>85f751fd</td>\n", " <td>c4e18dd6</td>\n", " <td>50e219e0</td>\n", " <td>ecad2386</td>\n", " <td>7801e8d9</td>\n", " <td>07d7df22</td>\n", " <td>a99f214a</td>\n", " <td>6b9769f2</td>\n", " <td>8a4875bd</td>\n", " </tr>\n", " <tr>\n", " <th>freq</th>\n", " <td>3663</td>\n", " <td>3802</td>\n", " <td>4155</td>\n", " <td>6337</td>\n", " <td>6679</td>\n", " <td>6413</td>\n", " <td>8219</td>\n", " <td>46</td>\n", " <td>585</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " site_id site_domain site_category app_id app_domain app_category \\\n", "count 10000 10000 10000 10000 10000 10000 \n", "unique 562 457 16 440 47 19 \n", "top 85f751fd c4e18dd6 50e219e0 ecad2386 7801e8d9 07d7df22 \n", "freq 3663 3802 4155 6337 6679 6413 \n", "\n", " device_id device_ip device_model \n", "count 10000 10000 10000 \n", "unique 1755 9105 1358 \n", "top a99f214a 6b9769f2 8a4875bd \n", "freq 8219 46 585 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe(include=['O']) # Summary statistics for 'objects' (texts, etc)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.describe(include='all')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.isnull().sum() # get the number of nan values in each column" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_tb['age'].unique() # get the unique values of a column" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_tb['age'].value_counts() # get the unique values and their frequency of a column" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# check duplicate rows. subset=a list of column names specify the columns to check for duplicates\n", "df.duplicated() " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tidy data if necessary (this topic is skipped in this class)\n", "This is only necessary if the data is not tidy in the following 5 ways:\n", "1. Column headers are values, not variable names\n", "1. Multiple types of observational units are stored in the same table\n", "1. Variables are stored in both rows and columns\n", "1. Multiple types of observational units are stored in the same table\n", "1. One type in multiple tables" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Get rid of the prefix in the column names use list comprehension\n", "names = list(df_tb.columns)\n", "# Take the -1 index value gives us the last part of the string\n", "new_names = [ele.split('_')[-1] for ele in names]\n", "df_tb.columns = new_names # change the column names" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# drop columns not needed\n", "df_tb=df_tb.drop(['sp','m04','m514','f04','f514'], axis=1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# id_vars are columns won't change, value_vars is a a tuple, list or ndarray of column \n", "# headers that will be turned into row values. Not used here\n", "df_tb=df_tb.melt(id_vars=[\"iso2\",\"year\"],var_name=[\"demographic\"],value_name=\"cases\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# use apply() of Series to change every value in it. \n", "# note the ues of the anonymous function here. A named function can be used as well\n", "df_tb['gender'] = df_tb['demographic'].apply(lambda x:x[0])\n", "df_tb['age'] = df_tb['demographic'].apply(lambda x:x[1:])\n", "# drop the demographic column since the information is extracted already\n", "df_tb = df_tb.drop('demographic', axis=1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Rename column names\n", "df_bill.rename(columns={'artist.inverted':'artist', 'date.entered':'enter_date',\n", " 'date.peaked':'peak_date'}, inplace=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_weather = df_weather.reset_index() # reset row index to start from 0" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_weather_setset = df_weather.filter([\"date\", \"tmax\",\"tmin\"] # filter data to a subset of columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Clean and Prepare Data\n", "Some cleaning techniques are included in \"tidy data\" section.\n", "1. Handle missing values including detection and imputation\n", "1. Handle duplicates\n", "1. Straighten inconsistent coding of data using replace() and map()\n", "1. Use string function to parse and convert data\n", "1. Convert a text column to a datetime column\n", "1. Extract date units such as year, month, etc. from a datetime column\n", "1. Convert a nominal variable into a number of dummy variables\n", "1. Convert a ordinal variable into a numerical variable\n", "1. Outlier detection and exclusion \n", "1. Bin a continuous variable to a categorical one\n", "1. Math transformation of a variable based on its distribution\n", "1. Random sample a dataset" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Drop missing values\n", "df.dropna() # drop rows with at least one nan values\n", "df.dropna(axis=1) # drop columns with at least one nan values\n", "df.dropna(how='all') # Drop rows only when all values are NAN\n", "df.dropna(axis=1, how='all') # Drop columns with all nan values\n", "df.dropna(thresh=5) # keep rows with at least 5 non-missing values \n", "df.dropna(subset=['color','size','price'], how='any') # drop rows if any specific columns have nan values" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Fill in missing values\n", "df.fillna(0) # fill nan in with a constant\n", "df.fillna({'Fat': 0, 'Color': 'Green', 'Size': 'M'}) # fill nan in with different values for different column\n", "df.fillna(method='ffill') # ffill means forward fill: use proceeding value\n", "df.fillna(method='bfill') # bfill means backward fill: Use subsequent value\n", "df.fillna(method='ffill', limit=1) # limit the number of the fill method to fine tune\n", "df.fillna({'Color':df['Color'].mode()[0]}) # impute the missing value. For categorical variable, use mode\n", "df.fillna({'Price':df['Price'].mean()}) # impute the missing value. For numeric variable, use mean or median\n", "# use combine_first() to fill in the missing values of the calling object by that of the argument\n", "df1.combine_first(df2) # missing values in df1 will be filled in with that of df2 at the same position" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# drop duplicates\n", "df.drop_duplicates() # drop completely duplicate rows\n", "df.drop_duplicates(['Color', 'Fiber']) # drop duplicates if values in color and fiber columns are the same\n", "df.drop_duplicates(['Color', 'Fiber'], keep='last') # drop duplicates but keep the last one" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# handle inconsistent data\n", "df.replace({'x large':\"XL\", 'large':'L', 'Medium':'M', 's':'S'}) # replace universally for the dataframe\n", "# use a nested dictionary to specify the column each inner dictionary should apply to\n", "df = df.replace({'Size': {'x large':\"XL\", 'large':'L', 'Medium':'M', 's':'S'}, \n", " 'Price': {-1: np.nan}, 'Sugar': {'-1': np.nan, '99': 0}})" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Convert texts into numbers\n", "df['Fiber'] = pd.to_numeric(df['Fiber'].str.replace('%', ''))/100 " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# convert a text column to datetime\n", "dt_index = pd.DatetimeIndex(df['OrderDate']) \n", "df['Year'] = dt_index.year # Extract date units from the datetime object, add to dataframe\n", "df['Month'] = dt_index.month\n", "df['Day'] = dt_index.day" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Convert nominal variable to dummy variables and add them to the dataframe\n", "dummies = pd.get_dummies(df['Color'], prefix='Color')\n", "df_with_dummy = df.join(dummies)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# convert ordinal variable to numbers\n", "df = df.replace({'S':1, 'M':2, 'L':3, 'XL':4}) \n", "df['Gender'] = df['Sex'].map({'male':0, 'female':1 })" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# detect and filter out outliers. This is one possible way\n", "low_bounary = titanic_df['Age'].mean() - 2 * titanic_df['Age'].std()\n", "high_bounary = titanic_df['Age'].mean() + 2 * titanic_df['Age'].std()\n", "no_outlier_df = titanic_df[(titanic_df['Age'] > low_bounary) & \n", " (titanic_df['Age'] < high_bounary)]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ " # bin a continuous variable to a categorical one\n", "age_bin1 = pd.cut(titanic_df['Age'], 4, precision=2) # equal-sized bins\n", "age_bin2 = pd.cut(titanic_df['Age'], [0, 9, 19, 35, 60, 100], # specify cutting points\n", " labels=['Children', 'Teenager', 'YoungAdult', # specify labels\n", " 'MiddelAged', 'Senior'])\n", "age_bin3 = pd.qcut(titanic_df['Age'], 4) # bin with equal frequencies" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# log transformation is useful for skewed distribution, square root can be used also\n", "df['CRIM'] = np.log(df['CRIM']) " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# drew random samples from data\n", "titanic_df.sample(n=100) # specify the sample size\n", "# specify sample proportion, replacement and random seed\n", "titanic_df.sample(frac=0.25, replace=True, random_state=0) \n", "# create a weight column and sample based on weight\n", "proportion = titanic_df['Survived'].value_counts(normalize=True)\n", "titanic_df['weights'] = np.where(titanic_df['Survived'] ==0, \n", " proportion[0], proportion[1])\n", "sample = titanic_df.sample(n=100, weights='weights')\n", "# set a new index for the sample if necessary\n", "sample.set_index(np.arange(100), inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data Integration\n", "Use merge(), join(), concat(), and append() to integrate different datasets" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df3 = pd.merge(df1, df2) # inner join two dataframes with the columns sharing the same name\n", "# inner join dataframes on column \"employee\" from df1 and column \"name\" from df2\n", "pd.merge(df1, df3, left_on=\"employee\", right_on=\"name\") \n", "pd.merge(df1a, df2a, left_index=True, right_index=True) # inner join dataframes on their indexes\n", "df1a.join(df2a) # join() happens on index only\n", "pd.merge(df1a, df3, left_index=True, right_on='name') # inner join dataframes on index and column\n", "pd.merge(df6, df7, how=\"outer\") # outer join dataframes. A union of rows returned\n", "pd.merge(df6, df7, how='left') # left join df6 to df7. All rows in df6 returned\n", "pd.merge(df6, df7, how='right') # right join df6 to df7. All rows in df7 returned\n", "pd.merge(df8, df9, on=\"name\", suffixes=[\"_2019\", \"_2020\"]) # Add suffixes to overlapping columns" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "pd.concat([ser1, ser2]) # concatenate two series\n", "pd.concat([df1, df2]) # concatenate dataframes vertically\n", "pd.concat([df1, df2], axis=1) # concatenate dataframes horizontally\n", "pd.concat([x, y], ignore_index=True) # concatenate and rebuild index\n", "df1.append(df2) # append df2 to df1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data summary and aggregation with groupby() and pivot_table()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# group by a column and aggregate with standard aggregation methods\n", "titanic_df.groupby('Survived')['Age'].median()\n", "titanic_df.groupby(['Survived', 'Pclass'])['Fare'].max() # group by with multiple keys\n", "# aggregate with user-defined functions and aggregate()\n", "def data_range(arr):\n", " return arr.max() - arr.min()\n", "titanic_df.groupby('Survived').aggregate(data_range)\n", "# aggregate different columns differently and name the resulting columns appropriately\n", "titanic_df.groupby('Survived').agg({'Fare': [('Avg Fare', 'mean'), ('Median Fare', 'median')], \n", " 'Siblings/Spouses Aboard': ['mean', 'min', 'max']})\n", "titanic_df.groupby('Survived').describe() # dispatch method through dispatch\n", "# apply a user-definely function to each group using apply()\n", "def get_stats(group):\n", " return {'min': group.min(), 'max' : group.max(), \n", " 'count': group.count(), 'mean': group.mean()}\n", "titanic_df.groupby('fare_qrt')['Age'].apply(get_stats)\n", "# Access each group in the groupby object\n", "group_pclass = titanic_df.groupby('Pclass')\n", "for pclass, group in group_pclass:\n", " print(\"Passenger class = \", pclass)\n", " display(group.head(2))\n", " print(group.shape)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "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>Age</th>\n", " <th>Fare</th>\n", " <th>Parents/Children Aboard</th>\n", " <th>Pclass</th>\n", " <th>Siblings/Spouses Aboard</th>\n", " <th>Survived</th>\n", " </tr>\n", " <tr>\n", " <th>Sex</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>female</th>\n", " <td>27.719745</td>\n", " <td>44.479818</td>\n", " <td>0.649682</td>\n", " <td>2.159236</td>\n", " <td>0.694268</td>\n", " <td>0.742038</td>\n", " </tr>\n", " <tr>\n", " <th>male</th>\n", " <td>30.431361</td>\n", " <td>25.633935</td>\n", " <td>0.237347</td>\n", " <td>2.385689</td>\n", " <td>0.432810</td>\n", " <td>0.190227</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Age Fare Parents/Children Aboard Pclass \\\n", "Sex \n", "female 27.719745 44.479818 0.649682 2.159236 \n", "male 30.431361 25.633935 0.237347 2.385689 \n", "\n", " Siblings/Spouses Aboard Survived \n", "Sex \n", "female 0.694268 0.742038 \n", "male 0.432810 0.190227 " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ " # Create a pivot table with groups as rows and mean of other columns\n", "titanic_df.pivot_table(index='Sex')" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "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 tr th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe thead tr:last-of-type th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr>\n", " <th></th>\n", " <th colspan=\"2\" halign=\"left\">Age</th>\n", " <th colspan=\"2\" halign=\"left\">Fare</th>\n", " <th colspan=\"2\" halign=\"left\">Parents/Children Aboard</th>\n", " <th colspan=\"2\" halign=\"left\">Siblings/Spouses Aboard</th>\n", " <th colspan=\"2\" halign=\"left\">Survived</th>\n", " </tr>\n", " <tr>\n", " <th>Sex</th>\n", " <th>female</th>\n", " <th>male</th>\n", " <th>female</th>\n", " <th>male</th>\n", " <th>female</th>\n", " <th>male</th>\n", " <th>female</th>\n", " <th>male</th>\n", " <th>female</th>\n", " <th>male</th>\n", " </tr>\n", " <tr>\n", " <th>Pclass</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>1</th>\n", " <td>35.255319</td>\n", " <td>41.511639</td>\n", " <td>106.125798</td>\n", " <td>67.226127</td>\n", " <td>0.457447</td>\n", " <td>0.278689</td>\n", " <td>0.553191</td>\n", " <td>0.311475</td>\n", " <td>0.968085</td>\n", " <td>0.368852</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>28.980263</td>\n", " <td>30.493796</td>\n", " <td>21.970121</td>\n", " <td>19.741782</td>\n", " <td>0.605263</td>\n", " <td>0.222222</td>\n", " <td>0.486842</td>\n", " <td>0.342593</td>\n", " <td>0.921053</td>\n", " <td>0.157407</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>22.135417</td>\n", " <td>26.470612</td>\n", " <td>16.118810</td>\n", " <td>12.695466</td>\n", " <td>0.798611</td>\n", " <td>0.227405</td>\n", " <td>0.895833</td>\n", " <td>0.504373</td>\n", " <td>0.500000</td>\n", " <td>0.137026</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Age Fare Parents/Children Aboard \\\n", "Sex female male female male female \n", "Pclass \n", "1 35.255319 41.511639 106.125798 67.226127 0.457447 \n", "2 28.980263 30.493796 21.970121 19.741782 0.605263 \n", "3 22.135417 26.470612 16.118810 12.695466 0.798611 \n", "\n", " Siblings/Spouses Aboard Survived \n", "Sex male female male female male \n", "Pclass \n", "1 0.278689 0.553191 0.311475 0.968085 0.368852 \n", "2 0.222222 0.486842 0.342593 0.921053 0.157407 \n", "3 0.227405 0.895833 0.504373 0.500000 0.137026 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "titanic_df.pivot_table(index='Pclass', columns='Sex') # pivot table with both rows and columns" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "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>Pclass</th>\n", " <th>1</th>\n", " <th>2</th>\n", " <th>3</th>\n", " </tr>\n", " <tr>\n", " <th>Sex</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>female</th>\n", " <td>35.255319</td>\n", " <td>28.980263</td>\n", " <td>22.135417</td>\n", " </tr>\n", " <tr>\n", " <th>male</th>\n", " <td>41.511639</td>\n", " <td>30.493796</td>\n", " <td>26.470612</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ "Pclass 1 2 3\n", "Sex \n", "female 35.255319 28.980263 22.135417\n", "male 41.511639 30.493796 26.470612" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# rows, columns and values of the pivot table all specified\n", "titanic_df.pivot_table(values='Age', index='Sex', columns='Pclass')" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "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>Pclass</th>\n", " <th>1</th>\n", " <th>2</th>\n", " <th>3</th>\n", " </tr>\n", " <tr>\n", " <th>Sex</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>female</th>\n", " <td>91</td>\n", " <td>70</td>\n", " <td>72</td>\n", " </tr>\n", " <tr>\n", " <th>male</th>\n", " <td>45</td>\n", " <td>17</td>\n", " <td>47</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ "Pclass 1 2 3\n", "Sex \n", "female 91 70 72\n", "male 45 17 47" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# a different way of aggregation specified\n", "titanic_df.pivot_table('Survived', index='Sex', columns='Pclass', aggfunc='sum')" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "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 tr th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe thead tr:last-of-type th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr>\n", " <th></th>\n", " <th>Fare</th>\n", " <th colspan=\"3\" halign=\"left\">(-0.001, 14.454]</th>\n", " <th colspan=\"3\" halign=\"left\">(14.454, 512.329]</th>\n", " </tr>\n", " <tr>\n", " <th></th>\n", " <th>Pclass</th>\n", " <th>1</th>\n", " <th>2</th>\n", " <th>3</th>\n", " <th>1</th>\n", " <th>2</th>\n", " <th>3</th>\n", " </tr>\n", " <tr>\n", " <th>Sex</th>\n", " <th>Age</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th rowspan=\"2\" valign=\"top\">female</th>\n", " <th>(0, 18]</th>\n", " <td>NaN</td>\n", " <td>3.0</td>\n", " <td>17.0</td>\n", " <td>10.0</td>\n", " <td>11.0</td>\n", " <td>10.0</td>\n", " </tr>\n", " <tr>\n", " <th>(18, 80]</th>\n", " <td>NaN</td>\n", " <td>23.0</td>\n", " <td>30.0</td>\n", " <td>81.0</td>\n", " <td>33.0</td>\n", " <td>15.0</td>\n", " </tr>\n", " <tr>\n", " <th rowspan=\"2\" valign=\"top\">male</th>\n", " <th>(0, 18]</th>\n", " <td>NaN</td>\n", " <td>0.0</td>\n", " <td>7.0</td>\n", " <td>4.0</td>\n", " <td>9.0</td>\n", " <td>7.0</td>\n", " </tr>\n", " <tr>\n", " <th>(18, 80]</th>\n", " <td>0.0</td>\n", " <td>7.0</td>\n", " <td>25.0</td>\n", " <td>41.0</td>\n", " <td>1.0</td>\n", " <td>8.0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ "Fare (-0.001, 14.454] (14.454, 512.329] \n", "Pclass 1 2 3 1 2 3\n", "Sex Age \n", "female (0, 18] NaN 3.0 17.0 10.0 11.0 10.0\n", " (18, 80] NaN 23.0 30.0 81.0 33.0 15.0\n", "male (0, 18] NaN 0.0 7.0 4.0 9.0 7.0\n", " (18, 80] 0.0 7.0 25.0 41.0 1.0 8.0" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# multi-level aggregation in both rows and columns\n", "age_bracket = pd.cut(titanic_df['Age'], [0, 18, 80])\n", "fare_bracket = pd.qcut(titanic_df['Fare'], 2)\n", "titanic_df.pivot_table('Survived', ['Sex', age_bracket], [fare_bracket, 'Pclass'], aggfunc='sum')" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "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 tr th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe thead tr:last-of-type th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr>\n", " <th></th>\n", " <th colspan=\"3\" halign=\"left\">Fare</th>\n", " <th colspan=\"3\" halign=\"left\">Survived</th>\n", " </tr>\n", " <tr>\n", " <th>Pclass</th>\n", " <th>1</th>\n", " <th>2</th>\n", " <th>3</th>\n", " <th>1</th>\n", " <th>2</th>\n", " <th>3</th>\n", " </tr>\n", " <tr>\n", " <th>Sex</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>female</th>\n", " <td>106.125798</td>\n", " <td>21.970121</td>\n", " <td>16.118810</td>\n", " <td>91</td>\n", " <td>70</td>\n", " <td>72</td>\n", " </tr>\n", " <tr>\n", " <th>male</th>\n", " <td>67.226127</td>\n", " <td>19.741782</td>\n", " <td>12.695466</td>\n", " <td>45</td>\n", " <td>17</td>\n", " <td>47</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Fare Survived \n", "Pclass 1 2 3 1 2 3\n", "Sex \n", "female 106.125798 21.970121 16.118810 91 70 72\n", "male 67.226127 19.741782 12.695466 45 17 47" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# different aggregation for different columns\n", "titanic_df.pivot_table(index='Sex', columns='Pclass', aggfunc={'Survived':sum, 'Fare':'mean'})" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "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>Pclass</th>\n", " <th>1</th>\n", " <th>2</th>\n", " <th>3</th>\n", " <th>All</th>\n", " </tr>\n", " <tr>\n", " <th>Sex</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>female</th>\n", " <td>91</td>\n", " <td>70</td>\n", " <td>72</td>\n", " <td>233</td>\n", " </tr>\n", " <tr>\n", " <th>male</th>\n", " <td>45</td>\n", " <td>17</td>\n", " <td>47</td>\n", " <td>109</td>\n", " </tr>\n", " <tr>\n", " <th>All</th>\n", " <td>136</td>\n", " <td>87</td>\n", " <td>119</td>\n", " <td>342</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ "Pclass 1 2 3 All\n", "Sex \n", "female 91 70 72 233\n", "male 45 17 47 109\n", "All 136 87 119 342" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Add total to the pivot table\n", "titanic_df.pivot_table('Survived', index='Sex', columns='Pclass', aggfunc='sum', margins=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## <font color=\"#0000E0\">Basic Graphing</font>" ] }, { "cell_type": "code", "execution_count": 4, "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": [ "# plot using keyword arguments. How to set properties of the plot\n", "plt.plot([1, 2, 3, 4], [1, 4, 9, 16], color='r', ls=':', marker='v')\n", "plt.title('First Plot')\n", "plt.xlabel('X label')\n", "plt.ylabel('Y label')\n", "plt.text(3, 9, '(3, 9)', style='italic')\n", "plt.xlim(0, 5)\n", "plt.ylim(-1, 20)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x26fdc9bf108>]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "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": [ "# plot with format string\n", "plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'go')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.collections.PathCollection at 0x26fdc90fa88>" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "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": [ "# scatter plot with titanic data\n", "plt.scatter(titanic_df['Age'], titanic_df['Fare'], color='r', \n", " marker='v', alpha=0.5)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([ 63., 51., 242., 211., 142., 88., 49., 28., 11., 2.]),\n", " array([ 0.42 , 8.378, 16.336, 24.294, 32.252, 40.21 , 48.168, 56.126, 64.084, 72.042, 80. ]),\n", " <a list of 10 Patch objects>)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "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": [ "# Create a histogram\n", "plt.hist(titanic_df['Age'], color='r', alpha=0.6, edgecolor='w')" ] }, { "cell_type": "code", "execution_count": 9, "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": [ "plt.boxplot(titanic_df['Age']) # Create a boxplot\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# how to set figure size to be a specific dimension in inches\n", "plt.figure(figsize=(8, 6))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.legend.Legend at 0x26fdb1aec08>" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "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": [ "# Plot two graphs on one chart\n", "plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'r:', marker='o', ms=10, \n", " label=\"Square curve\")\n", "plt.scatter([1, 2, 3, 4], [1, 8, 27, 64], c='k', marker='v', linewidth=3, \n", " label=\"Cube curve\")\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# One chart with multiple subplots side-by-side\n", "plt.subplot(1, 2, 1)\n", "plt.plot([1, 2, 3, 4], [1, 4, 9, 16])\n", "plt.title('Left Plot')\n", "plt.xlabel('Left X label')\n", "plt.ylabel('Left Y label')\n", "plt.subplot(1, 2, 2)\n", "plt.plot([1, 2, 3, 4], [1, 8, 27, 64], \"go\")\n", "plt.title('Right Plot')\n", "plt.xlabel('Right X label')\n", "plt.ylabel('Right Y label')\n", "# Add an overall title\n", "plt.suptitle('subplots in one figure')\n", "# Function controling the location of subplots.\n", "plt.subplots_adjust(wspace=0.5,hspace=0.3, left=0.125, right=0.9, top=0.8, bottom=0.1)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Create 2 charts stacked vertically\n", "plt.subplot(2, 1, 1)\n", "plt.plot([1, 2, 3, 4], [1, 4, 9, 16])\n", "plt.subplot(2, 1, 2)\n", "plt.plot([1, 2, 3, 4], [1, 8, 27, 64], \"go\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x26fdda49248>" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe4AAAFzCAYAAAD47+rLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dfZBdVZnv8e+TJiQSQseQ1kpouIT3FyFR0xIJpQiDeO6IUE7UOF6Ng3cYBYWgV0ER5TKD5dSlhoyUqHESeSkQtUGhLNuR4sUQ8kIS3jUohonSdAY6CWlIIEmns+4ffYIkdEKnc/bZZ5/z/VSluvfps896OjnpX6+91l4rUkpIkqRiGJZ3AZIkafAMbkmSCsTgliSpQAxuSZIKxOCWJKlADG5Jkgpkn7wLGIxx48alQw89NO8yJEmqiuXLl69JKbUM9LVCBPehhx7KsmXL8i5DkqSqiIg/7+prXiqXJKlADG5JkgrE4JYkqUAKMcYtSSq+3t5eOjs72bRpU96l1IyRI0fS2trK8OHDB32OwS1JqorOzk5Gjx7NoYceSkTkXU7uUkqsXbuWzs5OJk6cOOjzvFQuSaqKTZs2ceCBBxraZRHBgQceuMdXIAxuSVLVGNo7Gsrfh8EtSao7V111FccffzwnnngikydPZsmSJXmXVDGOcVdYT08P8+bN49xzz6W5uTnvciSp4SxatIhf/vKXPPTQQ4wYMYI1a9awZcuWvMuqmEx73BFxcUT8LiKeiIgfR8TIiJgYEUsi4qmI+ElE7JtlDdXW0dHBypUr6ejoyLsUSWpIq1evZty4cYwYMQKAcePGMWHCBJYvX8573/te3vnOd3LmmWeyevVqtm7dSltbG/fddx8AX/3qV7nssstyrP6NZRbcEXEQcCEwJaX0NqAJmAH8K3BNSulI4AXgM1nVUG09PT0sXryYlBKLFy+mp6cn75IkqeG8//3v55lnnuGoo47i/PPP57e//S29vb184QtfoL29neXLl3Puuedy2WWXsc8++3D99dfzuc99jrvuuotf//rXfPOb38z7W9itrC+V7wO8KSJ6gf2A1cBpwN+Xv34DcAXwvYzrqIqOjg62bdsGwLZt2+jo6GDGjBk5VyVJjWX//fdn+fLl3H///dx777187GMf4+tf/zpPPPEEZ5xxBgB9fX2MHz8egOOPP55PfvKTnHXWWSxatIh9963tC8GZBXdK6dmIuBr4C/AK8BtgObA+pbS1/LRO4KCBzo+I84DzAA455JCsyqyopUuX0tfXB/S/KZYuXWpwS1IOmpqaOPXUUzn11FM54YQT+O53v8vxxx/PokWLBnz+448/zpgxY3juueeqXOmey/JS+ZuBs4GJwARgFFAa4KlpoPNTSnNSSlNSSlNaWgbc2azmtLW10dTUBPS/adra2nKuSJIazx/+8AeeeuqpV48feeQRjj32WLq7u18N7t7eXn73u98BcPvtt7N27Vrmz5/PhRdeyPr163Ope7CynJz2N8B/pZS6U0q9wO3AycCYiNje028FujKsoapKpRLDhvX/lQ4bNoxSaaDfUyRJWdqwYQMzZ87kuOOO48QTT+T3v/89V155Je3t7VxyySVMmjSJyZMns3DhQtasWcOll17K3LlzOeqoo/j85z/PRRddlPe3sFtZjnH/BZgaEfvRf6n8dGAZcC8wHbgVmAnckWENVdXc3MzUqVNZsGABU6dO9XYwScrBO9/5ThYuXPi6x8eNG8f8+fNf9/gf//jHVz+/8MILM62tEjLrcaeUlgDtwEPA4+W25gCXAF+MiD8BBwJzs6ohD6VSicMPP9zetiQpE5nOKk8pfRPYeV7908C7smw3T83NzVx88cV5lyFJqlMueSpJUoEY3JIkFYjBLUlSgRjckiQViMEtSdIg3HfffXzwgx/Muwy39ZQk5ePfr/suPS+9VLHXax49movOv6Bir1erDG5JUi56XnqJltNOrtjrdd/z+kVXdrZq1So+8IEPcMopp7B48WImTZrEP/zDP/DNb36T559/nptvvhmAWbNm8corr/CmN72JH/3oRxx99NE7vM7GjRv5whe+wOOPP87WrVu54oorOPvssyv2veyOl8olSQ3lT3/6ExdddBGPPfYYTz75JLfccgsLFizg6quv5lvf+hbHHHMM8+fP5+GHH+bKK6/ka1/72ute46qrruK0005j6dKl3HvvvXz5y19m48aNVanfHrckqaFMnDiRE044Aejf0vP0008nIjjhhBNYtWoVPT09zJw5k6eeeoqIoLe393Wv8Zvf/IY777yTq6++GoBNmzbxl7/8hWOPPTbz+g1uSVJDGTFixKufDxs27NXjYcOGsXXrVi6//HLe97738fOf/5xVq1Zx6qmnvu41Ukrcdtttr7uEXg1eKpck6TV6eno46KCDALj++usHfM6ZZ57JtddeS0r9O1M//PDD1SrP4JYk6bW+8pWv8NWvfpVp06bR19c34HMuv/xyent7OfHEE3nb297G5ZdfXrX6YvtvC7VsypQpadmyZXmXIUnaCytWrNhhDNjbwfrt/PcCEBHLU0pTBnq+Y9yS1GB6enqYN28e5557Ls3NzbnVUcSQrQVeKpekBtPR0cHKlSvp6OjIuxQNgcEtSQ2kp6eHxYsXk1Ji8eLF9PT05F2S9pDBLUkNpKOjg23btgGwbds2e90FZHBLUgNZunTpqzOl+/r6WLp0ac4VaU8Z3JLUQNra2mhqagKgqamJtra2nCvSnjK4JamBlEolhg3r/9E/bNgwSqVSzhVV13e+8x2OPfZYPvGJT2Ty+ldcccWry6BmxdvBJKmBNDc3M3XqVBYsWMDUqVNzvR3sBz/4Lhs3vlix1xs16gD+6Z92f4vZddddR0dHBxMnTqxYu9VmcEtSgymVSqxevTr33vbGjS/yuc+9q2Kv973vPbjbr3/2s5/l6aef5kMf+hAzZsxg5cqVr9uW8/rrr+cXv/gFfX19PPHEE3zpS19iy5Yt3HTTTYwYMYJf/epXjB07lh/+8IfMmTOHLVu2cMQRR3DTTTex33777dDeypUrueCCC+ju7ma//fbjhz/8Icccc8xef59eKpekBtPc3MzFF1+ca287D9///veZMGEC9957Lxs3btzltpxPPPEEt9xyCw8++CCXXXYZ++23Hw8//DDvfve7ufHGGwH48Ic/zNKlS3n00Uc59thjmTt37uvaO++887j22mtZvnw5V199Neeff35Fvg973JKkhrOrbTkB3ve+9zF69GhGjx5Nc3MzZ511FgAnnHACjz32GNAf7l//+tdZv349GzZs4Mwzz9zh9Tds2MDChQv5yEc+8upjmzdvrkjtBrckqeHsalvOJUuWvOG2nwCf/vSn+cUvfsGkSZO4/vrrue+++3Z4nW3btjFmzBgeeeSRitfupXJJUsPZ2205X3rpJcaPH09vby8333zz675+wAEHMHHiRH72s58B/b8oPProo3tfOAa3JDWcnp4errnmmoZe7nRvt+X853/+Z0466STOOOOMXU44u/nmm5k7dy6TJk3i+OOP54477qhE6W7ruSvt7e10dnbu8Xnd3d0A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\n", "text/plain": [ "<Figure size 576x432 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# create a boxplot of age by class and gender. Choose a color palette\n", "plt.figure(figsize=(8, 6))\n", "sns.boxplot(x='Pclass', y='Age', data=titanic_df, hue='Sex', palette='Set3')" ] }, { "cell_type": "code", "execution_count": 16, "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": [ "# bar chart for a categorical variable\n", "sns.countplot(y='Survived', data=titanic_df)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "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": [ "# clustered bar chart with an additional variable\n", "sns.countplot(x='Survived', hue='Pclass', data=titanic_df)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 591.875x540 with 12 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# pairwise scatter plot to get the correlation between numeric variables\n", "# If vars is not passed in, all numeric variables will be used. The chart can be slow to draw\n", "sns.pairplot(titanic_df, hue='Survived', vars=['Pclass', 'Age', 'Fare'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x432 with 2 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# pairwise correlation matrix plot for numeric columns\n", "columns = titanic_df.describe().columns\n", "cm = titanic_df[columns].corr() # Correlation matrix\n", "sns.set(font_scale=1)\n", "plt.figure(figsize=(6,6))\n", "hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10}, \n", " yticklabels=columns, xticklabels=columns)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Preprocessing for Machine Learning Models\n", "There are overlaps of data preprocessing in Pandas and scikit-learn. For example, converting text values to numerical values can be done in either libary. If all the prepressing has already done in EDA, you can skip the relevant code in this step.\n", "\n", "This section also import most of the classes and functions you might need for building machine learning models" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Data transformers\n", "from sklearn.preprocessing import LabelEncoder, StandardScaler\n", "\n", "# Data Partitioning\n", "from sklearn.model_selection import train_test_split\n", "\n", "# Add polynomial features\n", "from sklearn.preprocessing import PolynomialFeatures\n", "\n", "# Learning models\n", "from sklearn.linear_model import LinearRegression, Ridge, Lasso, LogisticRegression\n", "from sklearn.neighbors import KNeighborsClassifier, KNeighborsRegressor\n", "from sklearn.tree import DecisionTreeClassifier, DecisionTreeRegressor, plot_tree\n", "\n", "# Performance metrics\n", "from sklearn.metrics import confusion_matrix, roc_auc_score, classification_report, precision_recall_curve, roc_curve, auc\n", "\n", "#####################################################################\n", "# After this step, you have have already:\n", "# - Deleted rows and columns that have no valid data\n", "# - Converted text into numerical or date/time format (for columns you plan to use as predictors)\n", "# - Mapped ordinal features into numbers\n", "# - Created dummy variables out of nominal variables\n", "# - Handled all missing values with dropping or imputing\n", "# Sample codes are in the previous code blocks\n", "#####################################################################\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define Predictors and Target Variable\n", "The type of the target variable y determines whether we have a classification problem or a regression problem." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "X = titanic_df.drop('Survived', axis=1)\n", "y = titanic_df['Survived']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Split Data into Training and Test Sets¶\n", "- If y is a categorical variable, you have a classification problem, you should use the option stratify = y (see iris example in Week 2).\n", "- If y is continuous numerical variable, you have a regression problem, comment out stratify = y (don't use it).\n", "- Use the default option for test_size (don't use it). If you have a large dataset, you can reduce test_size (e.g., to 0.2 or lower) so you have more training data, but can still get a good estimate of test performance. For the final project, use the default option.\n", "- You could try different random_state to check the robustness of your model and results. For the final presentation, use random_state=0 so all the models are comparable." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "X_train, X_test, y_train, y_test = train_test_split(X, y, \n", " # test_size=0.3, # You can uncomment it to try out different sizes\n", " stratify=y, # for classification tasks only, delete this for regression tasks\n", " random_state=0\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Standarize Data for needed Models\n", "- This is needed for KNN classification and regression and logicstic regression\n", "- This is not needed for Decision Tree\n", "- This is not needed for linear regression, Ridge regression and Lasso regression since normalization is built in. You just need to set the argument normalized=True." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "sc = StandardScaler()\n", "# Fit the training data to the scaler\n", "sc.fit(X_train) # calculate mean and std\n", "X_train_scaled = sc.transform(X_train) # get the z-score for training data\n", "X_test_scaled = sc.transform(X_test) # get the z-score for test data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Build Models" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# KNN classification model\n", "knn = KNeighborsClassifier(n_neighbors=25)\n", "knn.fit(X_train_scaled, y_train)\n", "# Logistic Regression model\n", "lr = LogisticRegression(C=10, random_state=0)\n", "lr.fit(X_train_scaled, y_train)\n", "# Decision Tree Classification\n", "tree = DecisionTreeClassifier(criterion='gini', max_depth=4, random_state=0)\n", "tree.fit(X_train, y_train)\n", "# Linear regression \n", "linear_model = LinearRegression()\n", "linear_model.fit(X_train, y_train)\n", "# Add polynomial features\n", "poly_features = PolynomialFeatures(degree=2)\n", "# use fit_transform() function to generate the features\n", "X_poly = poly_features.fit_transform(X)\n", "# partition the data into training and test\n", "X_poly_train, X_poly_test, y_train, y_test = train_test_split(X_poly, y, random_state=random_seed)\n", "# Create a linearRegression model using polynomial features\n", "poly_model = LinearRegression()\n", "# train the model with polynomial training data.\n", "poly_model.fit(X_poly_train, y_train)\n", "# Ridge regression. Use it when # of features are high or polynomial features are used\n", "ridge = Ridge(alpha=0.8, normalize=True, max_iter=50000)\n", "ridge.fit(X_poly_train, y_train)\n", "# Lasso regression. Use it when # of features are high or polynomial features are used\n", "lasso = Lasso(alpha=0.001, normalize=True, max_iter=50000)\n", "lasso.fit(X_poly_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model Evaluation\n", "Based on the model performance, you might want to change the features included in X. This might require you to performance additional feature engineering and rerun the models and reevaluate their performances." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "######################################################################\n", "# If your model is a classification problem, the score is the accuracy\n", "# If your model is a regression problem, then score is the R^2\n", "# Always check the meaning of 'score' of the model in sklearn documentation\n", "print('Training score:', model.score(X_train,y_train))\n", "print('Test score: ', model.score(X_test,y_test))\n", "######################################################################\n", "######################################################################\n", "# For classification, if the data is not quite balanced, consider other metrics.\n", "# You should also consider the cost of misclassification to the positive or negative side\n", "# classification report has all the metrics. Logistic regression is used as example:\n", "print(\"Classification Report for Logistic Regression\")\n", "print(classification_report(y_test, y_test_pred_logReg, \n", " target_names=['Not Accepting (0)', 'Accepting (1)']))\n", "\n", "print('\\nMeasuring performance using roc_auc (the higher the better: highest possible is 1, random guess is 0.5):')\n", "print('Training set roc auc:', roc_auc_score(y_train, logReg.predict_proba(X_train)[:,1]))\n", "print('Test set roc auc:', roc_auc_score(y_test, logReg.predict_proba(X_test) [:,1]))\n", "# Create ROC curves using the following code:\n", "fpr_logReg, tpr_logReg, thresholds_logReg = roc_curve(y_test, y_test_predprob_logReg[:, 1])\n", "auc_logReg = auc(fpr_logReg, tpr_logReg)\n", "y_test_predprob_tree = tree_model.predict_proba(X_test)\n", "fpr_tree, tpr_tree, thresholds_tree = roc_curve(y_test, y_test_predprob_tree[:, 1])\n", "auc_tree = auc(fpr_tree, tpr_tree)\n", "y_test_score_svc = svc_model.decision_function(X_test_scaled)\n", "fpr_svc, tpr_svc, thresholds_svc = roc_curve(y_test, y_test_score_svc)\n", "auc_svc = auc(fpr_svc, tpr_svc)\n", "\n", "plt.xlim([-0.05, 1.05])\n", "plt.ylim([-0.05, 1.05])\n", "plt.xlabel('False Positive Rate')\n", "plt.ylabel('True Positive Rate')\n", "plt.title('ROC Curve and AUC')\n", "plt.plot(fpr_logReg, tpr_logReg, label='Logistic Regression (area = %0.2f)' % auc_logReg)\n", "plt.plot(fpr_tree, tpr_tree, label='Decision Tree (area = %0.2f)' % auc_tree)\n", "plt.plot(fpr_svc, tpr_svc, label='SVC (area = %0.2f)' % auc_svc)\n", "plt.plot([0, 1], [0, 1],'r--', label='Random Guessing')\n", "plt.plot([0, 0, 1], [0, 1, 1], linestyle=':', color='k', label='Perfect ROC')\n", "plt.legend(loc=\"lower right\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hyper Parameter Tuning and Model Selection\n", "manually change hyper parameters such as alpha for Ridge and Lasso, C for logistic regression, k for KNN, max_depth for decision tree to prevent overfitting while keeping high scores" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model Interpretation\n", "For linear models (linear, ridge, lasso and logistic regression), the coefficicents should be provided for the interpretation of the model. For text columns coded as numerical ones, you should interpret the meanings using orignal values. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Get model parameters.\n", "print(\"Weights (coefficients): {}\".format(linear_model.coef_))\n", "print(\"Bias (intercept): {:.2f}\".format(linear_model.intercept_))\n", "# Obtain feature importances after fitting the data with decision tree\n", "feature_names = X_train.columns\n", "print(np.c_[feature_names, tree.feature_importances_] )\n", "# plot the decision tree\n", "plt.figure(figsize=(25,10))\n", "plot_tree( clf1, filled=True,\n", " feature_names = ['sepal_length', 'sepal_width'],\n", " class_names = ['setosa', 'versicolor', 'virginica']\n", " )\n", "plt.show()" ] } ], "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.3" } }, "nbformat": 4, "nbformat_minor": 2 }