data-science-ipython-notebooks/kaggle/titanic.ipynb

2651 lines
254 KiB
Plaintext

{
"metadata": {
"name": "",
"signature": "sha256:618821de879d56d70ffe7120d396ab66534c412ecf8f7725e4dff1253ce26c78"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Kaggle Machine Learning Competition: Predicting Survivors on the Titanic\n",
"\n",
"* Description\n",
"* Evaluation\n",
"* Data Set\n",
"* Read the Data\n",
"* Explore the Data\n",
"* Feature: Passenger Classes\n",
"* Feature: Sex (Gender)\n",
"* Feature: Embarked\n",
"* Feature: Age\n",
"* Feature: Family Size\n",
"* Random Forest: Training\n",
"* Random Forest: Predicting\n",
"* Support Vector Machine: Training\n",
"* Support Vector Machine: Predicting"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Description"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Evaluation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The historical data has been split into two groups, a 'training set' and a 'test set'. For the training set, we provide the outcome ( 'ground truth' ) for each passenger. You will use this set to build your model to generate predictions for the test set.\n",
"\n",
"For each passenger in the test set, you must predict whether or not they survived the sinking ( 0 for deceased, 1 for survived ). Your score is the percentage of passengers you correctly predict.\n",
"\n",
" The Kaggle leaderboard has a public and private component. 50% of your predictions for the test set have been randomly assigned to the public leaderboard ( the same 50% for all users ). Your score on this public portion is what will appear on the leaderboard. At the end of the contest, we will reveal your score on the private 50% of the data, which will determine the final winner. This method prevents users from 'overfitting' to the leaderboard."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Set"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"| File Name | Available Formats |\n",
"|------------------|-------------------|\n",
"| train | .csv (59.76 kb) |\n",
"| gendermodel | .csv (3.18 kb) |\n",
"| genderclassmodel | .csv (3.18 kb) |\n",
"| test | .csv (27.96 kb) |\n",
"| gendermodel | .py (3.58 kb) |\n",
"| genderclassmodel | .py (5.63 kb) |\n",
"| myfirstforest | .py (3.99 kb) |"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"VARIABLE DESCRIPTIONS:\n",
"survival Survival\n",
" (0 = No; 1 = Yes)\n",
"pclass Passenger Class\n",
" (1 = 1st; 2 = 2nd; 3 = 3rd)\n",
"name Name\n",
"sex Sex\n",
"age Age\n",
"sibsp Number of Siblings/Spouses Aboard\n",
"parch Number of Parents/Children Aboard\n",
"ticket Ticket Number\n",
"fare Passenger Fare\n",
"cabin Cabin\n",
"embarked Port of Embarkation\n",
" (C = Cherbourg; Q = Queenstown; S = Southampton)\n",
"\n",
"SPECIAL NOTES:\n",
"Pclass is a proxy for socio-economic status (SES)\n",
" 1st ~ Upper; 2nd ~ Middle; 3rd ~ Lower\n",
"\n",
"Age is in Years; Fractional if Age less than One (1)\n",
" If the Age is Estimated, it is in the form xx.5\n",
"\n",
"With respect to the family relation variables (i.e. sibsp and parch)\n",
"some relations were ignored. The following are the definitions used\n",
"for sibsp and parch.\n",
"\n",
"Sibling: Brother, Sister, Stepbrother, or Stepsister of Passenger Aboard Titanic\n",
"Spouse: Husband or Wife of Passenger Aboard Titanic (Mistresses and Fiances Ignored)\n",
"Parent: Mother or Father of Passenger Aboard Titanic\n",
"Child: Son, Daughter, Stepson, or Stepdaughter of Passenger Aboard Titanic\n",
"\n",
"Other family relatives excluded from this study include cousins,\n",
"nephews/nieces, aunts/uncles, and in-laws. Some children travelled\n",
"only with a nanny, therefore parch=0 for them. As well, some\n",
"travelled with very close friends or neighbors in a village, however,\n",
"the definitions do not support such relations."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read the Data"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"import numpy as np\n",
"import pylab as plt\n",
"\n",
"# Set the global default size of our matplotlib figures\n",
"plt.rc('figure', figsize=(10, 5))\n",
"\n",
"df = pd.read_csv('../data/titanic/train.csv')"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Explore the Data"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.head(3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> Braund, Mr. Owen Harris</td>\n",
" <td> male</td>\n",
" <td> 22</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> A/5 21171</td>\n",
" <td> 7.2500</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
" <td> female</td>\n",
" <td> 38</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> PC 17599</td>\n",
" <td> 71.2833</td>\n",
" <td> C85</td>\n",
" <td> C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> Heikkinen, Miss. Laina</td>\n",
" <td> female</td>\n",
" <td> 26</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> STON/O2. 3101282</td>\n",
" <td> 7.9250</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"text": [
" 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 1 \n",
"1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 \n",
"2 Heikkinen, Miss. Laina female 26 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 "
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.tail(3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>888</th>\n",
" <td> 889</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> Johnston, Miss. Catherine Helen \"Carrie\"</td>\n",
" <td> female</td>\n",
" <td>NaN</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td> W./C. 6607</td>\n",
" <td> 23.45</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" </tr>\n",
" <tr>\n",
" <th>889</th>\n",
" <td> 890</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Behr, Mr. Karl Howell</td>\n",
" <td> male</td>\n",
" <td> 26</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 111369</td>\n",
" <td> 30.00</td>\n",
" <td> C148</td>\n",
" <td> C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>890</th>\n",
" <td> 891</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> Dooley, Mr. Patrick</td>\n",
" <td> male</td>\n",
" <td> 32</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 370376</td>\n",
" <td> 7.75</td>\n",
" <td> NaN</td>\n",
" <td> Q</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
" PassengerId Survived Pclass Name \\\n",
"888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n",
"889 890 1 1 Behr, Mr. Karl Howell \n",
"890 891 0 3 Dooley, Mr. Patrick \n",
"\n",
" Sex Age SibSp Parch Ticket Fare Cabin Embarked \n",
"888 female NaN 1 2 W./C. 6607 23.45 NaN S \n",
"889 male 26 0 0 111369 30.00 C148 C \n",
"890 male 32 0 0 370376 7.75 NaN Q "
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"View the data types of each column:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.dtypes"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"PassengerId int64\n",
"Survived int64\n",
"Pclass int64\n",
"Name object\n",
"Sex object\n",
"Age float64\n",
"SibSp int64\n",
"Parch int64\n",
"Ticket object\n",
"Fare float64\n",
"Cabin object\n",
"Embarked object\n",
"dtype: object"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get some basic information on the DataFrame:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.info()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 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)"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note Age, Cabin, and Embarked are missing values."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Generate various descriptive statistics on the DataFrame:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.describe()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Fare</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td> 891.000000</td>\n",
" <td> 891.000000</td>\n",
" <td> 891.000000</td>\n",
" <td> 714.000000</td>\n",
" <td> 891.000000</td>\n",
" <td> 891.000000</td>\n",
" <td> 891.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td> 446.000000</td>\n",
" <td> 0.383838</td>\n",
" <td> 2.308642</td>\n",
" <td> 29.699118</td>\n",
" <td> 0.523008</td>\n",
" <td> 0.381594</td>\n",
" <td> 32.204208</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td> 257.353842</td>\n",
" <td> 0.486592</td>\n",
" <td> 0.836071</td>\n",
" <td> 14.526497</td>\n",
" <td> 1.102743</td>\n",
" <td> 0.806057</td>\n",
" <td> 49.693429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td> 1.000000</td>\n",
" <td> 0.000000</td>\n",
" <td> 1.000000</td>\n",
" <td> 0.420000</td>\n",
" <td> 0.000000</td>\n",
" <td> 0.000000</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td> 223.500000</td>\n",
" <td> 0.000000</td>\n",
" <td> 2.000000</td>\n",
" <td> 20.125000</td>\n",
" <td> 0.000000</td>\n",
" <td> 0.000000</td>\n",
" <td> 7.910400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td> 446.000000</td>\n",
" <td> 0.000000</td>\n",
" <td> 3.000000</td>\n",
" <td> 28.000000</td>\n",
" <td> 0.000000</td>\n",
" <td> 0.000000</td>\n",
" <td> 14.454200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td> 668.500000</td>\n",
" <td> 1.000000</td>\n",
" <td> 3.000000</td>\n",
" <td> 38.000000</td>\n",
" <td> 1.000000</td>\n",
" <td> 0.000000</td>\n",
" <td> 31.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td> 891.000000</td>\n",
" <td> 1.000000</td>\n",
" <td> 3.000000</td>\n",
" <td> 80.000000</td>\n",
" <td> 8.000000</td>\n",
" <td> 6.000000</td>\n",
" <td> 512.329200</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
" 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 "
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Feature: Passenger Classes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get the unique values of Pclass:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"passenger_classes = sort(df['Pclass'].unique())\n",
"passenger_classes"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": [
"array([1, 2, 3])"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot a histogram of Pclass:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df['Pclass'].hist(bins=len(passenger_classes))\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nmdbabS9SHnbXM0l+qbV2oqp+OMnvV9VDB8cS3F9YOXStrLi3kNba/6uqN7fWnl7Nl3+2qv56a+2z\n567Z9N4y2U5Wa+13k3zjApfcltU/62itPZLkSFUdnSoPu22N9ZLM+58wcYm01p5qrZ1YHf9pki8l\nueq8y9xfWHetJO4trLTWnl4dvixn58q/ft4lG91bev6A6Of70NJrOmVh97UkP7Xanv3tqrqxdyD6\nq6rrkrw+ySPnfcn9he9zgbXi3sL3VNVlVXUiyZkkD7fWTp53yUb3linfLlzH+X97MIXPC/nvSa5d\nbeP+zSQPJLmhcyY6Wr3989Ekv7japfiBS847d3/ZU4esFfcWvqe19t0kN1XVq5J8sqqG1tp43mVr\n31t67mSd/6Gl16wegx/QWvv2uW3c1tonkry0qq7oHItOquqlSX4jyX9qrT3wPJe4v5Dk8LXi3sLz\naa19M8l/TfJXz/vSRveWniXrY0nelSRV9YYkf9JaO9MxDzusqo5WVa2Ob87Zjx85/71y9sBqHXw4\nycnW2q++wGXuL6y1VtxbOKeqXl1VR1bHP5TkbUkePe+yje4tk71dWFX3JXlTkldX1ZeTvD/JS5Ok\ntfbvW2u/XVW3VtWTSf5vkr8zVRZ232HrJcnfTvIPqurZJE8neWevrHT3xiQ/l+QPqurcDfCfJvkL\nifsL3+fQtRL3Fp5zZZLjVXVZzm5C3dta+3RV/f1ku3uLDyMFAJhAz7cLAQAWS8kCAJiAkgUAMAEl\nCwBgAkoWAMAElCwAgAkoWQAAE1CyAAAm8P8BR8fISuv9HYgAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x10a28e2d0>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Generate a cross tab of Pclass and Survived:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pclass_xt = pd.crosstab(df['Pclass'], df['Survived'])\n",
"pclass_xt"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>Survived</th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Pclass</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 80</td>\n",
" <td> 136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 97</td>\n",
" <td> 87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> 372</td>\n",
" <td> 119</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"text": [
"Survived 0 1\n",
"Pclass \n",
"1 80 136\n",
"2 97 87\n",
"3 372 119"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Normalize the cross tab to sum to 1:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pclass_xt_pct = pclass_xt.div(pclass_xt.sum(1).astype(float), axis=0)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot the cross tab:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pclass_xt_pct.plot(kind='bar', stacked=True)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 11,
"text": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10a0e7190>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAk8AAAFCCAYAAADosTktAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHbdJREFUeJzt3XGQXWWd5vHnZzorhJBKELEkxO3sgg4hJJ0RKFksuMiu\nRp1AYQld2QEmzO4Q10T5Y7eGWUqlLSq7m3Vma9SgBosxliJJCnQHBKRqHN9xHBAm2CRoEkgYuioh\nBMcNEAKBIeG3f/TtzqFJ+t5Dnz7vOef9fqooc+49uffX9IP19HnfPtfcXQAAAOjOO2IPAAAAUCeU\nJwAAgBwoTwAAADlQngAAAHKgPAEAAORAeQIAAMihY3kys78ys+fM7PFxzvmame0ws81mtqjYEQEA\nAKqjmytP35G0+FhPmtknJJ3u7mdIuk7SNwuaDQAAoHI6lid3/3tJz49zyqWSvts+92FJM83sPcWM\nBwAAUC1F7HmaLWlX5ni3pNMKeF0AAIDKKWrDuI055jNfAABAI/UU8BrPSJqTOT6t/dibmBmFCgAA\n1Ia7j704JKmY8nS3pJWS1pvZhyS94O7PHWOIAt6uXGYmDcSe4m36maSLYw/xNgzUMyt1Rs4jGCDn\nZSPnEQzUN+dmR+1NkrooT2Z2h6SLJJ1sZrsk3SRpqiS5+1p3v8/MPmFmOyW9LOnaQqbGxL0QewCg\nBOQcKSDnldKxPLn70i7OWVnMOAAAANXGHcabrC/2AEAJyDlSQM4rhfLUZHNjDwCUgJwjBeS8UorY\nMI6qelr8B4fmI+dIQZVyPpDv9PE2XldF3k3tlCcAAJBLXX+D7mjeTrlj2a7JqvJTCjCZyDlSQM4r\nhfIEAACQA+WpyZ6OPQBQAnKOFJDzSqE8AQCACVu1apXmz5+vhQsXatGiRXrkkUcm/Jr33HOPVq9e\nXcB00vTp0wt5HYkN483GGjlSQM6Rgorn/KGHHtK9996rwcFBTZ06Vfv27dNrr73W1d89dOiQenqO\nXkeWLFmiJUuWFDJjkb/1x5UnAAAwIXv37tXJJ5+sqVOnSpJOOukkvfe971Vvb6/27dsnSdq0aZMu\nvnj4A/oGBgZ09dVX68Mf/rCuueYanX/++dq6devo67VaLT366KNat26dPve5z2n//v3q7e0dff7l\nl1/W+973Ph0+fFhPPfWUPv7xj+ucc87RhRdeqCeeeEKS9PTTT+v888/XggUL9IUvfKHQr5fy1GSs\nkSMF5BwpqHjOP/rRj2rXrl36wAc+oBUrVujnP/+5pPGv9mzfvl0//elP9YMf/ED9/f3auHGjJOnZ\nZ5/V3r179cEPfnD03BkzZqivr08hBEnSj3/8Yy1evFhTpkzRddddp69//evatGmTvvKVr+izn/2s\nJOn666/XihUrtGXLFp166qmFfr2UJwAAMCEnnHCCHn30Ud16661697vfrf7+fq1bt+6Y55uZLr30\nUr3zne+UJF155ZW68847JUkbN27UFVdc8Za/09/frw0bNkiS1q9fr/7+fh04cEAPPvigrrjiCi1a\ntEif+cxntHfvXknSgw8+qKVLhz+e96qrriryy2XPU6NVfI0cKAQ5RwpqkPN3vOMduuiii3TRRRfp\n7LPP1rp169TT06M33nhDkvTqq6++6fxp06aN/vnUU0/Vu971Lj3++OPauHGj1q5dK+nNV66WLFmi\nG2+8Uc8//7x+9atf6SMf+YheeuklzZo1S4ODgyV8hUdw5QkAAEzIk08+qR07doweDw4Oqre3V729\nvdq0aZMk6a677hp9/mh3KO/v79fq1au1f/9+zZ8//y3nTZ8+Xeeee64+//nPa8mSJTIzzZgxQ3Pn\nzh29auXu2rJliyTpggsu0Pr16yVJt99+e6FfL+WpySq+Rg4UgpwjBRXP+YEDB7Rs2TKdddZZWrhw\nobZv364vf/nLuummm3T99dfr3HPPVU9Pz+iVJDN7y36oT3/609qwYYOuvPLK0cfGntff3z+6R2rE\n7bffrttuu019fX2aP3++7r77bknSV7/6Vd1yyy1asGCB9uzZU+hv21lZn09jZl7Hz8Ixs9wfglgZ\nVfogyTwGmvW5SXVAziMYIOdlI+cFGWhWds3sqF9P+/GjNi6uPDVZVf5DAyYTOUcKyHmlUJ4AAABy\noDw1WcXXyIFCkHOkgJxXCuUJAAAgB8pTk7FGjhSQc6SAnFcK5QkAACAHylOTsUaOFJBzpICcVwrl\nCQAAIAfKU5OxRo4UkHOkoAY5H7kb+GT+0619+/bp8ssv1/Tp09Xb26s77rij0K+VDwYGAAAFmcw7\nj3dfnlasWKHjjjtOv/3tbzU4OKhPfvKTWrhwoebNm1fIJFx5ajLWyJECco4UkPOuvfzyy/rhD3+o\nm2++WdOmTdMFF1ygyy67TN/73vcKew/KEwAAaIwnn3xSPT09Ov3000cfW7hwoX7zm98U9h6Upyar\n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\nTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x10a28e550>"
]
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that passenger class seems to have a significant impact on whether a passenger survived."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Feature: Sex (Gender)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We'll need to map Sex from a string to a number to prepare it for machine learning algorithms."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Prepare to map Sex from a string to a number representation:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"genders = sort(df['Sex'].unique())\n",
"genders_mapping = dict(zip(genders, range(0, len(genders) + 1)))\n",
"genders_mapping"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 12,
"text": [
"{'female': 0, 'male': 1}"
]
}
],
"prompt_number": 12
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Transform Sex from a string to a number representation:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df['Sex_Val'] = df['Sex'].map({'female': 0, 'male': 1}).astype(int)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.head(3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Sex_Val</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> Braund, Mr. Owen Harris</td>\n",
" <td> male</td>\n",
" <td> 22</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> A/5 21171</td>\n",
" <td> 7.2500</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
" <td> female</td>\n",
" <td> 38</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> PC 17599</td>\n",
" <td> 71.2833</td>\n",
" <td> C85</td>\n",
" <td> C</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> Heikkinen, Miss. Laina</td>\n",
" <td> female</td>\n",
" <td> 26</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> STON/O2. 3101282</td>\n",
" <td> 7.9250</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 14,
"text": [
" 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 1 \n",
"1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 \n",
"2 Heikkinen, Miss. Laina female 26 0 \n",
"\n",
" Parch Ticket Fare Cabin Embarked Sex_Val \n",
"0 0 A/5 21171 7.2500 NaN S 1 \n",
"1 0 PC 17599 71.2833 C85 C 0 \n",
"2 0 STON/O2. 3101282 7.9250 NaN S 0 "
]
}
],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"genders = sort(df['Sex_Val'].unique())\n",
"genders"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 15,
"text": [
"array([0, 1])"
]
}
],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot a histogram of the Sex_Val:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df['Sex_Val'].hist(bins=len(genders))\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x10a082e50>"
]
}
],
"prompt_number": 16
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot a normalized cross tab for Sex_Val and Survived:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sex_val_xt = pd.crosstab(df['Sex_Val'], df['Survived'])\n",
"sex_val_xt_pct = sex_val_xt.div(sex_val_xt.sum(1).astype(float), axis=0)\n",
"sex_val_xt_pct.plot(kind='bar', stacked=True)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 17,
"text": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10a1ad650>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAk8AAAFDCAYAAAAj7eqIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGzdJREFUeJzt3XuQXWW55/HvQ5ojhoAB8UbEaqa4DBhJM1wOHCzZ4pQT\ndQKDR2gzB6wwzoAlKDN/zGH0KLZFMVUpay4KqODhEEuRhPIyA15gysvScUCYYASEBIKHVCUgejzh\nGpEh4Z0/eidpmp3ea5G1eFdWfz9Vqep3rbfXfnZq91u/vdaz146UEpIkSSpnr9wFSJIk7UkMT5Ik\nSRUYniRJkiowPEmSJFVgeJIkSarA8CRJklTB0PAUEX8XEb+LiHtnmPOFiFgfEXdHxLH1lihJktQe\nZc48XQcs3tXOiHgvcFhK6XDgfOBLNdUmSZLUOkPDU0rpfwOPzzDldOCr/bl3APMj4g31lCdJktQu\ndfQ8LQA2ThlvAt5cw3ElSZJap66G8Zg29jtfJElSJ43UcIxHgEOmjN/c3/YiEWGgkiRJe4yU0vST\nQ0A94ekm4CJgZUScBDyRUvrdLoqo4eG6JSJgIncVLfMT4J25i2ihCf+GVJ5rywCuLYNNuLYMEjEw\nNwElwlNE3ACcChwUERuBzwB7A6SUrk4pfT8i3hsRDwFbgPNqqVqz1xO5C5DUSa4tqsnQ8JRSWlpi\nzkX1lCNJktRu3mFc7TOWuwBJneTaopoYntQ+h+YuQFInubaoJnU0jEv1ehgXOUn1c22pxUyN1Huq\nqg3zhidJklRJlz6d93LCoJft1D6+M5TUBNcW1cTwJEmSVIHhSe3zcO4CJHWSa4tqYniSJEm77fLL\nL2fhwoUsWrSIY489ljvvvHO3j3nzzTezfPnyGqqDefPm1XIcsGFcbWRfgqQmuLY05vbbb+d73/se\na9asYe+992bz5s0899xzpX5369atjIwMjiNLlixhyZIltdRY56cEPfMkSZJ2y2OPPcZBBx3E3nvv\nDcCBBx7Im970JkZHR9m8eTMAq1ev5p3vnPxywYmJCc4991ze/va386EPfYiTTz6Z+++/f8fxer0e\nd911FytWrOBjH/sYTz31FKOjozv2b9myhbe85S1s27aN3/zmN7znPe/h+OOP5x3veAcPPPAAAA8/\n/DAnn3wyxxxzDJ/61Kdqfb6GJ7WPfQmSmuDa0ph3v/vdbNy4kSOPPJILL7yQn/3sZ8DMZ3vWrVvH\nj370I77xjW8wPj7OjTfeCMBvf/tbHnvsMY477rgdc/fff3/GxsYoigKA7373uyxevJg5c+Zw/vnn\nc8UVV7B69Wo+97nP8dGPfhSAiy++mAsvvJB77rmHgw8+uNbna3iSJEm7Zd999+Wuu+7immuu4XWv\nex3j4+OsWLFil/MjgtNPP51XvepVAJx99tl885vfBODGG2/krLPOesnvjI+Ps2rVKgBWrlzJ+Pg4\nzzzzDLfddhtnnXUWxx57LB/5yEd47LHHALjttttYunTy63nPOeecOp+uPU9qIfsSJDXBtaVRe+21\nF6eeeiqnnnoqb3vb21ixYgUjIyO88MILAPzpT3960fy5c+fu+Pnggw/mta99Lffeey833ngjV199\nNfDiM1dLlizhk5/8JI8//ji//OUvOe2003j66ac54IADWLNmzSvwDHfyzJMkSdotDz74IOvXr98x\nXrNmDaOjo4yOjrJ69WoAvvWtb+3YP+gO5ePj4yxfvpynnnqKhQsXvmTevHnzOOGEE/j4xz/OkiVL\niAj2339/Dj300B1nrVJK3HPPPQCccsoprFy5EoDrr7++1udreFL72JcgqQmuLY155plnWLZsGW99\n61tZtGgR69at47Of/Syf+cxnuPjiiznhhBMYGRnZcSYpIl7SD/WBD3yAVatWcfbZZ+/YNn3e+Pj4\njh6p7a6//nquvfZaxsbGWLhwITfddBMAn//857nqqqs45phjePTRR2v9tF28Ut9PExGpS9+FU5eI\ngIncVbSMX9452ES3vk9KzXJtGcC1ZbCJamtLRHRqLdrV8+lvH5i4PPOk9nFxk9QE1xbVxPAkSZJU\ngeFJ7WNfgqQmuLaoJoYnSZKkCgxPah/7EiQ1wbVFNTE8SZIkVWB4UvvYlyCpCa4tqonhSZIkqQLD\nk9rHvgRJTXBtadT2u4E3+a+szZs3c+aZZzJv3jxGR0e54YYban2ufjGwJEmqSZN3Hi8fni688EL2\n2Wcffv/737NmzRre9773sWjRIo4++uhaKvHMk9rHvgRJTXBtmRW2bNnCt7/9bS677DLmzp3LKaec\nwhlnnMHXvva12h7D8CRJkjrjwQcfZGRkhMMOO2zHtkWLFnHffffV9hiGJ7WPfQmSmuDaMis888wz\n7L///i/att9++/H000/X9hiGJ0mS1Bnz5s3jqaeeetG2J598kv3226+2xzA8qX3sS5DUBNeWWeGI\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x10a2a1d10>"
]
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The majority of females survived, whereas the majority of males did not."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Count males and females in each Pclass:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for p_class in passenger_classes:\n",
" print 'M: ', p_class, len(df[(df['Sex'] == 'male') & (df['Pclass'] == p_class)])\n",
" print 'F: ', p_class, len(df[(df['Sex'] == 'female') & (df['Pclass'] == p_class)])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"M: 1 122\n",
"F: 1 94\n",
"M: 2 108\n",
"F: 2 76\n",
"M: 3 347\n",
"F: 3 144\n"
]
}
],
"prompt_number": 18
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Feature: Embarked"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The Embarked column might be an important feature but is missing a couple data points:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df[df['Embarked'].isnull()]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Sex_Val</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>61 </th>\n",
" <td> 62</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Icard, Miss. Amelie</td>\n",
" <td> female</td>\n",
" <td> 38</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 113572</td>\n",
" <td> 80</td>\n",
" <td> B28</td>\n",
" <td> NaN</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>829</th>\n",
" <td> 830</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Stone, Mrs. George Nelson (Martha Evelyn)</td>\n",
" <td> female</td>\n",
" <td> 62</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 113572</td>\n",
" <td> 80</td>\n",
" <td> B28</td>\n",
" <td> NaN</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 19,
"text": [
" PassengerId Survived Pclass Name \\\n",
"61 62 1 1 Icard, Miss. Amelie \n",
"829 830 1 1 Stone, Mrs. George Nelson (Martha Evelyn) \n",
"\n",
" Sex Age SibSp Parch Ticket Fare Cabin Embarked Sex_Val \n",
"61 female 38 0 0 113572 80 B28 NaN 0 \n",
"829 female 62 0 0 113572 80 B28 NaN 0 "
]
}
],
"prompt_number": 19
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Determine the unique values of Embarked:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"embarked_locations = sort(df['Embarked'].unique())\n",
"embarked_locations"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 20,
"text": [
"array([nan, 'C', 'Q', 'S'], dtype=object)"
]
}
],
"prompt_number": 20
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Prepare to map Embarked from a string to a number representation:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"embarked_locations_mapping = dict(zip(embarked_locations, \n",
" range(0, len(embarked_locations) + 1)))\n",
"embarked_locations_mapping"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 21,
"text": [
"{nan: 0, 'C': 1, 'Q': 2, 'S': 3}"
]
}
],
"prompt_number": 21
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Transform Embarked from a string to a number representation to prepare it for machine learning algorithms:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df['Embarked_Val'] = df['Embarked'].map(embarked_locations_mapping).astype(int)\n",
"df.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Sex_Val</th>\n",
" <th>Embarked_Val</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> Braund, Mr. Owen Harris</td>\n",
" <td> male</td>\n",
" <td> 22</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> A/5 21171</td>\n",
" <td> 7.2500</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
" <td> female</td>\n",
" <td> 38</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> PC 17599</td>\n",
" <td> 71.2833</td>\n",
" <td> C85</td>\n",
" <td> C</td>\n",
" <td> 0</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> Heikkinen, Miss. Laina</td>\n",
" <td> female</td>\n",
" <td> 26</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> STON/O2. 3101282</td>\n",
" <td> 7.9250</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> 4</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
" <td> female</td>\n",
" <td> 35</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> 113803</td>\n",
" <td> 53.1000</td>\n",
" <td> C123</td>\n",
" <td> S</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> 5</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> Allen, Mr. William Henry</td>\n",
" <td> male</td>\n",
" <td> 35</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 373450</td>\n",
" <td> 8.0500</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 22,
"text": [
" PassengerId Survived Pclass \\\n",
"0 1 0 3 \n",
"1 2 1 1 \n",
"2 3 1 3 \n",
"3 4 1 1 \n",
"4 5 0 3 \n",
"\n",
" Name Sex Age SibSp \\\n",
"0 Braund, Mr. Owen Harris male 22 1 \n",
"1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 \n",
"2 Heikkinen, Miss. Laina female 26 0 \n",
"3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 \n",
"4 Allen, Mr. William Henry male 35 0 \n",
"\n",
" Parch Ticket Fare Cabin Embarked Sex_Val Embarked_Val \n",
"0 0 A/5 21171 7.2500 NaN S 1 3 \n",
"1 0 PC 17599 71.2833 C85 C 0 1 \n",
"2 0 STON/O2. 3101282 7.9250 NaN S 0 3 \n",
"3 0 113803 53.1000 C123 S 0 3 \n",
"4 0 373450 8.0500 NaN S 1 3 "
]
}
],
"prompt_number": 22
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Count the number of passengers by Embarked:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for embarked in range(0, len(embarked_locations)):\n",
" print embarked, len(df[df['Embarked_Val'] == embarked])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"0 2\n",
"1 168\n",
"2 77\n",
"3 644\n"
]
}
],
"prompt_number": 23
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot the histogram for Embarked_Val:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df['Embarked_Val'].hist(bins=len(embarked_locations))\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nvJKV8qGkN6r9JxIRcVTSnO35Dms636V+EOys/nOa3omIf5X0nU0O4RyfsoSeS5zjUxURJyNi0G7/\nj6SvS7p87DDO9SlK7LnEuT5VEfFsu3mRhhcunh47ZKLzvMsh63QfSroj4ZgrOqzpfJfS85D0c+1l\nzk/Z3p2tujpxjufHOd4h2wsaXkk8OvYU53pHNuk55/qU2b7A9kDSuqSHI2Jl7JCJzvMuPidrQ2qi\nfnwKJ4l/9lJ69yVJOyPiWdtvkXSfpF3dllU9zvG8OMc7Yvtlkj4u6T3t1ZUfOmRszbl+jrboOef6\nlEXEC5IWbb9c0qdtL0VEM3ZY8nne5ZWslA8lHT/minYfzs6WPY+I721cDo2IByS9yPYl+UqsDud4\nZpzj3bD9IkmfkPS3EXHfaQ7hXJ+yrXrOud6diPiupH+R9LNjT010nnc5ZH1R0tW2F2xfJOntku4f\nO+Z+Sb8qSbZfK+mZiFjvsKbz3ZY9tz1v2+32Hg0/xmP8njOmh3M8M87x6Wv7+WFJKxHxF2c4jHN9\nilJ6zrk+XbYvtT3Xbv+IpOslPTZ22ETneWe3C+MMH0pq+7fa5/8qIj5l+622T0j6vqRf66qeGqT0\nXNIvS/pt289LelbSLcUKPg/YvlfSGyVdavsbku7Q8F92co53ZKuei3O8C6+T9CuSvmJ7438675P0\nColzvSNb9lyc69O2XdJB2xdoeBHqYxHxmXOZW/gwUgAAgA50+mGkAAAAtWLIAgAA6ABDFgAAQAcY\nsgAAADrAkAUAANABhiwAAIAOMGQBAAB0gCELAACgA/8HTLq+1IpTh+8AAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x10a10fc50>"
]
}
],
"prompt_number": 24
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since the vast majority of passengers embarked in 'S': 3, we assign the two missing values in Embarked to this: "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df[df['Embarked_Val'] == embarked_locations_mapping[nan]]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Sex_Val</th>\n",
" <th>Embarked_Val</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>61 </th>\n",
" <td> 62</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Icard, Miss. Amelie</td>\n",
" <td> female</td>\n",
" <td> 38</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 113572</td>\n",
" <td> 80</td>\n",
" <td> B28</td>\n",
" <td> NaN</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>829</th>\n",
" <td> 830</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Stone, Mrs. George Nelson (Martha Evelyn)</td>\n",
" <td> female</td>\n",
" <td> 62</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 113572</td>\n",
" <td> 80</td>\n",
" <td> B28</td>\n",
" <td> NaN</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 25,
"text": [
" PassengerId Survived Pclass Name \\\n",
"61 62 1 1 Icard, Miss. Amelie \n",
"829 830 1 1 Stone, Mrs. George Nelson (Martha Evelyn) \n",
"\n",
" Sex Age SibSp Parch Ticket Fare Cabin Embarked Sex_Val \\\n",
"61 female 38 0 0 113572 80 B28 NaN 0 \n",
"829 female 62 0 0 113572 80 B28 NaN 0 \n",
"\n",
" Embarked_Val \n",
"61 0 \n",
"829 0 "
]
}
],
"prompt_number": 25
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.replace({'Embarked_Val' : { embarked_locations_mapping[nan] : embarked_locations_mapping['S'] }}, inplace=True)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 26
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Verify we do not have any more NaNs for Embarked_Val:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sort(df['Embarked_Val'].unique())"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 27,
"text": [
"array([1, 2, 3])"
]
}
],
"prompt_number": 27
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot a normalized cross tab for Embarked_Val and Survived:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"embarked_val_xt = pd.crosstab(df['Embarked_Val'], df['Survived'])\n",
"embarked_val_xt_pct = embarked_val_xt.div(embarked_val_xt.sum(1).astype(float), axis=0)\n",
"embarked_val_xt_pct.plot(kind='bar', stacked=True)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 28,
"text": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10a574410>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAk8AAAFDCAYAAAAj7eqIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHw5JREFUeJzt3X20XXWd3/H3F0KFEDJBUZc82Msa1IKRXORhyWDlIFMn\naiPFCikdcEKngktQ/pgunWVVLqXMDMtpZ1R8QEvNLEUCC7QLVKRW3XUsjhgMDwrhqaRNQHQsyEN4\nGBJ+/eOehM0lybk7OXf/9sP7tdZdyd5n33O/l/sJ65v9/eacSCkhSZKk2dktdwGSJEltYvMkSZJU\ngc2TJElSBTZPkiRJFdg8SZIkVWDzJEmSVMHI5iki/mtE/Coibt/BNZ+OiHsi4taIOGK8JUqSJDXH\nbO48fRlYur0HI+IdwCEppdcAZwGfH1NtkiRJjTOyeUop/S3wyA4ueRfwN8NrfwIsiohXjqc8SZKk\nZhnHztMBwPrS8QbgwDE8ryRJUuOMa2E8Zhz7ni+SJKmT5o3hOR4ADiodHzg89wIRYUMlSZJaI6U0\n8+YQMJ7m6VrgXGBVRLwJ+G1K6VfbKWIMX65eEQFTuavYST8ATshdxE6YamdW2sycZzBlzutmzjOY\nam/OI7bZNwGzaJ4i4grgeGC/iFgPnA/sAZBSujSl9O2IeEdE3AtsBM4cS9Xadb/NXYBUA3OuPjDn\njTKyeUopnTaLa84dTzmSJEnN5iuMd9lk7gKkGphz9YE5bxSbpy47OHcBUg3MufrAnDfKOBbG1VT3\n4x84dZ85Vx80KedT1S7f0eJ1U1Rdard5kiRJlbT1X9Bty840d47tuqwpf0uR5pI5Vx+Y80axeZIk\nSarA5qnL7s9dgFQDc64+MOeNYvMkSZJ22UUXXcTixYtZsmQJRxxxBDfddNMuP+d1113HxRdfPIbq\nYMGCBWN5HnBhvNuckasPzLn6oOE5//GPf8y3vvUt1qxZwx577MHDDz/MM888M6vP3bRpE/Pmbbsd\nWbZsGcuWLRtLjeP8V3/eeZIkSbvkoYceYr/99mOPPfYA4KUvfSmvetWrmJiY4OGHHwZg9erVnHDC\n9Bv0TU1NccYZZ/DmN7+Z9773vRx77LHccccdW59vMBhw8803s3LlSj74wQ/y2GOPMTExsfXxjRs3\n8upXv5rNmzdz33338fa3v52jjjqKt7zlLdx1110A3H///Rx77LEcfvjhfOxjHxvr92vz1GXOyNUH\n5lx90PCcv+1tb2P9+vW87nWv45xzzuGHP/whsOO7PWvXruV73/seX/va11i+fDlXXXUVAL/85S95\n6KGHOPLII7deu3DhQiYnJymKAoBvfvObLF26lN13352zzjqLz3zmM6xevZpPfvKTfOADHwDgvPPO\n45xzzuG2225j//33H+v3a/MkSZJ2yd57783NN9/MF7/4RV7+8pezfPlyVq5cud3rI4J3vetdvOQl\nLwHg1FNP5eqrrwbgqquu4pRTTnnR5yxfvpwrr7wSgFWrVrF8+XKeeOIJbrzxRk455RSOOOII3v/+\n9/PQQw8BcOONN3LaadNvz3v66aeP89t156nTGj4jl8bCnKsPWpDz3XbbjeOPP57jjz+eN7zhDaxc\nuZJ58+bx3HPPAfD000+/4Pr58+dv/f3+++/Py172Mm6//XauuuoqLr30UuCFd66WLVvGRz/6UR55\n5BF+9rOf8da3vpXHH3+cfffdlzVr1tTwHT7PO0+SJGmX3H333dxzzz1bj9esWcPExAQTExOsXr0a\ngGuuuWbr49t6hfLly5dz8cUX89hjj7F48eIXXbdgwQKOPvpoPvShD7Fs2TIigoULF3LwwQdvvWuV\nUuK2224D4LjjjmPVqlUAXH755WP9fm2euqzhM3JpLMy5+qDhOX/iiSdYsWIFr3/961myZAlr167l\nggsu4Pzzz+e8887j6KOPZt68eVvvJEXEi/ah3vOe93DllVdy6qmnbj0387rly5dv3ZHa4vLLL+ey\nyy5jcnKSxYsXc+211wLwqU99is9+9rMcfvjhPPjgg2P913ZR1/vTRERq43vhRETlN0FsjCa9kWQV\nU91636Q2MOcZTJnzupnzMZnqVnYjYpvfz/D8Njsu7zx1WVP+oElzyZyrD8x5o9g8SZIkVWDz1GUN\nn5FLY2HO1QfmvFFsniRJkiqweeoyZ+TqA3OuPjDnjWLzJEmSVIHNU5c5I1cfmHP1gTlvFJsnSZKk\nCmyeuswZufrAnKsPzHklDz/8MCeffDILFixgYmKCK664YqzP7xsDS5KkXTbOtz/Zntm+svk555zD\nnnvuya9//WvWrFnDO9/5TpYsWcJhhx02ljq889RlzsjVB+ZcfdCanKc5/JidjRs38vWvf50LL7yQ\n+fPnc9xxx3HSSSfxla98ZSzfIdg8SZKkDrn77ruZN28ehxxyyNZzS5Ys4Re/+MXYvobNU5c5I1cf\n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\nRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x10a193a10>"
]
}
],
"prompt_number": 28
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It appears those that embarked in location 'C': 1 had the highest rate of survival."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Feature: Age"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The Age column seems like an important feature but is missing many values. \n",
"\n",
"Get the first 10 rows of the Age column:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df['Age'][:10]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 29,
"text": [
"0 22\n",
"1 38\n",
"2 26\n",
"3 35\n",
"4 35\n",
"5 NaN\n",
"6 54\n",
"7 2\n",
"8 27\n",
"9 14\n",
"Name: Age, dtype: float64"
]
}
],
"prompt_number": 29
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Display the Age histogram:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df['Age'].hist()\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x10a1adf50>"
]
}
],
"prompt_number": 30
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Filter the DataFrame to the columns we'll be looking at with Age:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df[['Sex', 'Pclass', 'Age']].head(3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Sex</th>\n",
" <th>Pclass</th>\n",
" <th>Age</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> male</td>\n",
" <td> 3</td>\n",
" <td> 22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> female</td>\n",
" <td> 1</td>\n",
" <td> 38</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> female</td>\n",
" <td> 3</td>\n",
" <td> 26</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 31,
"text": [
" Sex Pclass Age\n",
"0 male 3 22\n",
"1 female 1 38\n",
"2 female 3 26"
]
}
],
"prompt_number": 31
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Determine the max age:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"max_age = max(df['Age'])\n",
"max_age"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 32,
"text": [
"80.0"
]
}
],
"prompt_number": 32
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Filter the DataFrame to see more information on seniors Age > 60:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df[df['Age'] > 60][['Sex', 'Pclass', 'Age']]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Sex</th>\n",
" <th>Pclass</th>\n",
" <th>Age</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>33 </th>\n",
" <td> male</td>\n",
" <td> 2</td>\n",
" <td> 66.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54 </th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>96 </th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 71.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>116</th>\n",
" <td> male</td>\n",
" <td> 3</td>\n",
" <td> 70.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>170</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 61.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>252</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 62.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>275</th>\n",
" <td> female</td>\n",
" <td> 1</td>\n",
" <td> 63.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>280</th>\n",
" <td> male</td>\n",
" <td> 3</td>\n",
" <td> 65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>326</th>\n",
" <td> male</td>\n",
" <td> 3</td>\n",
" <td> 61.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>438</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 64.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>456</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>483</th>\n",
" <td> female</td>\n",
" <td> 3</td>\n",
" <td> 63.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>493</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 71.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>545</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 64.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>555</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 62.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>570</th>\n",
" <td> male</td>\n",
" <td> 2</td>\n",
" <td> 62.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>625</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 61.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>630</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 80.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>672</th>\n",
" <td> male</td>\n",
" <td> 2</td>\n",
" <td> 70.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>745</th>\n",
" <td> male</td>\n",
" <td> 1</td>\n",
" <td> 70.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>829</th>\n",
" <td> female</td>\n",
" <td> 1</td>\n",
" <td> 62.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>851</th>\n",
" <td> male</td>\n",
" <td> 3</td>\n",
" <td> 74.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 33,
"text": [
" Sex Pclass Age\n",
"33 male 2 66.0\n",
"54 male 1 65.0\n",
"96 male 1 71.0\n",
"116 male 3 70.5\n",
"170 male 1 61.0\n",
"252 male 1 62.0\n",
"275 female 1 63.0\n",
"280 male 3 65.0\n",
"326 male 3 61.0\n",
"438 male 1 64.0\n",
"456 male 1 65.0\n",
"483 female 3 63.0\n",
"493 male 1 71.0\n",
"545 male 1 64.0\n",
"555 male 1 62.0\n",
"570 male 2 62.0\n",
"625 male 1 61.0\n",
"630 male 1 80.0\n",
"672 male 2 70.0\n",
"745 male 1 70.0\n",
"829 female 1 62.0\n",
"851 male 3 74.0"
]
}
],
"prompt_number": 33
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see that most are men, most are 1st class, and most perished. Age seems like a good feature to predict whether a passenger survived, but we'll need to do some cleaning, as there are missing values. Missing values pose a problem for machine learning algorithms.\n",
"\n",
"Filter to view missing Age values:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df[df['Age'].isnull()][['Sex', 'Pclass', 'Age']].head(3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Sex</th>\n",
" <th>Pclass</th>\n",
" <th>Age</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> male</td>\n",
" <td> 3</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td> male</td>\n",
" <td> 2</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td> female</td>\n",
" <td> 3</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 34,
"text": [
" Sex Pclass Age\n",
"5 male 3 NaN\n",
"17 male 2 NaN\n",
"19 female 3 NaN"
]
}
],
"prompt_number": 34
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Determine the Age typical for each passenger class by Sex_Val. We'll use the median as the Age histogram above seems to be right skewed:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"median_ages = np.zeros((len(genders), len(passenger_classes)))\n",
"median_ages"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 35,
"text": [
"array([[ 0., 0., 0.],\n",
" [ 0., 0., 0.]])"
]
}
],
"prompt_number": 35
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fill in our median ages array:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for genderIdx in range(0, len(genders)):\n",
" for pclassIdx in range(0, len(passenger_classes)):\n",
" median_age = df[(df['Sex_Val'] == genderIdx) & \\\n",
" (df['Pclass'] == pclassIdx + 1)]\n",
" median_ages[genderIdx, pclassIdx] = \\\n",
" median_age['Age'].dropna().median()\n",
"\n",
" df.loc[(df['Age'].isnull()) & \n",
" (df['Sex_Val'] == genderIdx) & \n",
" (df['Pclass'] == pclassIdx + 1), \\\n",
" 'AgeFill'] = median_age\n",
" \n",
"median_ages"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 36,
"text": [
"array([[ 35. , 28. , 21.5],\n",
" [ 40. , 30. , 25. ]])"
]
}
],
"prompt_number": 36
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Make a copy of Age:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df['AgeFill'] = df['Age']\n",
"df.head(3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Sex_Val</th>\n",
" <th>Embarked_Val</th>\n",
" <th>AgeFill</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> Braund, Mr. Owen Harris</td>\n",
" <td> male</td>\n",
" <td> 22</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> A/5 21171</td>\n",
" <td> 7.2500</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> 22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
" <td> female</td>\n",
" <td> 38</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> PC 17599</td>\n",
" <td> 71.2833</td>\n",
" <td> C85</td>\n",
" <td> C</td>\n",
" <td> 0</td>\n",
" <td> 1</td>\n",
" <td> 38</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> Heikkinen, Miss. Laina</td>\n",
" <td> female</td>\n",
" <td> 26</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> STON/O2. 3101282</td>\n",
" <td> 7.9250</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> 26</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 37,
"text": [
" 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 1 \n",
"1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 \n",
"2 Heikkinen, Miss. Laina female 26 0 \n",
"\n",
" Parch Ticket Fare Cabin Embarked Sex_Val Embarked_Val \\\n",
"0 0 A/5 21171 7.2500 NaN S 1 3 \n",
"1 0 PC 17599 71.2833 C85 C 0 1 \n",
"2 0 STON/O2. 3101282 7.9250 NaN S 0 3 \n",
"\n",
" AgeFill \n",
"0 22 \n",
"1 38 \n",
"2 26 "
]
}
],
"prompt_number": 37
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Populate AgeFill based on our median_ages array:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for genderIdx in range(0, len(genders)):\n",
" for pclassIdx in range(0, len(passenger_classes)):\n",
" df.loc[(df['Age'].isnull()) & \n",
" (df['Sex_Val'] == genderIdx) & \n",
" (df['Pclass'] == pclassIdx + 1), \\\n",
" 'AgeFill'] = median_ages[genderIdx, pclassIdx]\n",
" \n",
"df[df['Age'].isnull()].head(3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Sex_Val</th>\n",
" <th>Embarked_Val</th>\n",
" <th>AgeFill</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> 6</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> Moran, Mr. James</td>\n",
" <td> male</td>\n",
" <td>NaN</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 330877</td>\n",
" <td> 8.4583</td>\n",
" <td> NaN</td>\n",
" <td> Q</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td> 25.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td> 18</td>\n",
" <td> 1</td>\n",
" <td> 2</td>\n",
" <td> Williams, Mr. Charles Eugene</td>\n",
" <td> male</td>\n",
" <td>NaN</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 244373</td>\n",
" <td> 13.0000</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> 30.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td> 20</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> Masselmani, Mrs. Fatima</td>\n",
" <td> female</td>\n",
" <td>NaN</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> 2649</td>\n",
" <td> 7.2250</td>\n",
" <td> NaN</td>\n",
" <td> C</td>\n",
" <td> 0</td>\n",
" <td> 1</td>\n",
" <td> 21.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 38,
"text": [
" PassengerId Survived Pclass Name Sex Age \\\n",
"5 6 0 3 Moran, Mr. James male NaN \n",
"17 18 1 2 Williams, Mr. Charles Eugene male NaN \n",
"19 20 1 3 Masselmani, Mrs. Fatima female NaN \n",
"\n",
" SibSp Parch Ticket Fare Cabin Embarked Sex_Val Embarked_Val \\\n",
"5 0 0 330877 8.4583 NaN Q 1 2 \n",
"17 0 0 244373 13.0000 NaN S 1 3 \n",
"19 0 0 2649 7.2250 NaN C 0 1 \n",
"\n",
" AgeFill \n",
"5 25.0 \n",
"17 30.0 \n",
"19 21.5 "
]
}
],
"prompt_number": 38
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ensure AgeFill does not contain any missing values:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"len(df[df['AgeFill'].isnull()])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 39,
"text": [
"0"
]
}
],
"prompt_number": 39
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a feature that records whether Age was originally missing:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df['AgeIsNull'] = pd.isnull(df['Age']).astype(int)\n",
"df.head(3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Sex_Val</th>\n",
" <th>Embarked_Val</th>\n",
" <th>AgeFill</th>\n",
" <th>AgeIsNull</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> Braund, Mr. Owen Harris</td>\n",
" <td> male</td>\n",
" <td> 22</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> A/5 21171</td>\n",
" <td> 7.2500</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> 22</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 2</td>\n",
" <td> 1</td>\n",
" <td> 1</td>\n",
" <td> Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
" <td> female</td>\n",
" <td> 38</td>\n",
" <td> 1</td>\n",
" <td> 0</td>\n",
" <td> PC 17599</td>\n",
" <td> 71.2833</td>\n",
" <td> C85</td>\n",
" <td> C</td>\n",
" <td> 0</td>\n",
" <td> 1</td>\n",
" <td> 38</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 3</td>\n",
" <td> 1</td>\n",
" <td> 3</td>\n",
" <td> Heikkinen, Miss. Laina</td>\n",
" <td> female</td>\n",
" <td> 26</td>\n",
" <td> 0</td>\n",
" <td> 0</td>\n",
" <td> STON/O2. 3101282</td>\n",
" <td> 7.9250</td>\n",
" <td> NaN</td>\n",
" <td> S</td>\n",
" <td> 0</td>\n",
" <td> 3</td>\n",
" <td> 26</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 40,
"text": [
" 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 1 \n",
"1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 \n",
"2 Heikkinen, Miss. Laina female 26 0 \n",
"\n",
" Parch Ticket Fare Cabin Embarked Sex_Val Embarked_Val \\\n",
"0 0 A/5 21171 7.2500 NaN S 1 3 \n",
"1 0 PC 17599 71.2833 C85 C 0 1 \n",
"2 0 STON/O2. 3101282 7.9250 NaN S 0 3 \n",
"\n",
" AgeFill AgeIsNull \n",
"0 22 0 \n",
"1 38 0 \n",
"2 26 0 "
]
}
],
"prompt_number": 40
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot a normalized cross tab for AgeFill and Survived:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig, axes = plt.subplots(3, 1, figsize=(10, 20))\n",
"\n",
"# Histogram of AgeFill segmented by Survived\n",
"df1 = df[df['Survived'] == 0]['Age']\n",
"df2 = df[df['Survived'] == 1]['Age']\n",
"axes[0].hist([df1, df2], bins=max_age / 10, range=(1, max_age), stacked=True)\n",
"axes[0].legend(('Died', 'Survived'), loc='best')\n",
"\n",
"# Plot a normalized cross tab for AgeFill and Survived\n",
"age_fill_xt = pd.crosstab(df['AgeFill'], df['Survived'])\n",
"age_fill_xt_pct = age_fill_xt.div(age_fill_xt.sum(1).astype(float), axis=0)\n",
"age_fill_xt_pct.plot(ax=axes[1], stacked=True)\n",
"axes[1].legend(loc='best')\n",
"\n",
"# Scatter plot Survived and AgeFil\n",
"axes[2].scatter(df['Survived'], df['AgeFill'])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 41,
"text": [
"<matplotlib.collections.PathCollection at 0x10aa8ac90>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nf/qnevTRR/XEE0/s/v3111+vP/qjP9p9f+F9nn/++VqxYsXu691yyy1atGiRli1bpjVr1uiNb3yj\nrrjiCm3ZskX/8i//ore85S169tlnd992+fLlevbZZ3X55Zfruuuuy6VyRsACAACxzJ49W7fffrvM\nTJdccokWLVqks846Sxs2bGh5lgkz00UXXaQjjzxSPT09mjNnjs4666zdwenxxx/Xo48+qjPPPHP3\nbcL7PO+883TDDTdo165dkoIgdt5550kKQtvpp5+u0047TZJ06qmn6oQTTtDNN9+sp556Snfffbc+\n9KEPafLkyTrllFN0xhln5HJGDAIWAACI7UUvepGuvfZarV69Wr/5zW+0du1avec974lVFTrooIP2\n+rm2MnX99dfrzW9+s6ZNmzbudi984Qt15JFH6oYbbtCOHTt044036vzzz5ckrVq1Sv/93/+tefPm\n7f76+c9/rmeeeUZr167VvHnzNH369N33dcghh7Tz34+NJncAAJDKEUccoQsvvFCf//znddxxx2nH\njh27f/fMM8+Mu359CDv11FO1ceNG3X///frP//xPXXPNNQ0f67zzztOKFSs0Ojqqo446Sr/3e78n\nSTr44IN1wQUX6POf//y426xatUpbtmzRjh07NGPGjN2XTZo0KdX/NwkqWAAAIJZHH31Un/jEJ7Rm\nzRpJ0urVq7VixQq94hWv0LJly/TTn/5Uq1ev1tatW/WRj3xk3O3rp+YmT56st771rfrrv/5rbdmy\nRa997WsbXvfcc8/VLbfcos997nO7+7Qk6W1ve5tuvPFG/fCHP9To6Kh27dql/v5+rVmzRocccohO\nOOEEXXnllRoeHtbtt9+um266yeeQNETAAgAAscyePVt33XWXXvayl2nWrFl6xSteoZe85CW6+uqr\ndeqpp+qcc87RS17yEi1fvlxnnHHGuIpV1DTi+eefr9tuu01vfetb1dPTs9d1a6+///7766STTtId\nd9yhc845Z/flBx54oL773e/qqquu0qJFi3TwwQfr6quv3n304vXXX6+77rpL8+fP1z/+4z/qwgsv\n9D0skSyPRq9xD2rminhcTHxmlu06MUXrG/+pDsDEY2bjnut5HPnW7a8vUeNec3miPwA9WAAAdIBu\nDz+dhilCAAAAzwhYAAAAnhGwAAAAPCNgAQAAeEbAAgAA8IyjCAEAKKE8lmVAdghYAACUDEsydD6m\n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\nzB6ouWy+md1qZo+Z2Q/NbG6R21gEMzvIzH5sZg+a2W/M7F3Vy7t2bMxsmpndZWb3mdlDZvaR6uVd\nOya1zGySmd1rZjdWf+76cTGzlWb26+q4/KJ6GeNiNtfMvmlmD1efSy/r5nExsyOq+0j4tdXM3tXN\nYxIys/dX34ceMLPrzWxqmnHJLWCxAOlerlUwDrXeJ+lW59zhkm6r/txthiX9pXPuaEkvl/Tn1X2k\na8fGObdL0qudc8skvUTSq83sleriManzbkkPac/Ry4xLMBYV59yxzrkTq5cxLtL/L+l7zrkjFTyX\nHlEXj4tz7tHqPnKspOMl7ZD0HXXxmEiSmS2VdImk45xzxyhodTpXKcYlzwoWC5BWOed+JmlL3cVn\nSrqu+v11kt6U60aVgHPuGefcfdXvt0t6WMEaal09Ns65HdVvpyh4sm9Rl4+JJJnZgZJOl/RFSeHR\nPV0/LlX1Rzt19biY2T6STnHOfVkKeoWdc1vV5eNS41QF78+rxZgMKPiwP6N60N4MBQfsJR6XPAMW\nC5A2t59zbn31+/WS9ityY4pW/RRxrKS71OVjY2Y9Znafgv/7j51zD6rLx6Tqk5L+RtJYzWWMS1DB\n+pGZ3W1ml1Qv6/ZxOVTSRjO71sx+ZWZfMLOZYlxC50paUf2+q8fEObdZ0tWSnlIQrJ5zzt2qFOOS\nZ8Cimz4mFxx50LXjZWazJH1L0rudc9tqf9eNY+OcG6tOER4o6ffN7NV1v++6MTGzN0ra4Jy7V+Or\nNZK6c1yqTq5O+7xBwTT7KbW/7NJx6ZV0nKTPOOeOk/S86qZ4unRcZGZTJJ0h6b/rf9eNY2JmL5D0\nHklLFaxsPsvM3lZ7nbjjkmfAWiPpoJqfD1JQxUJgvZntL0lmtljShoK3pxBmNllBuPqqc+5/qhcz\nNpKqUxo3K+iX6PYxOUnSmWb2OwWfvF9jZl8V4yLn3LrqvxsV9NScKMblaUlPO+d+Wf35mwoC1zNd\nPi5SEMTvqe4vEvvKCZL+r3PuWefciKRvS3qFUuwreQasuyUdZmZLq4n5HEk35Pj4ZXeDpAur318o\n6X+aXHdCMjOT9CVJDznnrqn5VdeOjZktCI9WMbPpkl4r6V518ZhIknPu751zBznnDlUwvfG/zrkL\n1OXjYmYzzGx29fuZkl4n6QF1+bg4556RtNrMDq9edKqkByXdqC4el6rztGd6UOryfUXBwQ8vN7Pp\n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\nuoLV7lGE7ZwzMc0U4eTJweKkWf89ixZ+kOmWHiwqWOl1egUryfRdnM9Vfy/pPudcxcxeIOlWM3up\nc27cW+JFF12kpUuXSpLmzp2rZcuW7Z77DRP0RPn5hhv6NWeOZDb+95VKZa+fzaQ5c/p1ww3Suedm\nsz3339+vLVuk3t6KRkaKH5/6n++4Y+9V3Gt/P3u29Otf96u/P93979ol3X13v6ZPl6ZMqWh4eM/v\nJ02qaMqUxrdfsqSiNWuktWv9/H937apo+vTg56EhaWio9e0rlYre/e5+Pfyw9PrXB9v7zDPpxyPO\nzw8/3F8N/BX19gbjNzjY+vZHHFHR5Mnjf79hQ78eeii4P5/bG765hj9Pmxb8vdPc38aN0rveVdG6\ndelu/8tfBvtX0v/PjBnSD3/Yr1mz/Pz96l9f2r0/Hz8PDPTrnnukN7yhoqGh6OuvXSvNnLn37WfM\nCPrsmt3/zp3Srl17Px9+/et+bd4sNdvfnnpq/OMdeWRFzz/f3v93eFjati3b56fvn8PLyrA9S5dK\n3/xmMeMXfr+ynRKacy7Wl6SXS/pBzc/vl/R3ddf5nqSTa36+TdIJEfflusmddzq3fHn86x9/vHO/\n+EV22/PlLzt34YXOPfecc3PmZPc4ab33vc597GPRv/vnf3bur/4q3f2OjTnX0+Pc8HDw86c/7dxl\nl+35/Y9+5NyrX9349qec4tyPf5zusaPMn+/cpk3B96OjzknBNrZy4onBPuWcc/39zv3+7/vbpihX\nXBF8ORc8VtwxWLnSuYMOGn/5zTc79/rXe9u83Q47zLlHHtnz8xVXONfXl+6+7ror+Hts2JDu9jfe\n6Nwf/EHy2y1e7NyaNekes1MsWeLc6tXOPf+8c9OnR1/n2GOdu/vuvS/7i79w7pprmt/3d7/r3Bvf\nuPdlmzY5N3du89udckrwXKq1bZtzM2Y0v10rN93k3Omnt3cf3exXv3LuxS8ueisC1dwSOzM55xJN\nEd4t6TAzW2pmUySdI+mGuus8IulUSTKz/SQdIenJVMlvAmm2RENtWg5l3YdV24NVxib3J5+Udu7s\nj/xdO1OEIyPBkSnhyZynTInfgyX5b3Sv7cHq6Ym3aGh/f/49WGmPIixDD1baJvfwQJOHH053+zRN\n7pL/IwmjXl+KlvZUOXn3YIWn5hkba/6YzXTiMg1l2mfCKcIsTq2Vh9gBywXN6u+UdIukhyT9l3Pu\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x10a9389d0>"
]
}
],
"prompt_number": 41
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It's tougher to see a clear correlation between AgeFill and Survived."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for pclass in passenger_classes:\n",
" df.AgeFill[df.Pclass == pclass].plot(kind='kde')\n",
"\n",
"plt.title('Age Density Plot by Passenger Class')\n",
"plt.xlabel('Age')\n",
"plt.legend(('1st Class', '2nd Class', '3rd Class'), loc='best')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 42,
"text": [
"<matplotlib.legend.Legend at 0x10ca79610>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAm0AAAFRCAYAAAAmW5r1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8FHX6wPHPQ+ikQUBagFClCIICKp5nzooIIqgoiohi\nORF/gPVOVEBFz4IoIqInh4oHeFIEFUFBg9hAVBAklAChg9TQW/L9/TGTEMIk2d3M7G42z/v12peZ\nndnvfPNkgk++VYwxKKWUUkqp8FYq1BVQSimllFKF06RNKaWUUqoY0KRNKaWUUqoY0KRNKaWUUqoY\n0KRNKaWUUqoY0KRNKaWUUqoY0KRNKeUKEakrIgdERIJwr3QRudylst4TkWfdKEv5xs2fn1IliSZt\nSgWRiKSIyB4RKevxPY6IyH4RyRCRxSLyuJf3BDDGbDTGxBh78Ue7Hn0DLU9EskTkoJ0IbhaRESKS\n/W+WsV+FlZEsIpsKq7ovZfmikDqXGCISKyKvicgGOxZpIjJSRBLsS1yLuVIlSYn7x0SpUBGRJKA9\n8CdwnYe3MsADxphYoAbwMHALMMvDe+ZXj6JqZYyJAS4HbgXucaFMJ262DgarziEnIqUd3isLzAOa\nAVfbsbgI2AW0C24NlYosmrQpFTy9gbnABOCO3CdEJEFEPrVbxhaJyHMisiDX+aYi8pWI7BaRlSJy\nUyH3EgBjzBFjzHysJPEiEbnWLk9E5B92C8guEflIRCrb55LsFqPedkvJThF5Ildd2tutdxkisl1E\nRuT5XJSIDAcuAUbbLS1viMhoEXklz/c9U0QGFhY4Y8wqYAHQ4oxvVKSc3aqzxX6NFJGyIlIJ+AKo\nZddhv4jUyOcWVUXkS/uaFBGpa5f9pht1FpEGIvK1HeudIvKhiMTlKvNxu2Vuv/3zvcx+3zHW9rkL\nReQHEdkrIktE5NJc51JE5BkR+c4uc06uVi5y/Wx3iciTkqu70sdn4y4R2YD1POfVG6gDdDPGrLRj\nsdMYM9wYMzvvxfb3+KP9fWy1n5Uyuc6PFJEddgx+F5EW9vudROQP+/vbLCIPF/YzUarYM8boS1/6\nCsILSANuAxoDx4Gzcp2bDEwEymO1UGwEvrXPVQI2YSV6pYDWwE6gWT73+Qa4y+H9+cC/7K8HAD8A\ntYAywFhgon0uCcgC3gbKAa2Ao8DZ9vkfgdvsrysCF+T5XCmnemC1smwBxD6uChwCquXzfWQBDe2v\nmwPbgDvt4/XAZfbXz9jfS1X79T3wjH3uUmBTIT+X94D9wF+AssBrwAI36ww0xGp5K2OXMR8YaV93\ntv3zrmEf1wUaFBLr2lgtVx3t4yvs4wT7OAVYAzTCeqa+AV7IVa8DQAe7Pi9jPY/Z8fTl2XgPqACU\nc4jBZGB8ITHP/fM7D6sFuhRQD1gBDLDPXQ0sBmJzxSo7TtuAi+2v44A2of4d15e+vH5pS5tSQSAi\nf8H6H+1MY8warP8x3WqfiwK6A0OMMUeNManA+5zqsusMrDfGvG+MyTLGLAGmAYW1tuW1Fahsf/13\n4EljzFZjzAlgGHCjnD7+apgx5pgx5ndgKXCu/f5xoLGIVDXGHDbGLCzoW8/+whjzM5CBlbyA1WX7\njTFmZwGf/1VE9gAzgX8bY8Y7XHMrVpK2yxizy/5ebs97/0J8Zoz5zhhzHBiM1SpZ2406A+8ZY9Ya\nY+YZY07YdRyJlVACZGIlxy1EpIyxxgaus8/lF+tewCxjt1wZY+ZiJTfX2ucNVuKUZow5CvwPK9kH\nuBHrOfzB/tk/zeld2fdR+LMx1FituMccvv8qWAmVT4wxvxpjFtnP9gbgnVyxOQHEAM1EpJQxZpUx\nZnuu2LQQkVhjTIYx5jdf76lUcaVJm1LBcQfwpTHmgH38Mae6SKsBpbFa07JtzvV1PeACu/tor4js\nxUpUqvtZh0RgT64yp+cqbwVwMk+Z23N9fRiItr/uCzQBUsXqyr2W/OUd1/YBVsKB/d8JhdS5jTGm\nijGmkTHm6XyuqQVsyHW80X7PV4Zc8TbGHMKKU3YZRaqzMcaISHURmWx342XYZSTY90sDBgJDgR0i\nMklEatpl5RfresBNeZ6Ji7HGMGbL/fM7wqmfX6083+8RYHeua5Mo/NkoaHLHbvyIv4g0EZHPRGSb\nHZvhnIrN18Bo4E2s2LwtIjH2R28AOgHpdnfwhb7eU6niSpM2pTwmIhWAHsBl9v+YtmFNDjhXRFpi\ndXWexBoHlC331xuB+caYyrleMcaYB/yoQx2sbqjscXIbsbrWcpdZ0RhTaAuJ3XpzqzGmGvAiMMX+\nHs+41OG9D4GuInIu0BT4xNfvoQBbsRKNbHXt9/Krg5OceItINFZrUXYZbtT5eawWtXOMMXFYLYE5\n//4aYyYZYy7BSsYMVlzzi3VFrJ/fBIdn4iUf6rIVK4HP/n4rYCdJNl+ejYLiOhe42q6nL97CSgwb\n2bEZzOmxecMY0xarW7cJ8Kj9/mJjzPVYf/R8gtWaqFRE06RNKe9dj5WUNcPqYjzX/noBcIcxJhOr\nu3OoiFQQkaZY/1PP/h/j50ATEeklImXsVzv7uvwIgIhUtAeozwAWGmOyZ5COBZ6XUwPuq4mITzNa\n7XpUsw8z7HpmOVy6A2ssVw5jzGasbrwPgCn5dK/5axLwpIhUFZGqWN192a1hO4AEEYkt4PMCdBKR\ni8Wa+fgs8KMxZouLdY7GGgu3X0RqYycekNPSdJmIlAOOYY0fzLTPOcU6EyuR7CIiV4k18aO8WMub\n1M7zfTmZan/2Ivv7HZrn2oCfDdsErJa4qSJytoiUEmuizRMico3D9dFYY+wO28/0/fb3iYi0FZEL\n7IkJh7NjY/8O3CYicfbvz4HsmCkVyTRpU8p7vYH/GGM2G2P+tF87sLp9brXHCvXHGky9HWs82ySs\nMTvYXapXYY2n2oI1XugFrEHz+RktIvvt8kZidcd2zHX+dawxV1/a1/2INRg8W0EtKVcDy0XkgF32\nLbkSmdyfex1rLNQeEXkt1/vvAy0pvJvR11ay57CSqt/t12L7PYw1e3ESsM6uh9PsUQP8FxiC1bXX\nhlPdoW7VeRhWS2cG8ClW4pR9bTmsn+dOrJ9tVeCf9jnHWNuJZFfgCawlZDZitd7mTr5Mnq8NgDHm\nD+BBrAkDW7ESnj+xEkYo2rOBPS7wCmAl8JX9PS/Ear38yeEjj2B19+/HGs82Ode5WPu9PUA61mSL\nl+1zvYD1dpfqvViTfJSKaNkzorwpXKQj1kysKOBdY8yLDteMAq7B+iuqT/ZgUhGJB97FmuJvsGah\nOf3CKxVxRORFrNmld4a6Lm4TkUuAD40x9UJdF18Vxzr7yu4O3ovVPbmhsOuVUqHjWUubPSNuNNZf\n982BniLSLM81nbD+oWiM9ZfSW7lOv441O6oZ1pIDqV7VValQs7uRWomlPXAXMD3U9XKb3c01EGtW\nZbFQHOtcGBHpYnedVwJeAX7XhE2p8Odl92h7IM0Yk25PG5+M1Zyf23VY3Q7YU9nj7VlWccAlxpj/\n2OdOGmMyPKyrUqEWg9VldhDrd+UVY8zM0FbJXfYfbXuxZiG+VsjlYaE41tlH12F1tW/BGnd4S2ir\no5TyxRlbkLioNmcuYXCBD9ckYg0o3Ski47EGbf+CtdjiYe+qq1ToGGMWYy26G7GMtf5cdKEXhpHi\nWGdfGGPuIYK311IqUnnZ0ubrYLm8M5wMVjJ5HjDGGHMe1qyrf7hYN6WUUkqpYsXLlrYtnLnu1OZC\nrkm03xNgs70aOcAUHJI2EfFuFoVSSimllMuMMb7u1HIGL1vaFmNtv5JkrwV0M9Y08txmYi2HgL2a\n9T5jzA57m5JNItLEvu4K4A+nm5gw2Ass3F5DhgwJeR3C8aVx0bhoTDQuGheNSyhfReVZS5sx5qSI\n9AfmYC35Mc4Ykyoi99nn3zbGzBKRTiKShtUFmnt5gweB/9oJ39o851QB0tPTQ12FsKRxcaZxOZPG\nxJnGxZnGxZnGxX1edo9ijPkC+CLPe2/nOe6fz2eXAu28q51SSimlVPGhOyJEoD59+oS6CmFJ4+JM\n43ImjYkzjYszjYszjYv7PN0RwWsiYopz/ZVSSilVcogIJkwnIqgQSUlJCXUVwpLGxZnG5UwaE2ca\nF2ehjouI6CsMX17wdEybUioCZbdue/SPklLKf9rrFF68Stq0e1Qp5bvp0+GeeyAuDqZMgTZtQl0j\npUo8u8st1NVQueT3Mylq96i2tCmlfJOaaiVsX3wBaWlw/fWwfDnExIS6ZkopVSLomLYIFOrxFeFK\n4+LM57gMHQr/+Ae0awc9e0KHDjB6tJdVCxl9VpxpXJxpXFSwaNKmlCpcejrMnQv33nvqvccfh7ff\nhqyskFVLKaXyk5SUxLx580JdDVdp0haBkpOTQ12FsKRxceZTXP79b+jdG2JjT73XurU1tm3BAs/q\nFir6rDjTuDjTuORv9OjRtG3blvLly3Pnnb5vbJSUlMTXX39d4DX79+9n4MCB1KtXj5iYGBo1asSg\nQYPYvXs3gKezOENFkzalVOGmTbO6RPO6/XaYMCH49VFKFQu1a9fmqaee4q677vLrc4VNrjh+/DiX\nX345qampzJkzhwMHDvDjjz9StWpVfv7556JWO2xp0haBdHyFM42Ls0LjkpoKBw9C27Znnrv+emti\nQoTNXNNnxZnGxZnGJX/dunWja9euJCQknHFu165ddO7cmcqVK5OQkMBf//pXjDHcfvvtbNy4kS5d\nuhATE8Mrr7xyxmc/+OADNm3axPTp02natCkA1apVY/DgwXTs2PGM6xctWsRFF11E5cqVqVWrFg8+\n+CAnTpzIOT9o0CCqV69OXFwcrVq14o8//gBg1qxZtGjRgtjYWBITExkxYoRboQmIzh5VShVsxgwr\nOSvl8Ddew4ZQtiysWAEtWgS/bkqpYsGp1WzEiBHUqVOHXbt2AfDTTz8hIkyYMIHvvvuOcePGcdll\nlzmWN3fuXK655hoqVqzo0/1Lly7N66+/Ttu2bdm0aRPXXHMNY8aMYcCAAcyZM4cFCxawZs0aYmNj\nWbVqFXFxcQD07duXKVOmcPHFF5ORkcG6desCjIA7tKUtAun4CmcaF2eFxmXuXLjqKudzInDllfDV\nV67XK5T0WXGmcXEW7nERcedVtDqcWUDZsmXZtm0b6enpREVFcfHFF/tc3p49e6hZs6bP15933nm0\nb9+eUqVKUa9ePe69917mz58PQJkyZThw4ACpqalkZWVx9tlnU6NGjZw6/vHHH+zfv5+4uDjahHht\nSk3alFL5O3YMFi6ESy7J/5orr4QIm6GlVCQxxp1X0epwZgGPPvoojRo14qqrrqJhw4a8+OKLPpeX\nkJDA1q1bfb5+9erVdO7cmZo1axIXF8fgwYNzJixcdtll9O/fnwceeIDq1atz3333ceDAAQCmTp3K\nrFmzSEpKIjk5mZ9++snne3pBk7YIpOMrnGlcnBUYl0WL4OyzIT4+/2s6dICffoqocW36rDjTuDjT\nuBTOqaUtOjqaV155hbVr1zJz5kxeffVVvvnmm3yvz+2KK65gzpw5HD582Kf733///TRv3py0tDQy\nMjIYPnw4WbmWK3rwwQdZvHgxK1asYPXq1bz88ssAtG3blk8++YSdO3dy/fXX06NHD1+/ZU9o0qaU\nyl9KClx6acHX1K4N5crB+vVBqZJSqvjIzMzk6NGjnDx5kszMTI4dO0ZmZiYAn3/+OWlpaRhjiI2N\nJSoqilL22Nnq1auzdu3afMu9/fbbqVOnDjfccAOrVq0iKyuL3bt38/zzz/PFF1+ccf3BgweJiYmh\nYsWKrFy5krfeeisnMVy8eDELFy7kxIkTVKxYkfLlyxMVFcWJEyf473//S0ZGBlFRUcTExBAVFeVB\nlPxgjCm2L6v6SinPdOpkzNSphV/XvbsxEyd6Xx+l1BnC+f+FQ4YMMSJy2mvYsGHGGGNGjhxpkpKS\nTKVKlUxiYqJ57rnncj43Y8YMU7duXRMfH29GjBjhWHZGRoYZOHCgqVOnjomOjjYNGzY0Dz/8sNmz\nZ48xxpikpCQzb948Y4wx3377rWnatKmJjo42l1xyiXn66afNJZdcYowxZt68eaZVq1YmOjraVK1a\n1fTq1cscOnTIHD9+3HTs2NFUrlzZxMbGmvbt25vvv//ep+87v5+J/X7AeY9uGK+UcmYMnHUW/PYb\nJCYWfO1LL8HWrfDaa8Gpm1Iqh24YH3682jBeu0cjkI6vcKZxcZZvXNLToUwZq/uzMO3bQwQtaKnP\nijONizONiwoWTdqUUs4WLbKSMV/m+rdqBcuW6T6kSinlIe0eVUo5e+QRqFwZBg/27fo6dWD+fGjQ\nwNt6KaVOo92j4Ue7R5VSwbV0KfizkOS558Lvv3tXH6WUKuE0aYtAOr7CmcbFWb5x+f13q9vTV61a\nRUzSps+KM42LM42LChZN2pRSZ9qxA06c8G0SQrZWrazWOaWUUp7QMW1KqTPNnQvPPmuNUfPVsmVw\n002wcqV39VJKnUHHtIUfHdOmlAoef7tGARo3tpYJOXHCkyoppVRJp0lbBNLxFc40Ls4c4xJI0la+\nPNSqFRHbWemz4kzj4kzjEhzvvfcel1xyScCfT05OZty4cS7WKPg0aVNKnSmQpA2szeW1e1QpBRw/\nfpy+ffuSlJREbGwsbdq0Yfbs2Z7eb+jQoTRp0oTo6Gjq169P37592bBhA2B1TRa2EX2406QtAiUn\nJ4e6CmFJ4+LsjLicPGklXi1a+F9Y06awapUr9QolfVacaVycaVycnTx5krp16/Ltt9+yf/9+nnvu\nOXr06JGTRLntxhtv5LPPPmPSpEns37+fpUuX0rZtW77++mtP7hcKmrQppU63di3UqAHR0f5/9uyz\nIyJpU0oVXcWKFRkyZAh169YF4Nprr6V+/fr8+uuvgNWtnJiYyKuvvkr16tWpVasW7733Xs7nd+/e\nzXXXXUdcXBwXXHABa9euzfdec+fOZe7cucyYMYPzzz+fUqVKERsby/3338+dd955xvVr167lsssu\no2rVqlSrVo1evXqRkZGRc/7FF18kMTGR2NhYmjZtmpP4LVq0iLZt2xIXF0eNGjV4+OGH3QiVzzRp\ni0A6vsKZxsXZGXFZtcpqMQtEhHSP6rPiTOPiTOPimx07drB69Wpa5GrF37FjB/v372fr1q2MGzeO\nBx54ICd5euCBB6hYsSLbt2/nP//5D+PHj8+3e3Pu3LlccMEF1PZjmaLBgwezbds2UlNT2bRpE0OH\nDgVg1apVvPnmmyxevJj9+/fz5ZdfkpSUBMCAAQMYNGgQGRkZrFu3jh49egQWjACVDurdlFLhb9Uq\nK/kKRIR0jyoVSWSYO+O4zJDAlxU5ceIEt912G3369KFJkyY575cpU4ann36aUqVKcc011xAdHc2q\nVas4//zzmTZtGsuXL6dChQq0aNGCO+64g2+//dax/N27d1OjRg2f69OwYUMaNmwIQNWqVRk0aBDP\nPPMMAFFRURw7dow//viDhISEnJZCgLJly7JmzRp27dpF1apVueCCCwIJR8A0aYtAOr7CmcbF2Rlx\nWbUK2rYNrLAaNeDYMdi9GxISily3UNFnxZnGxVm4x6UoyZYbsrKyuP322ylfvjyjR48+7VxCQgKl\nSp3q9KtYsSIHDx5k586dnDx5kjp16uScy5085VW1alXWrFnjc5127NjBgAED+O677zhw4ABZWVlU\nqVIFgEaNGvHaa68xdOhQ/vjjD66++mpeffVVatasybhx43j66adp1qwZ9evXZ8iQIVx77bU+37eo\ntHtUKXW6orS0iei4NqVUDmMMffv2ZefOnUydOpWoqCifPletWjVKly7Nxo0bc97L/XVeV1xxBYsW\nLWLLli0+lf/EE08QFRXF8uXLycjIYMKECWRlZeWc79mzJwsWLGDDhg2ICI8//jhgJXQTJ05k586d\nPP7449x4440cOXLEp3u6QZO2CKTjK5xpXJw5jmkLNGkDaNIE/PiLNxzps+JM4+JM45K/+++/n5Ur\nVzJz5kzKlSvn8+eioqLo3r07Q4cO5ciRI6xYsYL3338/3zFtl19+OVdeeSXdunXj119/5eTJkxw4\ncICxY8cyfvz4M64/ePAglSpVIjY2li1btvDyyy/nnFu9ejVff/01x44do1y5cpQvXz4n2fzwww/Z\nuXMnAHFxcYjIaS2FXtOkTSl1yt69cOQI1KwZeBkNGkTEArtKqaLZsGED77zzDkuXLqVGjRrExMQQ\nExPDpEmTcq4paN200aNHc/DgQWrUqMFdd93FXXfdVeD9pkyZQqdOnbj55puJj4+nZcuW/Prrr1x5\n5ZVnXDtkyBB+/fVX4uLi6NKlCzfccENOXY4dO8Y///lPqlWrRs2aNdm1axcvvPACAHPmzOGcc84h\nJiaGQYMGMXnyZL+S0aLSvUeVUqcsXAj9+sEvvwRexvjx8M038MEH7tVLKZUv3Xs0/Ojeo0op7xW1\naxSgYUNrrTellFKu8jRpE5GOIrJSRNaIyOP5XDPKPr9URNrkej9dRH4Xkd9EZJGX9Yw0Or7CmcbF\n2WlxcSNpa9AA1q0rWhkhps+KM42LM42LChbPkjYRiQJGAx2B5kBPEWmW55pOQCNjTGPgXuCtXKcN\nkGyMaWOMae9VPZVSubiRtNWqZY2NO3zYnToppZQCPBzTJiIXAUOMMR3t438AGGP+leuascA3xpiP\n7OOVwKXGmB0ish5oa4zZXcA9dEybUm5q2dIai9amTeHXFqRpU5g6NbD9S5VSftExbeGnOI5pqw1s\nynW82X7P12sMMFdEFovIPZ7VUillycyEtDRryY6iioAuUqWUCjde7ojga9qfX8b5F2PMVhGpBnwl\nIiuNMQvyXtSnT5+cPcHi4+Np3bp1zurU2eMMStpx9nvhUp9wOX7ttdf0+XA4zn4v5eOPITqa5EqV\nil5+w4akzJkDMTEh//4COc4bm1DXJ1yOlyxZwsCBA8OmPuFyHA7Piwo/2T+jlJQU0tPTXSnTy+7R\nC4GhubpH/wlkGWNezHXNWCDFGDPZPs7pHs1T1hDgoDFmRJ73tXvUQUpKiv4iO9C4OMuJy9y5MHy4\ntVxHUY0cCenp8PrrRS8rBPRZcaZxcRbquGj3aPgpjt2ji4HGIpIkImWBm4GZea6ZCfSGnCRvnz2e\nraKIxNjvVwKuApZ5WNeIov+oOtO4OMuJy7p11nIdbijm3aP6rDjTuDjTuKhg8SxpM8acBPoDc4AV\nwEfGmFQRuU9E7rOvmQWsE5E04G2gn/3xGsACEVkCLAQ+M8Z86VVdlVJYa6s1aOBOWQ0a6FptSqki\nS0lJOW3TeH/16dOHp556ysUahZaXLW0YY74wxpxtjGlkjHnBfu9tY8zbua7pb58/1xjzq/3eOmNM\na/t1TvZnlW9yj69Qp2hcnOXExc2Wtnr1YMMGKKZdNvqsONO4ONO45K9Xr17UrFmT2NhYGjRowPDh\nw10t3xjDqFGjaNmyJdHR0dSpU4cePXqwfPlywOqOLGirrOLG06RNKVWMuNnSFhsLZcvC7nxX7FFK\nlQD//Oc/Wb9+Pfv37+eLL77gjTfeYPbs2Y7Xnjx50u/yBwwYwKhRo3jjjTfYu3cvq1ev5vrrr2fW\nrFk510TSeD9N2iKQjq9wpnFxlpycbLWIrV3rXksbnGptK4b0WXGmcXGmcclfixYtKF++fM5x6dKl\nOeusswCrhTIxMZGXXnqJmjVr0rdvX44ePUqfPn2oUqUKLVq04Oeff8637DVr1jBmzBgmT55McnIy\nZcqUoUKFCtx666089thjZ1y/d+9eOnfuzFlnnUWVKlXo0qULW7ZsyTn/3nvv0bBhw5xWwYkTJwKQ\nlpbGpZdeSnx8PNWqVeOWW25xKzx+83LJD6VUcbFnD4hA5crulZmdtJ1/vntlKqWKnX79+vH+++9z\n7NgxRo8ezXnnnZdzbseOHezdu5eNGzeSmZnJ0KFDWb9+PevWrePgwYN07Ngx3+7NefPmUadOHdq2\nbetTPYwx9O3blylTpnDy5Enuuusu+vfvz/Tp0zl06BADBgxg8eLFNG7cmB07drDb7il46qmn6Nix\nI/Pnz+f48eMsXry46EEJkLa0RSAdX+FM4+IsJSXl1Hg2N8d+FOOWNn1WnGlcnIV9XETceQVozJgx\nHDx4kLlz5/Lkk0+yaNGp7cRLlSrFsGHDKFOmDOXLl+fjjz9m8ODBxMfHk5iYyIABA/Lt3ty9ezc1\natTwuR5VqlShW7dulC9fnujoaJ544gnmz59/Wl2WLVvGkSNHqF69Os2bNwegbNmypKens2XLFsqW\nLUuHDh0CjETRadKmlHJ3PFu2unVh40Z3y1RK+c8Yd15FICIkJydz0003MWnSpJz3q1WrRtmyZXOO\nt27detps0bp16+ZbZkJCAtu2bfO5DocPH+a+++4jKSmJuLg4Lr30UjIyMjDGUKlSJT766CPGjh1L\nrVq16Ny5M6tWrQLgpZdewhhD+/btOeeccxg/frw/37qrNGmLQDq+wpnGxVlycrK7M0ezFeOWNn1W\nnGlcnGlcfHfixAkq2buuAGd0fdasWZONuf7Y21jAH36XX345mzdv5pdffinwntn3GDFiBKtXr2bR\nokVkZGQwf/58jDE5LXlXXXUVX375Jdu3b6dp06bcc4+1g2b16tV555132LJlC2+//Tb9+vVjXYjW\nodSkTSnlTUtbMU7alFJFt3PnTiZPnsyhQ4fIzMxkzpw5fPzxx3Tt2jXfz/To0YMXXniBffv2sXnz\nZt544418r23cuDH9+vWjZ8+eOePNjh49yuTJk3nxRWvzpdxJ2cGDB6lQoQJxcXHs2bOHYcOG5ZT1\n559/MmPGDA4dOkSZMmWoVKkSUVFRAHz88cds3rwZsLbLFBFKlQpN+qRJWwQK+/EVIaJxcXbamDY3\nFeOkTZ8VZxoXZxoXZyLC2LFjSUxMJCEhgaeeeooJEybQrl27067JbciQIdSrV4/69evTsWNHevfu\nXeA6a6NGjaJ///488MADVK5cmUaNGjFjxgyuu+66nPKzPz9w4ECOHDlC1apV6dChA9dcc03Ouays\nLEaOHEnXKzQEAAAgAElEQVTt2rVJSEhgwYIFvPXWWwAsXryYCy+8kJiYGLp27cqoUaNy9jwPNs/2\nHg0G3XvUWaj3wQtXGhdnKSkpJPfuDfPnQ/367hVsDFSsCLt2Qa7ukOJAnxVnGhdnoY6L7j0afrza\ne1STNqVKumPHrMVwDx2C0i6vAnT22TB9OtizsJRS7tOkLfwUxw3jlVLFQXo61KnjfsIGxbqLVCml\nwo0mbRFIx1c407g4S5kxw91u0dzq1i2WSZs+K840Ls40LipYNGlTqqTbvt1qEfOCtrQppZRrdEyb\nUiXdE09AhQrw1FPul/3BBzB7Nth7+Cml3Kdj2sKPjmlTSnljwwbwavp6vXq6K4JSSrlEk7YIpOMr\nnGlcnKUsXardo3nos+JM4+IsHOKSvR6ZvsLj5RUPposppYqVHTu8S9pq17bKP3ECypTx5h5KlXDh\n2jUa6vXrIpGOaVOqJDt+HKKj4fBhb5b8AEhMhO+/9y4xVEqpYkLHtCmlArd5M9Ss6V3CBtayH5s2\neVe+UkqVEJq0RaBwGF8RjjQuDtLTSYmP9/YedesWu8kI+qw407g407g407i4T5M2pUqyDRugenVv\n71GnTrFL2pRSKhzpmDalSrKhQyEzE5591rt7vPEGpKbCmDHe3UMppYoBHdOmlArchg3eTxAoht2j\nSikVjjRpi0A6jsCZxsVBejopGRne3qMYTkTQZ8WZxsWZxsWZxsV9mrQpVZIFY0ybtrQppZQrdEyb\nUiVVZiZUrAgZGVC+vHf3MQYqVbI2po+N9e4+SikV5nRMm1IqMNu2QZUq3iZsACLFsotUKaXCjSZt\nEUjHETjTuOSRng716gUnLsWsi1SfFWcaF2caF2caF/dp0qZUSbVhAyQlBede2tKmlFJFpmPalCqp\nnn/eGs/24ove3+uZZ6x9Tp97zvt7KaVUmNIxbUqpwARjjbZsuiuCUkoVmSZtEUjHETjTuOShY9ry\npc+KM42LM42LM42L+zRpU6qkCvaYtmKUtCmlVDjSMW1KlUTZa6f9+SdER3t/vyNHID7e+m8p/VtR\nKVUy6Zg2pZT/du6EChWCk7CBda/4eNixIzj3U0qpCKRJWwTScQTONC655JqEELS4FKPJCPqsONO4\nONO4ONO4uE+TNqVKInsSQlDpuDallCoST8e0iUhH4DUgCnjXGHPGglAiMgq4BjgM9DHG/JbrXBSw\nGNhsjOni8Fkd06ZUIF55BbZsgZEjg3fPgQOt1raHHw7ePZVSKoyE7Zg2O+EaDXQEmgM9RaRZnms6\nAY2MMY2Be4G38hQzAFgBaGamlJuCuUZbNt0VQSmlisTL7tH2QJoxJt0YcwKYDHTNc811wPsAxpiF\nQLyIVAcQkUSgE/AuEHBWWhLpOAJnGpdcQjGmrRh1j+qz4kzj4kzj4kzj4j4vk7baQO4/qzfb7/l6\nzUjgUSDLqwoqVWLpmDallCp2vEzafO3SzNuKJiLSGfjTHt+mrWx+Sk5ODnUVwpLGJZdcC+sGLS7F\naPaoPivONC7ONC7ONC7uK+1h2VuAOrmO62C1pBV0TaL93g3AdfaYt/JArIh8YIzpnfcmffr0Icn+\nn098fDytW7fOeVCym2b1WI/1ONdx69aQlUXK0qUgErz7p6bC3r0kHzkCFSqETzz0WI/1WI89Os7+\nOj09HTd4NntUREoDq4DLga3AIqCnMSY11zWdgP7GmE4iciHwmjHmwjzlXAo8orNHfZeSkpLz4KhT\nNC62pUvhtttg+XIgyHFp2BBmz4bGjYNzvwDps+JM4+JM4+JM43Kmos4e9aylzRhzUkT6A3OwlvwY\nZ4xJFZH77PNvG2NmiUgnEUkDDgF35lecV/VUqsQJxXi2bNnj2sI8aVNKqXCke48qVdKMGgUrV8KY\nMcG/9x13QHIy3Jnf32dKKRW5wnadNqVUmMo1CSHoitFkBKWUCjeatEWg3AMg1SkaF1uehXWDGpdi\nssCuPivONC7ONC7ONC7u06RNqZImHMa0KaWU8puOaVOqpKlWDX7/HWrWDP69V6yA7t2tMXVKKVXC\nFHVMmyZtSpUkhw5BQgIcPgylQtDQfuAAVK9u1UN03WylVMmiExHUGXQcgTONC1bXZN26pyVsQY1L\nTAyUKwe7dwfvngHQZ8WZxsWZxsWZxsV9mrQpVZKEcjxbtmIyGUEppcKNdo8qVZKMHQuLF8O774au\nDl26wN13Q9euoauDUkqFgHaPKqV8l2e5j5DQGaRKKRUQTdoikI4jcKZxwXFh3aDHpRgkbfqsONO4\nONO4ONO4uE+TNqVKknBoadNdEZRSKiA6pk2pkqR2bfjhh9Ambt99B489ZtVDKaVKEB3TppTyzfHj\nsHOnlbiFUt26mI0b2bJ/C4dPHA5tXZRSqhjRpC0C6TgCZyU+Lps2Qa1aULr0aW8HMy6Ltiyi24IH\nOLF9Cxe8dR5VX6rKX8f/lc9Wfxa0OviixD8r+dC4ONO4ONO4uE+TNqVKihCu0ZaZlcmwlGFcP/l6\nOp7dmdI1E9l880L2Pr6XARcM4JEvH6HXtF4cPXk0JPVTSqniQMe0KVVS/Oc/MH8+vP9+UG+bmZVJ\nnxl92LBvAx/d+BE1Y2rCxRfDCy/AX/8KwOETh+nzSR/2Ht3LJzd/QqWylYJaR6WUCgYd06aU8k0I\nZo4aY3hg1gNs2b+F2b1mWwkbnLErQsUyFZl0wyRqRtek1/ReZJmsoNZTKaWKA03aIpCOI3BW4uOS\nT/eol3EZ99s4vtv4HTN7zqRimYqnTjis1RZVKop3r3uXnYd28ty3z3lWJ1+U+GclHxoXZxoXZxoX\n92nSplRJ4bCwrpd+3/E7T8x7gqk9phJdNvr0k/kssFs2qixTekxhzM9jWLh5YZBqqpRSxYOOaVOq\npKhfH776Cho18vxWJ7NOctG4i/j7+X+n73l9z7zg00+tfVA//9zx85OXT+bZb5/l13t/pVzpch7X\nVimlgkPHtCmlCnfyJGzZYu1GEASv//Q6seViuavNXc4X1Klz2pi2vG5ucTMNKzfk1R9f9aiGSilV\n/GjSFoF0HIGzEh2XrVuhWjUod2arldtx+fPQn7zw3QuMvXYsIvn8QVnI/qMiwoirRjDixxHsOLjD\n1fr5okQ/KwXQuDjTuDjTuLhPkzalSoIgzhx9Zv4z3NbyNhonNM7/osqVrda/jIx8L2mc0Jje5/Zm\naMpQ9yuplFLFkI5pU6okmDABZs2CSZM8vc3q3avpMK4DK/uvpGrFqgVf3Lw5/O9/cM45+V6y+/Bu\nGr/RmKV/X0qduOB07SqllFd0TJtSqnBBmjn69DdP8/BFDxeesEGhXaQACRUTuPu8u3n5h5ddqqFS\nShVfhSZtIjJNRK4VEU3wigkdR+CsRMelgO5Rt+Kyevdq5q2fx4MXPOjbBwqZjJDtoYse4sPfP2T7\nwe1FrKHvSvSzUgCNizONizONi/t8ScTeAm4D0kTkXyJytsd1Ukq5LQhj2l787kX6t+t/5pps+fGh\npQ2gRnQNerXqpTNJlVIlns9j2kQkHrgFeBLYCPwb+NAYc8K76hVaJx3TppQvmjSBGTOgWTNPit+Y\nsZHWY1uT9n9pVKlQxbcPvf8+zJ1rjbcrRPq+dNq+05YNAzfovqRKqWIrKGPaRCQB6APcDfwKjALO\nB74K9MZKqSDJyrK6IevW9ewWI38cyV1t7vI9YQOfW9oAkuKT+Evdv/DfZf8NsIZKKVX8+TKmbTrw\nHVAR6GKMuc4YM9kY0x+I8bqCyn86jsBZiY3Ln39CTAxUcm6hKmpcDh4/yPtL3+fB9j6OZcvmR9IG\n0L99f95Y9AbBaF0vsc9KITQuzjQuzjQu7vOlpe3fxphmxpjnjTHbAESkHIAx5nxPa6eUKrp8Nop3\ny4e/f8ilSZdSL97PeyQmWov+Zmb6dPnl9S8nMyuT+RvmB1BLpZQq/god0yYivxlj2uR571djzHme\n1swHOqZNKR989BF8/DFMmeJ60cYYWr7VklHXjOKy+pf5X0CNGrB4sZXA+eDNRW8yf8N8/nfT//y/\nl1JKhZhnY9pEpKaInA9UEJHzROR8+7/JWF2lSqniwMM12uZvmE+WyeJvSX8LrIAGDWD9ep8vv7Xl\nrXy59kv2HNkT2P2UUqoYK6h79GrgFaA2MML+egTwEPCE91VTgdJxBM5KbFwK6R4tSlxGLxpN//b9\n899jtDANG8K6dT5fXrlCZa5pfA0Tl00M7H4+KrHPSiE0Ls40Ls40Lu7LN2kzxrxnjPkb0McY87dc\nr+uMMdOCWEelVFF4tEbb9oPbmbd+Hre3uj3wQho0gLVr/frIna3vZPyS8YHfUymliql8x7SJyO3G\nmAki8jCQ+yIBjDEm5Ctd6pg2pXxwzjkwcSK0auVqsS9//zIrd61kXNdxgRfywQfw5Zfw4Yc+fyQz\nK5P6r9fn056fcm6NcwO/t1JKBZmX67Rlj1uLyeellAp3xngye9QYw/gl47mzzZ1FK6hBA7+6RwGi\nSkVxx7l3aGubUqrEKah79G37v0ONMcNyvYYaY4YFr4rKXzqOwFmJjMuePVC6NMTF5XtJIHFZtGUR\nJ7NOcnGdi4tQOQLqHgXo07oPE5dN5HjmcZ8/Ywz88gu8/DI8+ii89BL89JP1fl4l8lnxgcbFmcbF\nmcbFfb4srvuSiMSKSBkRmSciu0TEp0EsItJRRFaKyBoReTyfa0bZ55eKSBv7vfIislBElojIChF5\nwb9vSykFeDZzdPyS8fRp3SfwCQjZataEAwfg4EG/PtawSkMaJzTmq7W+bcry88/QoQP06GFtDlG1\nKmzbBn36wPnnw7ffBlB3pZQKMl/WaVtqjDlXRLoBnbFmjy4wxhQ4QEZEooBVwBXAFuBnoKcxJjXX\nNZ2A/saYTiJyAfC6MeZC+1xFY8xhESmNtSPDI8aY7/LcQ8e0KVWQadOsPT5nzHCtyCMnjpA4MpGl\nf19KYqxv66sVqEULmDwZWrb062OjF41m4ZaFTOhW8N6lb74JzzxjtbDddhtERZ06Z4y1fN2AAdCv\nHwweDEXNQ5VSKj/B2Hu0tP3fzsAUY0wGp09MyE97IM0Yk25vKj8Z6JrnmuuA9wGMMQuBeBGpbh8f\ntq8pC0QBujCTUv7yYObo9JXTaVernTsJGwTcRXpT85v4dNWnHD5x2PG8MfCPf8Abb8CPP0Lv3qcn\nbGAlaDfdBL/+ClOnwkMPOXeXKqVUOPAlaftURFZibRA/T0TOAo768LnawKZcx5vt9wq7JhGsljoR\nWQLsAL4xxqzw4Z4KHUeQnxIZl/XroX79Ai/xNy7vLXmPO1sXcQJCbn6u1ZatenR12tVux6w1sxzP\nv/wyzJoFP/xg5YUFqVEDvv7aunbw4BL6rPhA4+JM4+JM4+K+0oVdYIz5h4i8DOwzxmSKyCHObDFz\n/KiPdcjbTGjs+2YCrUUkDpgjIsnGmJS8H+7Tpw9J9pid+Ph4WrduTXJyMnDqgSlpx9nCpT7hcrxk\nyZKwqk9Qjn/+meTLLy/w+my+lLf78G4Wb13MzJ4z3atvgwawalVAn29ztA2Tlk/ixuY3nnb+449h\nxIgURo+GKlV8K2/p0hSeeAIGDUq2u0hd+v4i6HjJkiVhVR89Du9jfV7I+To9PR03FDqmDUBELgbq\nAWXst4wx5oNCPnMhMNQY09E+/ieQZYx5Mdc1Y4EUY8xk+3glcKkxZkeesp4CjhhjXsnzvo5pU6og\nLVrApEmurdH2+k+v89v233jv+vdcKQ+Azz+H0aPhiy/8/ui+o/uo91o9Ng7cSFx5a4ZsWhpcdBHM\nmQPnBbBD8rJlcNll8M031hJ3SinlFs/HtInIh8DLwF+AtvarnQ9lLwYai0iSiJQFbgZm5rlmJtDb\nvs+FWK15O0SkqojE2+9XAK4EfvPtW1JKAafWaCuke9Qfk5ZPouc5PV0rDwhorbZs8eXjSU5KZsYq\na6LFiRNwyy3w9NOBJWxgzYf417+gVy84diywMpRSyguFJm1YY9kuNsb0M8Y8mP0q7EPGmJNAf2AO\nsAL4yBiTKiL3ich99jWzgHUikga8DfSzP14T+Noe07YQ+NQYM8/v766Eyt0sq04pcXHZsQMqVoSY\ngtfC9jUu6/auY93edVxW/zIXKpdLUpI1YSIzM6CP9zynJ5OWTwLglVfgrLOgf/+iValBgxTq1YOh\nQ4tWTqQpcb9DPtK4ONO4uK/QMW3Acqwkaqu/hRtjvgC+yPPe23mOz/jn1RizDAjw72SlFODTJAR/\nTF4+mRub30iZqDKFX+yPChWshdM2bw5opmuXJl2477P7+Hn5HkaMqMIvvxR92Q4ReOcdq9WtVy+r\nl1kppULNl3XaUoDWwCIgu7PAGGOu87ZqhdMxbUoVYOJEmDnTWgPNBS3fasmYTmO4pN4lrpR3mr/9\nzZq2ecUVAX38ho9uIHVGF+5p14dBg9yr1ptvwv/+Bykpun6bUqrogrFO21DgemA4MCLXSykVztat\nc62lbfmfy9l3dB8X1y3itlX5OftsWLUq4I/X2NudLXFTebDQgRv++fvfrc0a/vtfd8tVSqlAFJq0\n2ctspANl7K8XoZMCwpqOI3BW4uKyfn3hC5ThW1wmLZvELS1uoZT48ndeAJo0CThpO3IEZr7SmZO1\n53M4c78r1cmOSVQUjBkDjz3m905bEanE/Q75SOPiTOPiPl9mj94LfIw1UQCsxW+ne1kppZQLXGpp\nM8Yw+Y/J9Gzp8qzR3IrQ0vbaa9D+3DiSG1zC56s/d7licMEFkJwMI0e6XrRSSvnFp71Hsbak+skY\nk72h+zJjjH8bBXpAx7QpVYCkJGuZfx9a2wqyaMsibp9+OysfWFn0DeLzk5YGV15ptQ764c8/oXlz\n+Okn+PbAf5i1ZhZTekxxvXrr1kH79pCaCtWquV68UqqECMaYtmPGmJzViuwN3DVTUiqcnTgB27ZB\nnTpFLmrKiinc1Pwm7xI2sBLMbdusvk4/PPusNbuzUSPoenZXvlr3Vb57kRZFgwbQsycMH+560Uop\n5TNfkrb5IjIYqCgiV2J1lX7qbbVUUeg4AmclKi4bN0KtWlCm8OU5CoqLMYapqVO5odkNLlbOQenS\nVlduWprPH9m82Zog+8QT1nFCxQTa1WrH7LTZRa6OU0yeegomTPC7MTCilKjfIT9oXJxpXNznS9L2\nD2AnsAy4D5gFPOllpZRSReTSGm1Ltlv7tbau0brIZRXKz3FtL7wAfftai+lmu6HZDUxNnepB5az7\n/N//WbstKKVUKPi69+hZAMaYPz2vkR90TJtS+XjnHVi4EMaNK1IxT379JMczj/PSlS+5VLECPP44\nxMZa67UVYtMmaN3aGmOWO2nbdmAbzcc0Z/vD2ylXupzrVdy/Hxo2hO+/tya8KqWUPzwb0yaWoSKy\nC1gFrBKRXSIyRDwd3KKUKjIfl/soTFC6RrP50dL2wgtw992nJ2wANWNq0qJaC+aum+tBBa2ccsAA\neO45T4pXSqkCFdQ9Ogi4GGhnjKlsjKmMNYv0YvucClM6jsBZiYqLH8t95BeXFTtXcPD4QdrVbudi\nxQpw9tmwenWhl23cCB99BI8+6nzejS7Sgp6VBx+EL77wqaoRp0T9DvlB4+JM4+K+gpK23sCtxpic\nYbfGmHXAbfY5pVS4cqGlbeoKq5XNswV188peYLeQIQ/PPw/33mttV+qke7PuzFw1kxOZJzyoJMTF\nWWPbtLVNKRVs+Y5pE5Hlxphz/D0XTDqmTal8VKsGy5dD9eoBF3Hu2HMZfc1ob/YadWIMJCTAypVn\n9nvaNmyA886zcrv8kjaAdv9uxwuXv8AVDQLby7QwGRnWMiM//ACNG3tyC6VUBPJynbaC/kz15k9Y\npVTR7d8Phw/nm/j4Im1PGjsO7qBDnQ4uVqwQItC0qTW7IB/PPw/33VdwwgZWF+m01GkuV/CUuDir\nm1Rb25RSwVRQ0tZKRA44vYCQ74ag8qfjCJyVmLikpVnNQD7OF3KKy9QVU+nWtBtRpaJcrlwhzjnH\naiF0kJ4OU6bAww8XXswNzW5g+srpZJmsgKrhy7Pyf/8Hs2b5tbRcsVdifof8pHFxpnFxX75JmzEm\nyhgTk8+rdDArqZTyQ1pakfvspqZO5cbmN7pUIT+0bJlv0jZ8ONx/v9WDWpjGCY2pVrEaP2z6weUK\nnhIfD/37a2ubUip4fFqnLVzpmDalHAwfDgcOwL/+FdDHN+zbQNt/t2Xbw9soXSrIf59984219cB3\n35329vr10LYtrFkDVar4VtSwlGHsO7qPkR292+l93z6rUfOnn6z/KqVUQYKx96hSqjgpYkvbtNRp\nXNfkuuAnbHCqezTPH2PDh0O/fr4nbAA3NL+BaSun4eUfdvHx1ti2Z5/17BZKKZVDk7YIpOMInJWY\nuKxZ41ezT964TE2dyg3Ng7Sgbl7VqkH58tbGorZ16+CTT2CQn6tDtqjWgvKly7N462K/q+HPszJw\noDW2rSSs21Zifof8pHFxpnFxnyZtSkWa7IkIAdh2YBsrdq7g8vqXu1wpP7RsCcuW5Rw++6w1dsyf\nVjawuiG83Is0W1yctUuCtrYppbymY9qUiiT790PNmnDwoM+zR3Mb8/MYftz8IxO6TfCgcj566CGo\nUQMee4zVq+Hii63Gw/h4/4v6Zesv3DL1Flb3X42Xu+/t32/lyd9+a61aopRSTnRMm1LqlLVrrR3N\nA0xQpqVOo3vT7i5Xyk/nnJPT0vbMM1YrViAJG8B5Nc/jZNZJlv/pPCPVLbGxVjfpM894ehulVAmn\nSVsE0nEEzkpEXAKYhJAdl92Hd/Pz1p+5utHVHlTMD3b3aGoqfPmltR5aoESE7k27+91FGsiz8uCD\nMHcurFjh90eLjRLxOxQAjYszjYv7NGlTKpL4OQkht89Wf8YVDa6gYpmKLlfKT82bw6pVPDvkJA8/\nbLViFUX3Zv4nbYGIibF6drW1TSnlFR3TplQkuesu6NAB7r7b7492ndyVm5rfRK9WvTyomH+O1W3E\nFYc/5Yv0ZkRHF62sLJNF4quJpPRJoUlCE3cqmI+DB63e6a+/hhYtPL2VUqoY0jFtSqlTAmxpO3j8\nICnpKXRu0tmDSvnvt8xz+UfHJUVO2ABKSSm6Ne3G1BXet7ZFR1vbbA0b5vmtlFIlkCZtEUjHETgr\nEXEJcEzb7LTZXJh4IfHlAxzx76JFiyDlwPlclfCLa2Xe0Ny/pT+K8qw88AAsWAC//RZwEWGrRPwO\nBUDj4kzj4j5N2pSKFAcOQEaGteSHn6avnB76WaNYGyE8+iic27ctZZb6vyhufv5a769syNhA+r50\n18rMT6VK8PTT1vehozeUUm7SMW1KRYolS+D2209bmNYXxzOPU/2V6qQ+kEqN6BoeVc43M2fCE0/A\nknm7Kd2kAezdC6Xc+dvy7pl307xacx666CFXyivIiRPWyiWjRsHVIZ6Mq5QKHzqmTSllWbMmoD1H\nv17/NS2qtQh5wnbyJDz+OLz4IpSunmBtgbBmjWvlB2N3hGxlysC//mW1tmVmBuWWSqkSQJO2CKTj\nCJxFfFwC3L5q9P9G061pNw8q5J9x46ye3U6d7DfatoVf3BvXdnmDy0ndmcq2A9sKvdaNZ+X6663l\nSiaEcHMJt0X871CANC7ONC7u06RNqUgRQEtbZlYm32/6nm7NQpu07d0LQ4bAK6/k2syhbVtY7N64\ntrJRZbm2ybVMXzndtTILIgIvvwxPPQWHDwfllkqpCKdJWwRKTk4OdRXCUsTHZeVKvze+/GHTD9Q7\ntx4NKjfwqFK+GTwYuneH887L9eb557uatAHc1PwmPvrjo0Kvc+tZuegiuPBCKxmNBBH/OxQgjYsz\njYv7dCKCUpHAGGsM2OrVUK2azx97aM5DxJeP5+lLn/awcgX7+Wfo0gVSU6Fy5Vwn9u6FevWs/0ZF\nuXKvYyePUevVWiz9+1ISYxNdKbMwGzacyj+TkoJyS6VUmNKJCOoMOo7AWUTH5c8/rVmWVav6/BFj\nDNNSp5G4OzjJi5PMTOjXzxq0f1rCBtYbZ51lJaIuKVe6HN2aduOj5QW3trn5rNSrZ20mP2iQa0WG\nTET/DhWBxsWZxsV9mrQpFQlWroRmzXINCCvcku1LKBNVhvqV63tYsYK9/TaUKwe9e+dzQbt2sHCh\nq/fseU5PJi6f6GqZhXnkEWslltmzg3pbpVSE0e5RpSLB229b/YzvvuvzR576+imOZR7jpStf8rBi\n+Vu/3srJvv3W2iPe0ejRsHQp/Pvfrt03MyuTxJGJzO8z3/O9SHObNctqcVu2zEpUlVIlT9h3j4pI\nRxFZKSJrROTxfK4ZZZ9fKiJt7PfqiMg3IvKHiCwXkf/zuq5KFVupqX5PQpi+cjrdm4VmF4SsLOjb\nFx57rICEDeAvf4HvvnP13lGloujRvAeTlk1ytdzCdOpkLbg7fHhQb6uUiiCeJm0iEgWMBjoCzYGe\nItIszzWdgEbGmMbAvcBb9qkTwCBjTAvgQuCBvJ9VznQcgbOIjoufM0dX717NniN7aF+7fUjiMmYM\nHDliba5eoJYtYetW2LXL1fvf2vJWJi6fSH4t9V7F5M03YexYq/GwOIro36Ei0Lg407i4z+uWtvZA\nmjEm3RhzApgMdM1zzXXA+wDGmIVAvIhUN8ZsN8Yssd8/CKQCtTyur1LFU/aYNh9NT51Ot6bdKCXB\nH9b6++8wbBi8/74Pk0Kjoqx1M374wdU6tK/dnpNZJ/lte3B3da9Z05p00bevtQOEUkr5w+t/sWsD\nm3Idb7bfK+ya06aziUgS0AZwd0RyhNK1cZxFbFwOH4YdO/xaT2Laymk5C+oGMy4HD0KPHjByJDTx\ndTiZB12kIsItLW7Jt4vUy5jceSfEx8Orr3p2C89E7O9QEWlcnGlc3Od10ubrLIG8g/JyPici0cAU\nYIDd4qaUym3VKmv7Kh/XMtu8fzNpe9K4tN6lHlfsdMbA/ffDxRdDr15+fNCDpA2gZ8ueTP5jMplZ\nwbQ2tYUAACAASURBVN0cVMSaV/HSS7B8eVBvrZQq5kp7XP4WoE6u4zpYLWkFXZNov4eIlAGmAh8a\nYz5xukGfPn1IslsY4uPjad26dU52n92fXtKOs98Ll/qEy/Frr70Wmc/Htm3QtKnP1y+vuJzOTTrz\n/YLvyRaM56VfvxR+/BF+/93Pz7dvD0uXkjJnDpQr51p9dq3YRblN5fgm/RuuaHDFaefz/i65HY/6\n9eHOO1Po2hVWrEimXLkwep4KOF6yZAkDBw4Mm/qEy7HXz0txPdbnhZyv09PTcYUxxrMXVlK4FkgC\nygJLgGZ5rukEzLK/vhD4yf5agA+AkQWUb9SZvvnmm1BXISxFbFyeftqYJ5/0+fLL3r/MfJL6Sc5x\nMOLy6afG1KxpzIYNARbQvr0xKSmu1skYY17/6XVz69Rbz3g/GDHJyjKme3djHnrI81u5JmJ/h4pI\n4+JM43ImO28JOK/yfJ02EbkGeA2IAsYZY14QkfvsjOtt+5rsGaaHgDuNMb+KyF+Ab4HfOdVd+k9j\nzOxcZRuv669U2OvRA66/Hm69tdBLdx/eTYNRDdj+8HYqlKkQhMrBb7/B1VfDjBnWnIKAPPYYVKpk\n7Srvol2Hd9FoVCPSB6YTXz7e1bJ9sXs3nHsuvPceXHFF0G+vlAqyoq7TpovrKlXcNWsGH30ErVoV\neun438bz2ZrPmNpjahAqZk1q/dvfrKUuuhdlSbivvoKhQ+H77wu91F83/u9GrmxwJfe1vc/1sn3x\n1VfW5ISlSyEhISRVUEoFSdgvrquCL3dfujolIuNy9Cikp/u8RtvHKz7mpuY3nfaeV3FJT4erroIX\nXihiwgbWZITff4eMDDeqdpo7W9/J+CXjT3svmM/KlVdajaS3324tOhzOIvJ3yAUaF2caF/dp0qZU\ncbZyJTRoAGXLFnrp3iN7+X7T93Ru0tnzam3YYHX3Pfww9OnjQoEVKlh9q99840Jhp7u60dVszNhI\n6s5U18v21fDhcOCAleAqpVR+tHtUqeJswgT4/HOYPLnQS99b8h4zV81k2s3TPK3SmjVWwjZokLXX\npmteftlqvnvzTRcLtTz+1eMYTMj2YQXYsgXatoWJE60uZaVU5NHuUaVKsmXLrK2efPDxio+5sfmN\nnlcnORmeftrlhA2sfsSvvnK5UMudbe5kwu8TOJ553JPyfVG7tpWD33abtXOXUkrlpUlbBNJxBM4i\nMi4+Jm37ju5jwYYFdGnS5YxzbsXlyy/h8sthxAhrmybXtWpljWlza72jXJpWbUrTqk35ZKW1HGSo\nnpUrroC//x169oQTJ0JShQJF5O+QCzQuzjQu7tOkTanizMekbeaqmVxW/zJiysV4Uo2xY6F3b5g6\nFW65xZNbQKlSVlYzZ44nxd/f9n7G/DzGk7L98eST1uomjz4a6poopcKNjmlTqrjauxfq1YN9+6yE\npgBdJnXh5hY306uVP/tHFS4zEx55BL74Aj77zNpNy1OTJ8OHH1o3c9nxzOPUe60e83rPo3m15q6X\n7499+6B9exg8GO64I6RVUUq5SMe0KVVSLV8OLVoUmrBlHM1gfvp8x67RojhwwFrTd+lS+PHHICRs\nANdcA99+a93cZWWjynLPeffw1s9vuV62v+LjrcWIH30UFi0KdW2UUuFCk7YIpOMInEVcXPzoGk1O\nSiaufJzj+UDismkTXHIJVK8Os2dD5cp+FxGYuDjo0MGzLtJ7z7+X/y77L1989YUn5fujWTNrY/kb\nboBt20JdG0vE/Q65ROPiTOPiPk3alCqufEzapqROOWNB3aL45RdrybRbb7WSCh+WiHNX167wySee\nFJ0Ym0hyUjKz02YXfnEQdO0K99xjJW7HjoW6NkqpUNMxbUoVVx06wPPPW2ts5GP/sf0kvprIxkEb\nXdlbc8YMuPtuePttF3Y5CNSWLVayumMHlCnjevHfb/yeOz65g1X9VxFVKsr18v2VlQU33mhtcfXO\nOyABj4ZRSoWajmlTqiQ6edLa1qlNmwIv+3TVp/y13l+LnLAZAyNHQr9+MGtWCBM2sBY0a9wY5s/3\npPgOdTpQrVI1Zqya4Un5/ipVCt5/3xo3+Fboh9sppUJIk7YIpOMInEVUXFauhFq1rDFeBfjfiv8V\n2jVaWFxOnoT+/eE//7ESh3bt/K2sB7p3h48/9qRoEaFjVEde+eEVT8oPREyM1co5bBiE8jGOqN8h\nF2lcnGlc3KdJm1LF0S+/wPnnF3jJ3iN7SUlP4fqm1wd8m2PHrHXXVq+G77+HunUDLspdt9xiLQp3\n3JsdDP5S9y/sOLSDHzb94En5gWjY0Nri6pZbIC0t1LVRSoWCjmlTqjj6v/+zMqhHHsn3knd/fZfZ\nabOZ0uP/27v3+JzL/4Hjr8vG5jiHnMmQichIImEOOSWHQsi5HHIqlVLfX0UlFXIupCinOSYlp2iU\nw5w2cooMOc0pG9mBbdfvj+sem91j7L53n97Px+N+bPfn/hyuvXcf3vd1XHJfl4iJMRVauXLBggXg\n43O/hbWT+vXNivRt2tjl9FO3T2VtxFp+7OQczaTJpk83TdVbt2bhqF0hhE1InzYhPFEGatrm/zmf\nLlW73Nfpo6OhWTMoUgQWLXLChA2ga1eYN89up+9dvTc7Tu8g7GyY3a5xP/r1g+bNoWNH51zqSghh\nP5K0uSHpR2Cd28QlMdHMaFujRrq7nL5ymvDIcFpWaHnX090el//+M3PYVqkCs2eDt3cmy2sv7dub\n+dqio21+6pCQEHJmz8nbdd/mw00f2vz8mTVunBk4++qrZpBIVnGb15CNSVysk7jYniRtQriaQ4eg\nePE7DkJYtH8RbR9ui6+37z2dOjYWWreGypVh6tS7LrbgWAULQqNGpm+bnfR9rC+hp0KdrrbNy8us\n6LVpE0yZ4ujSCCGyivRpE8LVfP+9mXcjODjdXR7/+nFGNx5Nk3JNMnza69ehXTuTC86ZYxIDp7d8\nOYwZY0ZJ2MnEbRMJORHCDy/8YLdr3K9jx8x0fbNmmSZTIYRzkz5tQniaXbvu2DR6+NJhTl05RUP/\nhhk+pdamr1TynGAukbABtGoFJ06YOevspO9jfdlxegfbTzvfIqBly8KSJdC9Oxw44OjSCCHsTZI2\nNyT9CKxzm7js3HnHQQgL/lzAC4+8kOHZ/ENCQhg1yqyKFRxsl0UG7Mfb26zzNG2aTU+b8rmSM3tO\nRgaN5I21b+CMNft168LYsfDss3Dhgn2v5TavIRuTuFgncbE9SdqEcCXXr0N4ONSqZfVhrTXz993b\nqNFffzVriP70E+TObauCZqGXXzbZ5tWrdrtEz8CeXIm/wg+HnK+JFExNW6dOJnGLiXF0aYQQ9iJ9\n2oRwJaGh0L8/hFnvGB96KpSuP3Tl8KDDqAwsUrlzpxkpumFDhtaed17PPWfmKOnXz26XWHd0Ha+s\nfIUDAw+QwyuH3a5zv7SGHj3MYNqlS5141K8QHkz6tAnhSbZsMT3P0zE7fDY9q/XMUMJ28aKZNWP6\ndBdP2MBMNjx+vJkOxU6eLv80AYUCmBw62W7XyAylYOZMU9M2eHDWTgUihMgakrS5IelHYJ1bxOUO\nSVvsjVgWHVhE92rd73qaxER48UV44QUoWDDExoV0gAYNIH9+M5rUBtJ7roxvNp7Rf4zmZPRJm1zH\n1nLkMLVs27bB6NG2P79bvIbsQOJincTF9iRpE8JVaH3HpG35oeXULFGT0n6l73qqkSPNbPqjRtm6\nkA6iFAwfbjIVO1YxVXygIkOeGMKgVYOcclACQL58sHKl6af4/feOLo0QwpakT5sQruLECahdG86c\nMUnKbZrOaUqvwF50rtr5jqfZtMl0Wg8Lg6JF7VVYB0hKMu28EydCk4zPT3ev4hPiCZweyCeNPqFd\npXZ2u05mHTwIDRuaOdxatHB0aYQQIH3ahPAcv/9uatmsJGz/RP/DzjM7aftw2zueIioKunUzfZ/c\nKmEDM8nc8OEwYoRda9t8vH2Y0WoGg1cN5t/Yf+12ncyqVMm0FvfoAdJKJYR7kKTNDUk/AutcPi6/\n/WaWbbJizp45dHykIzmz57zjKQYMMNNCtEyxJKnLxyWlLl3gypVM9227W0zqlalHh8od6PdzP6dt\nJgVTMbtokVlcftu2zJ/PrZ4rNiRxsU7iYnuStAnhKjZssJq0aa2ZvWc2vQJ73fHwefPMFG9jxtir\ngE7Ay8v8gW+/bTrt2dHoJqM5fOkws8Jn2fU6mRUUBLNnQ5s25v8vhHBd0qdNCFeQvMiklf5s6yPW\n89qa19jbf2+6U32cOmVWvlqzBqpXz4oCO5DW0LQptG0LAwfa9VL7z+8n6LsgNvfeTEChALteK7OW\nLoVBg0zuX6mSo0sjhGeSPm1CeILkWjYrSdlXO7/ilZqvpJuwaW3m4x082AMSNjAxGjfODJGNjLTr\npR4p8ggfN/yYdgvbcTXefisy2MLzz8Pnn5sxGrJOqRCuSZI2NyT9CKxz6bik0zR65uoZ1h9bT9dH\nu6Z7aHAw/POPaTG0xqXjkp5HH4WXXoJXX72vw+8lJn0f68tTpZ+i2w/dSNJJ93W9rNKtG3z2GTRu\nDHv23PvxbvlcsQGJi3USF9uTpE0IZ5eUZBYItZK0zdw9k46VO5LPJ5/VQy9cgKFD4ZtvzMSrHuX9\n9828JkuW2PUySikmt5zMxZiLjAgZYddr2ULXrjBpkmlB3rnT0aURQtwL6dMmhLPbvh169YL9+1Nt\nTkhKoOzEsvzU+ScCiwVaPfTFF6F4cRg7NisK6oS2b4dWrcxPf3+7Xurcf+d48tsnGfbkMPrX7G/X\na9nCjz9Cnz6wYoUZZSqEsL/M9mmTJYWFcHY//2wSj9s3H/6ZUvlKpZuw/fKLWV9+7157F9CJ1apl\n2oU7doSNGyHnnadEyYyieYqytuta6s+uT37f/HSq0slu17KFNm1M7Wvr1qYJPZ3ZZIQQTkSaR92Q\n9COwzmXjkk7SNn7beIbUGmL1kLg4s4b61KmQK9edT++yccmo11+HChWge3fT1JwB9xuT8gXLs/rF\n1by6+lWWHVx2X+fISi1awOLFZoWMxYvvvr/bP1fuk8TFOomL7UnSJoQzO33aLF9Vp06qzTtO7+B4\n1HHaV25v9bCxY01f/GbNsqKQTk4p06kvMtIMobVzl4qqRauy6sVVDPxlILPDZ9v1WrbQoAGsWwev\nvQZffuno0ggh7sTufdqUUs2BCYAXMFNr/ZmVfSYBLYAYoKfWOsyy/VvgGeC81rqqleOkT5twb199\nBX/8YWbGTaHTkk7UKlmL1+u8nuaQEyfgscdg1y4oUyarCuoCoqOheXMIDIQpU8xEvHZ06OIhms5p\nypAnhvBGnTfSnZLFWUREmCS/c2czW4qTF1cIl+TU87QppbyAKUBzoDLQWSlV6bZ9WgIPaa0rAH2B\nr1I8PMtyrBCeKTjY9MdK4UTUCdZFrOPlGi9bPWToUDPThSRst/Hzg9Wr4fBh05HryhW7Xu7hBx7m\nj95/MHfvXHr+2JO4hDi7Xi+zypWDzZtNX8j+/SEx0dElEkLczt7No7WAv7XWx7XWN4BgoM1t+7QG\nvgPQWocC+ZVSxSz3fwcu27mMbkf6EVjncnE5eRL27TO1QylMDJ1I78DeVqf5WLPGzL81bFjGL+Ny\nccmM5MStTBl44gkzJYgVtorJg34Psrn3ZuIS4qg/qz7HLh+zyXntpUgRs8Tt0aPQoYPpG5mSRz1X\n7oHExTqJi+3ZO2krCZxMcf+UZdu97iOE51m4ENq1Ax+fm5suxlzkuz3fMeSJtAMQ4uPN4IOJE8HX\nNysL6mKyZzedt95917QHfvSRCZ6d5M6Rm+Dng+lcpTO1ZtZiVtgsp15kPm9eWLnSjCxt2hSiohxd\nIiFEMntP+ZHRd6bb23cz/I7Ws2dP/C3zL+XPn5/AwECCgoKAW1m+3Jf7yUJCQpymPHe9P306vPIK\nyaUPCQlhxq4ZdKzckdJ+pdPsP3hwCAULQqtWTlJ+Z79fujRMmULQnDnwyCOE9OoFTz5JUMOGBAUF\n2fR6Simqx1fns/KfMX7beJYeXEqXvF0okbeE88QjxX0fH+jbN4SpU6F+/SBLq7J5PJkzldfR9239\nfHGn+8mcpTyO+PtDQkI4fvw4tmDXgQhKqdrACK11c8v9d4CklIMRlFLTgBCtdbDl/iGggdb6nOW+\nP/CTDEQQHmXnTmjf3rRTWTrMX4y5SMUpFQnrF8aDfg+m2v3UKdO/PjQUypd3RIFd3Jo1pjNgqVJm\n3dKqad5ubCY+IZ4vtn7BuK3jGPLEEN6q+xa+3s5ZNaq1WfZq+nTTqlyxoqNLJIRrc+qBCMBOoIJS\nyl8plQN4AVhx2z4rgO5wM8mLSk7YxP25/RuOMFwqLlOnwiuvpBrhOHbLWDpW7pgmYQN44w0YMOD+\nEjaXiou9NGtmOgO2bg1NmhDyzDN2W2zex9uHd+q9w+5+u9lzbg8VJldg+s7pXE+8bpfrZYZSMHy4\nWRGsQQP48ssQRxfJKclryDqJi+3ZNWnTWicAg4A1wAFgodb6oFKqn1Kqn2WfX4AIpdTfwHRgQPLx\nSqkFwBYgQCl1UinVy57lFcIpXLoEy5ebBc8tTl05xde7v+bdeu+m2X39elPDNnx4VhbSDWXPDoMG\nwV9/QZ48UKWK6e8WE2OXyz3o9yBLOy5lacelLDu0jIenPMyssFlOmbz16gUzZ5pugKtWObo0Qngu\nWXtUCGfzyScmcfjuu5ubeizvQam8pRjVeFSqXW/cgGrVYNQoM2ZB2NCxYyYT3rIFJkyA55+36+U2\nndjEhxs/5NDFQwyuNZh+NfuR3ze/Xa95r7ZuNc+zzz83C0wIIe5NZptHJWkTwplER5sllzZuhEpm\nSsPdZ3fzzPxn+GvQX2mm+Rg3zsxmv2qVTIZqN7//blZWr1LFTMpbrJhdLxceGc64reNYeXglPar1\n4LXar1Emv/NMunfwoJmFZvBgePNNR5dGCNfi7H3ahANIPwLrXCIuEyaYBSEtCVuSTuLV1a/yQYMP\n0iRsZ87A6NEwaVLmEjaXiEsWSxWTevUgPBwCAsxoj5Ur7XrtwGKBzGk3hz399+CVzYsaM2rQeWln\ndp3ZZdfrZkRISAiVKplJeGfPNn0pM7icq1uT15B1Ehfbk6RNCGcRGQmTJ5te3xZf7/qaG4k36FOj\nT5rdhw0zFUABAVlZSA/l62uarRcvNgNE3nwTrtu371lpv9KMbTqWiCER1Cxek7YL29Lwu4asPLyS\nJO3YTKlUKVMBuXUr9OsnqycIkVWkeVQIZ9GpE/j7w6efAnDm6hmqTavGhu4bqFo09RQUGzdC165w\n6BDkzu2AsnqyS5dMh66YGFi6FAoWzJLL3ki8waL9ixi7dSzXE6/zeu3X6fpoV3y8fe5+sJ389x88\n+6xJ4mbNAm97z/wphIuTPm0uXH4hbgoOhvfeM9NO5MqF1ppnFzxLYLFAPm70capdb9yA6tVhxAgz\nlZtwgMREM0jhxx/h55+ztLpTa82GYxsYs2UMBy8e5L3679EzsCfe2RyTMcXEmMEJfn4wb54ZhCuE\nsE76tIk0pB+BdRmKy8WLZjbRxo2haFHTLFakiFmncuhQ8yEdG2vbgu3bZ3p1L1wIuXIB8MXWL7gY\nc5H3G7yfZvdJk6BECdsNZpTnS1p3jYmXF4wZA2+/bfq8bdyYJeUC86bfuFxjVnddTfDzwcz/cz6V\nplZi/p/z7d5sai0uuXLBihVmndL27e26IpjTkteQdRIX25OkTQgw1VcffmhGbv71F7z+uul8/u+/\nsHcvjB1rkriJE03G1L27GbKZkJC56x4+bAYeTJoENWoAsPXkVj7b/BnB7YPJ4ZUj1e6nT5vBB1Om\nyGhRp/DSSzB/vlld3c4DFKypU7oOG3psYHqr6UwKnUTtmbUJPRWa5eXw8YElS8x6pW3a2G1qOyE8\nnjSPChEZaT5pChSAr7+G0qXvvv/ixebDOiLC9EXr2hVq1ry3TGrdOpP8ffzxzYl0Iy5H8NS3TzHj\n2Rm0CmiV5pBOneChh8whwomEhprn0Pjx0LmzQ4qQpJOYt3cew9cPp1n5ZoxuPJqieYpmaRkSEsxE\nvKdOwU8/mTmKhRC3SJ82Fy6/cAJHj0LTptCjB7z3Hho4EX2CiMsR/Bv7LwB+Pn745/enXIFyeGXz\nSn3833+bjjxz50K2bNCliznfY4+ZaofbaW1q8EaPNpO2fvedaYoFzl49S9B3QQypNYSBtQamOXT9\nepPbHThwsxVVOJN9+8wEZu+9Z4ZUOsiV+Ct8tPEjZu+ZzahGo+hTow8qC6tlExPNn3/oEPzyC+TL\nd/djhPAUkrS5cPntJSQkhKCgIEcXw+mkiUtkJNStS9LrQ1nb7CHm7p3Luoh1eCkvAgoFUChXIQCi\n46KJuBzBuWvneLzE4zQt35QWD7UgsFjgrQ9DrWHHDjOgICQEjhwxk7GWLQuFC5vHT5+GXZa5tl55\nxSyZZBn6eTzqOE/PeZpegb2sLlV1/bpZ+eDTT02Fjl3jIu4/JkePQpMmZkqQgWkT76y0//x+ev3Y\ni3w++ZjZeib++f0zfc6MxiUpyTy9d+82C83nd66FHWxOXkPWSVzSymzSJgO0hWeKjUU/8wx7mwXS\nUU8m74a89KjWg08af0LpfKWt1kxcib/C7yd+Z13EOp5f9DzZvbLTpUoXOlftTEChAKhVy9wAoqLg\nzz/hxAm4cMHUwj31lOk3V7lyqmbUXyN+peuyrvyv3v8Y/MRgq8X94guzGHzr1naJhrCV8uXht98g\nKMj8jwcMuOsh9vJIkUfY8tIWvtj6BY9//Tgjg0bySs1XsqTWLVs2mDrVjN1p0gTWrs2ymVGEcGtS\n0yY80qVu7dl5+DdG9gngo0Yf06hso3v6MNNas/30dub/OZ+F+xdSMl9JOlTuQIfKHShfsHyGznH+\n2nn+t/5//PL3L8xtN5eGZRta3e/wYXjySVORV7ZshosoHOnYMZO4vfMO9O/v6NJw6OIheizvQaGc\nhZjddjZFchfJkutqDW+9Zbpv/vorPPBAllxWCKclzaMuXH6R9bTWrPywK5WmBPPHsol0e2oA2VTm\nBlEnJCWw6cQmFu9fzLJDyyiVrxQtH2pJ7VK1qVmiJkVyF7mZEF64doHQ06EsO7iM5YeW071ad0YG\njcTP18/quZOSoGFDeO45ePXVTBVTZLWICJO4/d//Qd++ji4NNxJvMHLjSL4N+5ZZbWbR7KFmWXJd\nrU0IfvzR9MssmrVjI4RwKpK0uXD57UX6EVj389qfWXFkCp8NX0/cLysoXq+Fza+RmJTIphObWH9s\nPVtPbSXsbBj/Xf8PP18/Ym/Ekt0rO9WLVadVQCu6Ptr1rjUe06aZsQp//GGmBrMHeb6kZbOY/P03\nNGpkliZ7+eXMn88GQo6H0P2H7nSo3IFPGn9yTysq3G9ctDY9A4KDTeJWosQ9n8KpyWvIOolLWtKn\nTYgM+Cf6HwauHMiK7dnIO+x/FLBDwgbglc2LhmUbpmrqjE+IJyouCl9vX/L55MtwM+zJk2Yg4saN\n9kvYhJ099JDJUho1Mn3cLFO7OFKQfxDh/cN5ecXL1P6mNgvbLzR9Mu1IKfjgAzOgukED2LDh7jPr\nCCHSkpo24fb2nd9Hi3ktmHK9KW1mbTZLRfk4br3GjNAaWrWC2rVN4iZc3OHDZmqXDz5wmho3rTXT\nd03nvd/eY1zTcXSv1j1LrjtuHHz5pcll/f2z5JJCOA2paRPiDnac3kGrBa2YUu9T2nQcAbNnO33C\nBjB9Opw9a1ZJEm4gIMBULzVqZDoqOkEfN6UU/Wv2p27puryw5AV+jfiVL5/5kjw57Dsj7htvmBq3\noCCTuJXP2LgdIQSyjJVbkvXejJ1ndtJqQSu+af0NHZYeJCQgwPTqd3IHD5ratQULrM/Pa2vyfEnL\nLjGpUMFMB/LxxyYrdxJVi1ZlR58d5PDKwWMzHiPsbFi6+9oqLoMHw/DhJnE7fNgmp3QoeQ1ZJ3Gx\nPUnahFvadWYXz8x/hpnPzqRVfBlTw/bKK44u1l3Fx5tVkD75BCpWdHRphM099JBJ3D75BL76ytGl\nuSl3jtzMbD2TEQ1G0HRuUyaFTsLeXU/694eRI833qL177XopIdyG9GkTbmf32d20mNeCGa1m0Cbg\nWahXz6zx6cClhTJq6FAzH+/SpbIgvFuLiDBNpcOGOXzlhNsd/fconZZ2onie4sxqM+vmyiD2snCh\nqXlbsODmim5CuK3M9mmTmjbhVvae20vLeS2Z9sw02jzcBr791vQh6tPH0UW7q+BgM5fVzJmSsLm9\ncuVMjduYMTBpkqNLk0r5guXZ3HszAYUCqD69OptObLLr9V54ARYvNsv2zp1r10sJ4fIkaXNDntqP\n4K+Lf9F8bnMmNp9Iu0rtzPJR775rJjvLls2p47J3r6lt+OGHrF/ux5nj4ihZEpOyZc06tZMmwYgR\nZsiwk8jhlYOxTccyrdU0Oi7uyIcbPyQxKdFucWnQwOSw//d/puXYiUKRIfIask7iYnuStAm3kLzg\n+qhGo3ihygtm47Bh0K2bWWndiZ0/D+3awYQJTl9UYWv+/rB5s6liHTgQEhMdXaJUWlZoya6+u/jt\n+G80mdOEC9cu2O1alSvDli2ma8CLL0JMjN0uJYTLkj5twuWduXqGerPqMbT2UAbVGmQ2hoSYfmz7\n90PevA4t351cu2Y6YjdrBh995OjSCIeJjoa2bc3inHPnOt20NIlJiYz+YzSTt09mfLPxdK7S2W4L\nz8fGmu6ne/eammdZb1e4E1nGyoXLLzLvwrULNJjdgO7VujP8qeFmY3w8BAaadpZ27RxbwDu4ccMU\nr3Bh0/VO+rF5uLg4U8UUFQVLlkCBAo4uURrbT2/npRUv4Z/fn6+e+YpS+UrZ5Tpaw+TJMGqUeW08\n84xdLiNElpOBCCINT+lHEBUXRbO5zXiu0nO3EjaA0aPh4YfTJGzOFJfr16FTJ5OozZjh2ITN33Eu\nYwAAE31JREFUmeLiLBwSE19fWLQIqlQxS2E44QRmMUdi2NV3FzWL16T69OpM2zmNxCTbN+kqBUOG\nmNx1wADT3zM21uaXsRl5DVkncbE9SdqES4qOi6bFvBbUL1OfjxqmaFc8eBCmTjVf053U9etmxNyN\nG+ZDKXt2R5dIOA0vL5g40SwbUK8e/Pqro0uURg6vHHwQ9AG/9fiNuXvn8vjXj/P7id/tcq169SA8\n3PT7fPxxswKdEJ5MmkeFy/k39l+azW1G7ZK1mdRi0q2+NUlJUL++mZ3Wyea+Svbvv/D882aEaFat\neCBcVEiIqY595x1T7eSE7edaaxbuX8hb696i7oN1+azJZzzo96AdrgPffw9vvmmWbn3/fciZ0+aX\nEcLupHlUeJSLMRdp/H1jGpRpkDphA1PDlphoplp3QocOmVavxx83rWCSsIk7Cgoywym//x7atzd9\n3ZyMUopOVTpxaNAhAgqaed2GrBrCmatnbHwd6NHDDE6IiDAtyGvX2vQSQrgESdrckLv2Izhz9QwN\nv2tIy4daMubpMakTtgMHzJo4331nmpiscFRctDb91urVM+stfv55ukV0CHd9vmSG08SkXDmTuJUo\nATVqwM6dDi1OenHJlT0XIxuO5MCAA2TPlp0qX1Zh6OqhnIw+adPrFy9uVlCYPNl8N2vVygwQdzSn\neb44GYmL7UnSJlzCvvP7qPNNHbpU6cLHjT5OnbDFx5tRd6NHQ0CA4wppxZEj5oNl2jTYtAl693Z0\niYTL8fExWcrnn0PLluZ5npDg6FJZVTRPUcY1G8f+AftRSlFtWjU6LelE6KlQm16nZUvTfbVxYzNl\nTp8+8M8/Nr2EEE5J+rQJp7c+Yj2dl3ZmQvMJdKnaJe0OAwfCmTOwbJnT9PuJjISxY8069cOGwWuv\nOd3UW8IVnThhMpTLl82T65FHHF2iO7oSf4Vvw75lUugkCuQsQK/AXnSu0tmm65levgyffWZqs9u2\nhbffhooVbXZ6IWxK+rQJt6W1ZsK2CXRZ1oXFHRZbT9hmzIANG8wHmIMTNq1h61bTUbpyZTPt1r59\n5kNEEjZhE2XKwJo10Lev6fP27rtw9aqjS5WufD75eK32axwZfIRPG3/K1lNbKT+pPO0XtWfJgSX8\nd/2/TF+jQAH49FP4+2+zwES9evDcc7BunRmbJIQ7kaTNDblDP4LouGg6LO7A3L1z2fbSNhr4N0i7\nU0gIvPcerFgBfn53Pac94nLpkqngGzzYdD/q3dv8PHwYpkyBYsVsfkmbc4fni605dUyUMrVt4eFw\n6pSZk3D27CzJUO43Ll7ZvHi6/NPMe24eJ147QbPyzZi5eyYlxpWg1fxWzNw9k8j/IjNVtoIFzajS\niAizwsiwYabGbexYOH06U6e+K6d+vjiQxMX2vB1dACFut/rv1fT7uR+tKrRi3nPz8PG2Uk0VGgod\nO0JwMFSoYJdyJCTAxYtmjqiUt+PHTX+aAwfM6kN165p+NT/8YNYOdZIWWuHuSpY0I0tDQ037++ef\nm+lBOnVy6sn//Hz96PNYH/o81oeouChWHVnF8r+W8+baNymVrxSNyzamcTkzQtzP9+5fxm6XJ49Z\nBqtvX9i2DWbOhEcfNSNOO3UyA3ELF7bDHyZEFpA+bcJpnL16luHrh7Px+EZmtp5Jk3JNrO+4aRN0\n6HDf69skJJiuQUePmm/g586ZPmgpf54/bxKyggWhSJHUt9KlTfNnpUqmtSqb1FcLR9Ma1q836z5F\nRJgq3549zRPURSQkJbD77G7WR6xnw/ENbDu1jYqFKlKnVB3qlK5DnVJ18M/vf19rnsbHm1bl4GBY\nudJUTjZvbm61ajnXaG7h3mTtURcuvzCuxl/li61fMGn7JHoH9ub9Bu+T1yedRd7nzYOhQ2H+fGiS\nTlJnERtrpgPYs8fM7/TXX6bfy8mTptmyfHmTgBUtau4XK2Z+T74VLChv5sIFhYWZLzQLFpjR1C1a\nmOykWjWXmhwwLiGOXWd2sfXUVnM7uZUknUTtUrWpXao2NYrXoHqx6hTOfW/VZtevw+bNsHo1rFpl\nvsA98QQ8+aS51axpXvtC2INTJ21KqebABMALmKm1/szKPpOAFkAM0FNrHXYPx0rSZkVISAhBQUGO\nLsZdnbl6hkmhk5i5eybNHmrGxw0/pmyBstZ3jo6G11+H3383az89+miqhyMjTRefPXtu3Y4dMy2n\n1aqZ240bIbRrF4S/vwwMSMlVni9ZyS1iEh9vaqVXrTK98o8eNVVMlSubbyulSpm+oLlymeUFtDZr\nqyXf4uLMLTb25s+Qw4cJKlw41Tbi4kx/Ol9fc56cOSFvXtMGWbiwqZ4uXPjWN6M8ee7rz9Fa80/0\nP2w9tZXQU6GERYYRHhlOXp+8VC9WnerFqptErnh1SucrneEauYsXTTPqli0mmQsPN0WsWtXcqlQx\n/VTLlTPzxFmrWXeL54sdSFzSymzSZrc+bUopL2AK0AQ4DexQSq3QWh9MsU9L4CGtdQWl1BPAV0Dt\njBwr0hceHu60L5SouCh+OfILc/bOYdupbXR7tBvb+2ynXIFy1g+IizP9dkaMgGefJWnHLo5E5iV8\noXlzDQ83FQs3bkBgoLk1b25GbFaqlLpiYcKEcCpWDMqKP9OlOPPzxVHcIiY+PvD00+YGEBNjvs0c\nPmyqm/ftMyNPY2LMTSnTFy755uubOhHz9SU8NpagihVTbSNnTnNschIXE2POe/GimQz4wgXT3yAy\nEs6eBW9vk/0UK2Z+Jt9S3i9WDAoVSpUhKaUok78MZfKXoVOVToBJ5I5FHWP32d2EnQ1j+q7phEWG\ncT3xOlWKVKHSA5WoXLjyzVvxPMXTJHMPPGDmUmzVCss5Te3bn3+a27p1psX52DGzKEWZMlC2rMl7\nS5Qwxd2xI5w8eYIoXtzU0ntLb3HATV5HTsaeT61awN9a6+MASqlgoA2QMvFqDXwHoLUOVUrlV0oV\nA8pm4FiRjignWu7mcuxldp3dxbZT21hzdA3hkeHUe7Ae3R7txtKOS8mVPVfag7Qmfvd+or5eTL5F\nX3O6cCBzqi1nVVgtDpQ0X9qrVzcJ2oAB5mepUncfAOBMcXEmEpe03DImuXJBnTrmdp+iRowwQ6Xv\nl9Zw5cqtBO7s2Vu/79t36/fISLNQr7e3ST59fc3P7NlNnwUvL/D2Rnl5Uc7bm3JeXrT39rZsr0g8\niVxLvMaVxN+5mrCaqMRr7Ey4ymWfJChcGO+ixfEpXpq8JctRsMzDFCtfjeLlHsU7hy9KmalD/P3h\n2WdTFz8mxgxEiogwA3fPnjV56aZNUezebe5fvGjyzeLFU1c0pvw95c+8ed138JJbvo4czJ5JW0kg\n5Romp4AnMrBPSaBEBo4VDqS1Jj4xnsuxl7kQc4EL1y5wIeYCp6+c5ujloxy9fJQjl45wIeaCabYo\n+jivVv8/KueqT+zVnFw+Bz8fhP/OXiUx4gQ3jv6Dz/G/KHlmO5Wjt6GSEllfsD1hgWvIWasqFSvC\n+ADTslOggKP/eiHEfVHKNMn6+d19BlytTQe0+Hhzi4szo4gSEswaw4mJt36/bZtPYiI+iYkUTPl4\nQgJXz53k0omDxJw+TsK2v8l2KZScl6LxjYpDxyRxKWc2ovxycLVAbuIK+pFQuCAUKYpXiZJkK1Yc\n7+Il8SlaksqVilCrbjHy5X0AHy8fRo40jQFgLpVcsZhcyZj88+jR1PcvXDCtBLcndYUK3QpTvnyp\nf/r5mUQvuaLTx0dq9jyJPf/VGe1sZrPvGBs2wBdfpCiATv17o9NzqH924c2CqeTfLD8Sva5yzfdQ\nqoJpy4Pqtr9G3fbnKZ16p5T7a6v733Y/1T0r506x7faApXpcwfZ/Y9nydYpAWD3fre3K2mMq9d+t\nVRKQhCLJ/K6SQCuyaS9UUnb8tDf5tTcBidlplOiDTvCFG7nRNwqidQxKbSSb2kg2r3iKq6tUSLpK\nzsSrJHllJ8qvDHGFHyTRvzyqfXNyNnqfQnUfpqeXoie2c/z4cRuezX1IXNKSmFiXpXFRymQkNuyA\nmtdys+b69ViuHd9HzInDxJ48SvyZf0g4cxp1/gzZD+wn9+X/yBcVS76r1/GNTyRXvJkXLyoH7E+A\nI1M/IsFLobMpkryy4eWVjSJe2SjslY2kbIpEL2WpUlPmPTcX4G8+GXSSQsdB0gmFPgZJWqE1aK1I\n0qCTIElDtIYojeUx8w6e/FFiTq1AWd7TU/y8GdI0v1jfZiubz0ez5vuvMrSvtcvnii9PjgTbrZ4B\ncCR/TYIDPrDpOTNqzJjMn8NuAxGUUrWBEVrr5pb77wBJKQcUKKWmASFa62DL/UNAA0zz6B2PtWyX\nUQhCCCGEcBlOORAB2AlUUEr5A2eAF4DOt+2zAhgEBFuSvCit9Tml1KUMHJupP1wIIYQQwpXYLWnT\nWicopQYBazDTdnyjtT6olOpneXy61voXpVRLpdTfwDWg152OtVdZhRBCCCGcnUtPriuEEEII4Slc\negEepdQbSqkkpVTBFNveUUodUUodUko1dWT5spJSaoxS6qBSao9SaplSyi/FYx4Zk2RKqeaWv/2I\nUuptR5fHUZRSpZVSvyml9iul9imlhli2F1RKrVNKHVZKrVVK5Xd0WR1BKeWllApTSv1kue/RcbFM\nwbTE8r5yQCn1hKfHBG6+n+5XSv2plJqvlPLxxLgopb5VSp1TSv2ZYlu6cfCUz6F04mKzz2eXTdqU\nUqWBp4ETKbZVxvR/qww0B75USrns33iP1gKPaK2rAYeBd8DjY5JykufmmBh0VkpVcmypHOYGMFRr\n/QhQGxhoicVwYJ3WOgBYb7nviV4FDnBruLWnx2Ui8IvWuhLwKHAID4+JpZ91H6CG1roqpvtOJzwz\nLrMw76spWY2Dh30OWYuLzT6fXTloXwBv3batDbBAa33DMjHv35hJft2e1nqd1jrJcjcUKGX53WNj\nYnFzkmet9Q0geaJmj6O1jtRah1t+/w8zWXVJUkxybfnZ1jEldBylVCmgJTCTW7MPeGxcLDUB9bTW\n34LpZ6y1jsaDY2JxBfPlJ5dSyhszcccZPDAuWuvfgcu3bU4vDh7zOWQtLrb8fHbJpE0p1QY4pbXe\ne9tDJTAT8SZLnqzX0/QGfrH87ukxSW8CZ49mqTGojnkDKaq1Pmd56BxQ1EHFcqTxwDAgKcU2T45L\nWeCCUmqWUmq3UuprpVRuPDsmaK3/BcYB/2CStSit9To8PC4ppBcHT/8cSilTn89OO4+yUmodUMzK\nQ//DVC2mbPu909QfbjPS4g4xeVdrndwP53/Ada31/Ducym1ikgGe9LdmiFIqD7AUeFVrfTXlWoxa\na+1p8x8qpVoB57XWYUqpIGv7eGBcvIEawCCt9Q6l1ARua/LzwJiglCoPvAb4A9HAYqVU15T7eGJc\nrMlAHDwuRrb4fHbapE1r/bS17UqpKphvgXssHzalgF3KLDh/GiidYvdSlm1uIb2YJFNK9cQ08TRO\nsdmtY5IBt//9pUn9zcajKKWyYxK2OVrr5ZbN55RSxbTWkUqp4sB5x5XQIZ4EWiulWgK+QD6l1Bw8\nOy6nMK0ZOyz3l2C+LEd6cEwAagJbtNaXAJRSy4A6SFySpfea8fTPIZt9Prtc86jWep/WuqjWuqzW\nuizmzaWGpUp2BdBJKZVDKVUWqABsd2R5s4pSqjmmeaeN1jouxUMeGxOLm5M8K6VyYDp9rnBwmRxC\nmW853wAHtNYTUjy0Auhh+b0HsPz2Y92Z1vpdrXVpy/tJJ2CD1robHhwXrXUkcFIpFWDZ1ATYD/yE\nh8bE4hBQWymV0/J6aoIZvOLpcUmW3mvGoz+HbPn57LQ1bffg1kqaWh9QSi3CvIgSgAHacyaimwzk\nANZZaiC3aq0HeHhMZKLm1OoCXYG9Sqkwy7Z3gE+BRUqpl4DjQEfHFM9pJL8+PD0ug4F5li87RzGT\nn3vhwTHRWu9RSn2P+TKYBOwGZmCWNPWouCilFmCWnXxAKXUSeJ90XjOe9DlkJS4fYN5nbfL5LJPr\nCiGEEEK4AJdrHhVCCCGE8ESStAkhhBBCuABJ2oQQQgghXIAkbUIIIYQQLkCSNiGEEEIIFyBJmxBC\nCCGEC5CkTQjhkZRSbZVSSUqpio4uixBCZIQkbUIIT9UZ+NnyUwghnJ4kbUIIj6OUygM8AQzCLG2G\nUiqbUupLpdRBpdRapdRKpdTzlsceU0qFKKV2KqVWK6WKObD4QggPJUmbEMITtQFWa63/AS4opWoA\nzwFltNaVgG6YhcC1Uio7Zpm457XWNYFZwCgHlVsI4cHcYe1RIYS4V52B8ZbfF1vuewOLALTW55RS\nv1kerwg8AvxqWTfQCziTpaUVQggkaRNCeBilVEGgIVBFKaUxSZgGfgBUOoft11o/mUVFFEIIq6R5\nVAjhadoD32ut/bXWZbXWDwLHgH+B55VRFAiy7P8XUFgpVRtAKZVdKVXZEQUXQng2SdqEEJ6mE6ZW\nLaWlQDHgFHAAmAPsBqK11jcwid5nSqlwIAzT300IIbKU0lo7ugxCCOEUlFK5tdbXlFKFgFDgSa31\neUeXSwghQPq0CSFESj8rpfIDOYAPJWETQjgTqWkTQgghhHAB0qdNCCGEEMIFSNImhBBCCOECJGkT\nQgghhHABkrQJIYQQQrgASdqEEEIIIVyAJG1CCCGEEC7g/wHHv+7fKCrDcwAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x10aaae150>"
]
}
],
"prompt_number": 42
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When looking at AgeFill density by Pclass, we see the first class passengers were generally older then second class passengers, which in turn were older than third class passengers. We've determined that first class passengers had a higher survival rate than second class passengers, which in turn had a higher survival rate than third class passengers."
]
}
],
"metadata": {}
}
]
}