{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Kaggle Competition | Titanic: Machine Learning From a Disaster\n", "\n", "![Titanic](header.png)\n", "\n", "### Competition Description\n", "> The sinking of the RMS Titanic is one of the most infamous shipwrecks in history. On April 15, 1912, during her maiden voyage, the Titanic sank after colliding with an iceberg, killing 1502 out of 2224 passengers and crew. This sensational tragedy shocked the international community and led to better safety regulations for ships.\n", "\n", "> One of the reasons that the shipwreck led to such loss of life was that there were not enough lifeboats for the passengers and crew. Although there was some element of luck involved in surviving the sinking, some groups of people were more likely to survive than others, such as women, children, and the upper-class.\n", "\n", "> In this challenge, we ask you to complete the analysis of what sorts of people were likely to survive. In particular, we ask you to apply the tools of machine learning to predict which passengers survived the tragedy.\n", "\n", "> ** Goal **\n", "\n", ">It is your job to predict if a passenger survived the sinking of the Titanic or not. \n", "For each PassengerId in the test set, you must predict a 0 or 1 value for the Survived variable.\n", "\n", "> ** Metric**\n", "\n", ">Your score is the percentage of passengers you correctly predict. This is known simply as \"accuracy”.\n", "\n", "\n", " \n", "### Steps taken in this Notebook\n", "1. Data Wrangling\n", " * Loading the datasets with Pandas\n", " * Visualizing missing data with MissingNo\n", " * Checking correlation between survival and individual factors \n", "
\n", "2. Feature Engineering\n", " * Feature engineering of new columns\n", " * Passenger Title\n", " * Family Size\n", " * Travelling Alone? \n", "
\n", "3. Imputing Missing Data Values\n", " * Randomizing the two missing Embarked values\n", " * Imputing the missing fare value using the average fare paid by each Pclass\n", " * Testing various ML Regression algorithms to predict age\n", " * Linear Regression\n", " * Bayesian Ridge\n", " * Multilayer Perceptron (MLP)\n", " * Decision Tree\n", " * Bagging\n", " * Using Multilayer Perceptron (MLP) to predict the missing age values\n", "

\n", "4. Predict Survival\n", " * Test various ML Classifier algorithms to predict Survival\n", " * Logistic Regression\n", " * Support Vector \n", " * Decision Tree \n", " * Random Forest \n", " * Adaptive Boosting \n", " * Multilayer Perceptron (MLP) \n", " * K-Nearest Neighbours (KNN) \n", "\n", " * Using MLP to predict Survival\n", " * Formatting output for submission\n", "\n", "
\n", "\n", "### Required Libraries\n", "* Numpy\n", "* Pandas\n", "* Missingno\n", "* Seaborn\n", "* Matplotlib\n", "* Random\n", "* SciKit-Learn\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Wrangling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Loading the datasets with Pandas" ] }, { "cell_type": "code", "execution_count": 705, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import random\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from scipy.stats import ks_2samp, randint\n", "%matplotlib inline\n", "\n", "from sklearn.model_selection import train_test_split, RandomizedSearchCV\n", "from sklearn.preprocessing import StandardScaler\n", "\n", "from sklearn.neural_network import MLPRegressor, MLPClassifier\n", "from sklearn.linear_model import LinearRegression, BayesianRidge, LogisticRegression\n", "from sklearn.tree import DecisionTreeRegressor, DecisionTreeClassifier\n", "from sklearn.ensemble import BaggingRegressor, RandomForestClassifier, AdaBoostClassifier\n", "from sklearn.metrics import mean_squared_error, mean_absolute_error, accuracy_score\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.svm import SVC\n", "\n", "train_dat = pd.read_csv('train.csv')\n", "test_dat = pd.read_csv('test.csv')\n", "all_dat = [train_dat, test_dat]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Training Dataset" ] }, { "cell_type": "code", "execution_count": 651, "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", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "0 1 0 3 \n", "1 2 1 1 \n", "2 3 1 3 \n", "\n", " Name Sex Age SibSp \\\n", "0 Braund, Mr. Owen Harris male 22.0 1 \n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", "2 Heikkinen, Miss. Laina female 26.0 0 \n", "\n", " Parch Ticket Fare Cabin Embarked \n", "0 0 A/5 21171 7.2500 NaN S \n", "1 0 PC 17599 71.2833 C85 C \n", "2 0 STON/O2. 3101282 7.9250 NaN S " ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 891 entries, 0 to 890\n", "Data columns (total 12 columns):\n", "PassengerId 891 non-null int64\n", "Survived 891 non-null int64\n", "Pclass 891 non-null int64\n", "Name 891 non-null object\n", "Sex 891 non-null object\n", "Age 714 non-null float64\n", "SibSp 891 non-null int64\n", "Parch 891 non-null int64\n", "Ticket 891 non-null object\n", "Fare 891 non-null float64\n", "Cabin 204 non-null object\n", "Embarked 889 non-null object\n", "dtypes: float64(2), int64(5), object(5)\n", "memory usage: 83.6+ KB\n" ] }, { "data": { "text/plain": [ "None" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdSurvivedPclassAgeSibSpParchFare
count891.000000891.000000891.000000714.000000891.000000891.000000891.000000
mean446.0000000.3838382.30864229.6991180.5230080.38159432.204208
std257.3538420.4865920.83607114.5264971.1027430.80605749.693429
min1.0000000.0000001.0000000.4200000.0000000.0000000.000000
25%223.5000000.0000002.00000020.1250000.0000000.0000007.910400
50%446.0000000.0000003.00000028.0000000.0000000.00000014.454200
75%668.5000001.0000003.00000038.0000001.0000000.00000031.000000
max891.0000001.0000003.00000080.0000008.0000006.000000512.329200
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass Age SibSp \\\n", "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", "\n", " Parch Fare \n", "count 891.000000 891.000000 \n", "mean 0.381594 32.204208 \n", "std 0.806057 49.693429 \n", "min 0.000000 0.000000 \n", "25% 0.000000 7.910400 \n", "50% 0.000000 14.454200 \n", "75% 0.000000 31.000000 \n", "max 6.000000 512.329200 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(train_dat.head(3))\n", "display(train_dat.info())\n", "display(train_dat.describe())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Testing Dataset" ] }, { "cell_type": "code", "execution_count": 652, "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", "
PassengerIdPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
08923Kelly, Mr. Jamesmale34.5003309117.8292NaNQ
18933Wilkes, Mrs. James (Ellen Needs)female47.0103632727.0000NaNS
28942Myles, Mr. Thomas Francismale62.0002402769.6875NaNQ
\n", "
" ], "text/plain": [ " PassengerId Pclass Name Sex Age SibSp \\\n", "0 892 3 Kelly, Mr. James male 34.5 0 \n", "1 893 3 Wilkes, Mrs. James (Ellen Needs) female 47.0 1 \n", "2 894 2 Myles, Mr. Thomas Francis male 62.0 0 \n", "\n", " Parch Ticket Fare Cabin Embarked \n", "0 0 330911 7.8292 NaN Q \n", "1 0 363272 7.0000 NaN S \n", "2 0 240276 9.6875 NaN Q " ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 418 entries, 0 to 417\n", "Data columns (total 11 columns):\n", "PassengerId 418 non-null int64\n", "Pclass 418 non-null int64\n", "Name 418 non-null object\n", "Sex 418 non-null object\n", "Age 332 non-null float64\n", "SibSp 418 non-null int64\n", "Parch 418 non-null int64\n", "Ticket 418 non-null object\n", "Fare 417 non-null float64\n", "Cabin 91 non-null object\n", "Embarked 418 non-null object\n", "dtypes: float64(2), int64(4), object(5)\n", "memory usage: 36.0+ KB\n" ] }, { "data": { "text/plain": [ "None" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdPclassAgeSibSpParchFare
count418.000000418.000000332.000000418.000000418.000000417.000000
mean1100.5000002.26555030.2725900.4473680.39234435.627188
std120.8104580.84183814.1812090.8967600.98142955.907576
min892.0000001.0000000.1700000.0000000.0000000.000000
25%996.2500001.00000021.0000000.0000000.0000007.895800
50%1100.5000003.00000027.0000000.0000000.00000014.454200
75%1204.7500003.00000039.0000001.0000000.00000031.500000
max1309.0000003.00000076.0000008.0000009.000000512.329200
\n", "
" ], "text/plain": [ " PassengerId Pclass Age SibSp Parch Fare\n", "count 418.000000 418.000000 332.000000 418.000000 418.000000 417.000000\n", "mean 1100.500000 2.265550 30.272590 0.447368 0.392344 35.627188\n", "std 120.810458 0.841838 14.181209 0.896760 0.981429 55.907576\n", "min 892.000000 1.000000 0.170000 0.000000 0.000000 0.000000\n", "25% 996.250000 1.000000 21.000000 0.000000 0.000000 7.895800\n", "50% 1100.500000 3.000000 27.000000 0.000000 0.000000 14.454200\n", "75% 1204.750000 3.000000 39.000000 1.000000 0.000000 31.500000\n", "max 1309.000000 3.000000 76.000000 8.000000 9.000000 512.329200" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(test_dat.head(3))\n", "display(test_dat.info())\n", "display(test_dat.describe())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Let's examine the data briefly:\n", "The Name, Sex, Ticket, Cabin, and Embarked are listed as strings\n", "The remaining lists (PassengerId, Age, SibSp, Parch, and Fare) are reported as integers, but some of them represent categories of values. These nominal values must be converted to dummy variables when creating models\n", "\n", "Many of the columns have some missing values, and are difficult to conceptualize when reported in a table form (using `info()`). We will use the `missingno` package to make it easier to visualize where the missing values lie, and what proportions are the data are missing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualizing missing data with missingno" ] }, { "cell_type": "code", "execution_count": 653, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABY8AAAKsCAYAAACkk0JgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xe4bWV5L+zfQ1MRFbAdjQW7YjT2\n2KJITKyReLBEY0liDdbkGGPBEmwx9nKwxV6wkqjfp1gQiXpEjXpE0ERQUPSzUhVEBJ7vjzEWTtdY\n7D03wl577H3f1zWvtdaYo7yLZw/WWr/5zuet7g4AAAAAACzabr0HAAAAAADAlkd4DAAAAADAhPAY\nAAAAAIAJ4TEAAAAAABPCYwAAAAAAJoTHAAAAAABMCI8BAAAAAJgQHgMAAAAAMCE8BgBgXVRVrfcY\nAADYNvjd84IRHm9F3ATzpn7zpXbzpn7zpn7zU1U7V9XNk6S7Ww3nSd3mS+3mTf3mTf3mp6ouUVV7\nrvc4uGBqsENV7ZAMv3uu95jmSHg8c1V18ar6k6oqf4DNj/rNl9rNm/rNm/rNV1VdLMk3k3ypqu68\nsF0NZ8C9N19qN2/qN2/qN19VdfEkX0ny4aq69XqPh01TVbskeUWSQzLU8MVVdbmq2n583r24JOHx\njFXVJZN8Kclrk9zbD6N5Ub/5Urt5U795U7/Zu3qSyyT5TpK3VtVde6SGWzb33nyp3byp37yp3+z9\nYZLrJTknyUur6jbrPB6WNAbH/5nk9kl+mKSSPDbJYUnuW1W7uBeXJzyeqaraMcmBSa6UZLck/5zk\nz/0wmgf1my+1mzf1mzf12yqckORHGWbx/HeSN1fVXcbn1G8L5d6bL7WbN/WbN/XbKhyV5LgkX89Q\nw5etzEBWvy3XWJt/SXJykvt294OT7JPkr5PsmuFefGhVXUobi+UIj+fr7kn+JMkrk9w6yc4Zbg4/\njOZB/eZL7eZN/eZN/Wasqrbv7l8mOTzJZ5I8I8n3k7ylqu7W3eeO+11qHYfJ2tx786V286Z+86Z+\nM1ZDj9xTk3wjyduSPD3JFZK8vKpuuxI61tDagi3IWJvrJzmuu789bvtVkg8leX2SqyXZL8ldEy8E\nLEN4PF8nZPif2Gu6+1tJ7pC1fxip8ZZJ/eZL7eZN/eZN/Wasu88ZP/1ukr/p7s8lOSDJ95K8sar2\n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\njPvcP8k7kvxzdz9j3HaJ7v7l+oyaFeo3X2o3b+o3b+q3damhH92RSb7b3Xcety0uVpKquoy3DK4/\n9958qd28qd+8qd98VdXO3X3GSnuDhY8fTrJdd99jYd/zWo6wZdiEe++gJM/p7met11i3ZtpWbAG6\n+8dVtW+Gt7P8IskzM7xiclz9pm/gR5KclOTSC8f5IbQFUL/5Urt5U795U7+tx1ivX1bVK5K8rKoe\n1N3vWAmOF0LkSTsLNj/33nyp3byp37yp33x19xnjx3PHTdtlWMT3jAzrMCQ5b2G9R1fVMd39wc0+\nUNa0CffeTzP2H+fCJzzeQnT3iUkOrmGFyGsn+fn4h9Y5VbV9kqsk+XGS/0qms3lYX+o3X2o3b+o3\nb+q3dejfLI73qQwrYd8jyTsW3hra435qt4Vw782X2s2b+s2b+m0dFmYWn5nkMlW1Q5JLJHlphvZc\nN1ivsbE299760/N4y3NGhqn4D62qm43brpKh+felM7yi4g+wLZf6zZfazZv6zZv6bQW6+xtJXp3k\n/lV1G/WaBffefKndvKnfvKnfjFWdty7DrzNMqNwlyYuT/EWSW3X3Mes1NjbKvbdO9DzeAlXVzZN8\nLMmvknwnQ5P9Kyb5s9asfYunfvOldvOmfvOmfluHqvqDJF9O8pYkj1qYlcwWyr03X2o3b+o3b+o3\nXws9j1+d5FZJvpHkfklu191fXd/RsTHuvfVh5vEWqLu/nOROSQ5N8sskn0yytxthHtRvvtRu3tRv\n3tRv6zDW6zVJXiY4ngf33nyp3byp37yp33wt9D4+McktkuwTwfFsuPfWh5nHW7Cxd8u5iWn3c6R+\n86V286Z+86Z+86W/3Ly59+ZL7eZN/eZN/earqm6SYQbrXt39zfUeD5vGvbd5CY8BAAAA2KZU1SW6\n+5frPQ7Y0gmPAQAAAACY0PMYAAAAAICJpcLjqrpKVb2qqj5fVWdUVVfVHkseu11VPbWqjq+qM6vq\na1W17+8yaAAAAACArVFV3a6qPl5VP6mq06rqK1X1N6v2uUZVvb+qTqmq06vqsKq6xRrn+vuq+nBV\n/XDMdJ+9KWNZdubxtZPcL8nJST6zKRdI8pwkz07y6iR3S3JEkvdV1d038TwAAAAAAFutqrpxkk8m\n2THJI5Lsm+RLSd5YVX877nPZJJ9N8vtJHpXkL8bDD6uqG6w65SOSXCHJv1+g8SzT87iqtuvuc8fP\n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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABY8AAAKsCAYAAACkk0JgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3XmYbVddJ/zvLzOjBFCQZgiRwQQD\nghEQUAHREGygGUShmdQokeZ9QMEBGYQAL8js0FFBbNMMMtsEFF6mBJAmICLQXMYQAkHhJZJAQsBA\nyK//2LtCWavuvefeDHXrnM/nec6zq/Zee+91n1/WSdW31lm7ujsAAAAAALDeflvdAQAAAAAA9j3C\nYwAAAAAABsJjAAAAAAAGwmMAAAAAAAbCYwAAAAAABsJjAAAAAAAGwmMAAAAAAAbC4xVQs63uB5cv\ndV5+arwa1BmWh/G8/NR4Najz8quq/eatOsM25z37sic8XmLrBssh3d1b2hkuN+q8/NR4NagzLA/j\nefmp8WpQ59VQVVdN8g9V9RPd3UIn2J68Z19+hMdLqqqukuR5VfXWJO+tqvtsdZ+47Knz8lPj1aDO\nsDyM5+WnxqtBnVdDVV09yXuT3D7Jo6rqKkIn2H68Z1++hMdLqKquluQDSW6X5JtJzkvyuqq6+5Z2\njMuUOi8/NV4N6rwaqurgqrpLVT2iqo6d686SMZ6XnxqvBnVeDXNw/NEk/5rkb5P8TJLvn4/JSmCb\n8J59+St/VFsuVXVgktcluXKSX09yZpLvS/J3ST7b3Q+Z25W/qG5f6rz81Hg1qPNqmH+gfWOS6yS5\ncZKDkrwiyRO7+8wt7BqXIeN5+anxalDn1TAHxx9O8vkk90ly/STvS/Ly7j5+K/sGLM579hXDX9OW\nz42SHJHkpd19Rndf3N3nJjkryRlVdauqOiLTwGL7Uuflp8arQZ2XXFVdOcm7k1yU5PgkRyd5RJIH\nJnnoFnaNy57xvPzUeDWo85Kb1zj+7Px6UHd/LVOI/K4kx1bVUVvZP2CPeM++AgiPl8/1khye6ZfU\nJJf8VfXoJL+S5D1JPpTkhVV15Jb0kMuCOi8/NV4N6rzE5o+8/kGSbyR5VHe/q7s/luQvk5yU5Jer\n6lAfjV0axvPyU+PVoM7L79gkb0ny8O7+UpJ09/lJnp1pBvLdtrBvwJ7xnn0FOGCrO8Bl7rQkH0/y\n2Pkvqv+a5DlJzkny5Pn7n830P8Zzk/yO6fvbkjovPzVeDeq83H4g09pr70vy6bWd85PcP5Rp9vF+\n3X3xFvWPy5bxvPzUeDWo8/L7uyRv6u5vJdPH2ef9H0zy5iSPq6o3dfdntqqDwMK8Z18BrHm8RKpq\nv+6+uKpunWlW0/Uy/bJ6wyT36O5PrGv7p0keluSHuvsrW9Jh9oo6Lz81Xg3qvBqq6jFJ3tDdn1v/\ng2pV3S3TL6g37+4zNjnPD7XbiPG8/NR4NagzVXVckhdlmpX8P6tq/+7+7lb3Cxh5z77i+JjkNlaz\nte/XZi519z93948luVmmB/R8NdMaTut9O8lXkpx/BXWXvaTOy0+NV4M6r6bufuHG4Hj21ST7Jzl0\nbUdVHTKvyRbB8b7NeF5+arwa1Hk1bKzzztokSXf/ZZL/neS3qupAwfH2sUid2d68Z28d4fE2NU/H\nf0mSO2x8g6x57cR53aZrJzmou7+57vi1My0q/qErrsfsDXVefmq8GtR5Nczh7y9W1dOq6qFVdbO1\nY5uEwWs/g100n3u1JH+S5Bnzfy/so4zn5afGq0GdV8Ou6rzevKTUWjD1uiRHJnn4FdNLLq1F68z2\n5T17a1m2YhuqqisleVuSO2T6j//47v7gTtr+VJK3Z/of4AmZBswDktwryU+un8bPvkWdl58arwZ1\nXg1z+PuWTOscXyvJNZK8Icmvd/fZm7S/daa1kO+YZEeSP8r0UI/bdbcfbPdRxvPyU+PVoM6rYU/q\nvOG8Q5O8P8nnuvuYy7eXXFp7W2e2D+/ZW8/M422mqvZP8vuZ1nJ5fpKrJnlpVR29k1M+kuQpSX4u\n0y+nL0lyyyR3NWj2Xeq8/NR4Najzaqiqq2T6iOu3kjw00zprv5Tk3klusZPTLkhyUKanQz8/yUOS\n3FZwvO8ynpefGq8GdV4Ne1HnS87r7nOTvCLJ7avqWmay7rv2ts5sH96z9w1mHm8zVXX1JG/KtE7i\nMUlukuSVSS5O8tDN/voyz4a6bqbB87Ekn+ruL19hnWaPqfPyU+PVoM7Lr6oOSPI/khyW5Je7+/R5\n/9UzzYx4aKY6fmNtXbb5+A9lejr0/5/kxplmQgiO92HG8/JT49Wgzqthb+q84fxbZPp/98Z1U9mH\nXNo6s+/znr1vEB5vQ1X1I0n+pbvPnX9pPTrTL64db5BLQ52XnxqvBnVeblV1gySPzfRk5z/PtGxi\n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\neezT1+27WlU9t6pOrarz5uN33sn516qqP6qqM6rqW1X1uar606r6/t3de9GZxzdJ8oAk5yZ5z4Ln\nrHlakqck+dMkxyY5Lclrquoee3gdAAAAAICVUVUPTHKrTQ5dK8mvJLkoydt2cX4lOTnJg5I8J1M+\n+5wkD0xy8nx8pw5YsJ/v7u7rzDc8LsnPLXJSVf1AkscleVZ3P3fefUpV3STJs5L8/YL3BwAAAABY\nGVV1jSQvSPKbSV6x4fDnu/uac7u7JbnvTi5z0yR3SPKI7n7RvO/Uqro4yZ8luVmST+2sDwvNPO7u\nixdpt4ljkhyU5GUb9r8syVFVdeO9vC4AAAAAwDJ7dpId3f03Gw90dy94jYPm7Xkb9n9t3u4yH150\n5vHeukWSC5OcvmH/jnl7ZJLPXc59AAAAAADYNqrqTkkems2XrNgTO5K8O8mTqur0JJ/MlMk+Ocmb\nu/sTuzp50TWP99Y1k3xtkyT8nHXHAQAAAABIUlUHJvmLJM/t7p0uKbGIOZe9R6alKf4xyflJ3p/k\njCT32935l/fM40qy2RTqXS7EvMGiU7AvU4985CO34rZb6sQTT9zqLlzh1Hk1qPPyU2NYHsbzali1\nOqvxaljFOgPLY9Xet7f4PXuRXPR3k1wpyTMuo3u+OMntkxyf5BNJjkjy1CSvrap77mrJ4ss7PD4n\nyaFVVRtmHx+67jgAAAAAwMqrqhsmeUKS45IcXFUHrzt88PwQvfO7+7sLXu/nkzwwyd26+x3z7ndX\n1RlJ3prknknesLPzL+/weEeSg5P8UP7jusdHztuPX873BwAAAC4HqzZTMdny2YrAajg8ySFJXrbJ\nscfNr1sn+fCC1ztq3v7jhv0fmLdHZBfh8eW95vFbknw7yX/dsP/BST7W3R6WBwAAAAAw+XCSu2zy\nSqZA+S75j5N0d+fL8/a2G/bfbt7+y65OXnjmcVXdf/7yx+btsVV1dpKzu/tdc5uLkpzU3b+aJN39\nlap6QZLHV9X5ST6U5BeT3DXJvRe9NwAAAADAsuvuryU5deP+qkqSz3f3qev2HZvkKvne7OKfrqpr\nJ7mgu98873t9prWT/2dVPS3JJ5P8cJI/SHJWkr/dVX/2ZNmK12z4fu2zGu9Kcuf56/3n13pPSPKN\nJI9Oct1MT/Z7QHe/cQ/uDQAAAADA9/xZkhut+/4p8/bzSQ5Lku4+r6puPx/7nSQ/mORLSd6Y5Cnd\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import missingno as msno\n", "display(msno.bar(train_dat))\n", "display(msno.bar(test_dat))\n", "train_dat.drop(['Cabin', 'Ticket'], axis=1, inplace=True)\n", "test_dat.drop(['Cabin', 'Ticket'], axis=1, inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the Cabin column, we only have approximately 20% of values present in both datasets. There are too many missing values to attempt to impute the values. As such, we will drop it from the analysis\n", "\n", "The Age column is missing approximately 20% of the values, but there are enough values present to impute the missing values. We will create an entire machine learning regression model for the missing age values later on\n", "\n", "The training dataset contains two missing values for the Embarked data. Since there are only three possible options, we will randomly select values to fill the missing values\n", "\n", "The test dataset contains one missing value for the Fare, which we will impute later based on the Pclass\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Checking correlation between survival and categorical factors" ] }, { "cell_type": "code", "execution_count": 654, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdSurvivedPclassAgeSibSpParchFare
PassengerId1.000000-0.005007-0.0351440.036847-0.057527-0.0016520.012658
Survived-0.0050071.000000-0.338481-0.077221-0.0353220.0816290.257307
Pclass-0.035144-0.3384811.000000-0.3692260.0830810.018443-0.549500
Age0.036847-0.077221-0.3692261.000000-0.308247-0.1891190.096067
SibSp-0.057527-0.0353220.083081-0.3082471.0000000.4148380.159651
Parch-0.0016520.0816290.018443-0.1891190.4148381.0000000.216225
Fare0.0126580.257307-0.5495000.0960670.1596510.2162251.000000
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass Age SibSp Parch \\\n", "PassengerId 1.000000 -0.005007 -0.035144 0.036847 -0.057527 -0.001652 \n", "Survived -0.005007 1.000000 -0.338481 -0.077221 -0.035322 0.081629 \n", "Pclass -0.035144 -0.338481 1.000000 -0.369226 0.083081 0.018443 \n", "Age 0.036847 -0.077221 -0.369226 1.000000 -0.308247 -0.189119 \n", "SibSp -0.057527 -0.035322 0.083081 -0.308247 1.000000 0.414838 \n", "Parch -0.001652 0.081629 0.018443 -0.189119 0.414838 1.000000 \n", "Fare 0.012658 0.257307 -0.549500 0.096067 0.159651 0.216225 \n", "\n", " Fare \n", "PassengerId 0.012658 \n", "Survived 0.257307 \n", "Pclass -0.549500 \n", "Age 0.096067 \n", "SibSp 0.159651 \n", "Parch 0.216225 \n", "Fare 1.000000 " ] }, "execution_count": 654, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_dat.corr()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Pclass" ] }, { "cell_type": "code", "execution_count": 655, "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", "
Survived
Pclass
10.629630
20.472826
30.242363
\n", "
" ], "text/plain": [ " Survived\n", "Pclass \n", "1 0.629630\n", "2 0.472826\n", "3 0.242363" ] }, "execution_count": 655, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_dat[['Pclass', 'Survived']].groupby('Pclass').mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Sex" ] }, { "cell_type": "code", "execution_count": 656, "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", "
Survived
Sex
female0.742038
male0.188908
\n", "
" ], "text/plain": [ " Survived\n", "Sex \n", "female 0.742038\n", "male 0.188908" ] }, "execution_count": 656, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_dat[['Sex', 'Survived']].groupby('Sex').mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Age" ] }, { "cell_type": "code", "execution_count": 657, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Ks_2sampResult(statistic=0.0887768379960963, pvalue=0.12555581240058969)" ] }, "execution_count": 657, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "age_survived = train_dat.loc[train_dat['Survived'] == 1]['Age'].dropna()\n", "age_dead = train_dat.loc[train_dat['Survived'] == 0]['Age'].dropna()\n", "\n", "fig = sns.kdeplot(age_survived, label='Survived', clip=[0,80])\n", "fig.set(xlim=(0, 80))\n", "sns.kdeplot(age_dead, label='Did Not Survive')\n", "\n", "ks_2samp(age_survived, age_dead)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Sibsp" ] }, { "cell_type": "code", "execution_count": 658, "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", "
Survived
Parch
00.343658
10.550847
20.500000
30.600000
40.000000
50.200000
60.000000
\n", "
" ], "text/plain": [ " Survived\n", "Parch \n", "0 0.343658\n", "1 0.550847\n", "2 0.500000\n", "3 0.600000\n", "4 0.000000\n", "5 0.200000\n", "6 0.000000" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nzOpE+QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.barplot(train_dat['SibSp'], train_dat['Survived'])\n", "display(train_dat[['Parch', 'Survived']].groupby('Parch').mean())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Parch" ] }, { "cell_type": "code", "execution_count": 659, "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", "
Survived
Parch
00.343658
10.550847
20.500000
30.600000
40.000000
50.200000
60.000000
\n", "
" ], "text/plain": [ " Survived\n", "Parch \n", "0 0.343658\n", "1 0.550847\n", "2 0.500000\n", "3 0.600000\n", "4 0.000000\n", "5 0.200000\n", "6 0.000000" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.barplot(train_dat['Parch'], train_dat['Survived'])\n", "display(train_dat[['Parch', 'Survived']].groupby('Parch').mean())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Fare" ] }, { "cell_type": "code", "execution_count": 660, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Ks_2sampResult(statistic=0.30236794171220405, pvalue=1.8678359776799793e-17)" ] }, "execution_count": 660, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fare_survived = train_dat.loc[train_dat['Survived'] == 1]['Fare'].dropna()\n", "fare_dead = train_dat.loc[train_dat['Survived'] == 0]['Fare'].dropna()\n", "\n", "fig = sns.kdeplot(fare_survived, label='Survived', clip=[0,80])\n", "fig.set(xlim=(0, 80))\n", "sns.kdeplot(fare_dead, label='Did Not Survive')\n", "ks_2samp(fare_survived, fare_dead)" ] }, { "cell_type": "code", "execution_count": 661, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 661, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nEdcAANDJ/wf7t1vIbHYcnwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(12,8))\n", "sns.boxplot(train_dat['Pclass'], train_dat['Fare'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Feature Engineering" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Extract Passenger Title\n", "We will attempt to extract titles from the name" ] }, { "cell_type": "code", "execution_count": 662, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Sexfemalemale
Title
Capt.01
Col.02
Countess.10
Don.01
Dr.16
Jonkheer.01
Lady.10
Major.02
Master.040
Miss.1820
Mlle.20
Mme.10
Mr.0517
Mrs.1250
Ms.10
Rev.06
Sir.01
\n", "
" ], "text/plain": [ "Sex female male\n", "Title \n", "Capt. 0 1\n", "Col. 0 2\n", "Countess. 1 0\n", "Don. 0 1\n", "Dr. 1 6\n", "Jonkheer. 0 1\n", "Lady. 1 0\n", "Major. 0 2\n", "Master. 0 40\n", "Miss. 182 0\n", "Mlle. 2 0\n", "Mme. 1 0\n", "Mr. 0 517\n", "Mrs. 125 0\n", "Ms. 1 0\n", "Rev. 0 6\n", "Sir. 0 1" ] }, "metadata": {}, "output_type": "display_data" }, { "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", "
Sexfemalemale
Title
Col.02
Dona.10
Dr.01
Master.021
Miss.780
Mr.0240
Mrs.720
Ms.10
Rev.02
\n", "
" ], "text/plain": [ "Sex female male\n", "Title \n", "Col. 0 2\n", "Dona. 1 0\n", "Dr. 0 1\n", "Master. 0 21\n", "Miss. 78 0\n", "Mr. 0 240\n", "Mrs. 72 0\n", "Ms. 1 0\n", "Rev. 0 2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import re as re\n", "def title_extract_function(string):\n", " title = re.search('([A-Za-z]+)\\.', string)[0]\n", " return title\n", "\n", "for df in all_dat:\n", " df['Title'] = df['Name'].apply(title_extract_function)\n", "\n", "display(pd.crosstab(all_dat[0]['Title'], all_dat[0]['Sex']))\n", "display(pd.crosstab(all_dat[1]['Title'], all_dat[1]['Sex']))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some titles are held by a select few, and will be grouped into an \"Other\" category" ] }, { "cell_type": "code", "execution_count": 663, "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", "
Survived
Title
Master.0.575000
Miss.0.702703
Mr.0.156673
Mrs.0.793651
Other0.347826
\n", "
" ], "text/plain": [ " Survived\n", "Title \n", "Master. 0.575000\n", "Miss. 0.702703\n", "Mr. 0.156673\n", "Mrs. 0.793651\n", "Other 0.347826" ] }, "execution_count": 663, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for df in all_dat:\n", " df['Title'] = df['Title'].replace(['Mlle.', \"Ms.\"], 'Miss.')\n", " df['Title'] = df['Title'].replace(['Mme.'], 'Mrs.')\n", " df['Title'] = df['Title'].replace(['Capt.','Col.','Countess.','Don.', 'Dona.','Dr.','Jonkheer.','Lady.', 'Major.', 'Rev.',\n", " 'Sir.'],'Other')\n", "\n", "train_dat[['Title', 'Survived']].groupby('Title').mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Family Size" ] }, { "cell_type": "code", "execution_count": 664, "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", "
Survived
Family Size
10.303538
20.552795
30.578431
40.724138
50.200000
60.136364
70.333333
80.000000
110.000000
\n", "
" ], "text/plain": [ " Survived\n", "Family Size \n", "1 0.303538\n", "2 0.552795\n", "3 0.578431\n", "4 0.724138\n", "5 0.200000\n", "6 0.136364\n", "7 0.333333\n", "8 0.000000\n", "11 0.000000" ] }, "execution_count": 664, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for df in all_dat:\n", " df['Family Size'] = df['Parch'] + df['SibSp'] +1\n", "\n", "train_dat[['Family Size', 'Survived']].groupby('Family Size').mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Travelling Alone?" ] }, { "cell_type": "code", "execution_count": 665, "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", "
Survived
Alone
00.505650
10.303538
\n", "
" ], "text/plain": [ " Survived\n", "Alone \n", "0 0.505650\n", "1 0.303538" ] }, "execution_count": 665, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for df in all_dat:\n", " df['Alone'] = 0\n", " df.loc[df['Family Size'] == 1, 'Alone'] = 1\n", "train_dat[['Alone', 'Survived']].groupby('Alone').mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Imputing Missing Data Values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Embarked" ] }, { "cell_type": "code", "execution_count": 666, "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", "
Survived
Embarked
C0.556213
Q0.389610
S0.337984
\n", "
" ], "text/plain": [ " Survived\n", "Embarked \n", "C 0.556213\n", "Q 0.389610\n", "S 0.337984" ] }, "execution_count": 666, "metadata": {}, "output_type": "execute_result" } ], "source": [ "random.seed(1234)\n", "while train_dat['Embarked'].isna().sum() > 0:\n", " train_dat['Embarked'].fillna(random.randint(1,3), limit=1, inplace=True)\n", "train_dat['Embarked'].replace({1:\"S\", 2:\"C\", 3:\"Q\"}, inplace=True)\n", "\n", "train_dat[['Embarked', 'Survived']].groupby('Embarked').mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Fare Class" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to fill in the missing Fare value, we use the most correlated factor(s)" ] }, { "cell_type": "code", "execution_count": 667, "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", "
Fare
Pclass-0.549500
Alone-0.271832
Survived0.257307
Family Size0.217138
Parch0.216225
SibSp0.159651
Age0.096067
PassengerId0.012658
\n", "
" ], "text/plain": [ " Fare\n", "Pclass -0.549500\n", "Alone -0.271832\n", "Survived 0.257307\n", "Family Size 0.217138\n", "Parch 0.216225\n", "SibSp 0.159651\n", "Age 0.096067\n", "PassengerId 0.012658" ] }, "execution_count": 667, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Fare_corr = pd.DataFrame(train_dat.corr()['Fare'].drop(['Fare'],axis=0))\n", "Fare_corr.reindex(Fare_corr.Fare.abs().sort_values(inplace=False, ascending=False).index)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The most significant factor that is correlated with Fare is the **Pclass**. We will impute the missing fare value based average value of the passenger's class" ] }, { "cell_type": "code", "execution_count": 668, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAADlhJREFUeJzt3X+s3XV9x/Hni5aGXxJ+XaXjh4Wt\ncVOm4BrENTELmMUfi5BMFgxiXVBiMhXnXGEmwx+Zy6xEN5lb0oiKC3M6YIMYoyEIKkyrt1B+FgNh\nobT0wu2wkzoWKH3vj/NFO2h7T4Hv+XL5PB8Juef7vd97z/vmBJ58vuec70lVIUlq1z5DDyBJGpYh\nkKTGGQJJapwhkKTGGQJJapwhkKTGGQJJapwhkKTGGQJJatzCoQcYxxFHHFFLliwZegxJmlfWrl27\npaqm5jpuXoRgyZIlTE9PDz2GJM0rSe4f5zhPDUlS4wyBJDXOEEhS4wyBJDXOEEhS4wyBJDXOEEhS\n4wyBJDVuXryh7MVs5cqVzMzMcOSRR7Jq1aqhx5HUIEMwsJmZGTZt2jT0GJIa5qkhSWqcIZCkxhkC\nSWqcIZCkxhkCSWqcIZCkxhkCSWqcIZCkxhkCSWqcIZCkxhkCSWqcIZCkxhkCSWqcIZCkxhkCSWqc\nIZCkxhkCSWqcIZCkxhkCSWqcIZCkxhkCSWqcIZCkxi0ceoDn2+/8+VeHHmGvvGTLoywANmx5dN7M\nvvYz7xp6BEnPI1cEktQ4QyBJjTMEktQ4QyBJjes1BEn+NMmdSe5I8rUk+yU5LsmaJPck+XqSRX3O\nIEnas95CkOQo4IPAsqo6AVgAnAV8GvhcVS0Ffgac29cMkqS59X1qaCGwf5KFwAHAZuBU4Iru+5cB\nZ/Q8gyRpD3oLQVVtAi4GNjAKwH8Da4GtVbW9O2wjcFRfM0iS5tbnqaFDgdOB44BfAw4E3ryLQ2s3\nP39ekukk07Ozs32NKUnN6/PU0BuB/6yq2ap6ArgK+F3gkO5UEcDRwIO7+uGqWl1Vy6pq2dTUVI9j\nSlLb+gzBBuCUJAckCXAacBdwPfD27pgVwNU9ziBJmkOfzxGsYfSk8M3A7d19rQYuAD6c5F7gcODS\nvmaQJM2t14vOVdXHgI89bfd9wMl93q8kaXy+s1iSGmcIJKlxhkCSGmcIJKlxhkCSGmcIJKlxhkCS\nGmcIJKlxhkCSGtfrO4s1tx2LDvx/XyVp0gzBwH6x9PeHHkFS4zw1JEmNMwSS1DhDIEmNMwSS1DhD\nIEmNMwSS1DhDIEmNMwSS1DhDIEmNMwSS1DhDIEmNMwSS1DhDIEmNMwSS1DhDIEmNMwSS1DhDIEmN\nMwSS1DhDIEmNMwSS1DhDIEmNMwSS1DhDIEmNMwSS1LheQ5DkkCRXJLk7yfokr09yWJJrk9zTfT20\nzxkkSXvW94rg74BvV9VvAq8B1gMXAtdV1VLgum5bkjSQ3kKQ5GDgDcClAFX1eFVtBU4HLusOuww4\no68ZJElz63NFcDwwC3w5yS1JvpjkQOBlVbUZoPv60h5nkCTNoc8QLAReC/xjVZ0E/IK9OA2U5Lwk\n00mmZ2dn+5pRkprXZwg2Ahurak23fQWjMDyUZDFA9/XhXf1wVa2uqmVVtWxqaqrHMSWpbb2FoKpm\ngAeSvKLbdRpwF3ANsKLbtwK4uq8ZJElzW9jz7/8AcHmSRcB9wB8zis83kpwLbADO7HkGSdIe9BqC\nqloHLNvFt07r834lSePzncWS1DhDIEmNMwSS1DhDIEmNMwSS1DhDIEmNMwSS1DhDIEmNGysEGXln\nkou67WOTnNzvaJKkSRh3RfAPwOuBd3TbjwJf6GUiSdJEjXuJiddV1WuT3AJQVT/rrh8kSZrnxl0R\nPJFkAVAASaaAHb1NJUmamHFD8Hng34CXJvkUcCPw171NJUmamLFODVXV5UnWMrpqaIAzqmp9r5NJ\nkiZizhAk2Qe4rapOAO7ufyRJ0iTNeWqoqnYAtyY5dgLzSJImbNxXDS0G7kzyY0YfQg9AVb2tl6kk\nSRMzbgg+0esUkqTBjPtk8ff6HkSSNIxxLzFxSpKfJNmW5PEkTyb5ed/DSZL6N+77CP6e0eUl7gH2\nB97T7ZMkzXPjPkdAVd2bZEFVPQl8Ocl/9DiXJGlCxg3B/3TXFlqXZBWwGTiwv7EkSZMy7qmhc7pj\n38/o5aPHAH/Y11CSpMnZ44ogybFVtaGq7u92/S++lFSSXlTmWhH8+1M3klzZ8yySpAHMFYLsdPv4\nPgeRJA1jrhDUbm5Lkl4k5nrV0Gu6N44F2H+nN5EFqKo6uNfpJEm922MIqmrBpAaRJA1j3JePSpJe\npAyBJDXOEEhS4wyBJDXOEEhS43oPQZIFSW5J8s1u+7gka5Lck+Tr3cXsJEkDmcSK4Hxg/U7bnwY+\nV1VLgZ8B505gBknSbvQagiRHA28FvthtBzgVuKI75DLgjD5nkCTtWd8rgr8FVgI7uu3Dga1Vtb3b\n3ggctasfTHJekukk07Ozsz2PKUnt6i0ESf4AeLiq1u68exeH7vIaRlW1uqqWVdWyqampXmaUJO3F\nR1U+C8uBtyV5C7AfcDCjFcIhSRZ2q4KjgQd7nEGSNIfeVgRV9RdVdXRVLQHOAr5bVWcD1wNv7w5b\nAVzd1wySpLkN8T6CC4APJ7mX0XMGlw4wgySp0+epoV+qqhuAG7rb9wEnT+J+JUlz853FktQ4QyBJ\njTMEktQ4QyBJjTMEktQ4QyBJjTMEktQ4QyBJjTMEktQ4QyBJjTMEktQ4QyBJjTMEktQ4QyBJjTME\nktQ4QyBJjTMEktQ4QyBJjTMEktQ4QyBJjTMEktQ4QyBJjTMEktQ4QyBJjTMEktQ4QyBJjTMEktQ4\nQyBJjTMEktQ4QyBJjTMEktS4hUMPIM1XK1euZGZmhiOPPJJVq1YNPY70rBkC6VmamZlh06ZNQ48h\nPWeeGpKkxvUWgiTHJLk+yfokdyY5v9t/WJJrk9zTfT20rxkkSXPrc0WwHfizqvot4BTgT5K8ErgQ\nuK6qlgLXdduSpIH0FoKq2lxVN3e3HwXWA0cBpwOXdYddBpzR1wySpLlN5MniJEuAk4A1wMuqajOM\nYpHkpZOYQfPDhk/+9tAjjG37I4cBC9n+yP3zau5jL7p96BH0AtP7k8VJDgKuBD5UVT/fi587L8l0\nkunZ2dn+BpSkxvUagiT7MorA5VV1Vbf7oSSLu+8vBh7e1c9W1eqqWlZVy6ampvocU5Ka1uerhgJc\nCqyvqs/u9K1rgBXd7RXA1X3NIEmaW5/PESwHzgFuT7Ku2/dR4G+AbyQ5F9gAnNnjDJKkOfQWgqq6\nEchuvn1aX/crTcoR++0AtndfpfnLS0xIz9JHXr116BGk54WXmJCkxhkCSWqcIZCkxhkCSWqcIZCk\nxvmqIUlN8hPmfsUQSGqSnzD3K54akqTGuSKQ9LxYfsnyoUfYK4u2LmIf9uGBrQ/Mm9lv+sBNvfxe\nVwSS1DhDIEmN89SQpCbVAcUOdlAH1NCjDM4QSGrSE8ufGHqEFwxPDUlS4wyBJDXOEEhS4wyBJDXO\nEEhS4wyBJDXOEEhS4wyBJDXOEEhS4wyBJDXOEEhS4wyBJDXOEEhS4wyBJDXOEEhS4wyBJDXOEEhS\n4wyBJDXOEEhS4wyBJDXOEEhS4wYJQZI3JflpknuTXDjEDJKkkYmHIMkC4AvAm4FXAu9I8spJzyFJ\nGhliRXAycG9V3VdVjwP/Apw+wBySJIYJwVHAAzttb+z2SZIGsHCA+8wu9tUzDkrOA87rNrcl+Wmv\nUw3rCGDL0EOMKxevGHqEF5J59dgB8LFd/SvYrHn1+OWDe/3YvXycg4YIwUbgmJ22jwYefPpBVbUa\nWD2poYaUZLqqlg09h/aej9385uM3MsSpoZ8AS5Mcl2QRcBZwzQBzSJIYYEVQVduTvB/4DrAA+FJV\n3TnpOSRJI0OcGqKqvgV8a4j7foFq4hTYi5SP3fzm4wek6hnP00qSGuIlJiSpcYZgQEm+lOThJHcM\nPYv2TpJjklyfZH2SO5OcP/RMGk+S/ZL8OMmt3WP3iaFnGpqnhgaU5A3ANuCrVXXC0PNofEkWA4ur\n6uYkLwHWAmdU1V0Dj6Y5JAlwYFVtS7IvcCNwflX9aODRBuOKYEBV9X3gkaHn0N6rqs1VdXN3+1Fg\nPb5Dfl6okW3d5r7dP03/H7EhkJ6jJEuAk4A1w06icSVZkGQd8DBwbVU1/dgZAuk5SHIQcCXwoar6\n+dDzaDxV9WRVncjoygYnJ2n61KwhkJ6l7vzylcDlVXXV0PNo71XVVuAG4E0DjzIoQyA9C90TjpcC\n66vqs0PPo/ElmUpySHd7f+CNwN3DTjUsQzCgJF8Dfgi8IsnGJOcOPZPGthw4Bzg1ybrun7cMPZTG\nshi4PsltjK59dm1VfXPgmQbly0clqXGuCCSpcYZAkhpnCCSpcYZAkhpnCCSpcYZAApI82b0E9I4k\n/5rkgD0c+/EkH5nkfFKfDIE08lhVndhdBfZx4H1DDyRNiiGQnukHwG8AJHlXktu6a9f/09MPTPLe\nJD/pvn/lUyuJJGd2q4tbk3y/2/eq7jr467rfuXSif5W0G76hTAKSbKuqg5IsZHT9oG8D3weuApZX\n1ZYkh1XVI0k+DmyrqouTHF5V/9X9jr8CHqqqS5LcDrypqjYlOaSqtia5BPhRVV2eZBGwoKoeG+QP\nlnbiikAa2b+7LPE0sIHRdYROBa6oqi0AVbWrz444IckPuv/wnw28qtt/E/CVJO8FFnT7fgh8NMkF\nwMuNgF4oFg49gPQC8Vh3WeJf6i4sN9eS+SuMPpns1iTvBn4PoKrel+R1wFuBdUlOrKp/TrKm2/ed\nJO+pqu8+z3+HtNdcEUi7dx3wR0kOB0hy2C6OeQmwubsk9dlP7Uzy61W1pqouArYAxyQ5Hrivqj4P\nXAO8uve/QBqDKwJpN6rqziSfAr6X5EngFuDdTzvsLxl9Mtn9wO2MwgDwme7J4DAKyq3AhcA7kzwB\nzACf7P2PkMbgk8WS1DhPDUlS4wyBJDXOEEhS4wyBJDXOEEhS4wyBJDXOEEhS4wyBJDXu/wD0Z0oR\nL5q+dwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.barplot(x=train_dat['Pclass'], y=train_dat['Fare'])\n", "\n", "average_fare_by_class = test_dat.groupby(by=['Pclass'], as_index=False)['Fare'].mean()\n", "\n", "if (test_dat.loc[test_dat['Fare'].isnull(),'Pclass'] == 3).values[0] == True:\n", " test_dat.loc[test_dat['Fare'].isnull(),'Fare'] = average_fare_by_class[average_fare_by_class['Pclass'] == 1]['Fare'][0]\n", "elif (test_dat.loc[test_dat['Fare'].isnull(),'Pclass'] == 2).values[0] == True:\n", " test_dat.loc[test_dat['Fare'].isnull(),'Fare'] = average_fare_by_class[average_fare_by_class['Pclass'] == 2]['Fare'][0]\n", "else:\n", " test_dat.loc[test_dat['Fare'].isnull(),'Fare'] = average_fare_by_class[average_fare_by_class['Pclass'] == 3]['Fare'][0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have filled in the missing fare value, we can cut the range of Fares into distinct categorical groups. An easy way to visualize the distribution is through a violin plot." ] }, { "cell_type": "code", "execution_count": 669, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 669, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.violinplot(train_dat['Fare'])\n", "max_fare = train_dat['Fare'].max()\n", "plt.plot([60, 60], [-1, 1], linewidth=2)\n", "plt.plot([110, 110], [-1, 1], linewidth=2)\n", "plt.plot([180, 180], [-1, 1], linewidth=2)\n", "plt.plot([max_fare, max_fare], [-1, 1], linewidth=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the plot to divide the Fares into four groups:\n", "1. Fare Type 1 = \\$0 - \\$60 \n", "2. Fare Type 2 = \\$61 - \\$110 \n", "3. Fare Type 3 = \\$111 - \\$180 \n", "4. Fare Type 4 = \\$181+\n", "\n", "Next, we need to test if the correlation between **Fare Type** and **Survival**" ] }, { "cell_type": "code", "execution_count": 670, "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", "
Survived
Fare Type
10.343501
20.616438
30.793103
40.700000
\n", "
" ], "text/plain": [ " Survived\n", "Fare Type \n", "1 0.343501\n", "2 0.616438\n", "3 0.793103\n", "4 0.700000" ] }, "execution_count": 670, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for df in all_dat:\n", " df['Fare Type'] = pd.cut(df['Fare'], [0, 60, 110,180, 1000], labels=['1', '2', '3', \"4\"])\n", "\n", "train_dat[['Fare Type', 'Survived']].groupby('Fare Type').mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Predicting the missing age values " ] }, { "cell_type": "code", "execution_count": 671, "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", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchFareEmbarkedTitleFamily SizeAloneFare Type
0103Braund, Mr. Owen Harrismale22.0107.2500SMr.201
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.01071.2833CMrs.202
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass \\\n", "0 1 0 3 \n", "1 2 1 1 \n", "\n", " Name Sex Age SibSp \\\n", "0 Braund, Mr. Owen Harris male 22.0 1 \n", "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", "\n", " Parch Fare Embarked Title Family Size Alone Fare Type \n", "0 0 7.2500 S Mr. 2 0 1 \n", "1 0 71.2833 C Mrs. 2 0 2 " ] }, "metadata": {}, "output_type": "display_data" }, { "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", "
PassengerIdPclassNameSexAgeSibSpParchFareEmbarkedTitleFamily SizeAloneFare Type
08923Kelly, Mr. Jamesmale34.5007.8292QMr.111
18933Wilkes, Mrs. James (Ellen Needs)female47.0107.0000SMrs.201
\n", "
" ], "text/plain": [ " PassengerId Pclass Name Sex Age SibSp \\\n", "0 892 3 Kelly, Mr. James male 34.5 0 \n", "1 893 3 Wilkes, Mrs. James (Ellen Needs) female 47.0 1 \n", "\n", " Parch Fare Embarked Title Family Size Alone Fare Type \n", "0 0 7.8292 Q Mr. 1 1 1 \n", "1 0 7.0000 S Mrs. 2 0 1 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(all_dat[0].head(2))\n", "display(all_dat[1].head(2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Convert Categorical Data into Dummy Variables" ] }, { "cell_type": "code", "execution_count": 672, "metadata": { "collapsed": true }, "outputs": [], "source": [ "categorical_df = []\n", "for df in all_dat:\n", " sex = pd.get_dummies(df['Sex'],drop_first=True)\n", " embark = pd.get_dummies(df['Embarked'],drop_first=True)\n", " title = pd.get_dummies(df['Title'], drop_first=True)\n", " fare = pd.get_dummies(df['Fare Type'], drop_first=True)\n", " dummies = pd.concat([sex, embark, title, fare], axis=1)\n", " df2 = df.drop(['Sex','Embarked','Name','Fare','Fare Type','Title'], axis=1, inplace=True)\n", " df3 = pd.concat([df, sex, embark, title, fare], axis=1)\n", " categorical_df.append(df3)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Separate the missing data from the complete data" ] }, { "cell_type": "code", "execution_count": 695, "metadata": { "collapsed": true }, "outputs": [], "source": [ "missing_age = categorical_df[0][pd.isnull(categorical_df[0]).any(axis=1)].drop(['PassengerId'], axis=1)\n", "complete_age = categorical_df[0].dropna().drop(['PassengerId'], axis=1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Find the optimal machine learning regression algorithm\n", "Since we are predicting the numeric values of age, we calculated the accuracy of the model using the RMSE (root-mean-square error) and the MAE (mean absolute error).\n", "\n", "The ML regression algorithms tested are:\n", " 1. Linear Regression\n", " 2. Bayesian Ridge\n", " 3. Multilayer Perceptron (MLP)\n", " 4. Decision Tree\n", " 5. Bagging Regressor\n", "\n", "We repeated the testing of each algorithm 1,000 times with differen splits for the training and testing splits. We used the resulting averages of RMSE and MAE to determine the best algorithm to use to predict the missing age values. **The resulting algorithm with the lowest RMSE/MAE values will be used**" ] }, { "cell_type": "code", "execution_count": 698, "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", "
Linear RegBayesian RidgeMLPDecision TreeBagging Reg
RMSE1.190776e+24126.890969128.980617163.670386139.088605
MAE1.289010e+108.8891488.6817069.5969508.988091
\n", "
" ], "text/plain": [ " Linear Reg Bayesian Ridge MLP Decision Tree Bagging Reg\n", "RMSE 1.190776e+24 126.890969 128.980617 163.670386 139.088605\n", "MAE 1.289010e+10 8.889148 8.681706 9.596950 8.988091" ] }, "execution_count": 698, "metadata": {}, "output_type": "execute_result" } ], "source": [ "total_RMSE = pd.DataFrame(columns=[\"LM RMSE\", \"BRR RMSE\", \"NNR RMSE\", \"DTR RMSE\", \"BR RMSE\"])\n", "total_MAE = pd.DataFrame(columns=[\"LM MAE\", \"BRR MAE\", \"NNR MAE\", \"DTR MAE\", \"BR MAE\"])\n", "\n", "for i in range(0, 100):\n", " x = complete_age.drop('Age',axis=1)\n", " y = complete_age['Age']\n", " x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.30)\n", " scaler = StandardScaler() \n", " scaler.fit(x_train)\n", " x_train = scaler.transform(x_train) \n", " x_test = scaler.transform(x_test)\n", " \n", " lm = LinearRegression()\n", " lm.fit(x_train, y_train)\n", " lm_pred = lm.predict(x_test)\n", "\n", " brr = BayesianRidge()\n", " brr.fit(x_train, y_train)\n", " brr_pred = brr.predict(x_test)\n", "\n", " nnr = MLPRegressor(hidden_layer_sizes=(100,), activation='relu', solver='adam', alpha=0.001,batch_size='auto',\n", " learning_rate='constant', learning_rate_init=0.01, power_t=0.5, max_iter=1000, shuffle=True,\n", " random_state=None, tol=0.0001, verbose=False, warm_start=False, momentum=0.9,\n", " nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999,\n", " epsilon=1e-08)\n", " nnr.fit(x_train, y_train)\n", " nnr_pred = nnr.predict(x_test)\n", "\n", " dtr = DecisionTreeRegressor()\n", " dtr.fit(x_train,y_train)\n", " dtr_pred = dtr.predict(x_test)\n", "\n", " br = BaggingRegressor()\n", " br.fit(x_train, y_train)\n", " br_pred = br.predict(x_test)\n", "\n", " RMSEs = [mean_squared_error(y_test, lm_pred), mean_squared_error(y_test, brr_pred), mean_squared_error(y_test, nnr_pred),\n", " mean_squared_error(y_test, dtr_pred), mean_squared_error(y_test, br_pred)]\n", " total_RMSE.loc[i] = RMSEs\n", " MAEs = [mean_absolute_error(y_test, lm_pred), mean_absolute_error(y_test, brr_pred), mean_absolute_error(y_test, nnr_pred),\n", " mean_absolute_error(y_test, dtr_pred), mean_absolute_error(y_test, br_pred)]\n", " total_MAE.loc[i] = MAEs\n", "\n", "average_RMSE = total_RMSE.mean(axis=0).values\n", "average_MAE = total_MAE.mean(axis=0).values\n", "\n", "Age_ML_Summary = pd.DataFrame(average_RMSE, columns=[\"RMSE\"], index=['Linear Reg', \"Bayesian Ridge\", 'MLP', \n", " 'Decision Tree', 'Bagging Reg'])\n", "Age_ML_Summary['MAE'] = average_MAE\n", "Age_ML_Summary.transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Multilayer Perceptron algorithm produced the lowest RMSE and MAE values, and will be used to predict the missing age values. But first, we need to tune the hyperparameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using Multilayer Perceptron (MLP) to predict the missing age values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Predict missing age values using MLP" ] }, { "cell_type": "code", "execution_count": 700, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def predict_age(df):\n", " if (df['PassengerId'].max()== 891):\n", " df = df.drop('Survived', axis=1)\n", " missing_age = df[pd.isnull(df).any(axis=1)]\n", " complete_age = df.dropna()\n", " \n", " x_train = complete_age.drop(['Age', 'PassengerId'],axis=1)\n", " y_train = complete_age['Age']\n", " x_test = missing_age.drop(['Age', 'PassengerId'], axis=1)\n", " \n", " scaler = StandardScaler() \n", " scaler.fit(x_train)\n", " x_train = scaler.transform(x_train) \n", " x_test = scaler.transform(x_test)\n", " \n", " nnr = MLPRegressor(hidden_layer_sizes=(100,), activation='relu', solver='adam', alpha=0.001,batch_size='auto',\n", " learning_rate='constant', learning_rate_init=0.01, power_t=0.5, max_iter=1000, shuffle=True,\n", " random_state=1234, tol=0.0001, verbose=False, warm_start=False, momentum=0.9,\n", " nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999,\n", " epsilon=1e-08)\n", " nnr.fit(x_train, y_train)\n", " predicted_age = nnr.predict(x_test)\n", " \n", " missing_age = df[pd.isnull(df).any(axis=1)].drop('Age',axis=1)\n", " age_df = missing_age[['PassengerId']]\n", " age_df = age_df.assign(Age = predicted_age)\n", " age_df.sort_values(by=['PassengerId'])\n", " return age_df\n", "\n", "complete_data = []\n", "for df in categorical_df:\n", " pred_age = predict_age(df)\n", " complete_df = df.combine_first(pred_age)\n", " complete_data.append(complete_df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Predict Survival" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Finding the optimal machine learning classifier algorithm" ] }, { "cell_type": "code", "execution_count": 704, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = complete_age.drop('Survived',axis=1)\n", "y = complete_age['Survived']\n", "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.30)\n", "scaler = StandardScaler() \n", "scaler.fit(x_train)\n", "x_train = scaler.transform(x_train) \n", "x_test = scaler.transform(x_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Randomized Search of Hyperparameters" ] }, { "cell_type": "code", "execution_count": 711, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "244.51487812747249\n" ] }, { "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", "
Logistic RegressionSVCDecision TreeRandom ForestAdaboostMLPKneighbours
Accuracy0.8325580.8241860.799070.8176740.8037210.8260470.791628
\n", "
" ], "text/plain": [ " Logistic Regression SVC Decision Tree Random Forest \\\n", "Accuracy 0.832558 0.824186 0.79907 0.817674 \n", "\n", " Adaboost MLP Kneighbours \n", "Accuracy 0.803721 0.826047 0.791628 " ] }, "execution_count": 711, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#import timeit\n", "#start = timeit.default_timer()\n", "\n", "total_accuracy = pd.DataFrame(columns=[\"Logistic Regression\", \"SVC\", \"Decision Tree\", \n", " \"Random Forest\", \"Adaboost\", \"MLP\", \"Kneighbours\"])\n", "\n", "for i in range(0, 5):\n", " x = complete_age.drop('Survived',axis=1)\n", " y = complete_age['Survived']\n", " x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.30)\n", " scaler = StandardScaler() \n", " scaler.fit(x_train)\n", " x_train = scaler.transform(x_train) \n", " x_test = scaler.transform(x_test)\n", " \n", " params = {'C': np.arange(0.001, 100, 0.5)}\n", " logreg_grid = RandomizedSearchCV(LogisticRegression(), params)\n", " logreg_grid.fit(x_train, y_train)\n", " logreg_pred = logreg_grid.predict(x_test)\n", " \n", " params = {'C': np.arange(0.1, 5, 0.1), 'gamma': np.arange(0.00001, 1, 0.05), 'kernel': ['rbf', 'linear', 'sigmoid']}\n", " svc_grid = RandomizedSearchCV(SVC(), params)\n", " svc_grid.fit(x_train, y_train)\n", " svc_predictions = svc_grid.predict(x_test)\n", " \n", " params = {'criterion': ['gini', 'entropy'], 'max_depth': range(1,50)}\n", " decisiontree_grid = RandomizedSearchCV(DecisionTreeClassifier(), params)\n", " decisiontree_grid.fit(x_train, y_train)\n", " DT_predictions = decisiontree_grid.predict(x_test)\n", " \n", " params = {'criterion': ['gini', 'entropy'], 'n_estimators': range(5, 100), 'max_depth': range(1,50)}\n", " rf_grid = RandomizedSearchCV(RandomForestClassifier(), params)\n", " rf_grid.fit(x_train, y_train)\n", " rf_predictions = rf_grid.predict(x_test)\n", " \n", " params = {'learning_rate': np.arange(0.01, 1.1, 0.1), 'n_estimators': np.arange(50,200, 25)}\n", " adaboost_grid = RandomizedSearchCV(AdaBoostClassifier(),params)\n", " adaboost_grid.fit(x_train, y_train)\n", " adaboost_predictions = adaboost_grid.predict(x_test)\n", " \n", " params = {'activation': ['identity', 'logistic', 'tanh', 'relu'], 'solver': ['lbfgs', 'sgd', 'adam'],\n", " 'alpha': [0.000001, 0.00001, 0.0001, 0.001, 0.01, 0.1]}\n", " mlp_grid = RandomizedSearchCV(MLPClassifier(max_iter=1000),params)\n", " mlp_grid.fit(x_train, y_train)\n", " mlp_predictions = mlp_grid.predict(x_test)\n", "\n", " params = {'n_neighbors': np.arange(5,50, 2), 'weights': ['uniform', 'distance']}\n", " KN_grid = RandomizedSearchCV(KNeighborsClassifier(),params)\n", " KN_grid.fit(x_train, y_train)\n", " KN_predictions = KN_grid.predict(x_test)\n", " \n", " accuracies = [accuracy_score(y_test, logreg_pred),accuracy_score(y_test, svc_predictions), \n", " accuracy_score(y_test, DT_predictions), accuracy_score(y_test, rf_predictions),\n", " accuracy_score(y_test, adaboost_predictions), accuracy_score(y_test, mlp_predictions),\n", " accuracy_score(y_test, KN_predictions)]\n", " \n", " total_accuracy.loc[i] = accuracies\n", "\n", "average_accuracy = pd.DataFrame(total_accuracy.mean(axis=0), columns=['Accuracy'])\n", "average_accuracy.transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although the Logistic Regression algorithm resulted in the highest average accuracy over 100 runs, we will proceed with an MLP classifer anyways ¯\\\\\\_(ツ)_/¯" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using an MLP Classifier for final survival predictions" ] }, { "cell_type": "code", "execution_count": 720, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x_train = complete_data[0].drop(['Survived', 'PassengerId'], axis=1)\n", "y_train = complete_data[0]['Survived']\n", "x_test = complete_data[1].drop(['PassengerId'], axis=1)\n", "\n", "scaler = StandardScaler() \n", "scaler.fit(x_train)\n", "x_train = scaler.transform(x_train) \n", "x_test = scaler.transform(x_test)" ] }, { "cell_type": "code", "execution_count": 763, "metadata": { "collapsed": true }, "outputs": [], "source": [ "mlp = MLPClassifier(max_iter=2000, random_state=1234)\n", "mlp.fit(x_train, y_train)\n", "final_mlp = mlp.predict(x_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Formatting output for submission" ] }, { "cell_type": "code", "execution_count": 764, "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", "
PassengerIdSurvived
08920
18930
28940
38950
48961
\n", "
" ], "text/plain": [ " PassengerId Survived\n", "0 892 0\n", "1 893 0\n", "2 894 0\n", "3 895 0\n", "4 896 1" ] }, "metadata": {}, "output_type": "display_data" }, { "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", "
PassengerId
Survived
0267
1151
\n", "
" ], "text/plain": [ " PassengerId\n", "Survived \n", "0 267\n", "1 151" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "final_submission = complete_data[1].copy()\n", "final_submission['Survived'] = final_mlp\n", "submission_df = pd.DataFrame()\n", "submission_df[['PassengerId', 'Survived']] = final_submission[['PassengerId', 'Survived']]\n", "display(submission_df.head())\n", "display(submission_df.groupby('Survived').count())\n", "\n", "submission_df.to_csv(\"Titanic Submission.csv\", index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## **Final Score**: 0.78947 (Top 31%)" ] } ], "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 }