From a651544b8ff61963ef5c51da090a438f1198550b Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 19 Feb 2018 17:18:05 +0200 Subject: [PATCH 1/6] base1 solved --- Base1/Step_1.html | 21 ++++++++++++++------- Base1/Step_2.html | 24 +++++++++++++++++------- Base1/Step_3.html | 21 ++++++++++++++------- Base1/Step_4.html | 45 ++++++++++++++++++++++++++++++++------------- Base1/Step_5.html | 44 ++++++++++++++++++++++++++++++++------------ Base1/Step_6.html | 32 ++++++++++++++++++++------------ Base1/Step_7.html | 31 +++++++++++++++++++------------ Base1/Step_8.html | 41 ++++++++++++++++++++++++++++++----------- Base1/script6.js | 10 ++++++++++ Base1/script7.js | 10 ++++++++++ 10 files changed, 198 insertions(+), 81 deletions(-) create mode 100644 Base1/script6.js create mode 100644 Base1/script7.js diff --git a/Base1/Step_1.html b/Base1/Step_1.html index de81630..d6ae2ed 100644 --- a/Base1/Step_1.html +++ b/Base1/Step_1.html @@ -1,9 +1,16 @@ - - Step 1 - - - - - + + + Step 1 + + + + + + + + \ No newline at end of file diff --git a/Base1/Step_2.html b/Base1/Step_2.html index a214720..4dd3e56 100644 --- a/Base1/Step_2.html +++ b/Base1/Step_2.html @@ -1,9 +1,19 @@ - - Step 2 - - - - - + + + Step 2 + + + + + + + + \ No newline at end of file diff --git a/Base1/Step_3.html b/Base1/Step_3.html index 20b2a19..73ebfcc 100644 --- a/Base1/Step_3.html +++ b/Base1/Step_3.html @@ -1,9 +1,16 @@ - - Step 3 - - - - - + + + Step 3 + + + + + + + + \ No newline at end of file diff --git a/Base1/Step_4.html b/Base1/Step_4.html index 12c8942..1f8f396 100644 --- a/Base1/Step_4.html +++ b/Base1/Step_4.html @@ -1,15 +1,34 @@ - - Step 4 - - - -
- - - - -
- - + + + Step 4 + + + + + + +
+ + + + + + + +
+ + + + \ No newline at end of file diff --git a/Base1/Step_5.html b/Base1/Step_5.html index 60479f2..106742c 100644 --- a/Base1/Step_5.html +++ b/Base1/Step_5.html @@ -1,14 +1,34 @@ - - Step 5 - - - -
-
-
- -
- - + + + Step 5 + + + + +
+ + +
+ + +
+ +
+ + + + \ No newline at end of file diff --git a/Base1/Step_6.html b/Base1/Step_6.html index b019dcc..3daf930 100644 --- a/Base1/Step_6.html +++ b/Base1/Step_6.html @@ -1,14 +1,22 @@ - - Step 6 - - - -
-
-
- -
- - + + + Step 6 + + + + +
+ + +
+ + +
+ +
+ + + + \ No newline at end of file diff --git a/Base1/Step_7.html b/Base1/Step_7.html index 05ff583..7211160 100644 --- a/Base1/Step_7.html +++ b/Base1/Step_7.html @@ -1,14 +1,21 @@ - - Step 7 - - - -
-
-
- -
- - + + + Step 7 + + + + +
+ + +
+ + +
+ +
+ + + \ No newline at end of file diff --git a/Base1/Step_8.html b/Base1/Step_8.html index 75804e8..72fa338 100644 --- a/Base1/Step_8.html +++ b/Base1/Step_8.html @@ -1,13 +1,32 @@ - - Step 8 - - - -
-
- -
- - + + + Step 8 + + + + +
+ + +
+ +
+ + + + \ No newline at end of file diff --git a/Base1/script6.js b/Base1/script6.js new file mode 100644 index 0000000..8995bf8 --- /dev/null +++ b/Base1/script6.js @@ -0,0 +1,10 @@ +var b = document.getElementById("validate"); + +function calculate(first_number, second_number) { + var first_number = document.getElementById("first_number").value; + var second_number = document.getElementById("second_number").value; + var rem = (first_number % second_number); + document.write("the remainder of " + first_number + " and " + second_number + " is : " + rem); + // event.preventDefault(); +} +b.addEventListener("click", calculate); \ No newline at end of file diff --git a/Base1/script7.js b/Base1/script7.js new file mode 100644 index 0000000..dc1e7f6 --- /dev/null +++ b/Base1/script7.js @@ -0,0 +1,10 @@ +var b = document.getElementById("validate"); + +function calculate(shoe_size, year) { + var shoe_size = document.getElementById("shoe_size").value; + var year = document.getElementById("year").value; + var calc = ((((shoe_size * 2) + 5) * 50) - year) + 1766; + document.write("the result of shoe_size " + shoe_size + " and year " + year + " is : " + calc); + // event.preventDefault(); +} +b.addEventListener("click", calculate); \ No newline at end of file From 7942dd7f41180bf1cc292f61ea2e9c36f712f4da Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 20 Feb 2018 17:08:48 +0200 Subject: [PATCH 2/6] base2 solved --- Base2/step 1/index.html | 25 ++++++++++++++++++------- Base2/step 2/index.html | 18 ++++++++++++++++-- Base2/step 3/index.html | 18 ++++++++++++++++-- Base2/step 4/index.html | 34 ++++++++++++++++++++++++++++++---- Base2/step 5/index.html | 40 ++++++++++++++++++++++++++-------------- Base2/step 6/index.html | 41 +++++++++++++++++++++++++++++------------ 6 files changed, 135 insertions(+), 41 deletions(-) diff --git a/Base2/step 1/index.html b/Base2/step 1/index.html index 5ad09a6..dc9945e 100644 --- a/Base2/step 1/index.html +++ b/Base2/step 1/index.html @@ -1,10 +1,21 @@ - - - Step 1 - - - - + + + + Step 1 + + + + + + + + diff --git a/Base2/step 2/index.html b/Base2/step 2/index.html index cf25790..060da3f 100644 --- a/Base2/step 2/index.html +++ b/Base2/step 2/index.html @@ -1,12 +1,26 @@ + Step 2 +
- + +
- + + + \ No newline at end of file diff --git a/Base2/step 3/index.html b/Base2/step 3/index.html index 308c0b8..cb0d4c2 100644 --- a/Base2/step 3/index.html +++ b/Base2/step 3/index.html @@ -1,12 +1,26 @@ + Step 3 +
- + +
+ - + + \ No newline at end of file diff --git a/Base2/step 4/index.html b/Base2/step 4/index.html index f5086df..a7d95b5 100644 --- a/Base2/step 4/index.html +++ b/Base2/step 4/index.html @@ -1,15 +1,41 @@ + Step 4 +
- - - + + + + + +
+ - + + \ No newline at end of file diff --git a/Base2/step 5/index.html b/Base2/step 5/index.html index fe14eb9..f05989d 100644 --- a/Base2/step 5/index.html +++ b/Base2/step 5/index.html @@ -1,16 +1,28 @@ - - - Step 5 - - -
- - - - - -
- - + + + + Step 5 + + + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/Base2/step 6/index.html b/Base2/step 6/index.html index 2eecf4f..cfb1230 100644 --- a/Base2/step 6/index.html +++ b/Base2/step 6/index.html @@ -1,14 +1,31 @@ - - - Step 6 - - - - - - - - - + + + + Step 6 + + + + + + + + + + + + \ No newline at end of file From fe742328a15d60cd104fc571ba5c7d9b2cc6f148 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 21 Feb 2018 12:30:38 +0200 Subject: [PATCH 3/6] base3 solved --- Base3/step 1/index.html | 27 +++++++++++++++------- Base3/step 2/index.html | 51 +++++++++++++++++++++++++++++++++++++---- Base3/step 3/index.html | 48 ++++++++++++++++++++++++++++++++------ Base3/step 4/index.html | 26 +++++++++++++++++---- 4 files changed, 129 insertions(+), 23 deletions(-) diff --git a/Base3/step 1/index.html b/Base3/step 1/index.html index eb4909d..6b038a3 100644 --- a/Base3/step 1/index.html +++ b/Base3/step 1/index.html @@ -1,10 +1,21 @@ - - - Step 1 - - - - - + + + + Step 1 + + + + + + + + \ No newline at end of file diff --git a/Base3/step 2/index.html b/Base3/step 2/index.html index aeff7fa..d1c2585 100644 --- a/Base3/step 2/index.html +++ b/Base3/step 2/index.html @@ -1,14 +1,57 @@ + Step 2 + -Show -Hide + Show + Hide
-

Joseph Dacre Carlyle (Carlisle, 4 juin 1758 - Newcastle upon Tyne, 12 avril 1804) est un orientaliste anglais.Après ses études à l'université de Cambridge, il y devint professeur d'arabe. En 1799, il fut attaché par le gouvernement britannique à l'ambassade de Lord Elgin dans l'Empire ottoman. Il était chargé d'explorer les bibliothèques de la région (principalement celle du Sérail) pour y découvrir (et y acquérir) des manuscrits inédits de textes antiques. Il se rendit aussi en Égypte, en Terre sainte et au mont Athos. Sa mission fut, de son point de vue, un échec. Il acheta quelques centaines d'ouvrages, principalement dans les bazars de Constantinople, mais aucun ne contenait de texte inédit. Cependant, la façon dont certains manuscrits avaient été acquis, principalement ceux du patriarche de Jérusalem Anthème Ier, ainsi que la querelle entamée sur la plaine de Troie entre Carlyle et un autre professeur de Cambridge, Edward Daniel Clarke, allaient être utilisées, après la mort de Carlyle, contre Lord Elgin, dans les controverses autour de l'acquisition des « marbres d'Elgin ».De retour en Grande-Bretagne à l'automne 1801, Joseph Dacre Carlyle entama une traduction en arabe de la Bible. Sa mort en avril 1804 coupa court à ce travail.

+

Joseph Dacre Carlyle (Carlisle, 4 juin 1758 - Newcastle upon Tyne, 12 avril 1804) est un orientaliste anglais.Après ses + études à l'université de Cambridge, il y devint professeur d'arabe. En 1799, il fut attaché par le gouvernement britannique + à l'ambassade de Lord Elgin dans l'Empire ottoman. Il était chargé d'explorer les bibliothèques de la région (principalement + celle du Sérail) pour y découvrir (et y acquérir) des manuscrits inédits de textes antiques. Il se rendit aussi en + Égypte, en Terre sainte et au mont Athos. Sa mission fut, de son point de vue, un échec. Il acheta quelques centaines + d'ouvrages, principalement dans les bazars de Constantinople, mais aucun ne contenait de texte inédit. Cependant, la + façon dont certains manuscrits avaient été acquis, principalement ceux du patriarche de Jérusalem Anthème Ier, ainsi + que la querelle entamée sur la plaine de Troie entre Carlyle et un autre professeur de Cambridge, Edward Daniel Clarke, + allaient être utilisées, après la mort de Carlyle, contre Lord Elgin, dans les controverses autour de l'acquisition + des « marbres d'Elgin ».De retour en Grande-Bretagne à l'automne 1801, Joseph Dacre Carlyle entama une traduction en + arabe de la Bible. Sa mort en avril 1804 coupa court à ce travail.

+ - + + \ No newline at end of file diff --git a/Base3/step 3/index.html b/Base3/step 3/index.html index 0db3888..37f8e1e 100644 --- a/Base3/step 3/index.html +++ b/Base3/step 3/index.html @@ -1,18 +1,52 @@ + Step 3 - + +
-

Tara, originellement nommée Antarctica puis Seamaster, est une goélette française destinée à la fois à l'exploration et à la défense de l'environnement. Dans le cadre de l'Année polaire internationale, en 2007-2008, ce voilier est utilisé en Arctique par l'expédition Tara Arctic dans le but de faire des relevés permettant de mieux comprendre les changements climatiques qui s'opèrent en Arctique. En 2009, dans le cadre de l'expédition Tara Oceans, Tara parcourt les mers et les océans dans une circumnavigation de trois ans afin d'étudier le piégeage des molécules de gaz carbonique (CO2) par les micro-organismes marins comme le plancton. En avril 2016, une nouvelle expédition est montée Tara Pacific dont l'objectif est de comprendre le corail, menacé par des facteurs humains et climatiques1.

+

Tara, originellement nommée Antarctica puis Seamaster, est une goélette française destinée à la fois à l'exploration + et à la défense de l'environnement. Dans le cadre de l'Année polaire internationale, en 2007-2008, ce voilier est utilisé + en Arctique par l'expédition Tara Arctic dans le but de faire des relevés permettant de mieux comprendre les changements + climatiques qui s'opèrent en Arctique. En 2009, dans le cadre de l'expédition Tara Oceans, Tara parcourt les mers et + les océans dans une circumnavigation de trois ans afin d'étudier le piégeage des molécules de gaz carbonique (CO2) + par les micro-organismes marins comme le plancton. En avril 2016, une nouvelle expédition est montée Tara Pacific dont + l'objectif est de comprendre le corail, menacé par des facteurs humains et climatiques1.

-
-
-
-
+
+
+
+ + - + + \ No newline at end of file diff --git a/Base3/step 4/index.html b/Base3/step 4/index.html index cab276b..75e2d67 100644 --- a/Base3/step 4/index.html +++ b/Base3/step 4/index.html @@ -1,14 +1,32 @@ + Step 4 +
- - - + + + + +
+ - + + \ No newline at end of file From aaab78aa6507aba9aa454395daa7d7117f044310 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 23 Feb 2018 17:25:57 +0200 Subject: [PATCH 4/6] base4 solved --- .../Codi_DS_Bootcamp-checkpoint.ipynb | 5505 ++++++++++++++++ Base4/questions.js | 101 +- Codi_DS_Bootcamp.ipynb | 5524 +++++++++++++++++ 3 files changed, 11102 insertions(+), 28 deletions(-) create mode 100644 .ipynb_checkpoints/Codi_DS_Bootcamp-checkpoint.ipynb create mode 100644 Codi_DS_Bootcamp.ipynb diff --git a/.ipynb_checkpoints/Codi_DS_Bootcamp-checkpoint.ipynb b/.ipynb_checkpoints/Codi_DS_Bootcamp-checkpoint.ipynb new file mode 100644 index 0000000..5386298 --- /dev/null +++ b/.ipynb_checkpoints/Codi_DS_Bootcamp-checkpoint.ipynb @@ -0,0 +1,5505 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "

Programming for A Better Future

\n", + "

Workshop by Hani El-Sayyed

\n", + "\n", + "The Codi Data Science & Machine Learning workshop will take you through exploring a (public) dataset using Python plus an open-source stack of DS & ML tools.\n", + "\n", + "The dataset is featured on Kaggle, a data science competitions platform." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# data analysis and wrangling\n", + "import pandas as pd\n", + "import numpy as np\n", + "import random as rnd\n", + "\n", + "# visualization\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "# machine learning\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.svm import SVC, LinearSVC\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.naive_bayes import GaussianNB\n", + "from sklearn.linear_model import Perceptron\n", + "from sklearn.linear_model import SGDClassifier\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.metrics import accuracy_score\n", + "from sklearn.metrics import confusion_matrix\n", + "\n", + "import warnings\n", + "warnings.filterwarnings('ignore') " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Data

" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* On April 15, 1912, during her maiden voyage, the Titanic sank after colliding with an iceberg, killing 1502 out of 2224 passengers and crew.\n", + "* This sensational tragedy shocked the international community and led to better safety regulations for ships.\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.\n", + "* Although there was some element of luck involved in surviving the sinking, some groups of people were more likely to survive than others.\n", + "* Goal #1 of the workshop is to understand what elements led to survival through explantory data analysis.\n", + "* Goal #2 of the workshop is to prepare and clean the data.\n", + "* Goal #3 is to create a predictive model that predicts whether a passenger would have survived using cleaned data. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "train_df = pd.read_csv('data/train.csv')\n", + "test_df = pd.read_csv('data/test.csv')\n", + "combined = [train_df, test_df]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
888911Fortune, Miss. Mabel Helenfemale23.03219950263.0000C23 C25 C27S
49950003Svensson, Mr. Olofmale24.0003500357.7958NaNS
20220303Johanson, Mr. Jakob Alfredmale34.00031012646.4958NaNS
575803Novel, Mr. Mansouermale28.50026977.2292NaNC
61161203Jardin, Mr. Jose NetomaleNaN00SOTON/O.Q. 31013057.0500NaNS
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name Sex Age \\\n", + "88 89 1 1 Fortune, Miss. Mabel Helen female 23.0 \n", + "499 500 0 3 Svensson, Mr. Olof male 24.0 \n", + "202 203 0 3 Johanson, Mr. Jakob Alfred male 34.0 \n", + "57 58 0 3 Novel, Mr. Mansouer male 28.5 \n", + "611 612 0 3 Jardin, Mr. Jose Neto male NaN \n", + "\n", + " SibSp Parch Ticket Fare Cabin Embarked \n", + "88 3 2 19950 263.0000 C23 C25 C27 S \n", + "499 0 0 350035 7.7958 NaN S \n", + "202 0 0 3101264 6.4958 NaN S \n", + "57 0 0 2697 7.2292 NaN C \n", + "611 0 0 SOTON/O.Q. 3101305 7.0500 NaN S " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.sample(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* PassengerId: Passenger ID\n", + "* Survived: Passenger Survival Indicator\n", + "* Pclass: Passenger Class\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" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "

Overview

\n", + "
\n", + "
\n", + "
\n", + "

Dataset info

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Number of variables12
Number of observations891
Total Missing (%)8.1%
Total size in memory83.6 KiB
Average record size in memory96.1 B
\n", + "
\n", + "
\n", + "

Variables types

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Numeric6
Categorical4
Boolean1
Date0
Text (Unique)1
Rejected0
Unsupported0
\n", + "
\n", + "
\n", + " \n", + "

Warnings

\n", + "
  • Age has 177 / 19.9% missing values Missing
  • Cabin has 687 / 77.1% missing values Missing
  • Cabin has a high cardinality: 148 distinct values Warning
  • Fare has 15 / 1.7% zeros Zeros
  • Parch has 678 / 76.1% zeros Zeros
  • SibSp has 608 / 68.2% zeros Zeros
  • Ticket has a high cardinality: 681 distinct values Warning
\n", + "
\n", + "
\n", + "
\n", + "

Variables

\n", + "
\n", + "
\n", + "
\n", + "

Age
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count89
Unique (%)10.0%
Missing (%)19.9%
Missing (n)177
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean29.699
Minimum0.42
Maximum80
Zeros (%)0.0%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum0.42
5-th percentile4
Q120.125
Median28
Q338
95-th percentile56
Maximum80
Range79.58
Interquartile range17.875
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation14.526
Coef of variation0.48912
Kurtosis0.17827
Mean29.699
MAD11.323
Skewness0.38911
Sum21205
Variance211.02
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
24.0303.4%\n", + "
 
\n", + "
22.0273.0%\n", + "
 
\n", + "
18.0262.9%\n", + "
 
\n", + "
28.0252.8%\n", + "
 
\n", + "
19.0252.8%\n", + "
 
\n", + "
30.0252.8%\n", + "
 
\n", + "
21.0242.7%\n", + "
 
\n", + "
25.0232.6%\n", + "
 
\n", + "
36.0222.5%\n", + "
 
\n", + "
29.0202.2%\n", + "
 
\n", + "
Other values (78)46752.4%\n", + "
 
\n", + "
(Missing)17719.9%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
0.4210.1%\n", + "
 
\n", + "
0.6710.1%\n", + "
 
\n", + "
0.7520.2%\n", + "
 
\n", + "
0.8320.2%\n", + "
 
\n", + "
0.9210.1%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
70.020.2%\n", + "
 
\n", + "
70.510.1%\n", + "
 
\n", + "
71.020.2%\n", + "
 
\n", + "
74.010.1%\n", + "
 
\n", + "
80.010.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Cabin
\n", + " Categorical\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count148
Unique (%)16.6%
Missing (%)77.1%
Missing (n)687
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
G6\n", + "
\n", + "  \n", + "
\n", + " 4\n", + "
B96 B98\n", + "
\n", + "  \n", + "
\n", + " 4\n", + "
C23 C25 C27\n", + "
\n", + "  \n", + "
\n", + " 4\n", + "
Other values (144)\n", + "
\n", + " 192\n", + "
\n", + " \n", + "
(Missing)\n", + "
\n", + " 687\n", + "
\n", + " \n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
G640.4%\n", + "
 
\n", + "
B96 B9840.4%\n", + "
 
\n", + "
C23 C25 C2740.4%\n", + "
 
\n", + "
E10130.3%\n", + "
 
\n", + "
F3330.3%\n", + "
 
\n", + "
D30.3%\n", + "
 
\n", + "
F230.3%\n", + "
 
\n", + "
C22 C2630.3%\n", + "
 
\n", + "
B2820.2%\n", + "
 
\n", + "
B3520.2%\n", + "
 
\n", + "
Other values (137)17319.4%\n", + "
 
\n", + "
(Missing)68777.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Embarked
\n", + " Categorical\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count4
Unique (%)0.4%
Missing (%)0.2%
Missing (n)2
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
S\n", + "
\n", + " 644\n", + "
\n", + " \n", + "
C\n", + "
\n", + " 168\n", + "
\n", + " \n", + "
Q\n", + "
\n", + "  \n", + "
\n", + " 77\n", + "
(Missing)\n", + "
\n", + "  \n", + "
\n", + " 2\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
S64472.3%\n", + "
 
\n", + "
C16818.9%\n", + "
 
\n", + "
Q778.6%\n", + "
 
\n", + "
(Missing)20.2%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Fare
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count248
Unique (%)27.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean32.204
Minimum0
Maximum512.33
Zeros (%)1.7%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum0
5-th percentile7.225
Q17.9104
Median14.454
Q331
95-th percentile112.08
Maximum512.33
Range512.33
Interquartile range23.09
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation49.693
Coef of variation1.5431
Kurtosis33.398
Mean32.204
MAD28.164
Skewness4.7873
Sum28694
Variance2469.4
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
8.05434.8%\n", + "
 
\n", + "
13.0424.7%\n", + "
 
\n", + "
7.8958384.3%\n", + "
 
\n", + "
7.75343.8%\n", + "
 
\n", + "
26.0313.5%\n", + "
 
\n", + "
10.5242.7%\n", + "
 
\n", + "
7.925182.0%\n", + "
 
\n", + "
7.775161.8%\n", + "
 
\n", + "
26.55151.7%\n", + "
 
\n", + "
0.0151.7%\n", + "
 
\n", + "
Other values (238)61569.0%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
0.0151.7%\n", + "
 
\n", + "
4.012510.1%\n", + "
 
\n", + "
5.010.1%\n", + "
 
\n", + "
6.237510.1%\n", + "
 
\n", + "
6.437510.1%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
227.52540.4%\n", + "
 
\n", + "
247.520820.2%\n", + "
 
\n", + "
262.37520.2%\n", + "
 
\n", + "
263.040.4%\n", + "
 
\n", + "
512.329230.3%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Name
\n", + " Categorical, Unique\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
First 3 values
Coutts, Master. William Loch \"William\"
Sedgwick, Mr. Charles Frederick Waddington
Collander, Mr. Erik Gustaf
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Last 3 values
Beckwith, Mrs. Richard Leonard (Sallie Monypeny)
Jalsevac, Mr. Ivan
Stone, Mrs. George Nelson (Martha Evelyn)
\n", + "\n", + "
\n", + "

First 10 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
Abbing, Mr. Anthony10.1%\n", + "
 
\n", + "
Abbott, Mr. Rossmore Edward10.1%\n", + "
 
\n", + "
Abbott, Mrs. Stanton (Rosa Hunt)10.1%\n", + "
 
\n", + "
Abelson, Mr. Samuel10.1%\n", + "
 
\n", + "
Abelson, Mrs. Samuel (Hannah Wizosky)10.1%\n", + "
 
\n", + "
\n", + "

Last 10 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
de Mulder, Mr. Theodore10.1%\n", + "
 
\n", + "
de Pelsmaeker, Mr. Alfons10.1%\n", + "
 
\n", + "
del Carlo, Mr. Sebastiano10.1%\n", + "
 
\n", + "
van Billiard, Mr. Austin Blyler10.1%\n", + "
 
\n", + "
van Melkebeke, Mr. Philemon10.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Parch
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count7
Unique (%)0.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean0.38159
Minimum0
Maximum6
Zeros (%)76.1%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum0
5-th percentile0
Q10
Median0
Q30
95-th percentile2
Maximum6
Range6
Interquartile range0
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation0.80606
Coef of variation2.1123
Kurtosis9.7781
Mean0.38159
MAD0.58074
Skewness2.7491
Sum340
Variance0.64973
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
067876.1%\n", + "
 
\n", + "
111813.2%\n", + "
 
\n", + "
2809.0%\n", + "
 
\n", + "
550.6%\n", + "
 
\n", + "
350.6%\n", + "
 
\n", + "
440.4%\n", + "
 
\n", + "
610.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
067876.1%\n", + "
 
\n", + "
111813.2%\n", + "
 
\n", + "
2809.0%\n", + "
 
\n", + "
350.6%\n", + "
 
\n", + "
440.4%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
2809.0%\n", + "
 
\n", + "
350.6%\n", + "
 
\n", + "
440.4%\n", + "
 
\n", + "
550.6%\n", + "
 
\n", + "
610.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

PassengerId
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count891
Unique (%)100.0%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean446
Minimum1
Maximum891
Zeros (%)0.0%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum1
5-th percentile45.5
Q1223.5
Median446
Q3668.5
95-th percentile846.5
Maximum891
Range890
Interquartile range445
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation257.35
Coef of variation0.57703
Kurtosis-1.2
Mean446
MAD222.75
Skewness0
Sum397386
Variance66231
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
89110.1%\n", + "
 
\n", + "
29310.1%\n", + "
 
\n", + "
30410.1%\n", + "
 
\n", + "
30310.1%\n", + "
 
\n", + "
30210.1%\n", + "
 
\n", + "
30110.1%\n", + "
 
\n", + "
30010.1%\n", + "
 
\n", + "
29910.1%\n", + "
 
\n", + "
29810.1%\n", + "
 
\n", + "
29710.1%\n", + "
 
\n", + "
Other values (881)88198.9%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
110.1%\n", + "
 
\n", + "
210.1%\n", + "
 
\n", + "
310.1%\n", + "
 
\n", + "
410.1%\n", + "
 
\n", + "
510.1%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
88710.1%\n", + "
 
\n", + "
88810.1%\n", + "
 
\n", + "
88910.1%\n", + "
 
\n", + "
89010.1%\n", + "
 
\n", + "
89110.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Pclass
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count3
Unique (%)0.3%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean2.3086
Minimum1
Maximum3
Zeros (%)0.0%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum1
5-th percentile1
Q12
Median3
Q33
95-th percentile3
Maximum3
Range2
Interquartile range1
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation0.83607
Coef of variation0.36215
Kurtosis-1.28
Mean2.3086
MAD0.76197
Skewness-0.63055
Sum2057
Variance0.69902
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
349155.1%\n", + "
 
\n", + "
121624.2%\n", + "
 
\n", + "
218420.7%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
121624.2%\n", + "
 
\n", + "
218420.7%\n", + "
 
\n", + "
349155.1%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
121624.2%\n", + "
 
\n", + "
218420.7%\n", + "
 
\n", + "
349155.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Sex
\n", + " Categorical\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count2
Unique (%)0.2%
Missing (%)0.0%
Missing (n)0
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
male\n", + "
\n", + " 577\n", + "
\n", + " \n", + "
female\n", + "
\n", + " 314\n", + "
\n", + " \n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
male57764.8%\n", + "
 
\n", + "
female31435.2%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

SibSp
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count7
Unique (%)0.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean0.52301
Minimum0
Maximum8
Zeros (%)68.2%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum0
5-th percentile0
Q10
Median0
Q31
95-th percentile3
Maximum8
Range8
Interquartile range1
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation1.1027
Coef of variation2.1085
Kurtosis17.88
Mean0.52301
MAD0.71378
Skewness3.6954
Sum466
Variance1.216
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
060868.2%\n", + "
 
\n", + "
120923.5%\n", + "
 
\n", + "
2283.1%\n", + "
 
\n", + "
4182.0%\n", + "
 
\n", + "
3161.8%\n", + "
 
\n", + "
870.8%\n", + "
 
\n", + "
550.6%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
060868.2%\n", + "
 
\n", + "
120923.5%\n", + "
 
\n", + "
2283.1%\n", + "
 
\n", + "
3161.8%\n", + "
 
\n", + "
4182.0%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
2283.1%\n", + "
 
\n", + "
3161.8%\n", + "
 
\n", + "
4182.0%\n", + "
 
\n", + "
550.6%\n", + "
 
\n", + "
870.8%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Survived
\n", + " Boolean\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count2
Unique (%)0.2%
Missing (%)0.0%
Missing (n)0
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean0.38384
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
0\n", + "
\n", + " 549\n", + "
\n", + " \n", + "
1\n", + "
\n", + " 342\n", + "
\n", + " \n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
054961.6%\n", + "
 
\n", + "
134238.4%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Ticket
\n", + " Categorical\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count681
Unique (%)76.4%
Missing (%)0.0%
Missing (n)0
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
1601\n", + "
\n", + "  \n", + "
\n", + " 7\n", + "
347082\n", + "
\n", + "  \n", + "
\n", + " 7\n", + "
CA. 2343\n", + "
\n", + "  \n", + "
\n", + " 7\n", + "
Other values (678)\n", + "
\n", + " 870\n", + "
\n", + " \n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
160170.8%\n", + "
 
\n", + "
34708270.8%\n", + "
 
\n", + "
CA. 234370.8%\n", + "
 
\n", + "
310129560.7%\n", + "
 
\n", + "
CA 214460.7%\n", + "
 
\n", + "
34708860.7%\n", + "
 
\n", + "
38265250.6%\n", + "
 
\n", + "
S.O.C. 1487950.6%\n", + "
 
\n", + "
PC 1775740.4%\n", + "
 
\n", + "
413340.4%\n", + "
 
\n", + "
Other values (671)83493.6%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Correlations

\n", + "
\n", + "
\n", + " \n", + " \n", + "
\n", + "
\n", + "

Sample

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", + "
\n", + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas_profiling\n", + "pandas_profiling.ProfileReport(train_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Explanatory Data Analysis

" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

What is the distribution of features across the data?

" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassAgeSibSpParchFare
count891.000000891.000000891.000000714.000000891.000000891.000000891.000000
mean446.0000000.3838382.30864229.6991180.5230080.38159432.204208
std257.3538420.4865920.83607114.5264971.1027430.80605749.693429
min1.0000000.0000001.0000000.4200000.0000000.0000000.000000
25%223.5000000.0000002.00000020.1250000.0000000.0000007.910400
50%446.0000000.0000003.00000028.0000000.0000000.00000014.454200
75%668.5000001.0000003.00000038.0000001.0000000.00000031.000000
max891.0000001.0000003.00000080.0000008.0000006.000000512.329200
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Age SibSp \\\n", + "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", + "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", + "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", + "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", + "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", + "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", + "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", + "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", + "\n", + " Parch Fare \n", + "count 891.000000 891.000000 \n", + "mean 0.381594 32.204208 \n", + "std 0.806057 49.693429 \n", + "min 0.000000 0.000000 \n", + "25% 0.000000 7.910400 \n", + "50% 0.000000 14.454200 \n", + "75% 0.000000 31.000000 \n", + "max 6.000000 512.329200 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NameSexTicketCabinEmbarked
count891891891204889
unique89126811473
topCoutts, Master. William Loch \"William\"male1601C23 C25 C27S
freq157774644
\n", + "
" + ], + "text/plain": [ + " Name Sex Ticket Cabin \\\n", + "count 891 891 891 204 \n", + "unique 891 2 681 147 \n", + "top Coutts, Master. William Loch \"William\" male 1601 C23 C25 C27 \n", + "freq 1 577 7 4 \n", + "\n", + " Embarked \n", + "count 889 \n", + "unique 3 \n", + "top S \n", + "freq 644 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.describe(include=['O'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

How many survived?

" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.616162\n", + "1 0.383838\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.Survived.value_counts(normalize=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Are there any specific features correlated with survival?

" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
Pclass
10.629630
20.472826
30.242363
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "Pclass \n", + "1 0.629630\n", + "2 0.472826\n", + "3 0.242363" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[['Pclass', 'Survived']].groupby(['Pclass']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived01All
Pclass
180136216
29787184
3372119491
All549342891
\n", + "
" + ], + "text/plain": [ + "Survived 0 1 All\n", + "Pclass \n", + "1 80 136 216\n", + "2 97 87 184\n", + "3 372 119 491\n", + "All 549 342 891" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.crosstab(train_df.Pclass,train_df.Survived,margins=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
Sex
female0.742038
male0.188908
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "Sex \n", + "female 0.742038\n", + "male 0.188908" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[[\"Sex\", \"Survived\"]].groupby(['Sex']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
SibSp
10.535885
20.464286
00.345395
30.250000
40.166667
50.000000
80.000000
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "SibSp \n", + "1 0.535885\n", + "2 0.464286\n", + "0 0.345395\n", + "3 0.250000\n", + "4 0.166667\n", + "5 0.000000\n", + "8 0.000000" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[[\"SibSp\", \"Survived\"]].groupby(['SibSp']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
Parch
30.600000
10.550847
20.500000
00.343658
50.200000
40.000000
60.000000
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "Parch \n", + "3 0.600000\n", + "1 0.550847\n", + "2 0.500000\n", + "0 0.343658\n", + "5 0.200000\n", + "4 0.000000\n", + "6 0.000000" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[[\"Parch\", \"Survived\"]].groupby(['Parch']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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z/5OEBISoocffljLli1TZGSkrrnmGi1dulS9evXSyJEjPXoswFdRW+DPaJoC2KxZs9S7d2/9/ve/14YNG+RwOHTVVVcpJSVFjzzySMt6jz32mKqqqjRt2jTZ7XZNnDhRKSkp5522/rZx48YpNzdXaWlprRaaC607evRoPffcc1q9erVWr16tK664QnfddZeysrIk/ePtzatXr9aiRYs0ZcoUhYaG6pFHHjH6jdVdmZmZamxs1MKFC+VwOJSUlKQXXnjhnJvDgUBGbYG/6uQ0OTsBAAACHHOMAAAABmiaAAAADNA0AQAAGKBpAgAAMEDTBAAAYICmCQAAwECHf05TRYXZg86CgjopMjJclZW1am7236coBEqeErn6K3dz7dGji1fioLacK1ByDZQ8JXK9mLbUFr+ZaQoK6qROnTopKKiT1aF4VaDkKZGrv/K1XH0t3ksRKLkGSp4SuXr8GF7bMwAAgB+haQIAADBA0wQAAGCApgkAAMAATRMAAIABmiYAAAADNE0AAAAGaJoAAAAMdPgngqNtkpbvNl63aPYwL0YCAIB/YKYJAADAAE0TAACAAZomAAAAAzRNAAAABmiaAAAADNA0AQAAGOCRAzB+PAGPJgAABDJmmgAAAAzQNAEAABigaQIAADBA0wQAAGCApgkAAMAATRMAAIABmiYAAAADNE0AAAAGaJoAAAAMuP1E8G3btmnOnDm6/PLLW5aNGDFCS5cu1a5du7Rs2TJ9+eWXuuqqqzR37lzdddddHg3Y35g+jVviidwAAFjJ7abpo48+0ve//30tWbLEZfnnn3+umTNn6t///d915513qrCwULNmzVJhYaF69uzpsYABAACs4PbluY8++kj9+vU7Z/mmTZuUmJioESNGyGazKSUlRUlJScrLy/NIoAAAAFZya6apublZBw8elN1u15o1a9TU1KThw4drzpw5Ki0tVWxsrMv60dHRKi4uNt5/eXm5KioqXAO0hSkqKqrVbYODg1z+9Uc2W5Cledps7XvMQBjTs8jVu6gtZgIl10DJUyJXT3OraaqsrNSNN96oe+65Rzk5OTpx4oTmzZunrKwsNTQ0yG63u6wfGhqquro64/3n5eUpNzfXZVlGRoYyMzON9xERYW99JR/VrVt4y/+tyPObx29P/jym30au3kFtcU+g5BooeUrk6iluNU3du3fXhg0bWj63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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "grd = sns.FacetGrid(train_df, col='Survived')\n", + "grd.map(plt.hist, 'Age', bins=20)\n", + "#notice we need to group ages when designing our model" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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3e8UFxcn6doh7apVq1o1l59++kmXL1++6YLRIUOGSFLRIezrXnnlFX3xxRdavXq1jhw5ogMHDujo0aOqU6eOJOmFF17Q8uXL1b59e4WEhCgyMlLt2rUraoZvvPGG+vbtq4iICIWFhSkyMlIdO3a8ZcN79913tXbt2mJvi46O1rhx4+x/UO6Qp6enunfvru7duys/P1+7d+/W559/rpUrV8pisWjatGk2z/Xwww9bfd+hQweNGzdOmzZtUnR0tFavXq22bdsW22BvN/brr7+WJP3+97+3us/ly5eLwtCBAwcUGRlpdXtYWNhtm2GvXr20e/fuYm/r06eP+vbte9N2b2/vm671uh68bvcKFq6NnuM49Bz7eg5sRwAzoEqVKjf94t2ofPnyNs9lsVjUt29f7d+/X9HR0erQoYPefPNNvfPOO0VjAgICtHr1an3zzTfatm2btm7dqvnz52vAgAHq37+/wsLCtGXLFm3btk1paWlKSUnRjBkzNHfuXEVERNy0z0GDBun1118vdj32vPq7Wxs3btT//d//qU+fPpKuBYhWrVqpVatWqlatmj799FOr8Tdes3HlypWb5vv1qQxfX189++yzWrt2rVq1aqWvvvpKs2fPLnYttxt7fb+LFi266QLa69eU/Hp9UsnPg/Hjx1tdc3OjWx1JuP/++296F1JWVpYkqWbNmrfdH1wXPccx6Dn29xzYjgBWBjz88MMqX7689u3bV3SIX5JeeuklPfvss0WHlCXphx9+0JYtW7R06VI9+uijkq69yjly5EjRNQmrV6/WuXPnFBsbq2bNmmngwIFKTEzUunXr1L9/fyUlJalZs2Zq06aN2rRpo5EjR6pjx47asGFDsc2wevXqql69upMfhZL9+9//1owZM/TCCy/oN7/5jdVtlSpVKlrj9aZy7ty5otsPHz5s0z66dOmi+Ph4rVixQtWrVy/28ShpbP369SVdCzrPPPNM0fipU6eqXLlyGjx4sBo2bKg9e/ZYzbdv377bru1OAlPz5s21atUqnTt3rug/rrS0NPn5+Vk913BvoefYhp7DizRn4l2QZYCPj4969Oih6dOna9OmTTpy5IimTp2qQ4cOqXXr1lZj77vvPnl5eenzzz/X0aNHtW/fPg0ePFjZ2dlFp5ouXryoSZMmadWqVTp27JjS09O1c+dOhYWFSbrWGMaMGaO0tDT98ssvWr9+vTIzM4tuL6u6dOmihx56SHFxcVqzZo2OHj2qjIwMLVq0SHPmzFFCQoIkKTg4WH5+fvrwww91+PBh7dq1q6gRlaR58+b6zW9+o+TkZHXq1Mnq1aOtY+vXr6/WrVtrzJgx2rRpk44ePap58+Zp9uzZRf9h9ezZUxkZGZo0aZJ++uknrVmzRosWLXLAo2Stbdu2qlGjhgYPHqyMjAz985//1NSpU9WzZ8+id8Ph3kPPsQ09B87EEbAy4s0335SXl5fee+895ebmKiQkRHPmzFG9evV08uTJonE1a9bUxIkTNWPGDC1atEg1atTQM888o9dee02bNm2SxWJR9+7dlZOTo1mzZunf//63qlSpog4dOujtt9+WJI0dO1aTJk3S0KFDdfbsWT3wwAN6++231alTp9Iq3yaVKlXSp59+qg8//FAzZ87Uv//9b3l6eqphw4aaPHmy2rZtWzTuz3/+s6ZMmaKOHTuqbt26GjlypNXFr7fz4osvavr06ercufMdj506daqmTp2qMWPGKCcnRw8++KDef/99de3aVZLUsGFD/e1vf9PkyZO1cOFC1a9fX3379tWf//xnOx+V26tYsaLmzp2rsWPHqnv37qpSpYpeeeUV9evXz6H7geuh55SMngNnKmf59UlhoJQcO3ZMbdq0KXpnFQA4Ez0HpYlTkAAAAIYRwAAAAAzjFCQAAIBhHAEDAAAwjAAGAABgGAEMAADAMAIYAACAYWX+D7FmZ+fZNM7Do5wCAvx0+vR5Xb3q/u8roF73Rr0lq1Gj+A9yvlv0nOJRr3uj3pI5uue4zREwD49yKleunDw8Sv7oB3dAve6Ness+V1zz3aBe90a9pbCGUtszAADAPYoABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAw+4ogBUWFiouLk4jRowo2rZlyxZFR0frscce03PPPafNmzc7bJEAAADu5I4CWHJystLT04u+//nnnzVgwAANGjRI6enpGjBggAYPHqwTJ044bKEAAADuwu4AlpaWptTUVLVv375o28qVKxUeHq62bdvKy8tLzz//vJo3b64lS5Y4dLEAAADuwK4AdurUKY0ePVpTpkyRj49P0fZDhw4pODjYamxQUJAyMjIcs0oAAAA34mXrwKtXr2ro0KGKj49XgwYNrG47f/68VSCTJG9vb+Xn59u1mKysLGVnZ1sv0MtXgYGBJd7X09PD6l93R73ujXrNoOfYjnrdG/WaZ3MAmz17tipUqKC4uLibbvPx8VFBQYHVtoKCAvn5+dm1mCVLlig5OdlqW0JCggYOHGjzHP7+PiUPciPU696o17noOfajXvdGveaUs1gsFlsGPvvss8rKypKHx7W0eD1weXt7KzY2Vt9//73mzp1bNL5Xr14KDQ3V4MGDbV7M3b4a9ff3UW7uBRUWXrV5n66Ket0b9ZasWjX7XuAVh55jO+p1b9RbMkf0nBvZfARs/fr1Vt9f/xMUEydO1I8//qi///3vWrdundq3b6/U1FTt3LlTo0ePtmsxgYGBNzW+7Ow8Xbli+5OhsPCqXeNdHfW6N+p1LnqO/ajXvVGvOQ45+VmvXj3NnDlTs2fPVvPmzTVr1izNmDFDdevWdcT0AAAAbsXmI2C/NnHiRKvvW7VqpVatWt31ggAAANzdvfF2BwAAgDKEAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDC7A1haWpq6deumpk2bKjIyUu+//74KCgokSXv37lW3bt0UFhamqKgoLVu2zOELBgAAcHV2BbDTp0+rT58+evnll5Wenq6VK1dq586dmjNnjnJyctS7d2917txZu3bt0vjx4/XBBx/ou+++c9baAQAAXJKXPYMDAgL0r3/9S5UqVZLFYtHZs2d18eJFBQQEKDU1VVWrVlVsbKwkKSIiQtHR0Vq0aJGaNGnilMUDAAC4IrtPQVaqVEmS9PTTTys6Olo1atRQly5ddPDgQQUHB1uNDQoKUkZGhmNWCgAA4CbsOgJ2o9TUVOXk5Ojtt9/WwIEDVbNmTfn4+FiN8fb2Vn5+vs1zZmVlKTs723qBXr4KDAws8b6enh5W/7o76nVv1GsGPcd21OveqNe8Ow5g3t7e8vb21tChQ9WtWzfFxcUpLy/PakxBQYH8/PxsnnPJkiVKTk622paQkKCBAwfaPIe/v0/Jg9wI9bo36nUueo79qNe9Ua85dgWwPXv2aNSoUVqzZo0qVKggSbp06ZLKly+voKAgbdu2zWr8oUOHVL9+fZvnj4mJUVRUlPUCvXx15sz5Eu/r6ekhf38f5eZeUGHhVZv36aqo171Rb8mqVbP9xd2t0HNsR73ujXpL5oiecyO7AlhISIgKCgo0ZcoUvfXWW8rOztakSZP00ksvqUOHDpoyZYoWLFig2NhY7d69W2vXrtWsWbNsnj8wMPCmQ//Z2Xm6csX2J0Nh4VW7xrs66nVv1Otc9Bz7Ua97o15z7Apgfn5+mjt3riZMmKDIyEhVrlxZ0dHRSkhIUIUKFTR//nyNHz9eSUlJCggIUGJiolq2bOmstQMAALgku68BCwoK0vz584u9rXHjxlq8ePFdLwoAAMCd3RtvdwAAAChDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhmVwDLyMhQfHy8WrRoocjISA0bNkynT5+WJO3du1fdunVTWFiYoqKitGzZMqcsGAAAwNXZHMAKCgrUq1cvhYWFaevWrfrss8909uxZjRo1Sjk5Oerdu7c6d+6sXbt2afz48frggw/03XffOXPtAAAALsnmAJaZmakGDRooISFBFSpUULVq1RQTE6Ndu3YpNTVVVatWVWxsrLy8vBQREaHo6GgtWrTImWsHAABwSV62DnzkkUc0d+5cq20bNmxQo0aNdPDgQQUHB1vdFhQUpJSUFLsWk5WVpezsbOsFevkqMDCwxPt6enpY/evuqNe9Ua8Z9BzbUa97o17zbA5gN7JYLJo2bZo2b96shQsX6uOPP5aPj4/VGG9vb+Xn59s175IlS5ScnGy1LSEhQQMHDrR5Dn9/n5IHuRHqdW/U61z0HPuVxXrrjPiHXeN/ntjR5rFlsV5nol5z7A5g586d08iRI/X9999r4cKFCgkJkY+Pj/Ly8qzGFRQUyM/Pz665Y2JiFBUVZb1AL1+dOXO+xPt6enrI399HubkXVFh41a79uiLqdW/UW7Jq1ezrL8Wh59jOnerl53sz6i2ZI3rOjewKYEeOHNEbb7yhWrVqKSUlRQEBAZKk4OBgbdu2zWrsoUOHVL9+fbsWExgYeNOh/+zsPF25YvuTobDwql3jXR31ujfqdS56jv3coV5+vrdGvebYfPIzJydHr776qpo2bap58+YVhS9JateunU6ePKkFCxbo8uXL2r59u9auXauuXbs6ZdEAAACuzOYjYCtWrFBmZqY+//xzrV+/3uq2b775RvPnz9f48eOVlJSkgIAAJSYmqmXLlg5fMAAAgKuzOYDFx8crPj7+lrc3btxYixcvdsiiAAAA3Nm98X5TAACAMoQABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYJhXaS8AAOBamk/5yq7xu956ykkrAVwXR8AAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGMZHEQEA7in2fJTSN8Ofcd5CcE/jCBgAAIBhBDAAAADDCGAAAACGEcAAAAAM4yJ8AECZYs9F8q7O3lp3vfWUk1YC0+74CNjp06fVrl077dixo2jb3r171a1bN4WFhSkqKkrLli1zyCIBAADcyR0FsN27dysmJkZHjhwp2paTk6PevXurc+fO2rVrl8aPH68PPvhA3333ncMWCwAA4A7sDmArV67U22+/rSFDhlhtT01NVdWqVRUbGysvLy9FREQoOjpaixYtcthiAQAA3IHd14A9+eSTio6OlpeXl1UIO3jwoIKDg63GBgUFKSUlxea5s7KylJ2dbb1AL18FBgaWeF9PTw+rf90d9bo36jWDnmO7u6nXy8t1H6Oy9vN11mPJ89k8uwNYjRo1it1+/vx5+fj4WG3z9vZWfn6+zXMvWbJEycnJVtsSEhI0cOBAm+fw9/cpeZAboV73Rr3ORc+x353UW62anxNWYkZZ+/k6+7Esa/U6W2nW67B3Qfr4+CgvL89qW0FBgfz8bH+yxMTEKCoqymqbl5evzpw5X+J9PT095O/vo9zcCyosvGrzPl0V9bo36i2ZI/4joufY7sZ67WXL41lWlbWfr7Mey3v5+Wyy59zIYQEsODhY27Zts9p26NAh1a9f3+Y5AgMDbzr0n52dpytXbH8yFBZetWu8q6Ne90a9zkXPsd+d/Ofsyo9PWfv5OnstZa1eZyvNeh128rNdu3Y6efKkFixYoMuXL2v79u1au3atunbt6qhdAAAAuAWHBbBq1app/vz5Wr9+vR5//HElJiYqMTFRLVu2dNQuAAAA3MJdnYLcv3+/1feNGzfW4sWL72pBAAAA7o6PIgKAe5yzP/rnXvpoIcBW98Yf/AAAAChDCGAAAACGEcAAAAAMI4ABAAAYxkX4uGfZc2HwrreecuJKALgL3nAAW3EEDAAAwDACGAAAgGEEMAAAAMMIYAAAAIZxET7cDhfBAnCUsElflvYS4KY4AgYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACG8S5IoIyz9V2dfFwSALgOjoABAAAYRgADAAAwjAAGAABgGAEMAADAMC7Ch10f3ePoC73t2ffPEzs6dN/OwAXzKAv4OC735eyf7TfDn3Hq/PgPjoABAAAYRgADAAAwjAAGAABgGAEMAADAMC7Ch124yBwAgLvHETAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjHdBlhHO+Dggd/s4kjoj/lHaS3CY0v7Z8G5WAChdHAEDAAAwjAAGAABgGAEMAADAMAIYAACAYVyE74JK+wJuW7jCGu3hCvW4whrdmb2PP29wQFkUNulLu8bzPL5zHAEDAAAwjAAGAABgGAEMAADAMAIYAACAYffERfj81W8Arow3WAAls/f35OeJHZ20Ets49AjYqVOn1K9fP4WHh+vxxx/X+PHjdeXKFUfuAgAAwOU5NIANHjxYvr6++vrrr5WSkqK0tDQtWLDAkbsAAABweQ4LYIcPH9bOnTs1dOhQ+fj46MEHH1S/fv20aNEiR+0CAADALTgsgB08eFBVq1ZVzZo1i7bVq1dPmZmZys3NddRuAAAAXJ7DLsI/f/68fHx8rLZd/z4/P1/+/v4lzpGVlaXs7GzrBXr5KjAwsMT7enp6WP17J7y8eFMocCNTvxOO+P29E6XZc+g3cAeu/jw23XOsWBwkNTXV0qJFC6ttGRkZluDgYEtubq5NcyQlJVmCg4OtvpKSkmy674kTJyxJSUmWEydO2L12V0S97o16zaDn2I563Rv1muew6Fe/fn2dPXtWJ0+eLNr2448/6v7771flypVtmiMmJkYrVqyw+oqJibHpvtnZ2UpOTr7p1ay7ol73Rr1m0HNsR73ujXrNc9gpyDp16qhZs2aaMGGCxo0bpzNnzmjWrFl66aWXbJ4jMDDQpkP/AOAI9BwApcWhJz+TkpJ05coVtWnTRt27d1erVq3Ur18/R+4CAADA5Tn0L+Hfd999SkpKcuSUAAAAbsfzvffee6+0F+Eofn5+atGihfz8/Ep7KUZQr3uj3rLPFdd8N6jXvVGvWeUsFoulVPYMAABwj3LtP+ABAADggghgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwApiTRUVFKSQkpOirYcOGCg8PV1xcnNLT022aY8eOHQoJCdGxY8ecvFrHOnjwoHr37q3HH39cERERGjhwoDIzM285fseOHYqKirrtnCdOnNA777yjVq1aKTQ0VE8++aSGDRumI0eOOHr5NwkJCdGKFSucNv+MGTNKrP9O/O///q969Oihxx57TM8884zmzZvn8H2g7KDn0HNs5ayec93p06f15JNPaseOHU7bhysjgBnQs2dPbd26VVu3btWWLVv06aefys/PT7169dLx48dLe3lOcebMGcXHx8vPz08LFy7U3/72N505c0a9evXSxYsX72jOS5cu6fe//72OHz+u6dOna8OGDZo2bZqOHz+ul19+WadPn3ZwFda2bt2q559/3qn7cLTrP4c6depo+fLlGjBggKZPn67ly5eX9tLgRPQcek5py8zM1Guvvabs7OzSXkqZRQAzwNfXVzVq1FCNGjUUGBio4OBgjR07VhcuXFBqamppL88p/vnPf+rChQuaOHGi6tevr9DQUE2ePFk//vij9uzZc0dzbtu2TT///LMmT56spk2b6oEHHlB4eLhmzpyp3NxcffbZZw6uwlqNGjXk7e3t1H042tKlS1WhQgW99957qlevnrp27arXXntNf/vb30p7aXAieg49pzQtW7ZMnTt3lpeXV2kvpUwjgJWS60/MChUqSJKuXLlSdDgkDXdOAAAgAElEQVT40UcfVZcuXfTVV18Ve9/c3FyNGTNGTz/9tBo1aqTIyEiNGTNGBQUFRWPmzZuntm3bKjQ0VFFRUZo5c6YsFosk6cKFCxo9erQiIyPVuHFjde7c+bZNecSIEVanNG78GjFiRLH3iYiI0MyZM1WxYsWbbsvJybHtQfoVD49rT9cvv/zSanvlypW1Zs0aderUSZK0YsUKhYSEWI359SmVuLg4jRo1St26dVN4eLhWrVqlkJAQ/fjjj1b3i4+P19ChQyX953TA9bluNzYvL0/vvPOOWrZsqWbNmun3v/+99u3bZzV+yZIlateunZo0aaJ+/fqV+Lj8+tTSjV+3Ok2Rnp6u5s2bWzXCli1b6qefftKpU6duuz+4F3qO/eg59vccSdq8ebOGDh2q6dOn33b+ex3xtBScOHFCEyZMkK+vr5566ilJ0oQJE7Ru3Tq9++67Cg0N1cqVK9WvXz+tWrXqpvsPHz5cx48fV1JSkqpXr65vv/1WI0eO1COPPKJXX31VX3zxhf76179q2rRpqlu3rr799lsNGzZMtWvXVqdOnTR9+nTt379fc+bMkb+/v5YtW6YhQ4Zow4YNql279k37Gz16tN56661ia7nVq7PatWvfNNfs2bNVsWJFNW/e3N6HTNK1BhsaGqrhw4frww8/VEREhMLDw/XEE0+obt26ds+3YsUKTZ48WQ0aNNB9992n2rVra82aNRoyZIgkKSsrS9u3b7/pmqkWLVrcdqzFYtEbb7yh8uXLa/bs2apUqZJWr16tl19+WUuXLtV//dd/6R//+IfGjRunUaNG6YknntDGjRs1depU/eY3v7nlelNSUlRYWFjsbZUrVy52+/HjxxUcHGy1LTAwUNK1UwTVq1e37cGCS6Pn0HNM9RxJmjVrliS53DWEphHADJg9e7bmz58v6dqrzkuXLqlevXqaNm2aatWqpXPnzmnp0qVKTEwsOt8/aNAgXb16VefPn79pvsjISIWHh6tBgwaSrjWehQsXav/+/ZKkI0eOqGLFiqpdu7Zq1aqlWrVqKTAwULVq1Sq6vVKlSnrooYdUuXJlDRo0SOHh4apSpUqx669cufJtf9ls8fHHH+vTTz/VyJEj7/g//QoVKujTTz/VokWL9Pnnn2vJkiX67//+b3l5eSkmJkYjR45U+fLlbZ6vYcOGio6OLvr+xRdf1MqVK4sa3GeffaaaNWuqZcuWVvcrV67cbcdu375d33zzjdLS0hQQECBJevPNN7Vnzx59/PHHmjhxoj7++GM9//zzio2NlST17t1b3377rTIyMm653utz2aOgoKDoiMd1148Q3Ol1MSj76Dn0nNLqObAdAcyA3/3ud4qLi5N07ZB21apVrZrLTz/9pMuXL+uxxx6zut/1X7Rfv4PklVde0RdffKHVq1fryJEjOnDggI4ePao6depIkl544QUtX75c7du3V0hIiCIjI9WuXbuiZvjGG2+ob9++ioiIUFhYmCIjI9WxY8dbNrx3331Xa9euLfa26OhojRs37pa1WywWTZ8+XR9++KH69Omj11577dYPlA0qVqyonj17qmfPnsrNzdXOnTu1evVqLVq0SD4+PkWH423x8MMPW33fuXNnJScna8+ePWratKlWr16tTp06FZ2GsHXs999/L0lq06aN1X0uXbpUFHoOHDigjh07Wt0eFhZ222bYsWPHW76ja+zYsXrhhRdu2u7t7a1Lly5Zbbu+Bl9f31vuC66NnkPPkUqn58B2BDADqlSpctMv3o3seQVlsVjUt29f7d+/X9HR0erQoYPefPNNvfPOO0VjAgICtHr1an3zzTfatm2btm7dqvnz52vAgAHq37+/wsLCtGXLFm3btk1paWlKSUnRjBkzNHfuXEVERNy0z0GDBun1118vdj2VKlW65VovX76skSNH6rPPPtOwYcNuOYetli1bpsLCQv3ud7+TJPn7+6tt27Zq27atBg8erC1btlg1Q4vFonLlykm6dhTg1359KqN27dpq0aKF1q5dq8qVKysjI0PTpk0rdi23G3v16lVVqlSp2Gskbjwadf36mOtKeh7MmTOn2Dok3fIV/v3336+srCyrbde/r1mz5m33B9dFz6HnXGe658B2BLAy4OGHH1b58uW1b9++okP8kvTSSy/p2WefVePGjYu2/fDDD9qyZYuWLl2qRx99VNK1pnPkyBE9+OCDkqTVq1fr3Llzio2NVbNmzTRw4EAlJiZq3bp16t+/v5KSktSsWTO1adNGbdq00ciRI9WxY0dt2LCh2GZYvXr1O/plGzZsmDZu3KgpU6bc9MrrThw6dEhr167Vb3/725uacKVKlYrWeL2p5OXlyd/fX5J0+PBhm/bRpUsX/fnPf1blypUVFhZ22+s8bjU2ODhY586d06VLl1S/fv2i8YmJiWrQoIF69Oihhg0bavfu3Xr11VeLbv/1BbO/9sADD9hUw42aN2+uxYsXq7CwUJ6enpKktLQ01a1blwZ6D6Pn2IaeY3/Pge14F2QZ4OPjox49emj69OnatGmTjhw5oqlTp+rQoUNq3bq11dj77rtPXl5e+vzzz3X06FHt27dPgwcPVnZ2dtGpposXL2rSpElatWqVjh07pvT0dO3cuVNhYWGSrjWGMWPGKC0tTb/88ovWr1+vzMzMotsdYcWKFVq3bp2GDBmiFi1aKDs7u+jrxndO2SM+Pl4eHh6Ki4vTP//5Tx07dkz79u3TX//6V61Zs0Z9+/aVJD322GPy8PDQtGnTdPToUX355ZdF18OUpEOHDsrPz9fChQv14osv3tHYVq1aqWHDhho8eLDS0tJ0+PBhTZo0ScuXL1e9evUkXbv+YuPGjZo7d65+/vlnffLJJ9qwYcMdPS6307VrV507d06jR4/WoUOHtGLFCn300Ufq06ePw/cF10HPsQ09B05lgVO1bt3akpSUVOK4ixcvWiZPnmx58sknLU2aNLF069bNsmPHDovFYrFs377dEhwcbDl69KjFYrFY1qxZY2nXrp0lNDTU0rp1a8vYsWMtEyZMsLRp08Zy9epVi8ViscyZM6doTGRkpGXcuHGW/Px8i8ViseTl5VkSExMtkZGRlkaNGlnat29v+eijjxxad3x8vCU4OLjYr+XLlxd7n+3bt1tat25923kzMzMto0ePtrRu3doSGhpqadasmaVnz56WnTt3Wo1bunSpJSoqytKoUSNL9+7dLZs2bbJ6DHv06GEZPnx4sfsYNWqUpXHjxpacnByr7cWt/VZjT506ZRkxYoTl8ccftzRp0sTy4osvWjZu3Gg15h//+Ifl2WeftYSGhlp69OhhmTJlSon134m9e/daunfvXvR8+eSTTxy+D5Qd9Bx6Tmn3nOuOHj1qCQ4Otmzfvt1p+3Bl5SyWX50UBkrJjh07NHLkSH3xxRelvRQA9wB6DkoTpyABAAAMI4ABAAAYxilIAAAAwzgCBgAAYBgBDAAAwDACGAAAgGEEMAAAAMPK/EcRZWfn2TTOw6OcAgL8dPr0eV296v7vK6Be90a9JatRo/gPcr5b9JziUa97o96SObrnuM0RMA+PcipXrpw8PMqV9lKMoF73Rr1lnyuu+W5Qr3uj3lJYQ6ntGQAA4B5FAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGF3FMAKCwsVFxenESNGFG3bsmWLoqOj9dhjj+m5557T5s2bHbZIAAAAd3JHASw5OVnp6elF3//8888aMGCABg0apPT0dA0YMECDBw/WiRMnHLZQAAAAd2F3AEtLS1Nqaqrat29ftG3lypUKDw9X27Zt5eXlpeeff17NmzfXkiVLHLpYAAAAd2BXADt16pRGjx6tKVOmyMfHp2j7oUOHFBwcbDU2KChIGRkZjlklAACAG/GydeDVq1c1dOhQxcfHq0GDBla3nT9/3iqQSZK3t7fy8/PtWkxWVpays7OtF+jlq8DAwBLv6+npYfWvu6Ne90a9ZtBzbEe97o16zbM5gM2ePVsVKlRQXFzcTbf5+PiooKDAaltBQYH8/PzsWsySJUuUnJxstS0hIUEDBw60eQ5/f5+SB7kR6nVv1Otc9Bz7Ua97o15zylksFostA5999lllZWXJw+NaWrweuLy9vRUbG6vvv/9ec+fOLRrfq1cvhYaGavDgwTYv5m5fjfr7+yg394IKC6/avE9XRb3ujXpLVq2afS/wikPPsR31ujfqLZkjes6NbD4Ctn79eqvvr/8JiokTJ+rHH3/U3//+d61bt07t27dXamqqdu7cqdGjR9u1mMDAwJsaX3Z2nq5csf3JUFh41a7xro563Rv1Ohc9x37U696o1xyHnPysV6+eZs6cqdmzZ6t58+aaNWuWZsyYobp16zpiegAAALdi8xGwX5s4caLV961atVKrVq3uekEAAADu7t54uwMAAEAZQgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwuwNYWlqaunXrpqZNmyoyMlLvv/++CgoKJEl79+5Vt27dFBYWpqioKC1btszhCwYAAHB1dgWw06dPq0+fPnr55ZeVnp6ulStXaufOnZozZ45ycnLUu3dvde7cWbt27dL48eP1wQcf6LvvvnPW2gEAAFySlz2DAwIC9K9//UuVKlWSxWLR2bNndfHiRQUEBCg1NVVVq1ZVbGysJCkiIkLR0dFatGiRmjRp4pTFAwAAuCK7ApgkVapUSZL09NNP68SJEwoPD1eXLl00bdo0BQcHW40NCgpSSkqKzXNnZWUpOzvbeoFevgoMDCzxvp6eHlb/ujvqdW/UawY9x3bU696o1zy7A9h1qampysnJ0dtvv62BAweqZs2a8vHxsRrj7e2t/Px8m+dcsmSJkpOTrbYlJCRo4MCBNs/h7+9T8iA3Qr3ujXqdi55jP+p1b9Rrzh0HMG9vb3l7e2vo0KHq1q2b4uLilJeXZzWmoKBAfn5+Ns8ZExOjqKgo6wV6+erMmfMl3tfT00P+/j7Kzb2gwsKrNu/TVVGve6PeklWrZntvuRV6ju2o171Rb8kc0XNuZFcA27Nnj0aNGqU1a9aoQoUKkqRLly6pfPnyCgoK0rZt26zGHzp0SPXr17d5/sDAwJsO/Wdn5+nKFdufDIWFV+0a7+qo171Rr3PRc+xHve6Nes2x6+RnSEiICgoKNGXKFF26dEm//PKLJk2apJdeekkdOnTQyZMntWDBAl2+fFnbt2/X2rVr1bVrV2etHQAAwCXZdQTMz89Pc+fO1YQJExQZGanKlSsrOjpaCQkJqlChgubPn6/x48crKSlJAQEBSkxMVMuWLZ21dgAAAJdk9zVgQUFBmj9/frG3NW7cWIsXL77rRQEAALize+P9pgAAAGUIAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGF2BbCMjAzFx8erRYsWioyM1LBhw3T69GlJ0t69e9WtWzeFhYUpKipKy5Ytc8qCAQAAXJ3NAaygoEC9evVSWFiYtm7dqs8++0xnz57VqFGjlJOTo969e6tz587atWuXxo8frw8++EDfffedM9cOAADgkmwOYJmZmWrQoIESEhJUoUIFVatWTTExMdq1a5dSU1NVtWpVxcbGysvLSxEREYqOjtaiRYucuXYAAACX5GXrwEceeURz58612rZhwwY1atRIBw8eVHBwsNVtQUFBSklJsWsxWVlZys7Otl6gl68CAwNLvK+np4fVv+6Oet0b9ZpBz7Ed9bo36jXP5gB2I4vFomnTpmnz5s1auHChPv74Y/n4+FiN8fb2Vn5+vl3zLlmyRMnJyVbbEhISNHDgQJvn8Pf3KXmQG6Fe90a9zkXPsR/1ujfqNcfuAHbu3DmNHDlS33//vRYuXKiQkBD5+PgoLy/PalxBQYH8/PzsmjsmJkZRUVHWC/Ty1Zkz50u8r6enh/z9fZSbe0GFhVft2q8rol73Rr0lq1bNvv5SHHqO7ajXvVFvyRzRc25kVwA7cuSI3njjDdWqVUspKSkKCAiQJAUHB2vbtm1WYw8dOqT69evbtZjAwMCbDv1nZ+fpyhXbnwyFhVftGu/qqNe9Ua9z0XPsR73ujXrNsfnkZ05Ojl599VU1bdpU8+bNKwpfktSuXTudPHlSCxYs0OXLl7V9+3atXbtWXbt2dcqiAQAAXJnNR8BWrFihzMxMff7551q/fr3Vbd98843mz5+v8ePHKykpSQEBAUpMTFTLli0dvmAAAABXZ3MAi4+PV3x8/C1vb9y4sRYvXuyQRQEAALize+P9pgAAAGUIAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDCv0l4Ayo7mU7667e273nrK0EoAAHBvd3wE7PTp02rXrp127NhRtG3v3r3q1q2bwsLCFBUVpWXLljlkkQAAAO7kjgLY7t27FRMToyNHjhRty8nJUe/evdW5c2ft2rVL48eP1wcffKDvvvvOYYsFAABwB3YHsJUrV+rtt9/WkCFDrLanpqaqatWqio2NlZeXlyIiIhQdHa1FixY5bLEAAADuwO4A9uSTT2rjxo16/vnnrbYfPHhQwcHBVtuCgoKUkZFxdysEAABwM3ZfhF+jRo1it58/f14+Pj5W27y9vZWfn2/z3FlZWcrOzrZeoJevAgMDS7yvp6eH1b/urjTq9fIqvceWn697K6166Tm2o173Rr3mOexdkD4+PsrLy7PaVlBQID8/P5vnWLJkiZKTk622JSQkaODAgTbP4e/vU/IgN3JjvXVG/OO2Y3+e2PGu9hU26Uunzm+Le/nney8wXa+jek5Jv3uSmd8PE8rCc9Lk410W6jWJes1xWAALDg7Wtm3brLYdOnRI9evXt3mOmJgYRUVFWW3z8vLVmTPnS7yvp6eH/P19lJt7QYWFV23ep6u6k3pteRzvhjPn5+fr3u6k3mrVbH9xdyuO6jm2cPbvn7O52nPybh9vV6v3blFvyRzRc27ksADWrl07TZ48WQsWLFBsbKx2796ttWvXatasWTbPERgYeNOh/+zsPF25YvuTobDwql3jXZ099Tr7cTHxuPPzdW+m63VUz7GFu/wcXeU56ag1ukq9jkK95jjs5Ge1atU0f/58rV+/Xo8//rgSExOVmJioli1bOmoXAAAAbuGujoDt37/f6vvGjRtr8eLFd7UgAAAAd8dHEQEA7kpJH2N2HR9nBvzHvfF+UwAAgDKEAAYAAGAYAQwAAMAwAhgAAIBhXIQPo0q6WJeLdIF7m60X9AOujiNgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIyL8O8hzr64lYtnAddiy++sI98YQ48A/oMjYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAY74IsQ3iHEAAA9waOgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAAAADDCGAAAACGEcAAAAAMI4ABAAAYxl/CR5lS0qcBfDP8GTMLARzMlk+62PXWUwZWcm9w5OPNzw7OwBEwAAAAwwhgAAAAhhHAAAAADCOAAQAAGEYAAwAAMIx3QcKt2PJupdu523cylfb+4dpsff6YfJ7c7XO6LCuLtfGOy3sHR8AAAAAMI4ABAAAYRgADAAAwjAAGAABgGBfhw6WETfrSqfOXxYtygTvBc9kskxfPl8U3a8B+HAEDAAAwjAAGAABgGAEMAADAMAIYAACAYVyED5QhjriQl7/GD5RNZfGNEfzl/dLj0CNgp06dUr9+/RQeHq7HH39c48eP15UrVxy5CwAAAJfn0AA2ePBg+fr66uuvv1ZKSorS0tK0YMECR+4CAADA5TksgB0+fFg7d+7U0KFD5ePjowcffFD9+vXTokWLHLULAAAAt+CwAHbw4EFVrVpVNWvWLNpWr149ZWZmKjc311G7AQAAcHkOuwj//Pnz8vHxsdp2/fv8/Hz5+/uXOEdWVpays7OtF+jlq8DAwBLv6+npYfUv4K68vJz7HHf2/MUprd9fV+05pfEzgutx1PPEHZ9vZSIzWBwkNTXV0qJFC6ttGRkZluDgYEtubq5NcyQlJVmCg4OtvpKSkmy674kTJyxJSUmWEydO2L12V0S97o16zaDn2I563Rv1muew6Fe/fn2dPXtWJ0+eLNr2448/6v7771flypVtmiMmJkYrVqyw+oqJibHpvtnZ2UpOTr7p1ay7ol73Rr1m0HNsR73ujXrNc9gpyDp16qhZs2aaMGGCxo0bpzNnzmjWrFl66aWXbJ4jMDDQpkP/AOAI9BwApcWhJz+TkpJ05coVtWnTRt27d1erVq3Ur18/R+4CAADA5Tn0L+Hfd999SkpKcuSUAAAAbsfzvffee6+0F+Eofn5+atGihfz8/Ep7KUZQr3uj3rLPFdd8N6jXvVGvWeUsFoulVPYMAABwj3K/P+4BAABQxhHAAAAADCOAAQAAGEYAAwAAMIwABgAAYBgBDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAAYAAGAYAQwAAMAwAhgAAIBhBDAni4qKUkhISNFXw4YNFR4erri4OKWnp9s0x44dOxQSEqJjx445ebWO9T//8z969dVXFRYWppYtW+rdd99Vbm7uLccfO3ZMISEht50zLy9PkyZNUps2bRQaGqqWLVuqf//++uGHHxy9/JtERUVpxowZTpt/xYoVJdZ/J44dO6Y+ffqoadOmeuKJJzR58mQVFhY6fD8oG+g59BxbOavnXFdQUKDo6GitWLHCaftwZQQwA3r27KmtW7dq69at2rJliz799FP5+fmpV69eOn78eGkvzymysrIUHx+vhx56SCtXrtSsWbO0Z88eDR8+/K7m/cMf/qD09HT98Y9/1IYNGzRnzhx5enoqNjZWhw4dctDqi5eSkqKePXs6dR+OdvnyZb3++usqV66cFi9erHHjxiklJUUzZ84s7aXBieg59JzSdvbsWfXp00cHDhwo7aWUWQQwA3x9fVWjRg3VqFFDgYGBCg4O1tixY3XhwgWlpqaW9vKc4pdfflGrVq00ZswY1alTR02bNlW3bt2UlpZ2x3MeOHBAu3bt0nvvvaeIiAg98MADatKkiaZMmaIqVapo2bJlDqzgZgEBAfLz83PqPhxtw4YNyszM1J/+9CcFBwerbdu2evPNN/XRRx/p0qVLpb08OAk9h55TmjZt2qROnTopLy+vtJdSphHASomXl5ckqUKFCpKkK1euaMaMGYqKitKjjz6qLl266Kuvvir2vrm5uRozZoyefvppNWrUSJGRkRozZowKCgqKxsybN09t27ZVaGiooqKiNHPmTFksFknShQsXNHr0aEVGRqpx48bq3LnzbZvyiBEjrE5p3Pg1YsSIYu8TFhamv/zlL0V1Hjp0SCtXrlRkZKT9D9b/5+Fx7em6ZcuWolqka4/lJ598ot69e0sq/vTJ9VMNO3bsKKqpf//+6tmzp5o2barZs2erQYMG2rJli9U+ExMT9corr0j6z+mAo0ePljj20qVLmjx5slq1aqWwsDB1795dW7dutRq/ceNGRUdHq0mTJurRo4cyMzNvW39cXNwtfw63Ok2Rnp6uRo0ayd/fv2hby5Ytde7cOWVkZNx2f3Av9Bz70XPs7zmS9OWXXyouLk6LFy++7fz3Oq/SXsC96MSJE5owYYJ8fX311FNPSZImTJigdevW6d1331VoaKhWrlypfv36adWqVTfdf/jw4Tp+/LiSkpJUvXp1ffvttxo58v+1d/9hUdV5/8dfChEDQopJZrlbCWR34kqC6aKZKLpamOtmbJLt0pZ5SZJl/lq19rbF8EqvCNl29TbTvbUiUUOyVGq9tQwT+6Hd7WKCKba2gr9BRBHO949u59usJjM6fIYZno/r6vLinM+c83nPmXn3mjNzZqbrlltu0W9+8xv97W9/01/+8hdlZWXp5ptv1jqjZVgAACAASURBVBdffKEpU6boxhtv1H333aeXX35Zu3fv1qJFixQaGqqVK1fqqaee0oYNG3TjjTdesL8ZM2Zo0qRJF60lMDCw0XqHDBmiffv26YYbbtArr7zi4r31/0VERCghIUEvv/yycnNzFR8fr9jYWMXHx6tz584ub6+wsFCTJ0/WrFmzFBgYqI8++kgFBQXq37+/pO8b2oYNGzRlyhSH23Xu3FlxcXGXHDt9+nTt2bNHL774ojp27KhNmzZp3LhxysnJ0d13363PPvtMEyZMUFpamu69917t2LFDzz///CXnu2DBAtXV1V10XVBQ0EWX/+tf/1LHjh0dloWHh0uSDh48qO7duzdyL8EX0HMuDz3H9Z4jqdHt4nsEMAMWLlyoJUuWSPr+VefZs2fVpUsXZWVlqVOnTqqurtZbb72lmTNnatiwYZKkJ598Ug0NDTp16tQF2zvfBLp27SpJuvHGG7V8+XLt3r1bklReXq6rr75aN954ozp16qROnTopPDxcnTp1sq9v06aNfvKTnygkJERPPvmkYmNjdc0111x0/iEhIQoJCbns+ufNm6fa2lrNmzdPDz/8sPLz8y/7tHpOTo5WrVqlgoICrV27VqtWrVKrVq00dOhQPf/882rTpo3T27rmmmv06KOP2v8eOXKkZs+erZqaGgUFBWnTpk06e/ashg4desFtLzV2//79euedd5SXl6fo6GhJUmpqqkpKSvTqq6/q7rvv1vLly3XHHXdowoQJkqSbb75ZX3/9tf7617/+6Hzbtm3rdG3n1dbWOpz9kqSrr75aknTmzBmXtwfvQM+h53iq58B5BDADfv3rX2vMmDGSvj+l3bZtW4fm8s0336iurk49evRwuN1TTz0lSfZT2OeNHj1af/vb35Sfn6/y8nJ9/fXXOnDggG666SZJ0vDhw7Vq1SoNHjxYt956q+Lj45WYmGhvho899pjGjRunPn36KCYmRvHx8brnnnt+tOE9++yzKigouOi6pKQkzZ49+5L1n28ICxYsUP/+/VVYWKgRI0Zc8jY/xs/PTw888IAeeOAB1dTU6NNPP9V7772nNWvWyLIsZWVlOb2tn/70pw5/DxkyRLNnz9YHH3ygpKQk5efna9CgQRdtsJca++GHH0qSHn74YYfb1NXV2cPQ119/fcFbIzExMZdsho8++qg+/fTTi657/PHHNW7cuAuWBwYGXvBZr/PB61KvYOHd6Dn0HMkzPQfOI4AZcM0111zwxPuhq666yultWZalcePGaffu3UpKStKQIUP09NNPa9asWfYxYWFhys/P1+eff66tW7fqo48+0pIlSzRhwgQ98cQTiomJ0ebNm7V161YVFRUpLy9PCxYs0OLFi9WnT58L9vnkk0/qd7/73UXn82Ov/srKyvTtt9/aT5dL37/1dc011+jQoUNO1/tDhYWF2rt3rx5//HFJ3weIfv36qV+/fmrXrp1ef/11h/E//MzGuXPnLtjev7+VERQUpF/84hcqKChQv379tGXLFi1cuPCic7nU2PP7XbFixQWvus9/puTf5yc1/jjIyMhw+MzND/3YmYSOHTtecBVSRUWFJOm666675P7gveg536PnmO85cB4BrBn46U9/qquuukpffvml/RS/JN1///36xS9+YX81J0l///vftXnzZr311lv62c9+Jun7Vznl5eX2zyTk5+erurpaKSkp6tmzp9LT0zVz5ky9++67euKJJ5Sdna2ePXtq4MCBGjhwoKZPn6577rlHGzZsuGgzbN++vdq3b+9STR9++KGysrL00Ucf2RtmeXm5jh07pi5durh8H0nSd999pwULFmj48OG6/vrrHda1adPGPsfzTaW6utq+fv/+/U7tY+TIkUpNTdXq1avVvn37i94fjY2NjIyU9H3Qufvuu+3jX3rpJbVq1UoTJ07Ubbfdps8++8xh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+X7foefQczxZr9cHsKCgIJ0+fdph2fm/feUX3aurq5Wenq6CggItX75ct956q2w2m2prax3G1dbWenXNCxcuVEBAgMaMGXPBOl+sV5ICAgIkSTNmzFCbNm107bXXauLEidq8ebMsy/K5mgsLC7VhwwaNHj1aAQEBioyMVFpamt544w2vOcYtoedILaPv0HPoOZ6s19/IXppQZGSkjh8/rsOHD+vaa6+VJJWVlaljx44KCQnx8OyuXHl5uR577DF16tRJeXl5CgsLkyRFRUVp69atDmNLS0sVGRnpiWm6RX5+vioqKhQbGytJ9ifG+++/r5SUFH311VcO40tLS9WtWzfj83SniIgINTQ0qK6uTldffbWk71+xSdJtt92m119/3WG8tx/j7777zn710Xn+/v666qqrFBUV5RXH2Nd7jtRy+g49h57j0WNs5KP+TezBBx+0nnrqKauqqsp+RVJ2dranp3XFjh8/bt19993WtGnTrPr6eod1R48etWJjY63XXnvNOnv2rFVUVGTFxMRYRUVFHpqt+02dOtV+RVJpaakVHR1trVu3zn61SnR0tLV3714Pz/LKnD171kpMTLQmVqWZygAABPlJREFUTJhgVVdXW0eOHLEefvhhKy0tzSeP8Z49e6xu3bpZf/7zn61z585Z5eXl1r333mtlZmZ61TH21Z5jWS2779BzfO/4Nuee08qy/u+yAC92+PBhzZ49W5988olat26tESNG6JlnnnH4EKk3eu2115SZmSmbzaZWrVo5rPv888/15ZdfKiMjQ19//bXCwsI0fvx4jRw50kOzdb/z38eTmZkpSfrwww81b948lZeX64YbbtDkyZPVv39/T07RLQ4dOqTMzEwVFxfrzJkzSkhI0IwZMxQaGuqTx/jjjz9WVlaW9u7dq5CQEA0fPtx+xZ23HGNf7TlSy+479Bx6jslj7BMBDAAAwJt4/YfwAQAAvA0BDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAIZmobq6Wj/72c/085///ILf7QIAd6PnwNMIYGgW1q1bp/bt26u6ulqFhYWeng4AH0fPgafxU0RoFh544AF17dpVhw4dUk1Njf77v//b01MC4MPoOfA0f09PACgrK9POnTv1u9/9TjU1NZo2bZrKysrUpUsXSVJ9fb2ys7O1atUqVVVV6a677lLHjh1VUlJib5plZWXKzMzUjh07FBwcrDvvvFPTpk1Thw4dPFkagGaInoPmgLcg4XF5eXkKCgrSXXfdpUGDBikgIEBvvPGGff28efOUm5urZ599VqtXr1Z4eLjDq9VDhw5p9OjR6ty5s/Ly8vSXv/xF1dXV+vWvf62amhpPlASgGaPnoDkggMGjzp07p4KCAg0YMEA2m00hISHq37+/8vPzdfr0aZ0+fVqvv/66Jk6cqMGDB6tLly6aNWuW/uM//sO+jTfeeEPh4eF69tln1aVLF3Xr1k1ZWVk6fPiw1q9f78HqADQ39Bw0F7wFCY/avHmzKisrNWzYMPuyYcOGqbCwUOvWrVPXrl1VW1urHj16ONyuZ8+eKikpkST9/e9/V1lZmWJiYhzGnDlzRmVlZU1fBACvQc9Bc0EAg0etXr1akpSenn7BujfffFN//OMfJUmXulakoaFBvXv31nPPPXfBupCQEDfNFIAvoOeguSCAwWOOHj2qzZs3a+TIkUpNTXVYt2zZMuXl5ammpkaBgYH64osvdNttt9nX79q1SwEBAZKkyMhIvfvuu7r++uvty44fP66pU6cqNTVVvXv3NlcUgGaLnoPmhM+AwWPy8/N17tw5Pfroo4qKinL4b9y4cfLz89Pq1as1ZswYZWdn6/3339c333yjefPm6YsvvrBvZ/To0aqqqtLTTz+tf/zjHyopKdGkSZO0a9cuRUZGerBCAM0JPQfNCWfA4DGrV6/Wz3/+c/ul3z/UuXNnJSYmat26ddqyZYvq6uo0c+ZMnT59WgMGDNDAgQN15swZ+9jly5dr/vz5Gj16tPz8/NSjRw8tW7ZM7du3N10WgGaKnoPmhC9iRbNXWFionj17KiwszL7skUceUceOHTVnzhwPzgyAL6LnwATegkSz9+qrr2rSpEn6xz/+oQMHDmjp0qXatm2bhg8f7umpAfBB9ByYwBkwNHvffvutMjMzVVxcrNraWkVERGjcuHFKTEz09NQA+CB6DkwggAEAABjGW5AAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhv0/i/bZxgmq2MsAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "grd = sns.FacetGrid(train_df, col='Survived', row='Pclass')\n", + "grd.map(plt.hist, 'Age', bins=20)\n", + "grd.add_legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.factorplot('Pclass','Survived',hue='Sex',data=train_df)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.factorplot('Embarked','Survived',hue='Pclass',data=train_df)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Oldest passenger: 80.0 years\n", + "Youngest passenger: 0.42 years\n", + "Average age on the Titanic: 29.7 years\n" + ] + } + ], + "source": [ + "print('Oldest passenger:',train_df['Age'].max(),'years')\n", + "print('Youngest passenger:',train_df['Age'].min(),'years')\n", + "print('Average age on the Titanic:',round(train_df['Age'].mean(), 2),'years')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Key Observations\n", + "* The chance of survival for women is high as compared to men.\n", + "* 1st class passenger increases chances of survival.\n", + "* Children do have a higher chance of survival. Passengers between age group 15 to 35 had the least survival rate.\n", + "* The chances of survival at C looks to be better than Pclass1 passengers got at S.\n", + "* Having a larger family size is correlated with lower chance of survival." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Cleaning the Data + Feature Engineering

\n", + "

4 C's of Data Cleaning: Correcting, Completing, Creating, and Converting

" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train columns with null values:\n", + "\n", + " PassengerId 0\n", + "Survived 0\n", + "Pclass 0\n", + "Name 0\n", + "Sex 0\n", + "Age 177\n", + "SibSp 0\n", + "Parch 0\n", + "Ticket 0\n", + "Fare 0\n", + "Cabin 687\n", + "Embarked 2\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "print('Train columns with null values:\\n\\n', train_df.isnull().sum())" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "train_df = train_df.drop(['PassengerId', 'Ticket', 'Cabin'], axis=1) #correcting by dropping Cabin because it contains null values, and tickets since it has duplicates\n", + "test_df = test_df.drop(['PassengerId', 'Ticket', 'Cabin'], axis=1)\n", + "combine = [train_df, test_df]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "#Creating a new title feature from Name\n", + "for df in combine:\n", + " df['Title'] = df.Name.str.extract(' ([A-Za-z]+)\\.', expand=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Sexfemalemale
Title
Capt01
Col02
Countess10
Don01
Dr16
Jonkheer01
Lady10
Major02
Master040
Miss1820
Mlle20
Mme10
Mr0517
Mrs1250
Ms10
Rev06
Sir01
\n", + "
" + ], + "text/plain": [ + "Sex female male\n", + "Title \n", + "Capt 0 1\n", + "Col 0 2\n", + "Countess 1 0\n", + "Don 0 1\n", + "Dr 1 6\n", + "Jonkheer 0 1\n", + "Lady 1 0\n", + "Major 0 2\n", + "Master 0 40\n", + "Miss 182 0\n", + "Mlle 2 0\n", + "Mme 1 0\n", + "Mr 0 517\n", + "Mrs 125 0\n", + "Ms 1 0\n", + "Rev 0 6\n", + "Sir 0 1" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.crosstab(train_df['Title'], train_df['Sex'])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "#Creating a new title feature from Name\n", + "for df in combine:\n", + " df['Title'].replace(['Mlle','Mme','Ms','Ddr','Major','Lady','Countess','Jonkheer','Col','Rev','Capt','Sir','Don', 'Dona'],\n", + " ['Miss','Miss','Miss','Mr','Mr','Mrs','Mrs','Other','Other','Other','Mr','Mr','Mr', 'Mrs'],inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Title\n", + "Dr 43.571429\n", + "Master 5.482642\n", + "Miss 21.834533\n", + "Mr 32.413823\n", + "Mrs 37.046243\n", + "Other 44.923077\n", + "Name: Age, dtype: float64" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.concat([train_df, test_df]).groupby('Title')['Age'].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "#Correct null values in Age using Title\n", + "for df in combine:\n", + " df.loc[(df.Age.isnull())&(df.Title=='Dr'),'Age']=44\n", + " df.loc[(df.Age.isnull())&(df.Title=='Mr'),'Age']=32\n", + " df.loc[(df.Age.isnull())&(df.Title=='Mrs'),'Age']=37\n", + " df.loc[(df.Age.isnull())&(df.Title=='Master'),'Age']=6\n", + " df.loc[(df.Age.isnull())&(df.Title=='Miss'),'Age']=22\n", + " df.loc[(df.Age.isnull())&(df.Title=='Other'),'Age']=45" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.concat([train_df, test_df]).Age.isnull().any()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Title\n", + "Dr 0.428571\n", + "Master 0.575000\n", + "Miss 0.704301\n", + "Mr 0.159004\n", + "Mrs 0.795276\n", + "Other 0.111111\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.concat([train_df, test_df]).groupby('Title')['Survived'].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "#converting title and sex to categorical\n", + "title_mapping = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Other\": 6}\n", + "\n", + "for df in combine:\n", + " df['Title'] = df['Title'].map(title_mapping)\n", + " df['Title'] = df['Title'].fillna(0)\n", + " df['Sex'] = df['Sex'].map( {'female': 1, 'male': 0} ).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "#Completing null values in Embarked feature\n", + "port = train_df.Embarked.dropna().mode()[0]\n", + "for df in combine:\n", + " df['Embarked'] = df['Embarked'].fillna(port)\n", + "\n", + "#converting a categorical feature to numeric\n", + "for df in combine:\n", + " df['Embarked'] = df['Embarked'].map( {'S': 0, 'C': 1, 'Q': 2} ).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "#Complete missing fare with median\n", + "for df in combine: \n", + " df['Fare'].fillna(df['Fare'].median(), inplace = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "#Create new features based on SibSp and Parch\n", + "for df in combine:\n", + " df['FamilySize'] = df['SibSp'] + df['Parch'] + 1\n", + " df['IsAlone'] = 1\n", + " df['IsAlone'].loc[df['FamilySize'] > 1] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
FamilySize
40.724138
30.578431
20.552795
70.333333
10.303538
50.200000
60.136364
80.000000
110.000000
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "FamilySize \n", + "4 0.724138\n", + "3 0.578431\n", + "2 0.552795\n", + "7 0.333333\n", + "1 0.303538\n", + "5 0.200000\n", + "6 0.136364\n", + "8 0.000000\n", + "11 0.000000" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[['FamilySize', 'Survived']].groupby(['FamilySize']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
IsAlone
00.505650
10.303538
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "IsAlone \n", + "0 0.505650\n", + "1 0.303538" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[['IsAlone', 'Survived']].groupby(['IsAlone']).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "#Create AgeBand features, maximum age is 80, 5 bins total means 16 bin size\n", + "for df in combine:\n", + " df['AgeBand']=0\n", + " df.loc[df['Age']<=16,'AgeBand']=0\n", + " df.loc[(df['Age']>16)&(df['Age']<=32),'AgeBand']=1\n", + " df.loc[(df['Age']>32)&(df['Age']<=48),'AgeBand']=2\n", + " df.loc[(df['Age']>48)&(df['Age']<=64),'AgeBand']=3\n", + " df.loc[df['Age']>64,'AgeBand']=4" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xd4VGX6xvF7MpOeEAJJ6IEQIJQAAgFEehMWFxHFjm1RUQQVd7Gsq6y6dleUEsVVf4rIrgpSVBALijTpXTpJSCEkgfQ+yfz+QCPjUJLJJCfl+7kuL8lzzpm5k8CbzDPveV+TzWazCQAAAAAAAKhGbkYHAAAAAAAAQP1DUwoAAAAAAADVjqYUAAAAAAAAqh1NKQAAAAAAAFQ7mlIAAAAAAACodjSlAAAAAAAAUO1oSgEAAAAAAKDa0ZQCAAAAAABAtaMpBQAAAAAAgGpHUwpw0rBhwxQREVH2X6dOnRQVFaXbbrtN27ZtK9djbN68WREREUpISKjitFWjtLRUkyZN0pw5c4yOAgAuV5/H+SNHjujee+9V37591a9fPz344INKSkoyOhYAuFx9Huv37dunO+64Qz169NDll1+up59+WllZWUbHQj1DUwqohL/85S9av3691q9fr7Vr12rRokXy9fXV3XffreTkZKPjVamCggLNmDFD69evNzoKAFSZ+jjOp6en66677pKvr68WLlyo//znP0pPT9fdd9+twsJCo+MBgMvVx7E+JSVFd911l0JDQ7V06VJFR0drx44deuyxx4yOhnqGphRQCT4+PgoODlZwcLBCQkLUoUMHPfPMM8rPz9c333xjdLwqs2PHDo0fP167d+9WgwYNjI4DAFWmPo7z3333nfLz8/XSSy+pffv2ioyM1Kuvvqpjx45px44dRscDAJerj2N9YmKiBg4cqJkzZ6pNmzbq2bOnrr/+em3atMnoaKhnaEoBLmaxWCRJHh4ekiSr1ao5c+Zo2LBh6t69u6699lr99NNP5702KytLM2fO1ODBg9WlSxf1799fM2fOVEFBQdk57733nkaMGKHIyEgNGzZM8+bNk81mkyTl5+frySefVP/+/dW1a1ddc801F/1B+vjjj9tNVz73v8cff/yC161bt04jR47UsmXL5O/vX+GvEQDUZnV9nO/Xr5/mzZsnT09Ph2OZmZnl+yIBQC1X18f6Hj166PXXXy/7PI8ePaqlS5eqf//+Ff9iAZVgMToAUJecOnVKL7zwgnx8fDRo0CBJ0gsvvKCVK1fq6aefVmRkpJYuXaopU6Zo2bJlDtc/9thjSk5O1uzZs9W4cWPt2rVLTzzxhNq2bas77rhDa9as0dtvv6033nhDYWFh2rVrlx599FG1bNlS48aN05tvvqlDhw7pnXfeUYMGDfTZZ59p+vTpWr16tVq2bOnwfE8++aT++te/nvdz8fLyuuDn+dBDDzn5FQKA2q0+jPMtW7Z0eKz58+fL09NTvXv3ruiXDABqnfow1p9r1KhRio2NVYsWLRQdHV3BrxZQOTSlgEqYP3++3n//fUln3z0pKipSeHi43njjDTVv3lw5OTn69NNP9Y9//ENjxoyRdLahU1paqtzcXIfH69+/v6KiotSxY0dJZ18YLFy4UIcOHZIknThxQp6enmrZsqWaN2+u5s2bKyQkRM2bNy877ufnp9DQUPn7++uhhx5SVFSUAgICzpvf39+fmU4AcBGM89KCBQu0aNEiPfHEE2rcuHGlHgsAaqL6Pta/9tprKigo0Guvvabbb79dy5cvl6+vr9OPB1QETSmgEm666SbddtttkiQ3Nzc1bNjQ7gdCTEyMiouLddlll9ldN336dElnd+o41y233KI1a9Zo+fLlOnHihA4fPqz4+Hi1adNGknT11VdryZIluvLKKxUREaH+/ftr5MiRZT/A7rnnHt13333q16+fevToof79++uqq6664A+pp59+Wl988cV5j40dO1bPPvtsxb8oAFCH1Odx3maz6c0339Rbb72lyZMn684777zwFwoAarH6PNZLUteuXSVJc+bM0eDBg/Xtt9/qmmuuueg1gKvQlAIqISAgQK1bt77gcXd393I/ls1m03333adDhw5p7NixGjVqlB555BE99dRTZec0atRIy5cv186dO7VhwwatX79e77//vqZNm6apU6eqR48eWrt2rTZs2KBNmzZp8eLFmjNnjt59913169fP4TkfeughTZo06bx5/Pz8yp0dAOqq+jrOFxcX64knntCXX36pRx999IKPAQB1QX0c648dO6aEhAQNHjy4rBYSEqKAgACdOnWq3J8vUFk0pYAq1Lp1a7m7u2vv3r1l03clacKECRo9enTZuxKS9Msvv2jt2rX69NNP1b17d0ln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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.factorplot('AgeBand','Survived',data=train_df,col='Pclass')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "459 (-0.001, 7.91]\n", + "578 (14.454, 31.0]\n", + "863 (31.0, 512.329]\n", + "751 (7.91, 14.454]\n", + "64 (14.454, 31.0]\n", + "367 (-0.001, 7.91]\n", + "562 (7.91, 14.454]\n", + "731 (14.454, 31.0]\n", + "824 (31.0, 512.329]\n", + "833 (-0.001, 7.91]\n", + "Name: Fare, dtype: category\n", + "Categories (4, interval[float64]): [(-0.001, 7.91] < (7.91, 14.454] < (14.454, 31.0] < (31.0, 512.329]]" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.qcut(train_df['Fare'],4).sample(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FareBandSurvived
0(-0.001, 7.91]0.197309
1(7.91, 14.454]0.303571
2(14.454, 31.0]0.454955
3(31.0, 512.329]0.581081
\n", + "
" + ], + "text/plain": [ + " FareBand Survived\n", + "0 (-0.001, 7.91] 0.197309\n", + "1 (7.91, 14.454] 0.303571\n", + "2 (14.454, 31.0] 0.454955\n", + "3 (31.0, 512.329] 0.581081" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df['FareBand'] = pd.qcut(train_df['Fare'], 4)\n", + "train_df[['FareBand', 'Survived']].groupby(['FareBand'], as_index=False).mean().sort_values(by='FareBand', ascending=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "#Create FareBand feature\n", + "for df in combine:\n", + " df.loc[df['Fare'] <= 7.91, 'Fare'] = 0\n", + " df.loc[(df['Fare'] > 7.91) & (df['Fare'] <= 14.454), 'Fare'] = 1\n", + " df.loc[(df['Fare'] > 14.454) & (df['Fare'] <= 31), 'Fare'] = 2\n", + " df.loc[df['Fare'] > 31, 'Fare'] = 3\n", + " df['Fare'] = df['Fare'].astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare',\n", + " 'Embarked', 'Title', 'FamilySize', 'IsAlone', 'AgeBand', 'FareBand'],\n", + " dtype='object')" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "#Drop unneeded features, better to use IsAlone as main feature for family size\n", + "train_df = train_df.drop(['Name', 'Parch', 'SibSp', 'FamilySize', 'FareBand', 'Age'], axis=1)\n", + "test_df = test_df.drop(['Name', 'Parch', 'SibSp', 'FamilySize','Age'], axis=1)\n", + "combine = [train_df, test_df]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SurvivedPclassSexFareEmbarkedTitleIsAloneAgeBand
85813121301
53203001101
85203121200
12603002111
73803000111
76511130303
71712110211
69113111200
16203000111
14213120301
\n", + "
" + ], + "text/plain": [ + " Survived Pclass Sex Fare Embarked Title IsAlone AgeBand\n", + "858 1 3 1 2 1 3 0 1\n", + "532 0 3 0 0 1 1 0 1\n", + "852 0 3 1 2 1 2 0 0\n", + "126 0 3 0 0 2 1 1 1\n", + "738 0 3 0 0 0 1 1 1\n", + "765 1 1 1 3 0 3 0 3\n", + "717 1 2 1 1 0 2 1 1\n", + "691 1 3 1 1 1 2 0 0\n", + "162 0 3 0 0 0 1 1 1\n", + "142 1 3 1 2 0 3 0 1" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.sample(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Machine Learning

" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((712, 7), (712,), (179, 7), (179,))" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train, X_val, Y_train, Y_val = train_test_split(train_df.drop(\"Survived\", axis=1), train_df[\"Survived\"], test_size=0.2, random_state=True)\n", + "X_train.shape, Y_train.shape, X_val.shape, Y_val.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.770949720670391" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Fit a machine learning model on training data\n", + "logreg = LogisticRegression()\n", + "logreg.fit(X_train, Y_train)\n", + "Y_pred = logreg.predict(X_val)\n", + "accuracy_score(Y_val, Y_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FeatureCorrelation
1Sex2.131160
4Title0.516233
3Embarked0.298914
5IsAlone0.054254
2Fare-0.097203
6AgeBand-0.411285
0Pclass-1.229798
\n", + "
" + ], + "text/plain": [ + " Feature Correlation\n", + "1 Sex 2.131160\n", + "4 Title 0.516233\n", + "3 Embarked 0.298914\n", + "5 IsAlone 0.054254\n", + "2 Fare -0.097203\n", + "6 AgeBand -0.411285\n", + "0 Pclass -1.229798" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coeff_df = pd.DataFrame(train_df.columns.delete(0))\n", + "coeff_df.columns = ['Feature']\n", + "coeff_df[\"Correlation\"] = pd.Series(logreg.coef_[0])\n", + "coeff_df.sort_values(by='Correlation', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.776536312849162" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dt = DecisionTreeClassifier()\n", + "dt.fit(X_train, Y_train)\n", + "Y_pred = dt.predict(X_val)\n", + "accuracy_score(Y_val, Y_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.heatmap(confusion_matrix(Y_val,Y_pred), annot=True,fmt='2.0f')" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 3 folds for each of 9 candidates, totalling 27 fits\n", + "0.8160112359550562\n", + "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=100,\n", + " max_features=None, max_leaf_nodes=None,\n", + " min_impurity_decrease=0.0, min_impurity_split=None,\n", + " min_samples_leaf=1, min_samples_split=2,\n", + " min_weight_fraction_leaf=0.0, presort=False, random_state=0,\n", + " splitter='best')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[Parallel(n_jobs=1)]: Done 27 out of 27 | elapsed: 0.1s finished\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import GridSearchCV\n", + "\n", + "max_depth=range(100,1000,100)\n", + "hyper={'max_depth':max_depth}\n", + "grd=GridSearchCV(estimator=DecisionTreeClassifier(random_state=0),param_grid=hyper,verbose=True)\n", + "grd.fit(X_train,Y_train)\n", + "print(grd.best_score_)\n", + "print(grd.best_estimator_)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.776536312849162" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Y_pred = grd.best_estimator_.predict(X_val)\n", + "accuracy_score(Y_val, Y_pred)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

YOUR TURN...

" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "#insert code here" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Base4/questions.js b/Base4/questions.js index fc57106..8a67a2c 100644 --- a/Base4/questions.js +++ b/Base4/questions.js @@ -1,101 +1,146 @@ - var stringSize = function (text) { - + var size = text.length; + return size; } var replaceCharacterE = function (text) { - + var rep = text.replace(/e/, ' '); + return rep; } var concatString = function (text1, text2) { - + var conc = text1.concat(text2); + return conc; } var showChar5 = function (text) { + var ans = text.charAt(4); + return ans; } var showChar9 = function (text) { + var ans = text.slice(0, 9); + return ans; } var toCapitals = function (text) { - + var upr = text.toUpperCase(); + return upr; } var toLowerCase = function (text) { - + var lwr = text.toLowerCase(); + return lwr; } var removeSpaces = function (text) { - + var del = text.trim(); + return del; } var IsString = function (text) { - + if (typeof (text) == 'string') { + return true; + } else return false; } var getExtension = function (text) { - + var ext = text.split('.') + return ext[1] } var countSpaces = function (text) { - + var countSpaces = text.split(" "); + return countSpaces.length - 1; } var InverseString = function (text) { - + var ans = ""; + for (var i = text.length - 1; i >= 0; i--) { + ans += text[i]; + } + return ans; } var power = function (x, y) { + var power = Math.pow(x, y); + return power; } var absoluteValue = function (num) { - + var ans = Math.abs(num); + return ans } var absoluteValueArray = function (array) { - + var ans = ''; + var arr = []; + for (var i = 0; i < array.length; i++) { + ans = Math.abs(array[i]) + arr.push(ans) + } + return arr; } var circleSurface = function (radius) { + var circle = Math.ceil(Math.PI * (radius * radius)); + return circle; } var hypothenuse = function (ab, ac) { - + var ans = Math.hypot(ab, ac); + return ans; } var BMI = function (weight, height) { - + var ans = (weight / (height * height)).toFixed(2) + ans = parseFloat(ans); + return ans; } var createLanguagesArray = function () { - + var arr = ['Html', 'CSS', 'Java', 'PHP']; + return arr; } var createNumbersArray = function () { - + var arr = []; + for (var i = 0; i <= 5; i++) { + arr.push(i) + } + return arr; } var replaceElement = function (languages) { - + languages.splice(2, 1, 'Javascript'); + return languages; } var addElement = function (languages) { - + languages.splice(5, 0, 'Ruby', 'Python'); + return languages; } var addNumberElement = function (numbers) { - + numbers.splice(0, 0, -2, -1); + return numbers; } var removeFirst = function (languages) { - + languages.shift(); + return languages; } var removeLast = function (languages) { - + languages.pop(); + return languages; } var convertStrToArr = function (social_arr) { - + var ans = social_arr.split(','); + return ans; } var convertArrToStr = function (languages) { - + var result = languages.toString(); + return result; } var sortArr = function (social_arr) { - + var ans = social_arr.sort(); + return ans; } -var invertArr = function (social_arr){ - -} +var invertArr = function (social_arr) { + var ans = social_arr.reverse(); + return ans; +} \ No newline at end of file diff --git a/Codi_DS_Bootcamp.ipynb b/Codi_DS_Bootcamp.ipynb new file mode 100644 index 0000000..5e3ef7c --- /dev/null +++ b/Codi_DS_Bootcamp.ipynb @@ -0,0 +1,5524 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "

Programming for A Better Future

\n", + "

Workshop by Hani El-Sayyed

\n", + "\n", + "The Codi Data Science & Machine Learning workshop will take you through exploring a (public) dataset using Python plus an open-source stack of DS & ML tools.\n", + "\n", + "The dataset is featured on Kaggle, a data science competitions platform." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# data analysis and wrangling\n", + "import pandas as pd\n", + "import numpy as np\n", + "import random as rnd\n", + "\n", + "# visualization\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "# machine learning\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.svm import SVC, LinearSVC\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.naive_bayes import GaussianNB\n", + "from sklearn.linear_model import Perceptron\n", + "from sklearn.linear_model import SGDClassifier\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.metrics import accuracy_score\n", + "from sklearn.metrics import confusion_matrix\n", + "\n", + "import warnings\n", + "warnings.filterwarnings('ignore') " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Data

" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* On April 15, 1912, during her maiden voyage, the Titanic sank after colliding with an iceberg, killing 1502 out of 2224 passengers and crew.\n", + "* This sensational tragedy shocked the international community and led to better safety regulations for ships.\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.\n", + "* Although there was some element of luck involved in surviving the sinking, some groups of people were more likely to survive than others.\n", + "* Goal #1 of the workshop is to understand what elements led to survival through explantory data analysis.\n", + "* Goal #2 of the workshop is to prepare and clean the data.\n", + "* Goal #3 is to create a predictive model that predicts whether a passenger would have survived using cleaned data. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "train_df = pd.read_csv('data/train.csv')\n", + "test_df = pd.read_csv('data/test.csv')\n", + "combined = [train_df, test_df]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
888911Fortune, Miss. Mabel Helenfemale23.03219950263.0000C23 C25 C27S
49950003Svensson, Mr. Olofmale24.0003500357.7958NaNS
20220303Johanson, Mr. Jakob Alfredmale34.00031012646.4958NaNS
575803Novel, Mr. Mansouermale28.50026977.2292NaNC
61161203Jardin, Mr. Jose NetomaleNaN00SOTON/O.Q. 31013057.0500NaNS
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name Sex Age \\\n", + "88 89 1 1 Fortune, Miss. Mabel Helen female 23.0 \n", + "499 500 0 3 Svensson, Mr. Olof male 24.0 \n", + "202 203 0 3 Johanson, Mr. Jakob Alfred male 34.0 \n", + "57 58 0 3 Novel, Mr. Mansouer male 28.5 \n", + "611 612 0 3 Jardin, Mr. Jose Neto male NaN \n", + "\n", + " SibSp Parch Ticket Fare Cabin Embarked \n", + "88 3 2 19950 263.0000 C23 C25 C27 S \n", + "499 0 0 350035 7.7958 NaN S \n", + "202 0 0 3101264 6.4958 NaN S \n", + "57 0 0 2697 7.2292 NaN C \n", + "611 0 0 SOTON/O.Q. 3101305 7.0500 NaN S " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.sample(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* PassengerId: Passenger ID\n", + "* Survived: Passenger Survival Indicator\n", + "* Pclass: Passenger Class\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" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "

Overview

\n", + "
\n", + "
\n", + "
\n", + "

Dataset info

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Number of variables12
Number of observations891
Total Missing (%)8.1%
Total size in memory83.6 KiB
Average record size in memory96.1 B
\n", + "
\n", + "
\n", + "

Variables types

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Numeric6
Categorical4
Boolean1
Date0
Text (Unique)1
Rejected0
Unsupported0
\n", + "
\n", + "
\n", + " \n", + "

Warnings

\n", + "
  • Age has 177 / 19.9% missing values Missing
  • Cabin has 687 / 77.1% missing values Missing
  • Cabin has a high cardinality: 148 distinct values Warning
  • Fare has 15 / 1.7% zeros Zeros
  • Parch has 678 / 76.1% zeros Zeros
  • SibSp has 608 / 68.2% zeros Zeros
  • Ticket has a high cardinality: 681 distinct values Warning
\n", + "
\n", + "
\n", + "
\n", + "

Variables

\n", + "
\n", + "
\n", + "
\n", + "

Age
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count89
Unique (%)10.0%
Missing (%)19.9%
Missing (n)177
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean29.699
Minimum0.42
Maximum80
Zeros (%)0.0%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum0.42
5-th percentile4
Q120.125
Median28
Q338
95-th percentile56
Maximum80
Range79.58
Interquartile range17.875
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation14.526
Coef of variation0.48912
Kurtosis0.17827
Mean29.699
MAD11.323
Skewness0.38911
Sum21205
Variance211.02
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
24.0303.4%\n", + "
 
\n", + "
22.0273.0%\n", + "
 
\n", + "
18.0262.9%\n", + "
 
\n", + "
28.0252.8%\n", + "
 
\n", + "
19.0252.8%\n", + "
 
\n", + "
30.0252.8%\n", + "
 
\n", + "
21.0242.7%\n", + "
 
\n", + "
25.0232.6%\n", + "
 
\n", + "
36.0222.5%\n", + "
 
\n", + "
29.0202.2%\n", + "
 
\n", + "
Other values (78)46752.4%\n", + "
 
\n", + "
(Missing)17719.9%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
0.4210.1%\n", + "
 
\n", + "
0.6710.1%\n", + "
 
\n", + "
0.7520.2%\n", + "
 
\n", + "
0.8320.2%\n", + "
 
\n", + "
0.9210.1%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
70.020.2%\n", + "
 
\n", + "
70.510.1%\n", + "
 
\n", + "
71.020.2%\n", + "
 
\n", + "
74.010.1%\n", + "
 
\n", + "
80.010.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Cabin
\n", + " Categorical\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count148
Unique (%)16.6%
Missing (%)77.1%
Missing (n)687
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
G6\n", + "
\n", + "  \n", + "
\n", + " 4\n", + "
B96 B98\n", + "
\n", + "  \n", + "
\n", + " 4\n", + "
C23 C25 C27\n", + "
\n", + "  \n", + "
\n", + " 4\n", + "
Other values (144)\n", + "
\n", + " 192\n", + "
\n", + " \n", + "
(Missing)\n", + "
\n", + " 687\n", + "
\n", + " \n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
G640.4%\n", + "
 
\n", + "
B96 B9840.4%\n", + "
 
\n", + "
C23 C25 C2740.4%\n", + "
 
\n", + "
E10130.3%\n", + "
 
\n", + "
F3330.3%\n", + "
 
\n", + "
D30.3%\n", + "
 
\n", + "
F230.3%\n", + "
 
\n", + "
C22 C2630.3%\n", + "
 
\n", + "
B2820.2%\n", + "
 
\n", + "
B3520.2%\n", + "
 
\n", + "
Other values (137)17319.4%\n", + "
 
\n", + "
(Missing)68777.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Embarked
\n", + " Categorical\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count4
Unique (%)0.4%
Missing (%)0.2%
Missing (n)2
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
S\n", + "
\n", + " 644\n", + "
\n", + " \n", + "
C\n", + "
\n", + " 168\n", + "
\n", + " \n", + "
Q\n", + "
\n", + "  \n", + "
\n", + " 77\n", + "
(Missing)\n", + "
\n", + "  \n", + "
\n", + " 2\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
S64472.3%\n", + "
 
\n", + "
C16818.9%\n", + "
 
\n", + "
Q778.6%\n", + "
 
\n", + "
(Missing)20.2%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Fare
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count248
Unique (%)27.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean32.204
Minimum0
Maximum512.33
Zeros (%)1.7%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum0
5-th percentile7.225
Q17.9104
Median14.454
Q331
95-th percentile112.08
Maximum512.33
Range512.33
Interquartile range23.09
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation49.693
Coef of variation1.5431
Kurtosis33.398
Mean32.204
MAD28.164
Skewness4.7873
Sum28694
Variance2469.4
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
8.05434.8%\n", + "
 
\n", + "
13.0424.7%\n", + "
 
\n", + "
7.8958384.3%\n", + "
 
\n", + "
7.75343.8%\n", + "
 
\n", + "
26.0313.5%\n", + "
 
\n", + "
10.5242.7%\n", + "
 
\n", + "
7.925182.0%\n", + "
 
\n", + "
7.775161.8%\n", + "
 
\n", + "
26.55151.7%\n", + "
 
\n", + "
0.0151.7%\n", + "
 
\n", + "
Other values (238)61569.0%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
0.0151.7%\n", + "
 
\n", + "
4.012510.1%\n", + "
 
\n", + "
5.010.1%\n", + "
 
\n", + "
6.237510.1%\n", + "
 
\n", + "
6.437510.1%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
227.52540.4%\n", + "
 
\n", + "
247.520820.2%\n", + "
 
\n", + "
262.37520.2%\n", + "
 
\n", + "
263.040.4%\n", + "
 
\n", + "
512.329230.3%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Name
\n", + " Categorical, Unique\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
First 3 values
Coutts, Master. William Loch \"William\"
Sedgwick, Mr. Charles Frederick Waddington
Collander, Mr. Erik Gustaf
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Last 3 values
Beckwith, Mrs. Richard Leonard (Sallie Monypeny)
Jalsevac, Mr. Ivan
Stone, Mrs. George Nelson (Martha Evelyn)
\n", + "\n", + "
\n", + "

First 10 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
Abbing, Mr. Anthony10.1%\n", + "
 
\n", + "
Abbott, Mr. Rossmore Edward10.1%\n", + "
 
\n", + "
Abbott, Mrs. Stanton (Rosa Hunt)10.1%\n", + "
 
\n", + "
Abelson, Mr. Samuel10.1%\n", + "
 
\n", + "
Abelson, Mrs. Samuel (Hannah Wizosky)10.1%\n", + "
 
\n", + "
\n", + "

Last 10 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
de Mulder, Mr. Theodore10.1%\n", + "
 
\n", + "
de Pelsmaeker, Mr. Alfons10.1%\n", + "
 
\n", + "
del Carlo, Mr. Sebastiano10.1%\n", + "
 
\n", + "
van Billiard, Mr. Austin Blyler10.1%\n", + "
 
\n", + "
van Melkebeke, Mr. Philemon10.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Parch
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count7
Unique (%)0.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean0.38159
Minimum0
Maximum6
Zeros (%)76.1%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum0
5-th percentile0
Q10
Median0
Q30
95-th percentile2
Maximum6
Range6
Interquartile range0
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation0.80606
Coef of variation2.1123
Kurtosis9.7781
Mean0.38159
MAD0.58074
Skewness2.7491
Sum340
Variance0.64973
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
067876.1%\n", + "
 
\n", + "
111813.2%\n", + "
 
\n", + "
2809.0%\n", + "
 
\n", + "
550.6%\n", + "
 
\n", + "
350.6%\n", + "
 
\n", + "
440.4%\n", + "
 
\n", + "
610.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
067876.1%\n", + "
 
\n", + "
111813.2%\n", + "
 
\n", + "
2809.0%\n", + "
 
\n", + "
350.6%\n", + "
 
\n", + "
440.4%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
2809.0%\n", + "
 
\n", + "
350.6%\n", + "
 
\n", + "
440.4%\n", + "
 
\n", + "
550.6%\n", + "
 
\n", + "
610.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

PassengerId
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count891
Unique (%)100.0%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean446
Minimum1
Maximum891
Zeros (%)0.0%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum1
5-th percentile45.5
Q1223.5
Median446
Q3668.5
95-th percentile846.5
Maximum891
Range890
Interquartile range445
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation257.35
Coef of variation0.57703
Kurtosis-1.2
Mean446
MAD222.75
Skewness0
Sum397386
Variance66231
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
89110.1%\n", + "
 
\n", + "
29310.1%\n", + "
 
\n", + "
30410.1%\n", + "
 
\n", + "
30310.1%\n", + "
 
\n", + "
30210.1%\n", + "
 
\n", + "
30110.1%\n", + "
 
\n", + "
30010.1%\n", + "
 
\n", + "
29910.1%\n", + "
 
\n", + "
29810.1%\n", + "
 
\n", + "
29710.1%\n", + "
 
\n", + "
Other values (881)88198.9%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
110.1%\n", + "
 
\n", + "
210.1%\n", + "
 
\n", + "
310.1%\n", + "
 
\n", + "
410.1%\n", + "
 
\n", + "
510.1%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
88710.1%\n", + "
 
\n", + "
88810.1%\n", + "
 
\n", + "
88910.1%\n", + "
 
\n", + "
89010.1%\n", + "
 
\n", + "
89110.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Pclass
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count3
Unique (%)0.3%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean2.3086
Minimum1
Maximum3
Zeros (%)0.0%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum1
5-th percentile1
Q12
Median3
Q33
95-th percentile3
Maximum3
Range2
Interquartile range1
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation0.83607
Coef of variation0.36215
Kurtosis-1.28
Mean2.3086
MAD0.76197
Skewness-0.63055
Sum2057
Variance0.69902
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
349155.1%\n", + "
 
\n", + "
121624.2%\n", + "
 
\n", + "
218420.7%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
121624.2%\n", + "
 
\n", + "
218420.7%\n", + "
 
\n", + "
349155.1%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
121624.2%\n", + "
 
\n", + "
218420.7%\n", + "
 
\n", + "
349155.1%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Sex
\n", + " Categorical\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count2
Unique (%)0.2%
Missing (%)0.0%
Missing (n)0
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
male\n", + "
\n", + " 577\n", + "
\n", + " \n", + "
female\n", + "
\n", + " 314\n", + "
\n", + " \n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
male57764.8%\n", + "
 
\n", + "
female31435.2%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

SibSp
\n", + " Numeric\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count7
Unique (%)0.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", + "\n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean0.52301
Minimum0
Maximum8
Zeros (%)68.2%
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + "
\n", + "
\n", + "
\n", + "

Quantile statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Minimum0
5-th percentile0
Q10
Median0
Q31
95-th percentile3
Maximum8
Range8
Interquartile range1
\n", + "
\n", + "
\n", + "

Descriptive statistics

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Standard deviation1.1027
Coef of variation2.1085
Kurtosis17.88
Mean0.52301
MAD0.71378
Skewness3.6954
Sum466
Variance1.216
Memory size7.0 KiB
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
060868.2%\n", + "
 
\n", + "
120923.5%\n", + "
 
\n", + "
2283.1%\n", + "
 
\n", + "
4182.0%\n", + "
 
\n", + "
3161.8%\n", + "
 
\n", + "
870.8%\n", + "
 
\n", + "
550.6%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "

Minimum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
060868.2%\n", + "
 
\n", + "
120923.5%\n", + "
 
\n", + "
2283.1%\n", + "
 
\n", + "
3161.8%\n", + "
 
\n", + "
4182.0%\n", + "
 
\n", + "
\n", + "

Maximum 5 values

\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
2283.1%\n", + "
 
\n", + "
3161.8%\n", + "
 
\n", + "
4182.0%\n", + "
 
\n", + "
550.6%\n", + "
 
\n", + "
870.8%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Survived
\n", + " Boolean\n", + "

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count2
Unique (%)0.2%
Missing (%)0.0%
Missing (n)0
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Mean0.38384
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
0\n", + "
\n", + " 549\n", + "
\n", + " \n", + "
1\n", + "
\n", + " 342\n", + "
\n", + " \n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
054961.6%\n", + "
 
\n", + "
134238.4%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Ticket
\n", + " Categorical\n", + "

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Distinct count681
Unique (%)76.4%
Missing (%)0.0%
Missing (n)0
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "
1601\n", + "
\n", + "  \n", + "
\n", + " 7\n", + "
347082\n", + "
\n", + "  \n", + "
\n", + " 7\n", + "
CA. 2343\n", + "
\n", + "  \n", + "
\n", + " 7\n", + "
Other values (678)\n", + "
\n", + " 870\n", + "
\n", + " \n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
ValueCountFrequency (%) 
160170.8%\n", + "
 
\n", + "
34708270.8%\n", + "
 
\n", + "
CA. 234370.8%\n", + "
 
\n", + "
310129560.7%\n", + "
 
\n", + "
CA 214460.7%\n", + "
 
\n", + "
34708860.7%\n", + "
 
\n", + "
38265250.6%\n", + "
 
\n", + "
S.O.C. 1487950.6%\n", + "
 
\n", + "
PC 1775740.4%\n", + "
 
\n", + "
413340.4%\n", + "
 
\n", + "
Other values (671)83493.6%\n", + "
 
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "

Correlations

\n", + "
\n", + "
\n", + " \n", + " \n", + "
\n", + "
\n", + "

Sample

\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", + "
\n", + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas_profiling\n", + "pandas_profiling.ProfileReport(train_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Explanatory Data Analysis

" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

What is the distribution of features across the data?

" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassAgeSibSpParchFare
count891.000000891.000000891.000000714.000000891.000000891.000000891.000000
mean446.0000000.3838382.30864229.6991180.5230080.38159432.204208
std257.3538420.4865920.83607114.5264971.1027430.80605749.693429
min1.0000000.0000001.0000000.4200000.0000000.0000000.000000
25%223.5000000.0000002.00000020.1250000.0000000.0000007.910400
50%446.0000000.0000003.00000028.0000000.0000000.00000014.454200
75%668.5000001.0000003.00000038.0000001.0000000.00000031.000000
max891.0000001.0000003.00000080.0000008.0000006.000000512.329200
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Age SibSp \\\n", + "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", + "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", + "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", + "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", + "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", + "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", + "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", + "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", + "\n", + " Parch Fare \n", + "count 891.000000 891.000000 \n", + "mean 0.381594 32.204208 \n", + "std 0.806057 49.693429 \n", + "min 0.000000 0.000000 \n", + "25% 0.000000 7.910400 \n", + "50% 0.000000 14.454200 \n", + "75% 0.000000 31.000000 \n", + "max 6.000000 512.329200 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NameSexTicketCabinEmbarked
count891891891204889
unique89126811473
topCoutts, Master. William Loch \"William\"male1601C23 C25 C27S
freq157774644
\n", + "
" + ], + "text/plain": [ + " Name Sex Ticket Cabin \\\n", + "count 891 891 891 204 \n", + "unique 891 2 681 147 \n", + "top Coutts, Master. William Loch \"William\" male 1601 C23 C25 C27 \n", + "freq 1 577 7 4 \n", + "\n", + " Embarked \n", + "count 889 \n", + "unique 3 \n", + "top S \n", + "freq 644 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.describe(include=['O'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

How many survived?

" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.616162\n", + "1 0.383838\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.Survived.value_counts(normalize=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Are there any specific features correlated with survival?

" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
Pclass
10.629630
20.472826
30.242363
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "Pclass \n", + "1 0.629630\n", + "2 0.472826\n", + "3 0.242363" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[['Pclass', 'Survived']].groupby(['Pclass']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived01All
Pclass
180136216
29787184
3372119491
All549342891
\n", + "
" + ], + "text/plain": [ + "Survived 0 1 All\n", + "Pclass \n", + "1 80 136 216\n", + "2 97 87 184\n", + "3 372 119 491\n", + "All 549 342 891" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.crosstab(train_df.Pclass,train_df.Survived,margins=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
Sex
female0.742038
male0.188908
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "Sex \n", + "female 0.742038\n", + "male 0.188908" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[[\"Sex\", \"Survived\"]].groupby(['Sex']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
SibSp
10.535885
20.464286
00.345395
30.250000
40.166667
50.000000
80.000000
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "SibSp \n", + "1 0.535885\n", + "2 0.464286\n", + "0 0.345395\n", + "3 0.250000\n", + "4 0.166667\n", + "5 0.000000\n", + "8 0.000000" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[[\"SibSp\", \"Survived\"]].groupby(['SibSp']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
Parch
30.600000
10.550847
20.500000
00.343658
50.200000
40.000000
60.000000
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "Parch \n", + "3 0.600000\n", + "1 0.550847\n", + "2 0.500000\n", + "0 0.343658\n", + "5 0.200000\n", + "4 0.000000\n", + "6 0.000000" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[[\"Parch\", \"Survived\"]].groupby(['Parch']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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z/5OEBISoocffljLli1TZGSkrrnmGi1dulS9evXSyJEjPXoswFdRW+DPaJoC2KxZs9S7d2/9/ve/14YNG+RwOHTVVVcpJSVFjzzySMt6jz32mKqqqjRt2jTZ7XZNnDhRKSkp5522/rZx48YpNzdXaWlprRaaC607evRoPffcc1q9erVWr16tK664QnfddZeysrIk/ePtzatXr9aiRYs0ZcoUhYaG6pFHHjH6jdVdmZmZamxs1MKFC+VwOJSUlKQXXnjhnJvDgUBGbYG/6uQ0OTsBAAACHHOMAAAABmiaAAAADNA0AQAAGKBpAgAAMEDTBAAAYICmCQAAwECHf05TRYXZg86CgjopMjJclZW1am7236coBEqeErn6K3dz7dGji1fioLacK1ByDZQ8JXK9mLbUFr+ZaQoK6qROnTopKKiT1aF4VaDkKZGrv/K1XH0t3ksRKLkGSp4SuXr8GF7bMwAAgB+haQIAADBA0wQAAGCApgkAAMAATRMAAIABmiYAAAADNE0AAAAGaJoAAAAMdPgngqNtkpbvNl63aPYwL0YCAIB/YKYJAADAAE0TAACAAZomAAAAAzRNAAAABmiaAAAADNA0AQAAGOCRAzB+PAGPJgAABDJmmgAAAAzQNAEAABigaQIAADBA0wQAAGCApgkAAMAATRMAAIABmiYAAAADNE0AAAAGaJoAAAAMuP1E8G3btmnOnDm6/PLLW5aNGDFCS5cu1a5du7Rs2TJ9+eWXuuqqqzR37lzdddddHg3Y35g+jVviidwAAFjJ7abpo48+0ve//30tWbLEZfnnn3+umTNn6t///d915513qrCwULNmzVJhYaF69uzpsYABAACs4PbluY8++kj9+vU7Z/mmTZuUmJioESNGyGazKSUlRUlJScrLy/NIoAAAAFZya6apublZBw8elN1u15o1a9TU1KThw4drzpw5Ki0tVWxsrMv60dHRKi4uNt5/eXm5KioqXAO0hSkqKqrVbYODg1z+9Uc2W5Cledps7XvMQBjTs8jVu6gtZgIl10DJUyJXT3OraaqsrNSNN96oe+65Rzk5OTpx4oTmzZunrKwsNTQ0yG63u6wfGhqquro64/3n5eUpNzfXZVlGRoYyMzON9xERYW99JR/VrVt4y/+tyPObx29P/jym30au3kFtcU+g5BooeUrk6iluNU3du3fXhg0bWj63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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "grd = sns.FacetGrid(train_df, col='Survived')\n", + "grd.map(plt.hist, 'Age', bins=20)\n", + "#notice we need to group ages when designing our model" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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3e8UFxcn6doh7apVq1o1l59++kmXL1++6YLRIUOGSFLRIezrXnnlFX3xxRdavXq1jhw5ogMHDujo0aOqU6eOJOmFF17Q8uXL1b59e4WEhCgyMlLt2rUraoZvvPGG+vbtq4iICIWFhSkyMlIdO3a8ZcN79913tXbt2mJvi46O1rhx4+x/UO6Qp6enunfvru7duys/P1+7d+/W559/rpUrV8pisWjatGk2z/Xwww9bfd+hQweNGzdOmzZtUnR0tFavXq22bdsW22BvN/brr7+WJP3+97+3us/ly5eLwtCBAwcUGRlpdXtYWNhtm2GvXr20e/fuYm/r06eP+vbte9N2b2/vm671uh68bvcKFq6NnuM49Bz7eg5sRwAzoEqVKjf94t2ofPnyNs9lsVjUt29f7d+/X9HR0erQoYPefPNNvfPOO0VjAgICtHr1an3zzTfatm2btm7dqvnz52vAgAHq37+/wsLCtGXLFm3btk1paWlKSUnRjBkzNHfuXEVERNy0z0GDBun1118vdj32vPq7Wxs3btT//d//qU+fPpKuBYhWrVqpVatWqlatmj799FOr8Tdes3HlypWb5vv1qQxfX189++yzWrt2rVq1aqWvvvpKs2fPLnYttxt7fb+LFi266QLa69eU/Hp9UsnPg/Hjx1tdc3OjWx1JuP/++296F1JWVpYkqWbNmrfdH1wXPccx6Dn29xzYjgBWBjz88MMqX7689u3bV3SIX5JeeuklPfvss0WHlCXphx9+0JYtW7R06VI9+uijkq69yjly5EjRNQmrV6/WuXPnFBsbq2bNmmngwIFKTEzUunXr1L9/fyUlJalZs2Zq06aN2rRpo5EjR6pjx47asGFDsc2wevXqql69upMfhZL9+9//1owZM/TCCy/oN7/5jdVtlSpVKlrj9aZy7ty5otsPHz5s0z66dOmi+Ph4rVixQtWrVy/28ShpbP369SVdCzrPPPNM0fipU6eqXLlyGjx4sBo2bKg9e/ZYzbdv377bru1OAlPz5s21atUqnTt3rug/rrS0NPn5+Vk913BvoefYhp7DizRn4l2QZYCPj4969Oih6dOna9OmTTpy5IimTp2qQ4cOqXXr1lZj77vvPnl5eenzzz/X0aNHtW/fPg0ePFjZ2dlFp5ouXryoSZMmadWqVTp27JjS09O1c+dOhYWFSbrWGMaMGaO0tDT9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UwTVq1e37cGCS6Pn0HNM9RxJmjVrliS53DWEphHADJg9e7bmz58v6dqrzkuXLqlevXqaNm2aatWqpXPnzmnp0qVKTEwsOt8/aNAgXb16VefPn79pvsjISIWHh6tBgwaSrjWehQsXav/+/ZKkI0eOqGLFiqpdu7Zq1aqlWrVqKTAwULVq1Sq6vVKlSnrooYdUuXJlDRo0SOHh4apSpUqx669cufJtf9ls8fHHH+vTTz/VyJEj7/g//QoVKujTTz/VokWL9Pnnn2vJkiX67//+b3l5eSkmJkYjR45U+fLlbZ6vYcOGio6OLvr+xRdf1MqVK4sa3GeffaaaNWuqZcuWVvcrV67cbcdu375d33zzjdLS0hQQECBJevPNN7Vnzx59/PHHmjhxoj7++GM9//zzio2NlST17t1b3377rTIyMm653utz2aOgoKDoiMd1148Q3Ol1MSj76Dn0nNLqObAdAcyA3/3ud4qLi5N07ZB21apVrZrLTz/9pMuXL+uxxx6zut/1X7Rfv4PklVde0RdffKHVq1fryJEjOnDggI4ePao6depIkl544QUtX75c7du3V0hIiCIjI9WuXbuiZvjGG2+ob9++ioiIUFhYmCIjI9WxY8dbNrx3331Xa9euLfa26OhojRs37pa1WywWTZ8+XR9++KH69Omj11577dYPlA0qVqyonj17qmfPnsrNzdXOnTu1evVqLVq0SD4+PkWH423x8MMPW33fuXNnJScna8+ePWratKlWr16tTp06FZ2GsHXs999/L0lq06aN1X0uXbpUFHoOHDigjh07Wt0eFhZ222bYsWPHW76ja+zYsXrhhRdu2u7t7a1Lly5Zbbu+Bl9f31vuC66NnkPPkUqn58B2BDADqlSpctMv3o3seQVlsVjUt29f7d+/X9HR0erQoYPefPNNvfPOO0VjAgICtHr1an3zzTfatm2btm7dqvnz52vAgAHq37+/wsLCtGXLFm3btk1paWlKSUnRjBkzNHfuXEVERNy0z0GDBun1118vdj2VKlW65VovX76skSNH6rPPPtOwYcNuOYetli1bpsLCQv3ud7+TJPn7+6tt27Zq27atBg8erC1btlg1Q4vFonLlykm6dhTg1359KqN27dpq0aKF1q5dq8qVKysjI0PTpk0rdi23G3v16lVVqlSp2Gskbjwadf36mOtKeh7MmTOn2Dok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1vLly3XHHXdowoQJkqSbb75ZX3/9tf7617/+6Hzbtm3rdG3n1dbWOpz9kqSrr75aknTmzBmXtwfvQM+h53iq58B5BDADfv3rX2vMmDGSvj+l3bZtW4fm8s0336iurk49evRwuN1TTz0lSfZT2OeNHj1af/vb35Sfn6/y8nJ9/fXXOnDggG666SZJ0vDhw7Vq1SoNHjxYt956q+Lj45WYmGhvho899pjGjRunPn36KCYmRvHx8brnnnt+tOE9++yzKigouOi6pKQkzZ49+5L1n28ICxYsUP/+/VVYWKgRI0Zc8jY/xs/PTw888IAeeOAB1dTU6NNPP9V7772nNWvWyLIsZWVlOb2tn/70pw5/DxkyRLNnz9YHH3ygpKQk5efna9CgQRdtsJca++GHH0qSHn74YYfb1NXV2cPQ119/fcFbIzExMZdsho8++qg+/fTTi657/PHHNW7cuAuWBwYGXvBZr/PB61KvYOHd6Dn0HMkzPQfOI4AZcM0111zwxPuhq666yultWZalcePGaffu3UpKStKQIUP09NNPa9asWfYxYWFhys/P1+eff66tW7fqo48+0pIlSzRhwgQ98cQTiomJ0ebNm7V161YVFRUpLy9PCxYs0OLFi9WnT58L9vnkk0/qd7/73UXn82Ov/srKyvTtt9/aT5dL37/1dc011+jQoUNO1/tDhYWF2rt3rx5//HFJ3weIfv36qV+/fmrXrp1ef/11h/E//MzGuXPnLtjev7+VERQUpF/84hcqKChQv379tGXLFi1cuPCic7nU2PP7XbFixQWvus9/puTf5yc1/jjIyMhw+MzND/3YmYSOHTtecBVSRUWFJOm666675P7gveg536PnmO85cB4BrBn46U9/qquuukpffvml/RS/JN1///36xS9+YX81J0l///vftXnzZr311lv62c9+Jun7Vznl5eX2zyTk5+erurpaKSkp6tmzp9LT0zVz5ky9++67euKJJ5Sdna2ePXtq4MCBGjhwoKZPn6577rlHGzZsuGgzbN++vdq3b+9STR9++KGysrL00Ucf2RtmeXm5jh07pi5durh8H0nSd999pwULFmj48OG6/vrrHda1adPGPsfzTaW6utq+fv/+/U7tY+TIkUpNTdXq1avVvn37i94fjY2NjIyU9H3Qufvuu+3jX3rpJbVq1UoTJ07Ubbfdps8++8xh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+X7foefQczxZr9cHsKCgIJ0+fdph2fm/feUX3aurq5Wenq6CggItX75ct956q2w2m2prax3G1dbWenXNCxcuVEBAgMaMGXPBOl+sV5ICAgIkSTNmzFCbNm107bXXauLEidq8ebMsy/K5mgsLC7VhwwaNHj1aAQEBioyMVFpamt544w2vOcYtoedILaPv0HPoOZ6s19/IXppQZGSkjh8/rsOHD+vaa6+VJJWVlaljx44KCQnx8OyuXHl5uR577DF16tRJeXl5CgsLkyRFRUVp69atDmNLS0sVGRnpiWm6RX5+vioqKhQbGytJ9ifG+++/r5SUFH311VcO40tLS9WtWzfj83SniIgINTQ0qK6uTldffbWk71+xSdJtt92m119/3WG8tx/j7777zn710Xn+/v666qqrFBUV5RXH2Nd7jtRy+g49h57j0WNs5KP+TezBBx+0nnrqKauqqsp+RVJ2dranp3XFjh8/bt19993WtGnTrPr6eod1R48etWJjY63XXnvNOnv2rFVUVGTFxMRYRUVFHpqt+02dOtV+RVJpaakVHR1trVu3zn61SnR0tLV3714Pz/LKnD171kpMTLQmVqWZygAABPlJREFUTJhgVVdXW0eOHLEefvhhKy0tzSeP8Z49e6xu3bpZf/7zn61z585Z5eXl1r333mtlZmZ61TH21Z5jWS2779BzfO/4Nuee08qy/u+yAC92+PBhzZ49W5988olat26tESNG6JlnnnH4EKk3eu2115SZmSmbzaZWrVo5rPv888/15ZdfKiMjQ19//bXCwsI0fvx4jRw50kOzdb/z38eTmZkpSfrwww81b948lZeX64YbbtDkyZPVv39/T07RLQ4dOqTMzEwVFxfrzJkzSkhI0IwZMxQaGuqTx/jjjz9WVlaW9u7dq5CQEA0fPtx+xZ23HGNf7TlSy+479Bx6jslj7BMBDAAAwJt4/YfwAQAAvA0BDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAIZmobq6Wj/72c/085///ILf7QIAd6PnwNMIYGgW1q1bp/bt26u6ulqFhYWeng4AH0fPgafxU0RoFh544AF17dpVhw4dUk1Njf77v//b01MC4MPoOfA0f09PACgrK9POnTv1u9/9TjU1NZo2bZrKysrUpUsXSVJ9fb2ys7O1atUqVVVV6a677lLHjh1VUlJib5plZWXKzMzUjh07FBwcrDvvvFPTpk1Thw4dPFkagGaInoPmgLcg4XF5eXkKCgrSXXfdpUGDBikgIEBvvPGGff28efOUm5urZ599VqtXr1Z4eLjDq9VDhw5p9OjR6ty5s/Ly8vSXv/xF1dXV+vWvf62amhpPlASgGaPnoDkggMGjzp07p4KCAg0YMEA2m00hISHq37+/8vPzdfr0aZ0+fVqvv/66Jk6cqMGDB6tLly6aNWuW/uM//sO+jTfeeEPh4eF69tln1aVLF3Xr1k1ZWVk6fPiw1q9f78HqADQ39Bw0F7wFCY/avHmzKisrNWzYMPuyYcOGqbCwUOvWrVPXrl1VW1urHj16ONyuZ8+eKikpkST9/e9/V1lZmWJiYhzGnDlzRmVlZU1fBACvQc9Bc0EAg0etXr1akpSenn7BujfffFN//OMfJUmXulakoaFBvXv31nPPPXfBupCQEDfNFIAvoOeguSCAwWOOHj2qzZs3a+TIkUpNTXVYt2zZMuXl5ammpkaBgYH64osvdNttt9nX79q1SwEBAZKkyMhIvfvuu7r++uvty44fP66pU6cqNTVVvXv3NlcUgGaLnoPmhM+AwWPy8/N17tw5Pfroo4qKinL4b9y4cfLz89Pq1as1ZswYZWdn6/3339c333yjefPm6YsvvrBvZ/To0aqqqtLTTz+tf/zjHyopKdGkSZO0a9cuRUZGerBCAM0JPQfNCWfA4DGrV6/Wz3/+c/ul3z/UuXNnJSYmat26ddqyZYvq6uo0c+ZMnT59WgMGDNDAgQN15swZ+9jly5dr/vz5Gj16tPz8/NSjRw8tW7ZM7du3N10WgGaKnoPmhC9iRbNXWFionj17KiwszL7skUceUceOHTVnzhwPzgyAL6LnwATegkSz9+qrr2rSpEn6xz/+oQMHDmjp0qXatm2bhg8f7umpAfBB9ByYwBkwNHvffvutMjMzVVxcrNraWkVERGjcuHFKTEz09NQA+CB6DkwggAEAABjGW5AAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhv0/i/bZxgmq2MsAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "grd = sns.FacetGrid(train_df, col='Survived', row='Pclass')\n", + "grd.map(plt.hist, 'Age', bins=20)\n", + "grd.add_legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.factorplot('Pclass','Survived',hue='Sex',data=train_df)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.factorplot('Embarked','Survived',hue='Pclass',data=train_df)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Oldest passenger: 80.0 years\n", + "Youngest passenger: 0.42 years\n", + "Average age on the Titanic: 29.7 years\n" + ] + } + ], + "source": [ + "print('Oldest passenger:',train_df['Age'].max(),'years')\n", + "print('Youngest passenger:',train_df['Age'].min(),'years')\n", + "print('Average age on the Titanic:',round(train_df['Age'].mean(), 2),'years')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Key Observations\n", + "* The chance of survival for women is high as compared to men.\n", + "* 1st class passenger increases chances of survival.\n", + "* Children do have a higher chance of survival. Passengers between age group 15 to 35 had the least survival rate.\n", + "* The chances of survival at C looks to be better than Pclass1 passengers got at S.\n", + "* Having a larger family size is correlated with lower chance of survival." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Cleaning the Data + Feature Engineering

\n", + "

4 C's of Data Cleaning: Correcting, Completing, Creating, and Converting

" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train columns with null values:\n", + "\n", + " PassengerId 0\n", + "Survived 0\n", + "Pclass 0\n", + "Name 0\n", + "Sex 0\n", + "Age 177\n", + "SibSp 0\n", + "Parch 0\n", + "Ticket 0\n", + "Fare 0\n", + "Cabin 687\n", + "Embarked 2\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "print('Train columns with null values:\\n\\n', train_df.isnull().sum())" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "train_df = train_df.drop(['PassengerId', 'Ticket', 'Cabin'], axis=1) #correcting by dropping Cabin because it contains null values, and tickets since it has duplicates\n", + "test_df = test_df.drop(['PassengerId', 'Ticket', 'Cabin'], axis=1)\n", + "combine = [train_df, test_df]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Creating a new title feature from Name\n", + "for df in combine:\n", + " df['Title'] = df.Name.str.extract(' ([A-Za-z]+)\\.', expand=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Sexfemalemale
Title
Capt01
Col02
Countess10
Don01
Dr16
Jonkheer01
Lady10
Major02
Master040
Miss1820
Mlle20
Mme10
Mr0517
Mrs1250
Ms10
Rev06
Sir01
\n", + "
" + ], + "text/plain": [ + "Sex female male\n", + "Title \n", + "Capt 0 1\n", + "Col 0 2\n", + "Countess 1 0\n", + "Don 0 1\n", + "Dr 1 6\n", + "Jonkheer 0 1\n", + "Lady 1 0\n", + "Major 0 2\n", + "Master 0 40\n", + "Miss 182 0\n", + "Mlle 2 0\n", + "Mme 1 0\n", + "Mr 0 517\n", + "Mrs 125 0\n", + "Ms 1 0\n", + "Rev 0 6\n", + "Sir 0 1" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.crosstab(train_df['Title'], train_df['Sex'])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Creating a new title feature from Name\n", + "for df in combine:\n", + " df['Title'].replace(['Mlle','Mme','Ms','Ddr','Major','Lady','Countess','Jonkheer','Col','Rev','Capt','Sir','Don', 'Dona'],\n", + " ['Miss','Miss','Miss','Mr','Mr','Mrs','Mrs','Other','Other','Other','Mr','Mr','Mr', 'Mrs'],inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Title\n", + "Dr 43.571429\n", + "Master 5.482642\n", + "Miss 21.834533\n", + "Mr 32.413823\n", + "Mrs 37.046243\n", + "Other 44.923077\n", + "Name: Age, dtype: float64" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.concat([train_df, test_df]).groupby('Title')['Age'].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Correct null values in Age using Title\n", + "for df in combine:\n", + " df.loc[(df.Age.isnull())&(df.Title=='Dr'),'Age']=44\n", + " df.loc[(df.Age.isnull())&(df.Title=='Mr'),'Age']=32\n", + " df.loc[(df.Age.isnull())&(df.Title=='Mrs'),'Age']=37\n", + " df.loc[(df.Age.isnull())&(df.Title=='Master'),'Age']=6\n", + " df.loc[(df.Age.isnull())&(df.Title=='Miss'),'Age']=22\n", + " df.loc[(df.Age.isnull())&(df.Title=='Other'),'Age']=45" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.concat([train_df, test_df]).Age.isnull().any()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Title\n", + "Dr 0.428571\n", + "Master 0.575000\n", + "Miss 0.704301\n", + "Mr 0.159004\n", + "Mrs 0.795276\n", + "Other 0.111111\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.concat([train_df, test_df]).groupby('Title')['Survived'].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#converting title and sex to categorical\n", + "title_mapping = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Other\": 6}\n", + "\n", + "for df in combine:\n", + " df['Title'] = df['Title'].map(title_mapping)\n", + " df['Title'] = df['Title'].fillna(0)\n", + " df['Sex'] = df['Sex'].map( {'female': 1, 'male': 0} ).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Completing null values in Embarked feature\n", + "port = train_df.Embarked.dropna().mode()[0]\n", + "for df in combine:\n", + " df['Embarked'] = df['Embarked'].fillna(port)\n", + "\n", + "#converting a categorical feature to numeric\n", + "for df in combine:\n", + " df['Embarked'] = df['Embarked'].map( {'S': 0, 'C': 1, 'Q': 2} ).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Complete missing fare with median\n", + "for df in combine: \n", + " df['Fare'].fillna(df['Fare'].median(), inplace = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Create new features based on SibSp and Parch\n", + "for df in combine:\n", + " df['FamilySize'] = df['SibSp'] + df['Parch'] + 1\n", + " df['IsAlone'] = 1\n", + " df['IsAlone'].loc[df['FamilySize'] > 1] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
FamilySize
40.724138
30.578431
20.552795
70.333333
10.303538
50.200000
60.136364
80.000000
110.000000
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "FamilySize \n", + "4 0.724138\n", + "3 0.578431\n", + "2 0.552795\n", + "7 0.333333\n", + "1 0.303538\n", + "5 0.200000\n", + "6 0.136364\n", + "8 0.000000\n", + "11 0.000000" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[['FamilySize', 'Survived']].groupby(['FamilySize']).mean().sort_values(by='Survived', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Survived
IsAlone
00.505650
10.303538
\n", + "
" + ], + "text/plain": [ + " Survived\n", + "IsAlone \n", + "0 0.505650\n", + "1 0.303538" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df[['IsAlone', 'Survived']].groupby(['IsAlone']).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Create AgeBand features, maximum age is 80, 5 bins total means 16 bin size\n", + "for df in combine:\n", + " df['AgeBand']=0\n", + " df.loc[df['Age']<=16,'AgeBand']=0\n", + " df.loc[(df['Age']>16)&(df['Age']<=32),'AgeBand']=1\n", + " df.loc[(df['Age']>32)&(df['Age']<=48),'AgeBand']=2\n", + " df.loc[(df['Age']>48)&(df['Age']<=64),'AgeBand']=3\n", + " df.loc[df['Age']>64,'AgeBand']=4" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xd4VGX6xvF7MpOeEAJJ6IEQIJQAAgFEehMWFxHFjm1RUQQVd7Gsq6y6dleUEsVVf4rIrgpSVBALijTpXTpJSCEkgfQ+yfz+QCPjUJLJJCfl+7kuL8lzzpm5k8CbzDPveV+TzWazCQAAAAAAAKhGbkYHAAAAAAAAQP1DUwoAAAAAAADVjqYUAAAAAAAAqh1NKQAAAAAAAFQ7mlIAAAAAAACodjSlAAAAAAAAUO1oSgEAAAAAAKDa0ZQCAAAAAABAtaMpBQAAAAAAgGpHUwpw0rBhwxQREVH2X6dOnRQVFaXbbrtN27ZtK9djbN68WREREUpISKjitFWjtLRUkyZN0pw5c4yOAgAuV5/H+SNHjujee+9V37591a9fPz344INKSkoyOhYAuFx9Huv37dunO+64Qz169NDll1+up59+WllZWUbHQj1DUwqohL/85S9av3691q9fr7Vr12rRokXy9fXV3XffreTkZKPjVamCggLNmDFD69evNzoKAFSZ+jjOp6en66677pKvr68WLlyo//znP0pPT9fdd9+twsJCo+MBgMvVx7E+JSVFd911l0JDQ7V06VJFR0drx44deuyxx4yOhnqGphRQCT4+PgoODlZwcLBCQkLUoUMHPfPMM8rPz9c333xjdLwqs2PHDo0fP167d+9WgwYNjI4DAFWmPo7z3333nfLz8/XSSy+pffv2ioyM1Kuvvqpjx45px44dRscDAJerj2N9YmKiBg4cqJkzZ6pNmzbq2bOnrr/+em3atMnoaKhnaEoBLmaxWCRJHh4ekiSr1ao5c+Zo2LBh6t69u6699lr99NNP5702KytLM2fO1ODBg9WlSxf1799fM2fOVEFBQdk57733nkaMGKHIyEgNGzZM8+bNk81mkyTl5+frySefVP/+/dW1a1ddc801F/1B+vjjj9tNVz73v8cff/yC161bt04jR47UsmXL5O/vX+GvEQDUZnV9nO/Xr5/mzZsnT09Ph2OZmZnl+yIBQC1X18f6Hj166PXXXy/7PI8ePaqlS5eqf//+Ff9iAZVgMToAUJecOnVKL7zwgnx8fDRo0CBJ0gsvvKCVK1fq6aefVmRkpJYuXaopU6Zo2bJlDtc/9thjSk5O1uzZs9W4cWPt2rVLTzzxhNq2bas77rhDa9as0dtvv6033nhDYWFh2rVrlx599FG1bNlS48aN05tvvqlDhw7pnXfeUYMGDfTZZ59p+vTpWr16tVq2bOnwfE8++aT++te/nvdz8fLyuuDn+dBDDzn5FQKA2q0+jPMtW7Z0eKz58+fL09NTvXv3ruiXDABqnfow1p9r1KhRio2NVYsWLRQdHV3BrxZQOTSlgEqYP3++3n//fUln3z0pKipSeHi43njjDTVv3lw5OTn69NNP9Y9//ENjxoyRdLahU1paqtzcXIfH69+/v6KiotSxY0dJZ18YLFy4UIcOHZIknThxQp6enmrZsqWaN2+u5s2bKyQkRM2bNy877ufnp9DQUPn7++uhhx5SVFSUAgICzpvf39+fmU4AcBGM89KCBQu0aNEiPfHEE2rcuHGlHgsAaqL6Pta/9tprKigo0Guvvabbb79dy5cvl6+vr9OPB1QETSmgEm666SbddtttkiQ3Nzc1bNjQ7gdCTEyMiouLddlll9ldN336dElnd+o41y233KI1a9Zo+fLlOnHihA4fPqz4+Hi1adNGknT11VdryZIluvLKKxUREaH+/ftr5MiRZT/A7rnnHt13333q16+fevToof79++uqq6664A+pp59+Wl988cV5j40dO1bPPvtsxb8oAFCH1Odx3maz6c0339Rbb72lyZMn684777zwFwoAarH6PNZLUteuXSVJc+bM0eDBg/Xtt9/qmmuuueg1gKvQlAIqISAgQK1bt77gcXd393I/ls1m03333adDhw5p7NixGjVqlB555BE99dRTZec0atRIy5cv186dO7VhwwatX79e77//vqZNm6apU6eqR48eWrt2rTZs2KBNmzZp8eLFmjNnjt59913169fP4TkfeughTZo06bx5/Pz8yp0dAOqq+jrOFxcX64knntCXX36pRx999IKPAQB1QX0c648dO6aEhAQNHjy4rBYSEqKAgACdOnWq3J8vUFk0pYAq1Lp1a7m7u2vv3r1l03clacKECRo9enTZuxKS9Msvv2jt2rX69NNP1b17d0lnXxScOHFCrVq1kiQtX75cOTk5uvXWW9WrVy89+OCD+sc//qGVK1dq6tSpmj17tnr16qXhw4dr+PDheuKJJ3TVVVdp9erV5/0B1rhxY27FAIBKqKvj/KOPPqpvv/1W//73v3XVVVdV+HoAqEvq4li/bt06vfHGG1q/fn1Z4+rEiRNKT09XeHh4hb9GgLNoSgFVyNvbWxMnTtSbb76pRo0aqX379lqyZImOHj2qoUOHKi0trezcoKAgWSwWrVq1So0aNVJGRobefvttpaamqqioSJJUWFiol19+Wb6+voqKilJycrK2bNlStvBsXFycVqxYoeeee06hoaHatWuXkpKS1KNHD0M+fwCo6+riOP/5559r5cqVevTRR9WnTx+lpqaWHfP39y/XorkAUJfUxbF+3Lhxeu+99zRjxgw98sgjyszM1L/+9S9169ZNQ4cOddnzAJdCUwqoYo888ogsFov++c9/KisrSxEREXrnnXcUHh5u9wOsSZMmeumllzRnzhx9/PHHCg4O1pAhQ3TnnXfq+++/l81m0w033KDMzExFR0fr5MmTCggI0KhRo/S3v/1NkvTMM8/o5Zdf1owZM5SRkaEWLVrob3/7m8aNG2fUpw8AdV5dG+e//PJLSdIrr7yiV155xe7Yiy++qGuvvdZlzwUAtUVdG+sDAwO1YMECvfTSS7r55ptlNps1fPhwPf744zKbzS57HuBSTDabzWZ0CAAAAAAAANQvbkYHAAAAAAAAQP1DUwoAAAAAAADVjqYUAAAAAAAAqh1NKQAAAAAAAFQ7mlIAAAAAAACodjSlAAAAAAAAUO1oSgEAAAAAAKDaWYwOYLTU1GyjIwAAJAUH+1fJ4zLOA0DNwDgPAHVfRcd6ZkoBAAAAAACg2tGUAgAAAAAAQLWjKQUAAAAAAIBqR1MKAAAAAAAA1Y6mFAAAAAAAAKodTSkAAAAAAABUO5pSAAAAAAAAqHY0pQAAAAAAAFDtaEoBAAAAAACg2tWIptSZM2c0cuRIbd68+YLnrF27VmPHjtVll12mP/3pT/rhhx+qMSEAAAAAAABcyfCm1Pbt23XjjTfqxIkTFzwnNjZW06ZN00MPPaRt27Zp2rRpevjhh3Xq1KlqTFq1sgusyi6wGh0DAFBFGOcBAAAAe4Y2pZYuXaq//e1vmj59+iXPi4qK0ogRI2SxWDRmzBj17t1bn3zySTUlrVofbY3XyOiNGhm9UQu3JRgdBwDgYozzAAAAgCOLkU8+YMAAjR07VhaL5aKNqaNHj6pDhw52tXbt2ungwYMVer6UlBSlpqba1SwWH4WEhFTocVwpp9CqtzbEqsR29uPo9TGa0KO5/DwN/dYAQK3EOA8AdVtNHOcBAM4z9Dfi4ODgcp2Xm5srb29vu5qXl5fy8vIq9HyffPKJ5s6da1d74IEH9OCDD1bocVwpKSlTxb+9UpFUXGJTVqnUKtDXsEwAUFsxzgNA3VYTx3kAgPNqxdu03t7eKigosKsVFBTI17div9DfeOONGjZsmF3NYvFRenpupTM6Kzsr/7y1dO9a8a0BAJcJdEGThnEeAGquujrOAwB+V9Gxvlb8RtyhQwft37/frnb06FFFRkZW6HFCQkIcpvampmbLai2tdEZnWc959/zcmpGZAKC2YpwHgLqtJo7zAADnGb77XnlcffXV2rJli1auXCmr1aqVK1dqy5YtGjdunNHRAAAAAAAA4IQa25Tq0aOHVqxYIUkKDw/XvHnzNH/+fPXu3VvR0dGaM2eOwsLCDE4JAAAAAAAAZ9SY2/cOHTpk9/HOnTvtPh44cKAGDhxYnZEAAAAAAABQRWrsTCkAAAAAAADUXTSlAAAAAAAAUO1oSgEAAAAAAKDa0ZQCAAAAAABAtaMpBQAAAAAAgGpHUwoAAAAAAADVjqYUAAAAAAAAqh1NKQAAAAAAAFQ7mlIAAAAAAACodjSlAAAAAAAAUO1oSgEAAAAAAKDa0ZQCAAAAAABAtaMpBQAAAAAAgGpHUwoAgCoUczrXofb+zyd0JDXHgDQAAABAzWExOgAAAHVRdoFVT608qA0xZxyOrTmSpjVH0jS0fZD+OTpCPh5mAxICAAAAxqIpBQCAi+UWWXX/Z3t0KOXis6F+OJKm07lFmjehq7zcaUwBAACgfuH2PQAAXOyNH49fsiH1mz1JWXprQ2zVBgIAAABqIJpSBssvKnGopWQXGpAEAOAKGXnFWvnLqQpds3xvsvLO8/MAAAAAqMtoShkkr6hEr605qmlL9joce2TZfj38+T7Fns4zIBkAoDJWHjilohJbha7JLSrRd4dSqygRAAAAUDOxppQBsgusemDxHh04deFbOzbEnNHupEzNua6rIps1qMZ0AIDKOJ7m3BsKx86zSx8AAABQlzFTqprZbDb9/asDF21I/SansETTl+5XWm5RNSQDALhCcWmpc9dVcHYVAAAAUNvRlKpme5Ky9HNsernPz8gv1qc7E6swEQDAlRr7eDh1XSMfdxcnAQAAAGo2mlLV7LNdSRW+ZtmeZBWXOPfOOwCgeg3vEOTkdcEuTgIAAADUbDSlqtnWExkVviY9v1jH0lhrBABqg85N/dWpiV+FrolqFaCwxj5VlAgAAAComWhKVbNcJ7f8zi60ujgJAKAqmEwm/XVouNzNpnKd7+5m0sODw6s4FQAAAFDz0JSqZj7uZueu82CjRACoLbq3CNCLf+4sT8ulf8yG+HuqfYhvNaQCAAAAahaaUtXsspYBFb7G39OicG7rAIBaZXC7xlo4saeGtGt80fMSMwu0+mBKNaUCAAAAag6aUtXsuu7NKnzNiIggeTk5wwoAYJw2jX10d7/WDvU/TqB6e32siqxsaAEAAID6haZUNesd2lBdmzWo0DU74jOVmV9cRYkAANVtVMcQu4+Tsgq1ZM9Jg9IAAAAAxqApVc3cTCa9Mq6zQgO9y31NXHq+Hvp8n3KLWOwcAOqCsZFN5e9pv1bge5vilMOmFgAAAKhHaEoZIMjXQ+/ddJlGdQyW2wU2Z/pjeX9ytv66bL8Kip3bvQ8AUHP4eVp0Z59WdrXMAqs+2pZgUCIAAACg+tGUMkhDH3f966pOevPaSIdjz/4pQi9f3Vl/3E18e3ymnvjygKwlrDsCALXdDT2aK8TPw662aFuC0nIKDUoEAAAAVC+aUgYL9PFwqLUN8tXQ9kF6enSEw7H1x8/o6VWHVFJqq454AIAq4uVu1uQr2tjVCqylevfnE8YEAgAAAKoZTakabEznJnp0eDuH+reHUvXid0dks9GYAoDabEyXJgpr7GNXW7bnpOLO5BmUCAAAAKg+NKVquOsva64HBrRxqC/fm6w31h6nMQUAtZjFzaQHBoTZ1Ups0lsbYo0JBAAAAFQjmlK1wJ19Q3XHHxbElaRF2xO5zQMAarlB4Y3UvXkDu9r3h9O072SWQYkAAACA6kFTqpZ4YEAbTejezKH+zsY4LdrObk0AUFuZTCZNGxTmUJ/zUwyzYQEAAFCn0ZSqJUwmk2YMb6cxnUMcjs368biW7z1pQCoAgCt0bxGgweGN7Wo7EjK1MTbdoEQAAABA1aMpVYu4mUx6alSEhrRr7HDs+W+O6NtDqQakAgC4wpSBbeRmsq/N/SmG3VYBAABQZ9GUqmUsbiY9f1Un9W3d0K5uk/TUyoPacPyMMcEAAJXStrGvxnZpalc7mpar1QdTDEoEAAAAVC2aUrWQh8VNr47r4rAwbkmpTY998Yu2x2cYlAwAUBn3XNFanhb7H81vrY9VobXUoEQAAABA1aEpVUt5u5s1a3ykIkL87OqF1lI9snS/9rNrEwDUOk38PXVjjxZ2teTsQi3ZnWRQIgAAAKDq0JSqxfy9LJpzXaTaNPK2q+cVl+jBz/fpaFquQckAAM66o09LNfCy2NXe//mEcgqtBiUCAAAAqgZNqVou0MdDcyd0U/MGnnb1rAKrpi7eq/j0fIOSAQCc0cDLXXf2aWVXyyywasHWeIMSAQAAAFXD0KbU6dOnNWXKFEVFRalv3756/vnnZbWe/53gDz/8UMOGDVPPnj01duxYrV69uprT1lxN/D017/puCvL1sKufzi3SA4v3KDmrwKBkqA7ZBVZlFzCDAqhLbujRQk387d9sWLQ9Uak5hQYlAgAAAFzP0KbUww8/LB8fH61bt06LFy/Wpk2b9MEHHzict3btWs2fP1/vvvuuduzYoalTp+rhhx9WQkJC9YeuoVo29NbcCV0V8IdbPk5mFWrq4r06k1dkUDJUpY+2xmtk9EaNjN6ohdv49wDUFZ4WN02+orVdrdBaqv9sijMoEQAAAOB6hjWl4uLitGXLFs2YMUPe3t5q1aqVpkyZoo8//tjh3OPHj8tms5X9Zzab5e7uLovFcp5Hrr/Cg3w1+7qu8vUw29Xj0vM1bfFeZtPUMTmFVr21IVYlNqnEJkWvj2HNGaAOGdO5ido29rGrrdibrNjTeQYlAgAAAFzLsKbUkSNH1LBhQzVp0qSsFh4erqSkJGVl2e8cd9VVVykoKEhjxoxRly5d9NBDD+mll15S06ZNqzt2jde5qb9eH9/FYUvxw6m5eujzfcorKjEoGVwtMbNAxSW2so+LS2xKzORWTaCuMLuZNHVgmF2txCZFb4g1JhAAAADgYoZNNcrNzZW3t/2ucb99nJeXpwYNGpTVi4uL1bFjRz3//PPq2LGjvvjiCz355JMKDw9XREREuZ8zJSVFqampdjWLxUchISGV+Ewqx2I2nbdmsTjfL+zTppFeu6aLpn++T9bS35sWe09macaK/Zo9oas8LeaLPAJqg6r4uwPUdnVtnB/SIUg9WgZoZ0JmWe2HI2n65VS2urUIcGlOAKgNauI4DwBwnmFNKR8fH+Xn2+8M99vHvr6+dvXnnntOPXv2VLdu3SRJ1113nb788kstXbpUjz/+eLmf85NPPtHcuXPtag888IAefPBBZz4Fl/DPd7zdyr+BtwIDfc9zdvmNjfKVm4e7pv13h87pS2lLXIaeWnVY0bf2lLuZ5kVtVlV/d4DarC6O8/8Y20XXvbXRrjZvfZw+mXy5TCbHhhcA1GU1cZwHADjPsKZU+/btlZGRobS0NAUFBUmSjh07pqZNm8rf39/u3KSkJEVGRtrVLBaL3N3dK/ScN954o4YNG/aHx/FRenquE5+Ba2Rn5Z+3lu5d+W/NFa0a6OnREfrnqkN29W9/OaWHPt6u5/7cSW68oKm1qvLvDmAEVzRU6+I437aBh4Z1CNKaw2lltS2xZ/TF9ngNDG/sspwAUNXq6jgPAPhdRcd6w169tmnTRr169dILL7ygZ599Vunp6YqOjtaECRMczh02bJgWLlyooUOHqlOnTvrmm2+0efNmPfLIIxV6zpCQEIepvamp2bJaSyv1uVSG9Zw1gc6tuSrTVZ2bKKvAqtd/OGZXX/lLirzdzXpseDveaa+lqvrvDlAb1dVx/v4r2ujHI2l2M1/f/PGY+rRqKLMbYziA+qMmjvMAAOcZev/W7NmzZbVaNXz4cN1www0aOHCgpkyZIknq0aOHVqxYIUmaOnWqbr31Vk2bNk29e/fWO++8o3nz5qlTp05Gxq81bu7ZwmFrcUlasvuk5q6Lkc3m+IIJAFBztGnso6sj7Tf3OJaWp1UHThmUCAAAAKg8Q+/zCQoK0uzZs897bOfOnWV/tlgsmjZtmqZNm1Zd0eqcSZeHKreoRAu3JdjVF2xNkJ+nRXf1DTUoGQCgPO7p11qrDqSo8JzZAG9viNPIiBCHHVcBAACA2oDfYusJk8mkBweFaXy3pg7HotfH6tOdiQakAgCUV4i/p27u2cKudiq7UJ/tSjIoEQAAAFA5NKXqEZPJpMeGt9eojsEOx15dc0xf7k82IBUAoLxu791KAV72k5z/b/MJZRc47vAHAAAA1HQ0peoZs5tJ/xwdoYFtGzkce271Ya05nGpAKgBAefh7Od5unVVg1Ydb4w1KBAAAADiPplQ9ZDG76cWxnRUV2tCuXmqTnvzqoDbFnjEoGQDgUiZc1lxN/T3tav/bkaiU7EKDEgEAAADOoSlVT3la3PTvcV3UtZm/Xd1aatOM5b9oV0KmQckAABfjaXHTff3b2NUKraV6Z1OcMYEAAAAAJ9GUqsd8PMx649pItQ/2tasXWkv18NJ9Ongq26BkAFB3tAjwkrvZVPaxu9mkFgFelXrM0Z1C1C7Ifuz+Yl+yYk7nVepxAQAAgOpEU6qea+DlrjnXdVVooLddPbeoRFMX79Xx07kGJQOAusHP06IpA8JkNklmkzRlQJj8PC2XvvAizG4mTR0YZlcrtUnR62Mq9bgAAABAdaIpBTX29dC8CV3V5A9rlGQWWDV18V4lZuYblAwA6oaJUS317ZQr9O2UKzQxqqVLHvOKsED1bBlgV/vx6GntTuT2awAAANQONKUgSWrawEvR13dTIx93u3pqTpGmfLaXBXQBoJL8vSzy96rcDKlzmUwmTRsU5lCfuy5GNpvNZc8DAAAAVBWaUigTGuituRO6yv8Pt5UkZRZo6uK9ysgrNigZAOB8Ips10LD2QXa1XYlZWnecXVQBAABQ89GUgp32wX6afV2kvN3t/2rEnMnTg5/vVU6h1aBkAIDzuX9AG52zjrqks7OlSkqZLQUAAICajaYUHEQ2a6DXr4mUxx9e5Rw4laPpS/epoLjEoGQAgD9q08hH47o2s6vFnM7TV7+cMigRAAAAUD40pXBeUaEN9eLYzjK72TemdiVmacaKX1RkLTUoGQDgj+7pFyovi/2P9PkbYnkTAQAAADUaTSlc0KDwxnr2TxH6w10h+jk2XU+tPCgrt4YYqsjKi00AZwX5eeqWXi3saik5RfpsV5JBiQAAAIBLoymFi7qyY4ieGNneob7mSJqe/+awStnhqdql5RTq9R+OaerifQ7HXv3+qLbHZxiQCoDRbuvdSgF/2N3v/zbHK6uATSoAAABQM9GUwiWN79ZMDw1u61D/cv8pvf7DMbYer0aHTuXo1o926L87EpV3nttydidl6b5P9+ijrfEGpANgJD9Pi/5yeahdLbvQqg+3MB4AAACgZqIphXKZGNVSd//hxY4kfbIzSW9vjKvS584usCq7gF3/krMKNG3JXp3Ju/Ssh9k/xWjF3uRqSAWgJpnQvbmaNfC0q/1vR6KSswoMSgQAAABcGE0plNu9V7TWTT1bONTf//lElc3M+WhrvEZGb9TI6I1auC2hSp6jtnh30wml55f/Npw3fzrOIsdAPeNhcdN9/dvY1YpKbPrPpqp98wAAAABwBk0plJvJZNL0IW11dWQTh2Ozf4rR57tdu6BuTqFVb22IVYlNKrFJ0etjlFNYP2dMZRUU6+uDKRW8xqpvD6VWUSIANdXoTiFqH+xrV/ty/ykdS8s1KBEAAABwfjSlUCFuJpP+PrKDRnQIcjj20ndH9fWBijVOLiYxs0DFJb+vV1VcYlNiZv28BeXn2HQVWksrfN0PR9KqIA2AmszNZNLUgWF2tVKbFL0+1phAAAAAwAXQlEKFmd1MenZMR10RFmhXt0n656qDWnuURoirJWcVOnVdedafAlD39GsTqKhWAXa1n46d1q6ETIMSAQAAAI5oSsEp7mY3vTy2s3q2tH/RU2KTnvjygLbEpRuUrO4oLinVT8dO6+9fHtBbG2KdegwPs8m1oQDUCiaTSVMHOe6aOmddDDumAgAAoMagKQWnebmb9e9ruqhzU3+7enGJTX9bvl97krIMSlZ7ldps2pWQqZe+O6I/vf2z/rpsv749lCprqXMvIt1MJpXyAhSol7o09deIDsF2tT1JWfrp2GmDEgEAAAD2aEqhUvw8LXrz2ki1bexjV88vLtXDn+/T4ZQcg5LVLkfTcjVvXYyueXeL7vlkt5bsPqnMgsov6r49IVNTPtujhIx8F6QEUNvcP6CNzG72MybnrYt1utENAAAAuBJNKVRaQ293zZvQVS0betnVswutmrZkr2LP5BmUrGZLzirQgi3xumXBdt384XZ9sCVeJ51cO+pitsdn6qYPt2vR9gSV8EIUqFdCA701vmtTu1rMmTx9tT/ZoEQAAADA72hKwSWC/Dw1b0I3hfh52NXP5BXrgc/26GRW/dw174+yCoq1dM9JTf5kt67+zxbNWRejI6kX36bd291NYzqH6M1rIzWmc4hTz1toLdWsH4/rnv/t0vHTbAsP1CeT+rWWt7v9j/t3NsapoLjEoEQAAADAWRajA6DuaB7gpXkTuuneT3YrPf/3Xd9Scor0wGd79M5NlynI1+Mij1A3FVpLtf74aX19IEUbYs6ouOTSs5XMbib1axOoP3UK0aDwxvJyN0uS+rYOVJCvpz7eFq8LPUyXpv7q3NRfn+9Ocjhn78lsTfxohyZdHqo7ereSxVy3+9LZv94C6e/FUIf6K8jXQ7f2aql3fz5RVkvJKdInO5N0R59WBiYDAABAfccrNbhUm8Y+mnNdV9332W7lFP7+Lnx8RoGmLt6j+Td0V4C3u4EJq0dJqU3b4zP09YEUrTmSptyi8s1I6N68gUZ3CtGIDsFq6OP4dTK7mTRtUJhu7NFc7/0cp8/32N+C8/SoDvpzlyYymUy6OrKJnl192GEmVnGJTW9viNOaw2l6elSEIpr4Of+J1mAfbY3XvHUxkqSpg9pqYlRLgxMBxrk1qqWW7D5p94bBB1tO6JquTevFmAwAAICaqW5Pk4AhIpr46Y3xkfKy2P/1OpaWp4c+36fcosov4F0T2WwnhzrgAAAgAElEQVQ2HTiVrVk/HtOf39msBxbv1Rf7T12yIRXW2EdTBrTR8rv76N2bL9OEy5qftyF1rhB/T13bvblDvUOIn0yms4sad2zirwW39tD9/dvI3WxyOPdwaq7u+HiH5q2LUaG1tAKfac2XU2jVWxtiVWKTSmxS9PoY5RTWzb93QHn4eVo06fJQu1pOYYk+2BJvUCIAAACAphSqSPcWAXptXBeHZsj+5Gz9ddn+OrWWSUJGvt7dFKfr/2+bbl+4U4u2Jyott+ii14T4eWhiVEstvK2nPrmjl+7qG6rmAV4XvcYZFrOb/nJ5qBbe1lORzfwdjpfYpA+2xGviR9u1OzHT5c9vlMTMArvbJItLbErMZF0z1G/Xdm/mMM58ujNRyaz5BwAAAIPQlEKV6dsmUC9c1Ul/nKSzPT5TT3x5QMUltXd2TnpekT7dmai/LNqp8e9t1fyNcYpLz7/oNX6eZo3r2lRvXd9NK+7pq4cGt1XEOTObqlLbxr5696bLNH1IW3laHP/Zx57J1z3/263X1hxVfh1qGAL4nbvZTVP6t7GrFZXYNH9jnDGBAAAAUO+xppTBWgR4yd1sKpvV4W42qUUVzJgxypD2QXp6dIRmrjpkV19//Ixmrjqk58Z0lNmt6psyrpBXVKK1x9L09YEUbY5Nv+BC4+fyMJs0oG1jje4Uov5hjeRxnoZQdTG7mXRLr5YaFN5Yz39zWNvi7WdG2SR9sjNJ646d1t+v7KC+rQONCQqgyozsGKyPtiXoUEpOWe2r/ad0a6+Wahfsa2AyAAAA1Ec0pQzm52nRlAFhmvvTcUnSlAFh8vOsW9+WMZ2bKLeoRK98f9Su/u2hVPl4mPXkyPbVMlvIGdaSUm2Oy9CqA6e09uhpFZRj7SWTpF6hDfWnjiEa2j6oxu381rKht+Zd303L9iZr9trjDmteJWUVaurivRoX2VQPDW5b4/IDcJ6byaRpA8M0dcnesppN0rz1MZo1PtK4YAAAAKiXeLVZA0yMaqlxkU0l1d2t66+/rLnyiko099fd0H6zfG+yfD3Menhw2xrTmLLZbNqTlKWvD6Tou8Npyjhnt6qLiQjx0+hOIboyIlgh/p5VnLJy3EwmXdutma5oE6iXvjuqDTFnHM5Zvi9ZG2PP6PER7TUovLEBKQFUhb5tAtUntKG2nMgoq60/fkY7EjLUs2VDA5MBAACgvqmbHZBaqK42o851R59Wyi2y6v822+/2tGh7ovw8LLrnitYGJTsr5nSevj5wSl8fTFVSORfFbh7gpdEdgzW6UxOFNfap4oSu17SBl2aN76JVB1L0+g/HlFlgv0Ndak6R/rpsv0Z1DNZfh4Yr0MfDoKQAXGnqoDDdvnCnXW3uTzF67+bLaswbBAAAAKj76n4nBDXK/f3bKLewRJ/uSrKrv7MpTr6eZt3Sq2W15knJLtQ3h1L19YEUuzVWLqaht7tGdAjS6E4h6ta8Qa1/AWcymTSmcxP1bR2o19Yc1XeH0xzOWX0wVZvjMjRjWLhGRgTX+s8ZqO86NfHXlRHB+uZQallt78ls/Xj0tIa2DzIwGQAAAOoTmlKoViaTSX8dFq7cIqu++iXF7tisH4/L18OscV2bVWmGnEKr1hxO06qDKdp+IkPlWK9cXhY3DW53dsHyy1sHymKuextXNvb10ItjO2vkkTS9/N0Rncmzv20xI79YT351UKsPpurxEe0U7Fezb1EEcHH3D2ij74+kqaT091Fw3roYDQxvLEst2YACAAAAtRtNKVQ7N5NJ/xgVobziUv1wxH5WzvPfHJG3u1lXdgxx6XMWWUu1IeaMvj6QovXHT6uoHFvnmU1n114Z3SlEg8OD5ONhdmmmmmpY+yD1ahmgN9Ye15f7Tzkc/+nYae1IyND0weEaG9mEWVNALdWyobeu69bMbuZqXHq+vtiXrPHdqvbNAQAAAECiKQWDWNxM+teYjvrrsv36OS69rG6T9PSqQ/LxMFd6Jk6pzaYd8Zn6+mCK1hxOU3ah9dIXSerazF+jO4VoRESwGtXTNZQCvN01c3SEruwYrBe+OaLk7EK74zmFJXrum8P65lCK/j6yg5oHeBmUFEBlTOoXqi/3n1Je8e+7cL6zMU5/6hQiL/f60YgHAACAcerePUioNTwsbnplXGd1b97Arl5SatNjKw7o052JDtf8e81RbYw5o1Lb+Wc62Ww2HUrJ0Ztrj2vsO5t1/2d7tHxv8iUbUq0DvTX5itZaOqm33r+lh27o0aLeNqTO1a9NI/3vzl6a0P38syY2x2Xopg+36ZMdiRf8ngCouRr5eGhilP1afmm5RfrvDsfxFwAAAHA1ZkrBUN7uZr1xbaTu/3SPDp6z0HhRSalW7HO8dWxnYpZ2fr5PPVoG6JWxndXQx12SlJRZoNUHU7TqQIpiTueV67mDfD10Zcdgje4Uoo4hftyGdgG+HhY9NqK9RnYM1r9WH1Z8hv3OhPnFpXrth2P69lCq/jGqg9o0qn27EAL12S1RLbR4d5LdOnIfbonX+G7N1NDb3cBkAAAAqOtoSsFwfp4Wzb4uUvd+sluxZ/LLdc3OhEzd9+luXd21qdYcTtPupKxyXefrYdbQ9md3zotq1VBmFvMtt54tG2rR7b30zsY4fbw9QaV/mBi1OylLty7Yrnv6tdbE3q1YKBmoJXw9LJp0eWu9uuZoWS23qET/t/mEpg8JNzAZAAAA6jpu30ONEOjjoXkTusnTUv6/ksdO52nWj8cv2ZCyuJk0pF1jvTS2k76+73LNHB2hvq0DaUg5wcvdrAcHt9X7t/RQeJDjjKiiEpvmrY/VXR/v1OFzZr4BqNnGd2uqlg3t14b7bFeSTmYVXOAKAAAAoPJoSqHGyC0qUaG11GWP17NlgP4+sr1W33+5Xh3XRcM7BLNwr4t0aeqvjyb21D39Qs/b3DuYkqPbP96ptzfEqsiF31MAVcPd7Kb7+7exqxWX2DR/Q6wheQAAAFA/0JRCjfHl/uRKP0b7YF9NGximL+7po/k3dtf4bs3UwIs1UaqCu9lN917RRgsn9lSnJn4Ox0tKbXrv5xOauHCH9p0s3+2VAIwzIiLY4d/yyl9SdCSVWY8AAACoGoY2pU6fPq0pU6YoKipKffv21fPPPy+r9fy7pG3ZskXXX3+9evToocGDB2v+/PnVnBZV7UR6+daT+iM/D7Pu6NNK/72jlxbd3ku392mlpg28Ln0hXKJdsK/ev6WHHhwUdt7bL2NO52nSf3dp1o/HVHDOtvMAahY3k0lTB4bZ1WyS5q2LNSQPAAAA6j5Dm1IPP/ywfHx8tG7dOi1evFibNm3SBx984HDesWPHdO+99+qWW27Rjh07NH/+fL3//vv6+uuvqz80qozNdulzzuf6Hs01dWCY2gX5ujYQys3iZtJtvVvp49t6qkeLBg7HS23Sou2JunnBdm2PzzAgIYDy6NM6UJe3DrSrbYg5w79bAAAAVAnDmlJxcXHasmWLZsyYIW9vb7Vq1UpTpkzRxx9/7HDuokWLNHz4cI0fP14mk0kdO3bU//73P/Xq1cuA5KgqTfw9nbqOWVE1R+tGPnr7xu56dHg7+Zxn/a6EjALd9+kevfTdEeUUnn9WJABj/XG2lCTN+SlGNmffOQAAAAAuwGLUEx85ckQNGzZUkyZNymrh4eFKSkpSVlaWGjT4fbbFnj17dMUVV+iRRx7Rhg0b1KhRI91555268cYbK/ScKSkpSk1NtatZLD4KCQmp3CcDlxgT2USf7kqq0DUeZpNGdgyWpQK79tUVFrPjAuMWs6lGfC1ujmqpwe2D9K+vD2lTbLrD8SW7T2rD8TN6clQHDQhv7PLnr8lfG1QtxvnK69Kigf7UOUSrfkkpq+1Pztba42c0IiLYwGQAwDgPAHWNYU2p3NxceXt729V++zgvL8+uKZWZmakFCxZo1qxZeuWVV7Rz505NnjxZAQEBGj16dLmf85NPPtHcuXPtag888IAefPDBSnwmcJXBDX0U2eKY9iWWf1Hssd1bqG2LwEufWAd18faQh9lNRSVnd7fzMLupS5vG8q8hC7sHBvpq0eR+Wrw9Qc99+YuyCuxnRiVnF2ra4r26tkcLPfXnzgr09XDZc/vnO87C8m/grcBAbvGs6xjnXeOJq7rou0OpKi75fXbUW+tjdU3vULmbae5Wt8z8YklSgHfNGN8BIzHOA0DdYlhTysfHR/n59gtb//axr6/9C0cPDw8NHz5cQ4YMkST17t1b48aN06pVqyrUlLrxxhs1bNgwu5rF4qP09FwnPgNUhceHt9Pdi3apwFp6yXOb+Hvq3stb1evv3wODwjT7x2Nlf7bmFyk9v8jgVPZGhDdS90m99dK3R7TmcJrD8c93JurHQyl6fGR7jezomnc5s7McF83PzspXurdhQx7KwRVNQ8Z51/B3kyZc1lz/3Z5YVjuelqsPfjqmCZc1NzBZ/bNg8wnNXntckvTgkHDd3qeVwYlqluyCsw27mvKGDC6OcR4A6r6KjvXlfoW2bNmycj/oNddcc8lz2rdvr4yMDKWlpSkoKEjS2QXNmzZtKn9/f7tzw8PDVVRk/0K7pKSkwutbhISEOEztTU3NlrUcDRBUj4hgP80aH6kZK/Yrp/DCO7U1D/DSm9dGqpG3e73+/t3Ss4XGdj57C6y/l6XGfi0Cvdz10p876fvDaXrl+6NK//Vd/9+cySvWo8t/0dBfUvTo8HYKquSsKWuJ49hgLbHV2K8PXIdx3nXu6tNKK/YmK7fo97H47fWxGhURLO/zrBkH18sptGruuhj9NqTN/em4ru7SRH6eNNgl6aOt8Zq3LkaSNHVQW02MamlwIlQHxnkAqFvK/VvN448/bvexyWSSzWaTt7e3LBaLsrOzZTabFRgYWK6mVJs2bdSrVy+98MILevbZZ5Wenq7o6GhNmDDB4dybbrpJd999t5YvX66rr75a27Zt0xdffKHXXnutvPFRi0SFNtRnd0Zp/sY4LdubbHesqb+nbolqqasjm8jXg1/KpbPNqNrAZDJpRESwolo11L9/PKavD6Q4nPPDkTRtj8/QI0PCNaZziEwmx7WhAFSPQB8PTYxqqfkb48pqp3OL9N/tifrL5aEGJqs/EjML7G6hLC6xKTGzQBEhfgamqhlyCq16a0NsWcMuen2MrunalIYdAAC1TLkXhjh48GDZf6+//ro6duyoZcuWaefOndq6datWrVqlrl27avLkyeV+8tmzZ8tqtWr48OG64YYbNHDgQE2ZMkWS1KNHD61YsUKS1K9fP0VHR2vBggXq1auXnnjiCT322GMaPnx4BT9d1BZBfp7nvUXktXGddXPPFjSkarGGPu56bkxHzRrfRSF+jjOisgqs+ufXh/TQ5/uUnFVgQEIAv7mlV0s18rG/LWrB1nhl5BVf4AqgelyoYQcAAGoXp17Zv/baa5o1a5Y6duxYVgsLC9OTTz6p+++/X7fddlu5HicoKEizZ88+77GdO3fafTx48GANHjzYmbioS5g5U2cMaNtYn9wZoNk/HdfSPckOxzfFpuvGD7Zr2qAwXdu9mdz43gPVzsfDrHv6tdbL3x8tq+UWlej9zSf0yNBwA5MBAACgLnBqC52MjAx5eno61EtLS1VQwLtUAMrHz9Oiv4/soOjru6p5gJfD8bziEr38/VHd/+kexac7Ll4OoOpd07WpWjW0//f52a4kJWbybxIAAACV41RTqm/fvnr22WeVkJBQVjt27JieeeaZsh3yAKC8eocG6n939NLNPVvofPOhdiRk6uYF27VwW4JKSiu2wQGAyrGY3TRlQJhdzVpq0/wNcRe4AgAAACgfp5pS//znP5WVlaWRI0eqb9++6tu3r/785z/L3d1dTz31lKszAqgHvN3NemRouN69+TKFNfJxOF5oLdWba49r0n936Vga2z4D1Wl4hyB1bmq/M+7XB1J0KCXHoEQAAACoC5xaU6pJkyZavny5Nm7cqCNHjkiSOnXqpMsvv5zdsgBUSrfmDbTwtp567+c4fbglXiV/mBi1PzlbEz/aob9cHqo7+7SSu9mp3jqACjCZTJo2MEz3f7anrGaTNG9djGZf19W4YAAAAKjVnH41ZzabFR4ervbt2+uWW25Rhw4daEgBcAkPi5vuHxCmDyf2PO/W59ZSm97ZGKfbF+7UL8nZBiQE6p+o0Ibq1ybQrrYpNl1bT6QblAgAAAC1nVNNqaKiIk2fPl3Dhg3T5MmTlZqaqpkzZ+qOO+5QdjYvEAG4RkSInz645TJNGdBG7mbHpvfRtFzdtWin5vx0XAXFJZIka0mpfo51fJG8KyFTpTbWowIqY+rAMId13+b8FCMb/7YAAADgBKeaUm+99ZYOHjyoDz/8sGwXvttvv12JiYl69dVXXRoQQP1mMbvprr6h+vi2XurarIHD8VKbtGBrgm79aIc+2hqvq9/dornrYhzOe+2HY7r+/7Zp38ms6ogN1EkdQvw0ulOIXe3AqRx9fzjNoEQAAACozZxqSn311Vd66qmn1Ldv37Janz599Nxzz2nNmjUuCwcAvwlr7KP/3NRdjwwNl5fFceg6kZ6v2T/FKDWn6IKPcSI9X/d9uke7EjKrMipQp93X33HmYvT6GFlLSg1KBAAAgNrKqabUqVOnFBoa6lBv1qyZsrKYhQCgapjdTLq5Zwv9945eigpt6NRjFFpL9eiKX5RTaHVxOqB+aB7gpQndm9vV4jMKtGxvskGJAAAAUFs51ZQKDw/Xxo0bHepffvml2rVrV+lQAHAxLRt6K3pCVz05sr18PcwVvj49v1grfzlVBcmA+uEvfUMd/u39Z1Oc8opKDEoEAACA2sipptS0adP0/PPP61//+pdKSkq0dOlSPfzww4qOjtbkyZNdnREAHJhMJl3TrZkW3d5LFreK7/z5+Z6TVZAKqB8a+rjr9t6t7Gpn8oq1aHuCQYkAAABQGznVlBo6dKjmzJmjAwcOyGw267333lNCQoJmzZqlUaNGuTojAFxQqc0ma2nFd/46lpanYtbAAZx2c68WauzrYVf7aGuC0vMuvK4bAAAAcC6LMxfFx8dr0KBBGjRokKvzAECFFFqdbywVlZTK3exUbx6o97zdzbq3X6he/O5oWS2vuETv/XxCfxvGrfwAAAC4NKdejY0cOVK33nqrlixZory8PFdnAoByC/Rxd+o6T4ubvN0rvh4VgN9dHdlUoYHedrUlu08qISPfoEQAAACoTZxqSn388cdq166dXnnlFfXv318zZsw478LnAFDVGvl4qGsz/wpfN7BtI7mZKr4WFYDfWcxuemBAG7uatdSmtzfEGpIHAAAAtYtTTalevXrpmWee0fr16/Xqq6+qsLBQ999/v4YMGaJZs2a5OiMAXNSEy5pf+iQXXAPA0dD2QerS1L4xvPpgqg6dyqnQ42QXWJVdYHVlNACodoxlAFAxlVpMxd3dXSNGjNDMmTM1bdo0ZWdn691333VVNgAolysjghVZgdlSzRp4qmfLgCpMBNQfJpNJ0waFOdTnrosp92N8tDVeI6M3amT0Ri3cxg5+AGonxjIAqDinm1J5eXlatmyZJk2apMGDB+uzzz7TpEmT9N1337kyHwBcksXspn9f00URIX7lOv9kVqF+PHq6ilMB9UevVg3VP6yRXe3nuHRtjku/5LU5hVa9tSFWJTapxCZFr49RTiGzDADULoxlAOAcp3bfmz59un788UeZTCaNGjVKH3zwgaKiolydDQDKrZGPh/5zU3ct3JagT3ckKuMSU+ef/+awIpv5K9jPs5oSAnXbAwPbaGPMGdnOqc1bF6PeoQ0vun5bYmaBikt+v6q4xKbEzIJyN5kBoCZgLAMA5zg1UyotLU1PP/20NmzYoBdffJGGFIAawdvdrHv6tdab10Y6HLsiLNDu48wCq575+pBKbTaHc+sD1ryAq7UP9tOYziF2tQOncvTdoVSDEgEAAKCmc6op9dFHH2n8+PHy9va+9MkAUM3MZseh7a4+oWrewH5W1Oa4DP1vR2J1xaoxWPMCVWVy/zZyN9vPinprQ6yKS0oNSgQAAICarNy37w0fPlyLFy9WYGCghg0bJtNFpuJ///33LgkHAK7i7WHWs2M66t5Pdqv0nMlRc3+9vah9cP2YXn/umhfS2TUvrunaVH6eTt3NDdhp1sBL11/WXIu2/97sTcgo0NI9ybqhBzteAgAAwF65X4WMHz9eXl5eZX++WFMKcIUWAV5yN5vK7s93N5vUIsDL4FSozbq3CNCdfUP1/s8nymrFJTY9tfKgPry1pzwtldqQtFZgzQtUtbv6hmr53mTlFpWU1d77OU5XdQmRrwfNTwAAAPyu3L8dTp06tezP11xzjVq1alUlgYDf+HlaNGVAmOb+dFySNGVAGLM5UGn3XB6qzbHp2p+cXVY7lpanueti9Neh4QYmA+qGht7uuqNPK0Wvjy2rnckr1qJtibrnitbGBQMAAECN49S0gJEjR+rWW2/VkiVLlJub6+pMQJmJUS317ZQr9O2UKzQxqqXRcVAHWMxuem5MR3m72w9//9uRqE2xZwxKBdQtN/dsoSBfD7vawm0JOp1bZFAiAAAA1ERONaU+/vhjtWvXTq+88ooGDBigGTNmaOPGja7OBkiS/L0s8vdihhRcp1Wg93lnRT3z9WGl5/GiGagsL3ez7v3DrKi84hK7W2cBAAAAp5pSvXr10jPPPKP169fr1VdfVWFhoe6//34NGTJEs2bNcnVGAHC5qyObamj7ILva6dwiPf/NEdlstgtcBaC8xkY2VetA+116l+w5qYSMfIMSAQAAoKap1Kq+7u7uGjFihGbOnKlp06YpOztb7777rquyAUCVMZlM+vvI9gr2s7/FaO2x01q2N9mgVEDdYXEz6YGBYXa1klKb3jpnrSkAAADUb043pfLy8rRs2TJNmjRJgwcP1meffaZJkybpu+++c2U+AKgyDb3dNXNUhEP99R+OKe5MngGJgLplSLvG6trM3672zaFUHTiVfYErYOd8szaZyQkAAOoQp5pS06dPV//+/fXss88qJCREH3zwgVavXq0pU6aoWbNmrs4IAFWmb5tA3dKrhV2twFqqp1YelLWk1KBUQN1gMpk0dVCYQ33uTzEGpKk9rKU2LdmdpEe/OOBw7NEVB/TZriTGJwAAUCc41ZRKSUnR008/rQ0bNujFF19UVFSUq3MBQLWZMiBM7YN97WoHTuXonU1xBiUC6o6eLRtqQNtGdrUtJzK0OTbdoEQ1W35xiaZ/vk8vfXdUSZkFDseTsgr0yvdH9dDn+5RXVGJAQgAAANdxqimVn5+vTp06ydvb+9InA0AN52lx03NjOsrDbLKrf7A5XjsSMgxKBdQdDwwMk+kPtTnrYlTKrWh2bDab/vHVQf0cd+mG3ZYTGXryqwNszAAAAGo1p5pSiYmJ8vX1vfSJAFBLhAf5atqgtnY1m6SZKw8pu8BqTCigjmgX5KurujSxqx1KydG3B1MNSlQz/RyXrp+OnS73+euPn9HGGGacAQCA2supptQ999yjv//97/rxxx91/PhxJSUl2f0HALXRjT2aq1+bQLtacnahXv7+iEGJgLpj8hWtHWYjRm+IZW2kcyzedbLi1+zm9y4AAFB7WZy56LXXXpMkbd26VSbT779g2mw2mUwmHTjguDAnANR0JpNJT4+O0M0fbldGfnFZffXBVPVv20h/6tTkIlcDuJimDbx0Q48WWrgtoayWlFmgNYfTDExV/UptNp3JK1ZKdqFScwp1KrtIqTmFOplVUKFZUr/ZGHNGBcUl8nI3V0FaAACAquVUU2rBggWuzgEANUKQr4f+cWUH/W35frv6y98dVffmAWoe4GVQMqD2u7NPKy3be1I5hb8v0P353mQDE7lWobVUqTmFSs0pUkp2oVJ++3NOoVKyz/4/LbdIJaWuWweq1CZl5BerKU0pAABQCznVlOrTp4+rcwBAjTG4XWON79ZUS/f8/mI5t6hE/1x1UG/d0F1mtz8u2QygPAK83XVnn1DNXRdTVsspdFyz7UxuUXXGuiSbzaacwpKzzaWcQqX+2mD6rel0Kvvs/8+dYVmdpi/dp7GRTTWqY4ga+3oYkgEAAMAZTjWlnnjiiYsef/HFF50KAwA1xfQh4doen6kT6flltZ2JWVqwNV539Q01MBlQu93Yo7k+3ZmolJwLN54e/nyfRnYM1mPD28vfy6lfVcqtpNSm9LwincopUmp2oVJ+ndmUmlP462yns7fX5RfX3LWvjqbladaPxzV77XH1C2ukqzo30cDwxvK0OLV0KAAAQLVx6je9hIQEu4+tVqvi4+OVm5urMWPGuCQYABjJ292sf13VUXct2mV3q838jXHq0zpQXZr6G5gOqL283M3q2aqhvj6QcsFzSnV2LbdjaXmaf2M3NfByd+q5frudzn52U1HZek4pOUVKyylUievupqsws5tJIX4eCvbzVHahVTGn85x+rBLb2R351h8/I39Pi0ZGBGtM5xB1a97Abg1QAACAmsKpptRHH33kULPZbJo5c6YCAwPPcwUA1D6dmvhr8hWtFb0+tqxWUmrT0ysP6qOJPeXjwRouQEXtSsi8aEPqXEfTcjVz1SHNGh9pV//tdrpT55nR9NvaTSnZhcoscLw1sDr5uJsV4n+24RTi71nWfArx81SIv4dC/DwV6OMut18bRqk5hbr2va0qsFZ+VlZ2oVWf7zmpz/ecVMuGXhrTuYnGdA5RiwDvSj82AACAq7hsTrzJZNJf/vIX3XrrrZo+fbqrHhYADHV771baFJuunQmZZbUT6fma9eMxPXllBwOTAbXTgq3xFTp//fEzem71YRWXlJbNbkrJLnRJ46YyGvm4/9pg8lCIv6eC/c42mUJ+bUAF+3nIz7Niv2YF+3nq2TEd9cQXv1xy9pabSZoxLFwZ+Vat/OWU4jMKLnhuQkaB3tkYp3c2xqlHywBd1TlEwzsEVzgfgAvLL7ga/wMAACAASURBVCpxLNoMnIYJALWES38bSUtLU16e89POAaCmMbuZ9OyfInTzgu12O4Yt25us/mGNNKR9kIHpgNolOatA64+fqfB1K/ZV3w59595Od+6MprKmk7+ngnw95FFF6zUNbR+kf18TqWdXH9KZvPMvnB7o7a6nRnXQwPDGkqRJl4dq78lsfbX/lL49lKrs8ywe/5udCZnamZCpV9cc05B2jTWmcxP1aR0oCxs4AE5JzSnUu5tO6KtfHMepGSt+0R19Wml8t2ZlMyIBAPacakrNnTvXoZadna2vvvpK/fv3r3QoAKhJmjbw0uPD2+sfKw/a1f/1zWF1aeavYD9Pg5IBtcv+5GwZOW/gt9vpQvw8Ffzr7XRnG06eavLrbXbn3k5nlP5tG2nFPX21cFu83t4QZ3ds8hWhmhjVSl7/z959h0dVbW0Af6elT3ojjYSQBqGEBIg0kd5BRBEFERVLUET9sIAignC9Xsu9iCiKiiIiShGlCioKUlIIPQlJIL33XmYy3x/BwDCZkIRkzszk/T3Pfa7Zc+bMyglZmbNm77VlN5YPi0Qi9HWzRl83a7x4jy+OXy3E3ku5OHmtSOuMq1pFAw7F5+NQfD4cLE0wIdAZU3q7oKeTZWd+a0RGJamgEs/tuIACLTuGZpfV4p0jSYhJL8WqSYEs/hIRNaNdRaldu3ZpjMlkMgwfPhwvvvjiHQdFRKRvxgc54+9rRThwUy+c0hoFVh28gv/dFyz4TSyRIaiub2Z5Swe5dTndrbOb2rOcTkimUjGG9XDQKEoN93VUK0g197zR/k4Y7e+Eoqo6HIrPx75LuUjIq9D6nMLKOmyNycDWmAz4O1licm8XjA90hoOlSYd9P0TGpriqDs/v1F6QutnhhHzYmcuwdHRPHURGRGRY2vXu7Pfff2/676KiIkRFRcHR0RGhoaEdFhgRkb55eXRPnM0sRXZZbdPYqdRibI/NwpwB7gJGRmQY5Kbt20VPJhGhl4v8esPwG8vpXOSNs5w6czmdIbO3MMGcAe6YM8AdSfmV2H85Fwfi8lq8ib6SX4krR69i3Z9XcZePPSb1csEIXweY8voSqdl2JhN5FbcvSP3jx7NZmBPqDg9bbjZARHSzNhWlPv74Y3zzzTf44Ycf0L17d8TGxmLhwoWorKwEAISHh+OTTz6BmZlZq85XWFiIN954A5GRkZBIJJg2bRpeeeUVSKXaw7py5Qruv/9+fPbZZxg8eHBbwiciuiNWplKsmhiIp344h4ablsSs/+sqBnractkL0W2EeFjDVCpGbRublD8y0BNPD/XunKC6iJ5Ollh8dw8sGu6DyLRi7LuUi6NJhVp/FkpVY5P541eLYGUqwdgAJ0zu5YK+btYQcWYodXH1ygbsudC2XncqALvOZWPx3T06JygiIgPV6o+9tm/fjo0bN2L27NlwcGhsrPnaa6/BwsICe/fuxdGjR1FZWYmNGze2+sWXLFkCCwsLHDt2DDt27MDJkyexefNmrcdXV1fjpZdeQk2N9h1miIg6U38PGzw6yFNtrE6pwuv749p8o03U1VibyTA+0KlNz5GIgHv7duukiLoeiViEu7zt8fbkIBx8OhxvjPPHAA+bFp9TUavE7vM5eOL7c5j5ZRQ+P5mKzNJqHUVMpH8u55Rr3YigJe3Z6IGIyNi1uij1448/4tVXX8WLL74IKysrnD9/HikpKXjkkUfg6+sLFxcXPPPMM9i/f3+rzpeamorIyEgsXboU5ubm8PT0REREBLZu3ar1OW+99RbGjBnT2pCJiDrFwru6o5erXG0suaAKHx+7JlBERIZj/iAvWJpo74l0q1n93eAi52YCncHKVIppfVyxcXY/7HliEJ4a0h2eti3Pds8oqcFnJ1IxY1MUnvz+LPZcyEZFC7v9ERmjkuq2F6Tu5HlERMas1cv3kpOTMWTIkKavT506BZFIhLvvvrtprGfPnsjKymrV+RITE2FrawsXF5emMV9fX2RlZaGsrAzW1tZqx//0009ITU3FmjVrsGHDhtaGrSYvLw/5+flqY1KpBZydndt1PiLST1KJ5tISqUQEaQf1RJFKxVg7NQhzNkejuv7G7KhtZzIxvKcD7vKx75DX6QydfW2Exjyv/3o4WeKDmcF4YddFVNW13Ph8tL8j/m9MT0jFxvHvs610+fvq5WCBp4f74Klh3jifVYa9F3NxKC4P5S0UnGIzyxCbWYb//J6MkX6OmBrsgsHedjr5eRl7LiPt9CHPW7Zz0wQzmZj/RomIbtGmjHpzD4GYmBjY29vDz8+vaayyshLm5q1r3tfcsf98XVVVpVaUSk5Oxocffoht27ZBImn9p6u32r59O9avX682tmjRIixevLjd5yQi/SOv1ryJklubw86u43o+2dlZ4s2pvfHqrgtq428eSMChJSNgr6e7Vuni2giJed4wjLezxG5XG/znUDx+i8uD6pbHnaxM8NTdvlgw1AeSLryFulC/ryPtrTAy2A1v1yvxe3wedp3JwB8J+VA23PqTalSraMChuDwcisuDk9wUM/q7YeYADwR1s272+I5g7LmMtNOHPD9QJoVULIJCy++ENtbmJrC2sejSeY2I6FatLkoFBAQgKioK3bt3R1lZGU6fPo3x48erHXPgwAH4+/u36nwWFhaorlbvR/DP15aWN95Q1NbW4oUXXsCyZcvg5ubW2nCbNXv2bIwaNUptTCq1QHFx5R2dl4j0S3mZZq+T8rJqFJt37Hbw43ra41d/R/x+paBpLL+8Fi99H4v37+2tl82AdXVt2qMjbiaZ5w2Hs6kY/5nWC8d6u2DxDvXi7oczg9G7mzXKSqsEik4/6MPv610e1rjLoxeKKutwMC4Pey/mIC63Quvx+eW1+PzYNXx+7Br8nS0xNdgVE3u5wKGDC/X6cG2o7Ywlz0sA3OPniMMJ+bc99mYJueWYsf44Vk0KhLeDRecER0QksLbm+lb/5X744YexYsUKJCQkIDY2FnV1dZg3bx6Axmm0v/zyC7744gusWbOmVefz8/NDSUkJCgoK4OjoCKBxRpSrqyvk8hu9Wi5cuICUlBQsX74cy5cvbxp/+umnMX36dKxcubK13wKcnZ01pvbm55dDwebEREZFodT85FKhVHXK7/prY/xwPrNMbYv1PxILsDM2CzP0sDmzLq+NEJjnDY+9uUxzUAX+zKBfv6/WplI80N8ND/R3Q1JBJQ5czsWBuDzkV9Rpfc6VvEq8/3sy/vtHMsK97TG5twtG+DrAtAOWL+nTtSHd0pc8/1CoO44k5GvM9LydC1lleHBzNCKGeWN2iDtnTRFRl9fqotTUqVNRW1uLbdu2QSwW47///S+Cg4MBAJ999hm+//57LFy4ENOnT2/V+by9vREaGoq1a9di1apVKC4uxoYNGzBr1iy148LCwnD+/Hm1sYCAAHz66acYPHhwa8MnIuoUtuYyrJwQgGd3qs/0eP+PZIR42KC7PT8JJSLj0tPREs+N6IGIYT6ISivGvst5+COxQOsOpEoV8Pe1Ivx9rQhWphKM8XfC5F4u6OdurZczSolaI7ibNf5vVE/85/ekNj+3VtGAD49exR+JBVgxPgCedq1rf0JEZIza9FHVrFmzsHPnTvz4448YN25c0/jChQtx7NgxPP/882168XXr1kGhUGD06NF44IEHMHz4cERERAAAQkJC8PPPP7fpfEREQhjsbYeHQt3VxmoUDVhxIAEKJT+1JyLjJBGLEO5tj9WTAnHw6XC8Md4foZ42LT6nolaJny7kYOH2c7j3iyh8fiIVGSWaS/GIDMEDIW5YPSkQts3N+Lyuv7s1HhnoAVkzzfnPZpZhzjcx2H4mEw2qts65IiIyDh2y8P7mHfTawtHREevWrWv2sdjYWK3PS0hIaNfrERF1lohhPohMLUFSwY2eFpdzyvH5yVQ8M8xHwMiIiDqflakU04JdMS3YFVmlNTgQl4v9l/OQVqy94JRZWoPPTqbis5OpCHG3xqReLhgT4ASrdu5sRiSECUHOGOXniG9j0vHJ8VS1x96eFIDxQY33SRN7ueCtAwmIz1PvyVaraMB7fyTjj6QCvDHeH+42nDVFRF0L9yQlIuoAplIxVk8OhMktn4RujkxHbEapQFEREemem40ZHg/vjh0LwvDlnP64r183yG9TaIrNLMOaw4mY8OkpLNsbh7+vFWnd2ay4qg4/X8jWGH/v9yT8fbUIKs44IR0zkYox1MdBY9zb4Uaz356Olvjqof54akj3ZvtIxaSXYs7XMdh5Lov/homoS2FRioiog/R0tMSzI3qojTWogDcPxKOiVnP7ciIiYyYSidDHzRqvjvHDwafD8e+pQRjew77Fxs61igYcTsjHkl0XMXnjKXx4NBmJ+TdmlpxMKcK9X0Thh7OaRamzmWVYsvsint91EZV1zLmkf6QSMZ64qzu+fjgEfk6au1NV1zfgnSNJeHbHBWSX1QgQIRGR7rEoRURGx93GTK13g0wigruNmU5ee3aIG8K97dTGsstq8e/f2t4IlYjIWJhIxRjl74QP7g3G/qcG46V7fBHkYtXic4qq6vFdTCYe+uYMHvomBu8cScQLuy6isk7Z4vNOphTjpZ8uoZ49/UhPBThb4euHQ/B4uBeaaTWFyLQSzPk6Bj+dz+asKSIyeixKEZHRsTKVImKYDyQiQCJq7Pekqx4lYpEIb47312h6ejAuDwfj8nQSAxGRPrO3MMGDA9zxzdwB2DY/FI8M9ICTlUmLz0nMr8TOc9lQtvL+PCa9FD+ezeqAaIk6h0wixtNDvfHVwyHo4aC5U29lnRJrDifi+V0XkVteK0CERES6waIUERmluWEeOBwxBIcjhmBumIdOX9vRyhSvj/PTGH/nSCKn4xMR3aSnoyWeG9EDvywcjI/uC8aEIGeYSjvm7emPZ7O4oxnpvSAXObbMHYBHB3miuZWtJ1OK8eDX0dh7KYezpojIKLEoRURGS24mhdxMmF2c7u7piHv7uqqNVdYp8eb+eCi1NO8lIuqqJGIRwr3tsXpSIA49E44V4/0R5mlzR+fMKKnB+cyyDoqQqPOYSMVYNNwHX87pD297zd33KmqVeOvgFbz40yUUVHDWFBEZFxaliIg6yQsjfeFlp/7mMjazDN9EpQsUERGR/rM0kWJqsCs+eaAffl44CM8M9YasheboLcks5exUMhy9u1nj23mhmBvmgeb+xR+/WoTZX8fgQFwuZ00RkdFgUYqIqJOYyyRYPSlQY6epjSdScTmnXKCoiIgMRzdrMzwW7gVPO91sVkEkNFOpGM/f3QOfP9hP44MtACirUWDF/gS8/PNlFFbWCRAhEVHHYlGKiKgT9XKV46kh3dXGlA0qvLE/HtX1Le8gRUREjdxsNG/OW6ObjWkHR0KkG/3cbbB13gDMGeDe7Kypo0mFmL05GocT8nUeGxFRR2JRioiokz0y0BMhHuq9UdKKq/Hh0WSBIiIiMiyTerm0+TluNmbo53ZnfamIhGQmk+DFe3zx6ey+cLfRnC1YWqPAsr1xeO2Xyyiu4qwpMl7lNQqU1yiEDoM6CYtSRESdTCIW4a2JAbAylaiN7z6fgz+TCgSKiojIcIzs6QAnK5M2PWdWv24ay6eJDNEAD1tsmx+KB/q7Nfv4kSsFmL05Br8n8j0FGZ8tUekYu+EExm44gW+jM4QOhzoBi1JERDrQzdoMr4z20xhffegKd9IhIroNmUSMFeP9IWlDjambNftQkfEwl0mwdHRPfHJ/X7hZay5LLa6uxys/X8br++JQUl0vQIREHa+iVoFP/k6BUgUoVcCG49dQUcsZU8aGRSkiIh2ZEOSMCUHOamOlNQq8degKGriLDhFRi8K97fHu9N4wl7Xu7eu/jiQip4y775FxCfOyxXfzQzGzb7dmHz8Un48Hv47Bn0mFOo6MqONlltagXnnjPXK9UsVdVY0Qi1JERDr0yuie6HbLJ5ynUorxQ2yWQBERERmOEb4O2PXYQMzs66rxmLWZVO3rshoFlu+Lh0LZoKvwiHTC0kSK18b64aP7guEi15w1VVhZh//bcwkrD8SjrIazpohIv7EoRUSkQ1amUrw1MRC3tjn56K+rSMqvFCYoIgG525hBdtOaLJlE1GxD366I16Z5jlammNlPs7fO+9N7a1yf81ll2HgiVVehEelUuLc9vp8fiunBmkVaANh3OQ8Pfh2Dv68W6TgyIqLWY1GKiEjHQjxs8OggT7WxOqUKb+yPR62Cn+hT12JlKkXEMB9IRIBEBEQM84GVqfT2T+wCeG3axtxEgrVTgiC9per/dWQ6TqcUCxQVUeeyMpXi9fH++O/M4GY3A8ivqMOS3Rex+lACe/EQkV5iUYqISAAL7+qOXq5ytbGkgkpsOH5NoIiIhDM3zAOHI4bgcMQQzA3zEDocvcJr0za9XOV4boSP2pgKwIoD8SiorBMmKCIdGOrTOGtqci/nZh//+WIuHvw6hgVaItI7LEoREQlAKhFj1cQAmEnV0/B3MZl8w0hdktxMCrkZZwE1h9embeYMcMewHvZqY0VV9Xhzfzw3lSCjZm0mw8qJgXhvem84WGrOmsotr8WzOy/gX4cTUVnHWVNEpB9YlCIiEkh3ewu8dI+vxvjKgwkoqWJjUiKi9hCJRHhzfACcb1nKFJlWgq8j0wWKikh37u7pgO/nh2J8oFOzj+86n405X8cgKo0fghGR8FiUIiIS0PQ+rhjZ00FtrKCyDmsOX4GKn+gTEbWLrYUMb08O0thUYuPfKTiXWSpMUEQ6ZGve+Dvw72m9YGcu03g8u6wWET9ewLu/JaGqTilAhEREjViUIiISkEgkwvKx/nC8ZZr90aRC/HwxR6CoiIgMX4iHDRbe1V1tTKkClu+LR0k1Z6NS1zDKzxHbHw3FGH/HZh//8WwWHvomBmcySnQcGRFRIxaliIgEZmshw5sT/DXG3/s9GWnF1QJERERkHBYM9kKYl63aWG55LVYf4mxU6jrsLEzwr6m9sHZKEGya6U+XWVqDp7efx/t/JKOmnrOmiEi3WJQiItID4d72mDPAXW2sRtGAN/bHQ6FsECgqIiLDJhGLsHpigMbypb+SC/F9bJZAUZExcrcxg0xyY72oTCKCu42ZgBFpGhvghO2Phmm0DQAad6n8/kwmHt5yhktciUinWJQiItITi4b7oKejpdrY5ZxyfH4qTaCIiIgMn6OVKd6aFKAxvu7Pq4jLLRcgIjJGVqZSRAzzgUQESERAxDAfWJnq366ZDpYmeHdaL6yeFAjrZmZNpRVXY+H35/C/P69y1hQR6QSLUkREesJUKsbqSYEwkah35t18Og1nM/ipJRFRe93lbY9HBnqqjSkaVFi2Nw4VtQqBoiJjMzfMA4cjhuBwxBDMDfMQOhytRCIRJgQ5Y/v8UAzrYa/xuArAt9EZmPftGVzMLtN9gETUpbAoRUSkR3o6WeLZET3UxhpUwIoD8bxxIiK6A88M7Y4+3azVxjJKavDOkUT2l6IOIzeTQt7MDCR95Ghlig9m9MbKCQGwMpVoPJ5SVI3Ht53Fx8euoU7BVgJE1DlYlCIi0jOzQ9wQ3t1ObSy7rBbv/pYkUERERIZPKhFjzZRAyG9ZUnUoPp+7nVKXJRKJMLm3C76fH4a7vO00Hm9QAZsj0zHv2zN3vNy1vEaB8hp+wEZE6liUIiLSM2KRCG9O8NfYIedAXB4OxeUJFBURkeHrZm2G18dr7nb6n9+TkVxQKUBERPrBRW6K/80Mxuvj/GBpojlr6mphFRZsjcWnf6egvh0bsGyJSsfYDScwdsMJfBud0REhE5GRYFGKiEgPOVqZ4vVxmjdO7/yWiOyyGgEiIiIyDqP8HHF/fze1sVpFA17bG8fGztSliUQiTO/TDd/PD8UgL1uNx5Uq4ItTaZi/NRYJeRWtPm9FrQKf/J0CparxHBuOX2NLAiJqwqIUEZGeGunniBl9XNXGKmqVePNAApQN7H9CRNRez9/dA/5O6rudXiuswnt/JAsUEZH+cLU2w/pZffDamJ4wl2neLibmV2L+1lhsOpkKRStmTWWW1qBeeeN9S71ShcxSfsBGRI1YlCIi0mMv3uMLLztztbHYjFJsiUoXKCIiIsNnKhVj7ZQgjRvuPRdy8Gs8l0kTiUQizOznhm3zQxHqaaPxuLJBhY0nUrHgu7NI4tJXIroDLEoREekxc5kEqyYFQiIWqY1/eiL1jhuOEhF1Zd3tLfDqGD+N8bWHE5FeXC1ARET6x93GHBvu74ulo3xhJtW8dYzPq8C8LWfw1ek0KDiLm4jagUUpIiI919tVjqeGdFcbUzao8Pq+eFSz/wkRUbtN6uWCKb1d1MYq65RYvi8OdYq2N3MmMkZikQgPhLjju0dC0d/dWuNxRYMKG46n4PFtZ3GtsEqACInIkLEoRURkAB4Z6ImQW94IphVX479HrwoUERGRcXh5dE9426svk47LrcD6Y9cEiohIP3namWPj7H54YWQPmDYza+pyTjnmbonBlqh0td6XtQrND9DY6JyI/sGiFBGRAZCIRXhrUqDGNs27zmfjz6RCgaIiIjJ85jIJ1k4JgolEfZn0tjOZzK9EtxCLRHgo1APfzhuAPt00Z03VKVVY99c1LPz+HOJzy/Hfo1fx7I4LGsc9t/MCVh1MQEFlnS7CJiI9xqIUEZGB6GZt1mz/k7d/vcI3dUREd8DPyQov3uOrMb76UAJyyrhLGNGtvO0t8PmD/bB4hI9GQRcALmSX4ZFvY7E1JgPV9ZpLYeuVKvxyKRePbo1lDzcA5TUKlNdw9hh1TSxKEREZkAlBzhgf6KQ2VlJdj1UHE6BSscEoEVF7zezbDaP9HdXGSmsUeH1fPBs4EzVDIhZh3kBPbJk3AL1c5RqPt+a3Jre8Fs/vuoCquq7bI3NLVDrGbjiBsRtO4NvoDKHDIdI5FqWIiAzMK6P94Co3VRs7mVKMH2KzBIqIiMjwiUQiLB/rDzcbM7Xxc1ll+PxEijBBERmAHg6W+GJOf0QM84ZUrDlr6nbSS2qw91JOJ0Sm/ypqFfjk7xQoVYBSBWw4fo39tqjLYVGKiMjAyM2kWDUpELe+71v311UkFVQKExQRkRGQm0mxdnIgJLck2K9Op+N0arFAURHpP6lYhAWDvbBl7gCN/petseNsdpec8Z1ZWoN65Y3vu16pQmYplwxT18KiFBGRAQrxsMH8QZ5qY3VKFVbsj+c25kREd6B3N2s8O9xHbUwFYMX+eBSyfx9Ri3wdLVDXzG57t3OtqAp5Ffz9IuqKWJQiIjJQT97VHUEuVmpjifmV+Pg4tzEnIroTD4W6Y6iPvdpYUVU9Vh5IQEMXnM1B1Fo1igY009e8VRbvvID//XkVf18t4hI2oi6ERSkiIgMllYixelIgzKTqqfy7mEwuMyEiugNikQgrJwTAycpEbfxUajG+iUwXKCoi/WcqFWu0F2itq4VV+DY6A0t2X8Toj09g/tZYfPTXVfx9rQiVdSxSERkrFqWIiAxYd3uLZrcxf+tgAkqq6wWIiIjIONhayLC6mf59n/6dgnOZpcIERaTnxCIRgrtZ3/F5GlTA5ZxyfBOVgSW7LmL0+hNY8F0sPvrrGk5cK+rSu/URGRsWpYiIDNyMPq6429dBbSy/og5rDyd2yaahREQdJdTTFk+Ed1cbU6qA5fviUcrCP1GzZvbt1uHnVKqAi9nl+CYqHc/vuohR6//GY9/FYv2xaziVwiIVkSETtChVWFiIiIgIhIWFYfDgwVizZg0UiuanZm7btg3jx49HSEgIxo8fj61bt+o4WiIi/SQSifD6OH84WKovM/kjsQC/XMwVKCoiIuPwWLgXQj1t1MZyy2vx9q9XWPgnasaYACe425i1+nhzmRgLBnki3NsO5rLW3Z4qVcCF7HJ8HZmO53ZexKiPT+Cx787i42PXcDqlGNX1LFIRGQqpkC++ZMkSuLi44NixYygoKMAzzzyDzZs344knnlA77siRI/jggw/w+eefo1+/fjh79iyefPJJODo6Yvz48QJFT0SkP2wtZHhzgj8W77yoNv7eH0no72EDLztzgSIjIjJsErEIqycF4uFvzqD4ptlRR5MK8UNsFmYPcBcwOiL9YyoV44N7e+Pp7efVfme0HjsjGGFetgAAhbIBl3MrEJNegjPppTibWYqaVuwqrGxQ4UJ2GS5kl2FzZDokYhF6u8oR5mmDAZ626OdmDTOZpEO+PyLqWILNlEpNTUVkZCSWLl0Kc3NzeHp6IiIiotkZULm5uVi4cCH69+8PkUiEkJAQDB48GFFRUQJETkSkn+7ytseDt9wcVdc3YMX+eCiU7dwKh4iI4GRlipUTAzTG//fXVcTnlgsQEZF+6+FgiS8f6t9UbGpOgLMVNs7up3aMVCJGXzdrLBjshY9m9cHvzw7Bpgf7IWKYNwZ52cJU2sqZVA0qnM8qw5en0/Hsjgu4Z/0JLPz+LD75OwWRqcWo4UwqIr0h2EypxMRE2NrawsXFpWnM19cXWVlZKCsrg7X1jQZ5Dz/8sNpzCwsLERUVhddee01n8RIRGYJnh/sgKq0YyQVVTWOXcsqx6VQanh7qLVxgREQGboiPPeaFeWBLdEbTWL1ShWV747Bl3gBYmgi6AIFI73jYmuOT+/vityv5ePWXOLXH3pzgj8m9XCAStbxVn0wiRj93G/Rzt8GCwV6oVzbgck45YtJLEZ1egvNZZahtxUwqRYMKZzPLcDazDF8CkElECHaVY4CnLcI8bRHcTc6ZVEQCEeyvZ2VlJczN1ZeT/PN1VVWVWlHqZvn5+XjqqacQHByMKVOmtOk18/LykJ+frzYmlVrA2dm5TechItJXUqkY/5rWC3O/jkGd8kavk69Op2GYr0OzvRqkEhGkrfzkUd8xzxN1DVKJ5o2sLnLZcyN74GxmKS5k35gdlV5Sg3//loQ1U4Jue4NNd4553vB4O1hojAW5yiFrRxFIKhUjtLsdQPGGsAAAIABJREFUQrvb4UkAdYoGXMopQ1RqCWLSS3Aus3VFqnqlCrGZZYjNLMMXp9Igk4jQx80aYZ62GNjdFn3crGEq7fwilVC5zFDw+nQNghWlLCwsUF1drTb2z9eWlpbNPufs2bN4/vnnERYWhn/961+QStsW/vbt27F+/Xq1sUWLFmHx4sVtOg8RkT4bZGeJVyYGYfXey01jDSrgjf3x+OCBfhrHy63NYWfXfN41NMzzRF2DvFpzYxxd5bIN88Iwad0xlNfciOHA5TzcE+SKBwZ6dvrrd3XM84ans39fXZzkGNWnsX1BrUKJc+mlOJlciFNXCxGTVoy6VhapzqSX4kx6KT47kQoTqRghnrYI7+GAu3wd0N/TtlNmUgmZywwBr0/XIFhRys/PDyUlJSgoKICjoyMAIDk5Ga6urpDL5RrH79ixA2+//TYWL16Mxx57rF2vOXv2bIwaNUptTCq1QHFxZbvOR0Skr2b0csLhi3Y4lVLcNJZRXI11h69oHFteVo1ic+GXnXTEGwzmeaKuobysutkxXeQyKxGwYkIAlv50SW18xZ6L6GFrCl9H3ixpwzzfNen699XP1hR+oW54JNQNtQolLmSVIyatpHG5X2ap2kxybeoUDTh9rQinrxXhf78lwkQiQl93G4R52SLMyxZ9ulnDpANm6wiZywwBr49hamuuF+yn6e3tjdDQUKxduxarVq1CcXExNmzYgFmzZmkce+jQIaxcuRKffPIJhg8f3u7XdHZ21pjam59fDkUrqudERIZmxXh/zPk6BqU3fZp//GqR5nH74jFvoCfGBjhBIjbspSfM80Rdg6KZm0qFUqWz3/WRvg64r1837DyX3TRWo2jAK3suYfNDIexN04mY5w2PkL+vEojQ380a/d2s8Xi4F2oVDbiYXYaY9BJEp5fiYnYZ6ltTpFKqEJ1Wgui0EgCNuwb2cbNGqIcNQj1t0dtV3q4iVVWt5kygS1nl6GFvweXAED7Xk24IWmJct24dVq1ahdGjR0MsFmPGjBmIiIgAAISEhOCtt97CtGnTsH79eiiVSo1puVOnTsWqVauECJ2ISO85WZli+Th/vPzz5RaPu5JfiTf2x+OnC9n4z7TekJvx0yciott5YaQvzmeVITH/xgyd5IIqfHA0GcvG+gsYGRFpYyoVI9TTFqGetngSQE29EhezyxGdXoIz6SW4kF0ORcPti1S1ioabilSpMJU27hoY6mmDME9b9HKVQybRXqRSNKjwxclUbDuTqfHY6l+vYGtMBhaP6IGhPezv4LslMgyC3nk4Ojpi3bp1zT4WGxvb9N+//PKLrkIiIjIq9/g5IsTDGrEZZbc9Nia9FC/+dBEb7u/b4hspIiJqvLldOyUIj3x7BtX1Nz61330+BwO97DA2wEnA6Ij0h7uNGWQSUdOMJJlEBHcbM4GjamQmkzQtyQMai1QXsssQnV6KM+kluNiGIlVUWgmibipS9XOzvl4As1ErUimUDXj558s41szs9X9cLazCC7sv4rWxfri3b7cO+V6J9BU/DiciMmIVtQrE51S0+vizmWXYfT4bD4S4d2JURETGwdveAq+M9sPKgwlq42t+vYIgFyt42JpreSZR12FlKkXEMB+s/+sqACBimA+sTPXzNtRMJsFALzsM9LID0FikOpdVhjPpJYhJL8XFnHIoW1mkikwrQeT15X5mUjH6uTcWqa7kVbRYkPqHCsA7RxLhZWeOUE/bO/q+iPSZfmYDIiLqEPsu5aK6jevufzybhfv7u7GXARFRK0zu7YKotGLsu5zXNFZZp8SyvXH4Yk5/zjwlAjA3zAPTg10BwKDaBJjJJBjc3Q6DuzcWqarrlTifWYaYjBJEp5Xicm7rilQ1igacTi3B6dSSNr1+gwr46nQai1Jk1AwnIxARUZsdis+7/UG3SCmqRkJeBQJdNHdCJSIiTS+P9sPF7HKkFt/YKSoutwLrj13DCyN9BYyMSH8YUjFKG3OZBIO97TDYu7FIVVWnxPms0qblfpdzytGKvultcjq1BGnF1fCy48xLMk6GnxmIiEir3PLadj+PRSkiotaxMJFg7ZQgLPguVm27+e9iMhHmaYvhvg4CRkdEncXCRIJwb3uEezc2JK+sU+BcZhli0ktxJqMEcR1UpNp5NguP3+UFazPZnZ+MSM+wKEVEZMTauwRPzKV7RERt4u9shSUjffHub0lq428dTMDWR0LhIjcVKDIi0hVLEymG+NhjiM+NItXZzBs9qS7llLfrvN+dycR3ZzLhaWuGIBc5ernKEeRqhUBnOSxMJB35LRDpHItSRERGzNPOvF2zpTzZnJeIqM1m9euG6LQS/J5Y0DRWWqPAG/visOGBfpCKWfAn6kosTaQY6mOPodeLVM/8eB7RaW3rK3Wz9JIapJfU4NeEfACACIC3gwV6ucrRy8UKvVzl8HOygqmUvezIcLAoRURkxKb2dmnzm58+3azh7WDRSRERERkvkUiE18f5Iz63HFllNz4QiM0sw6aTqXh6qLdwwRGR4AZ72d5RUepWKgDXCqtwrbAK+y7lAgAkYhF8rxeqglzl6O0ih6+jBaTcdIH0FItSRERGbLS/E9b9dQ2FlXWtfs7sELdOjIiIyLjJzaRYMyUIT3x/Tm1Xri9PpSHU06Zpq3ki6nqm9XHFxhOpULRix75/iNBYfGotZYMKV/IrcSW/Ej9dyAEAmEhE8He2ur70r/H/ve0tIOHsTdIDLEoRERkxU6kYqycFYPHOi616AzQ+0AljA510EBkRkfEK7maNRcO8se6va01jKgBv7E/Ad48MgL2FiXDBEZFg7C1MMKu/G74/k9mq48Ui4H8zg2FjLsPlnHLE5VTgcm45rhZUtqmBep1ShYvZ5biYfaOnlblMjEBnKwS5ytHrep8qD1uzdvcjJWovFqWIiIzcQC87fHhvbyzbG4/yWoXW46b3ccWro3uyyTkRUQd4OMwD0eklOHGtuGmssLIObx5IwP9mBjPXEnVRz4/wQVZpDf5KLmzxOBGA18b4Ne3sF+QiB/o1PlZTr0RCXgXicisQl1uOyznlSC2qbtOMqur6BsRmliE2s6xpTG4qRZDLP4Wqxh5VLnJTFqqoU7EoRUTUBYR722PPE4Pw5ek0fBudofbYSF8HPHaXV+ObHSIi6hBikQgrJwTgoW/OoOCmJdSnUoqxJSoD8wd5ChgdEQlFKhHj39N64atTafguJgMVdUqNY3o6WuLZET5NDdJvZSaToJ+7Dfq52zSNVdQqkJBXgcs55bic01isyiytaVNs5bUKRKaVIPKmvlf2FjIEucgRdL1IFeQqh6MlZ3tSx2FRioioi5CbSTEhyFmjKPXEkO4IcLYSKCoiIuNlZ2GC1ZMCEfHjebUZDJ8cv4YQDxv0dbMWLDYiEo5ULMLCId0R7m2Lx7adU3vsjXH+mBrs0ubZSVamUoR62iLU07ZprKS6HvG5N4pUl3PKkVfR+j6jAFBUVY+/rxXh72tFTWPOViaNO/65NharglzksDGXtem8RP9gUYqIiIiIqJOEedni8XAvbDqV1jSmVAHL98Zh6yMDYG3GGzmirspEKtEYC3Cx6rDlcrbmMoR72zctAQSAgopaXM6tQFxOOS5fL1iVVNe36bx5FXXISyrE0aQbSxDdbcyailS9XOUIdLGCpUn7yg0qlQpnMkrx1al0jcdOpxTD14G7CRoTFqWIiIiIiDrRE3d1x5mMUpzJKG0ayymvxepDV/DutF7s10JEOuNoZYoRVqYY4esAoLEAlFte27jsL7dx+V9cbjkqajWXFbYks7QGmaU1OJyQD6CxJ1Z3e/PrharGWVX+TpYwk2kW4m5WUavAa3vjcCqluNnHPzp2Db9cysH7M4LhZWfephhJP7EoRURERETUiSRiEVZPCsTDW86ozUg4mlSIH89m44EQNwGjI6KuTCQSwdXaDK7WZhjl37gDc4NKhYySmqbZVHE55YjPq0B1fUOrz6sCkFJUjZSiauy/nAcAkIiAHo6W13f7a2yo3tPRErLrs55q6pV4bucFtV0Cm5NSVI0nt5/Dl3P6w83GrH3fOOkNFqWIiIiIiDqZs9wUKycEYMnui2rj//0zGf3crdnbj4j0hlgkgpedObzszDE+yBkAoGxQIaWo6npvqsYeVVfyKlCnbP2ef0oVkJhficT8Suy5ngplEhH8nKzQy8UKWWU1ty1I/aOwsg5rD1/B+ll92/z9kX5hUYqIiIiISAeG9rDHw6Ee2BpzY8OJeqUKy/bG4Zu5Ie3uv0JE1NkkYhF8HS3h62iJKb0bx+qVDbhaUIVL12dTXc4pR3JBJdpQp0K9UnV9x8DWFaNudjq1BNcKq+DjYNHm55L+4F8+IiIiIjIo7jZmkElEqL9+5yOTiOBuIEs4Fg33xtnMUly66QYsrbga/z6ShLcmBrC/FBEZDJlEjAAXKwS4WAF9uwFoXIKXmF/ZtNvf5dwKpBRWoQ11qjb55WIOFt/do5POTrrAohQRERERGRQrUykihvlg/V9XAQARw3xgZWoYb2tlEjHenhyIuVvOoLLuRiPhA3F5GOhli6nBrgJGR0R0Z8xkEvRxs0YfN+umsco6BRLyKhqX/V1vpJ5eUtMhr5daXN0h5yHhGMZfbyIiIiKim8wN88D06wUcuZlhvaX1sDXH6+P88dreOLXxd39LQnA3ay5FISKjYmkixQAPWwzwsG0aK6upR1zTbn8ViEwtVivUt1ZueQ0UygZIrzdLJ8PDnxwRERERGSS5mdTgClL/GBPghJnXl7v8o0bRgGV741BT3/YbMyIiQ2JtJsPg7nZYMNgL707rhSXtXIKXkFeJ6Zsi8eWpNBRV1XVwlKQLLEoREREREQnghZE90NPRUm0sqaAS//3zqkAREREJY2RPR5hI2tdTL6+iDp/8nYIpn53GygPx7WqaTsJhUYqIiIiISABmMgn+NSUIZlL1t+Q7z2XjSEK+QFEREemerYUMYwOd7+gc9UoV9l3Ow/ytsXjsu1gcjMtDvbKhgyKkzsKiFBERERGRQLwdLPDy6J4a42//egUZJWzgS0RdR8RQbzhZmbTqWLEIGgX9m13ILscb++Mx9fNIfHYiBQUVtR0VJnUwFqWIiIiIiAQ0pbcLJgapzxCorFNi+b54fspPRF2Gs9wUH8/qi27Wpi0eZy4T44N7g3Hg6XAsHeWL7nbmWo8trKzD5yfTMPXzSLy+Lw7ns8qgUqk6OnS6AyxKEREREREJSCQS4ZUxPeF1y43V5ZxyfHwsRZigiKjTuduYQXZTHyWZRAR3GzMBIxKej4MFvnskFItH+DQ7a2pyL2f88GgYhvrYw8pUigdC3PHDgjB8dF8whvWwh7auVIoGFQ7F5+PxbWcxf2ss9l3KRZ2CRX99wKIUEREREZHALE2kWDslSO0GFQC2xmTg+NVCgaIios5kZSpFxDAfSESARAREDPOBlalh7ijakaxMpZg30BMfzOit8dicUA+4WqsX7sQiEcK97fHhvcHY9fhAPBTqDitTidbzx+VWYOXBBEz57DQ+OX4NueVc2ickFqWIiIiIiPRAgLNVs9uirzyQgDzeNBEZpblhHjgcMQSHI4ZgbpiH0OHoFZGo7bvxedia44WRvtj3ZDheHdMTPg4WWo8trq7Hl6fTMf3z03jtl8uIzSjl0j4BsChFRERERKQn7u/vhpE9HdTGSmsUeGN/PJQNvFkiMkZyMynkZpwh1ZEsTCS4r58bts8PxYb7+2BkTweItdS4lCrgyJUCPLn9HB7ecgZ7LmSjpl6p24C7MBaliIiIiIj0hEgkwhvj/TUa/Z7JKMUXp1IFioqIyDCJRCIM9LLDf6b3xu7HB+GRgR6wbqEAmJhfibd/TcSUz07jo7+uIrusRofRdk0sShERERER6RFrMxnenhyEW9pLYdPJNESnlQgTFBGRgXOzMcNzI3pg35ODsXysH/ycLLUeW1qjwDdRGZixKRJL91xCVFoxl/Z1EhaliIiIiIj0TF83azwzzEdtTAXgjf3xKKqqEyYoIiIjYCaTYEbfbtg6bwA2zu6L0f6OGh8C/KNBBRxNKkTEjxfw4Ncx2HUuC9Vc2tehWJQiIiIiItJD8wZ6INzbTm2soLIOKw8koIGf2BMR3RGRSIQBHrZ4Z2ov/PTEICwY7Albc5nW468WVuFfR5IweeNpfHg0GRkl1TqM1nixKEVEREREpIfEIhHemhgAB0sTtfGTKcXYGp0hUFRERMbH1doMEcN8sPfJwXhzgj+CXKy0Hlteq8B3MZmY+UUUXth9EadSiri07w6wKEVEREREpKfsLUywamIAbl1Z8vHxFFzIKhMkJiIiY2UqFWNKb1d8/XAIvpjTH+MCnCDRsm2fCsDxq0V4budF3P9VNH6IzURlnUK3ARsBFqWIiIiIiPTYoO52WBDupTambFDh9X1xKK/hDRARUUcTiUTo62aNNVOC8MvCQXgi3Av2FtqX9qUWV+M/vydj8sbTeO/3JKQWVekwWsPGohQRERERkZ5beFd3hLhbq41lldXi7V+vcNkIEVEncrIyxVNDvbH3ycFYNSkAwd3kWo+trFNie2wWZn0VjcU7L+Dvq0XsAXgbLEoREREREek5qViE1ZODYGMmVRv/PbEAO89lCxQVEVHXIZOIMTHIBV89FILND4dgUi9nyLRt24fG/n9Ldl/ErC+j8F1MBipqObO1OSxKEREREREZABe5Kd6cEKAx/uHRZCTkVQgQERFR19TbVY63JgZi75OD8fTQ7nCyMtF6bHpJDT48ehWTNp7CO0cScbWwUoeR6j8WpYiIiIiIDMRwXwc8FOquNlanVGHZ3jhU1SkFioqIqGuytzDB4+Hd8fMTg7B2ShD637LM+mbV9Q3YeS4bszfHIOLH8/gzqQDKBi7tY1GKiIiIiMiAPDvcR2O78rTiarz7W6JAERERdW1SiRhjA5zw+YP98e3cAZja2wUmLSzti0orwf/tuYyZX0RiS1Q6SqvrdRitfmFRioiIiIjIgMgkYqydEgRLE4na+L7Ledh3KVegqIiICAACXKywYkIA9j0ZjkXDvOEiN9V6bFZZLdb9dQ2TPzuNNb9eQVJ+11vaJ739IUREREREpE88bM2xbKwflu+LVxv/92+JqKhTILWoGuW1CliaSBDiboN7/BxhIuXn0UREumJrIcOjg70wd6An/kouxA+xmYhJL2322FpFA366kIOfLuRggIcNZoe4YURPR0jFzc+2SsirwJGEfORV1EIiEsHHwQITg5zhaKW9AKavWJQiIiIiIjJA4wKdEZVWgp8u5DSNVdc34L3fk9WO23kuG3bmMjwyyBMPh7pDJNK+pISIiDqWVCzCKD9HjPJzRFJ+JX44m4n9l/NQq2ho9vgzGaU4k1EKF7kp7uvXDff26QZbCxkAID63HP/5PRnns8o0nvfx8RSMDXDCSyN9m443BCxKEREREREZqJfu8cWF7DIkF1S1eFxxdT3+9+dVpBRWYfk4PxamiIgE0NPJEsvG+uPZ4T74+WIufjybhazSmmaPzS2vxYbjKdh0MhXjAp3Rp5scHx69ihotxSxlgwoH4/JwOaccG2f3g6Ol9h0B9Ymgc3gLCwsRERGBsLAwDB48GGvWrIFCoWj22D///BNTp05F//79MXHiRPzxxx86jpaIiIiISL+YySQYF+DU6uP3XMzBt9EZnRgRERHdjrWZDHPDPLDrsYF4b3pvDPKy1XpsnVKFvZdy8a8jSVoLUjdLK67Gy3suoUFlGDv7CVqUWrJkCSwsLHDs2DHs2LEDJ0+exObNmzWOS0lJwXPPPYfnn38e0dHReO6557BkyRLk5rKRIxERERF1XQ0qFX6+2Lb3xFuiMlDXihsbIiLqXBKxCHf3dMDH9/fFD4+GYVa/bjCX3XmZ5kJ2OaJSSzogws4nWFEqNTUVkZGRWLp0KczNzeHp6YmIiAhs3bpV49jdu3cjLCwMY8aMgVQqxaRJkzBw4EBs375dgMiJiIiIiPTD6dRiZGpZ+qFNcXU9fk8s6KSIiIioPXwcLPDKGD/sfyocL97jC09bszs6345zWR0UWecSrKdUYmIibG1t4eLi0jTm6+uLrKwslJWVwdraumk8KSkJ/v7+as/v2bMn4uPVdxu5nby8POTn56uNSaUWcHZ2bsd3QERkeKQSzR4iUokIUiPZkYl5noi6mnPNNLttjbNZpZjSx7WDo+l8zPNEXYexv2/VxlZqgnmDPPHwQA+cuFqEL06m4mxm23P92cxSg7hWghWlKisrYW5urjb2z9dVVVVqRanmjjUzM0NVVcsNHW+1fft2rF+/Xm1s0aJFWLx4cZvOQ0RkqHqbm8BEIkadsnHZholEjN7eDpCbGc4OHS1hnieirkaB9jUsr1OJYGdn2cHRdD7meaKuw9jft7bGVHsrONlb4sHPTrX5uRW1SoPI84IVpSwsLFBdXa029s/XlpbqF87c3Bw1NerTkmtqajSOu53Zs2dj1KhRamNSqQWKiyvbdB4iIkO2aIQP1h1NbvpvRXUdiqvrBI4KHfJHk3meiLqa9t6amYqg89zIPE9EbaWv71t1qr75zeBux8pUKkhubGuuF6wo5efnh5KSEhQUFMDR0REAkJycDFdXV8jlcrVj/f39cenSJbWxpKQkBAcHt+k1nZ2dNab25ueXQ8FGj0TUhTw0wB1TezUunZabSY0qBzLPE1FXE+phg03tfJ4h5kbmeaKuxZjft7ZWdxsz2FvIUFRV36bnhXnaGsT1EmyBobe3N0JDQ7F27VpUVFQgPT0dGzZswKxZszSOnTZtGiIjI7F//34oFArs378fkZGRmD59ugCRExEZPrmZFHIzwT6XICKiDhLqaYPudua3P/AmDpYmGNnToZMiIiLqWF39fatUIsaMdvQAnNW/WydE0/EE7Xq1bt06KBQKjB49Gg888ACGDx+OiIgIAEBISAh+/vlnAI0N0D/++GNs3LgRAwcOxIYNG/DRRx/Bx8dHyPCJiIiIiAQlEonw5JDubXrO4+FekEr0v/ktERE1uj/EHTZtKMyFedpggIdNJ0bUcUQqlUoldBBCys8vFzoEIiIC4OQkv/1B7cA8T0RdwRenUvHp36m3Pe6hUHcsubsHRKL2NUi/E8zzRETtdyGrDIt3XUBFrbLF4/ycLLHh/r6wNRemIXxbcz0/IiEiIiIiMnCPh3fHmsmBWpfyuVmbYtlYP8EKUkREdGf6uFnjyzkhGOJj1+y+q2ZSMWb164bPZvcTrCDVHpwpxU9WiIj0Aj9BJyK6cyqVClFpJYhOL0FZjQKWJlIM8LBBuLcdJGJhi1HM80REHSOjpBpHEvKRX1EHiVgEb3tzjA1w1oveW23N9SxK8Y8YEZFe4M0KEZFxY54nIjJ+XL5HRERERERERER6j0UpIiIiIiIiIiLSORaliIiIiIiIiIhI51iUIiIiIiIiIiIinWNRioiIiIiIiIiIdI5FKSIiIiIiIiIi0jkWpYiIiIiIiIiISOdYlCIiIiIiIiIiIp1jUYqIiIiIiIiIiHROpFKpVEIHQUBeXh62b9+O2bNnw9nZWehw9AqvTct4fbTjtdGO10b3eM1bxuujHa+Ndrw2LeP10T1ec+14bbTjtWkZr492xnBtOFNKT+Tn52P9+vXIz88XOhS9w2vTMl4f7XhttOO10T1e85bx+mjHa6Mdr03LeH10j9dcO14b7XhtWsbro50xXBsWpYiIiIiIiIiISOdYlCIiIiIiIiIiIp1jUYqIiIiIiIiIiHROsnLlypVCB0GNLC0tMWjQIFhaWgodit7htWkZr492vDba8droHq95y3h9tOO10Y7XpmW8PrrHa64dr412vDYt4/XRztCvDXffIyIiIiIiIiIinePyPSIiIiIiIiIi0jkWpYiIiIiIiIiISOdYlCIiIiIiIiIiIp1jUYqIiIiIiIiIiHSORSkiIiIiIiIiItI5FqWIiIiIiIiIiEjnWJQiIiIiIiIiIiKdY1FKDxQWFiIiIgJhYWEYPHgw1qxZA4VCIXRYeqWoqAhjx47F6dOnhQ5Fb8THx2PBggUYNGgQhg4dipdffhlFRUVCh6U3Tp48ifvvvx8DBgzA0KFDsXr1atTU1Agdll5RKpWYN28eXn31VaFDMXrM87fHPN885nrtmOdvj3let5jrb4+5XhPzvHbM87dnDHmeRSk9sGTJElhYWODYsWPYsWMHTp48ic2bNwsdlt6IiYnB7NmzkZaWJnQoeqOmpgZPPPEEQkJCcPz4cezduxclJSVYtmyZ0KHphaKiIjz11FOYM2cOoqOjsXv3bkRGRuKzzz4TOjS9sn79ekRHRwsdRpfAPN8y5vnmMddrxzzfOszzusVc3zLmek3M89oxz7eOMeR5FqUElpqaisjISCxduhTm5ubw9PREREQEtm7dKnRoemH37t34v//7P7zwwgtCh6JXsrKyEBgYiEWLFsHExAR2dnaYPXs2oqKihA5NL9jb2+PEiROYOXMmRCIRSkpKUFtbC3t7e6FD0xsnT57Er7/+inHjxgkditFjnm8Z87x2zPXaMc/fHvO8bjHXt4y5vnnM89oxz9+eseR5FqUElpiYCFtbW7i4uDSN+fr6IisrC2VlZQJGph+GDRuGw4cPY9KkSUKHold69OiBTZs2QSKRNI0dOnQIvXv3FjAq/WJlZQUAuPvuuzF16lQ4OTlh5syZAkelHwoLC7F8+XK8//77MDc3Fzoco8c83zLmee2Y61vGPK8d87zuMde3jLm+eczzLWOe186Y8jyLUgKrrKzU+Ef0z9dVVVVChKRXnJycIJVKhQ5Dr6lUKnz44Yf4448/sHz5cqHD0Tu//vor/vrrL4jFYixevFjocATX0NCApUuXYsGCBQgMDBQ6nC6Beb5lzPOtw1yvHfO8OuZ5YTDXt4y5/vaY57VjnldnbHmeRSmBWVhYoLq6Wm3sn68tLS2FCInAWuCFAAAJYklEQVQMSEVFBRYvXoxffvkF3377LQICAoQOSe+YmZnBxcUFS5cuxbFjx1BaWip0SILauHEjTExMMG/ePKFD6TKY5+lOMde3jHleHfO8MJjr6U4wz7eMeV6dseV5lqsF5ufnh5KSEhQUFMDR0REAkJycDFdXV8jlcoGjI32WlpaGhQsXws3NDTt27OD66pucOXMGy5Ytw88//wwTExMAQF1dHWQymcFPb71Te/bsQV5eHsLCwgCgaQeTI0eOGHyTRH3FPE93grm+eczz2jHPC4O5ntqLeb55zPPaGVue50wpgXl7eyM0NBRr165FRUUF0tPTsWHDBsyaNUvo0EiPlZaWYv78+RgwYAC++OIL/vG6RUBAAGpqavD++++jrq4OmZmZ+Pe//41Zs2Y1/VHrqg4ePIgzZ84gOjoa0dHRmDJlCqZMmWKQf8AMBfM8tRdzvXbM89oxzwuDuZ7ag3leO+Z57Ywtz3OmlB5Yt24dVq1ahdGjR0MsFmPGjBmIiIgQOizSY7t27UJWVhYOHDiAgwcPqj0WGxsrUFT6w9LSEps2bcLatWsxdOhQyOVyTJ06FYsWLRI6NOqimOepPZjrtWOeJ33EXE9txTyvHfN81yFSqVQqoYMgIiIiIiIiIqKuhcv3iIiIiIiIiIhI51iUIiIiIiIiIiIinWNRioiIiIiIiIiIdI5FKSIiIiIiIiIi0jkWpYiIiIiIiIiISOdYlCIiIiIiIiIiIp1jUYqIiIiIiIiIiHSORSkiIiIiIiIiItI5FqWIOkFFRQX69euHIUOGoK6ursPP/+qrryIgIKDpf0FBQRg2bBhWrFiBioqKDn+9W3300UcYNWpUp78OEZG+Yp4nIjJ+zPVEnY9FKaJOsG/fPjg4OKCiogKHDx/ulNcICQnB8ePHcfz4cfz222947733EBUVhWXLlnXK6xER0Q3M80RExo+5nqjzsShF1Al27tyJYcOG4a677sL333/fKa8hk8ng5OQEJycnuLm5ITw8HBEREfj111918skKEVFXxjxPRGT8mOuJOh+LUkQdLDk5GefOncPQoUMxYcIEREZGIjk5uelxpVKJDz/8EMOGDUO/fv3w3HPPYc2aNZg3b57aORYuXIiQkBAMGzYML730EvLz82/72ubm5hCJRE1fq1QqbNq0CRMnTkRwcDBCQ0Px1FNPIT09vemYgIAA/PDDD1iwYAH69u2L4cOHY+PGjWrn3b59O8aOHYu+ffsiIiICpaWld3KJiIgMGvM8EZHxY64n0g0WpYg62I4dO2BhYYERI0ZgzJgxMDExwbZt25oef++997B9+3asWLECu3btgrOzM7Zs2dL0eG5uLh566CF4enpix44d+PTTT1FRUYEHH3wQVVVVWl83JycHmzZtwqRJk2BlZQUA+Prrr7Fx40YsXboUhw4dwoYNG3Dt2jW88847as999913MWPGDOzZswf33XcfPvjgA0RHRwNonLa8atUqPProo9izZw/69++PrVu3duQlIyIyKMzzRETGj7meSEdURNRh6uvrVUP/v727CYmqi+M4/pt4Che16d2FBE6KgsmINQxlkE6zMZMyiJKRUMQUI+gFZhNEICKkBbZo0ASFoBecCRcTpLmQCIKIrMBiwoU4CyGmWk1ThudZxHN5btJD0XCl+3w/q7nn3HPmzF38LvznXO6ePebMmTNWW2dnp9m5c6fJZDImk8mY8vJyc+vWLdu4w4cPm3A4bIwx5urVq6aurs7W/8+4WCxmjDEmEomYkpIS4/P5jM/nMzt27DDFxcXG7/ebZDJpjZucnDQPHz60zXXlyhUTDAat4+LiYtPV1WU7Z9euXSYajRpjjDl69Kg5f/68rb+jo8NUV1f/0rUBADcg5wHA/ch6wDl/rXRRDHCTqakpvXv3TrW1tVZbbW2tJiYmlEgkVFJSomw2K5/PZxtXWVmpN2/eSJJmZmY0OzuriooK2zmfP3+2bRkuKytTb2+vpG/bh9PptIaHh3Xs2DHdvXtXXq9XNTU1evHihfr7+zU3N6fZ2Vm9fftWW7Zssc3t9Xptx2vXrtXi4qIkKZlM6sCBA7b+iooKa70A8H9CzgOA+5H1gHMoSgE5FI/HJUmnT59e1nf79m11dXVJ+vZc+I8sLS0pEAjo4sWLy/rWrVtnfc7Ly9O2bdus48LCQpWXlysQCGh0dFSRSESDg4O6du2aGhoa5Pf71dTUpMnJSSUSCdu8a9asWfZd/17j9+tdvXr1D9cPAG5GzgOA+5H1gHMoSgE58v79e01NTamhoUHNzc22vpGREY2OjiqTySgvL0/T09MqLS21+l++fGndRIqKinT//n3l5+dbbR8/flQkElFzc7MCgcAP1+DxeLS0tGTdcK5fv65Tp06pra3NOmdoaOg/b6DfKy0t1bNnz3TixAmr7dWrVz89HgDcgpwHAPcj6wFnUZQCcmRsbExfv35Va2vrsq2z7e3tunfvnuLxuJqamtTf369NmzbJ6/UqFotpenpafr9fktTY2Kg7d+7o7Nmz6uzslMfj0eXLlzUzM6OioiJrzsXFRdvbOz58+KCBgQF9+fJFdXV1kqT8/Hw9fvxYNTU1WrVqlcbGxjQ+Pq6NGzf+9O9qa2tTR0eHbty4of379+vRo0d68OCBNm/e/DuXCwD+OOQ8ALgfWQ84i7fvATkSj8e1e/fuZTcvSSooKFAoFFIikdDJkydVX1+vCxcu6NChQ0qlUgoGg9Y/KAUFBbp586Y+ffqkxsZGhcNheTwejYyMaMOGDdacz58/V1VVlaqqqrR3714dP35cCwsLikajKisrk/TtDRzZbFZHjhxROBxWMpnUpUuXlE6nlUqlfup37du3T319fYrFYjp48KDGx8fV0tKSgysGAH8Wch4A3I+sB5zlMb+y5w/Ab5uYmFBlZaXWr19vtbW0tGjr1q3q7u5ewZUBAHKBnAcA9yPrgdxgpxTgsKGhIZ07d06vX7/W/Py8hoeH9eTJE9XX16/00gAAOUDOA4D7kfVAbrBTCnBYKpVST0+Pnj59qmw2q+3bt6u9vV2hUGillwYAyAFyHgDcj6wHcoOiFAAAAAAAABzH43sAAAAAAABwHEUpAAAAAAAAOI6iFAAAAAAAABxHUQoAAAAAAACOoygFAAAAAAAAx1GUAgAAAAAAgOMoSgEAAAAAAMBxFKUAAAAAAADgOIpSAAAAAAAAcNzfv2gNg/gh5VUAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.factorplot('AgeBand','Survived',data=train_df,col='Pclass')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "459 (-0.001, 7.91]\n", + "578 (14.454, 31.0]\n", + "863 (31.0, 512.329]\n", + "751 (7.91, 14.454]\n", + "64 (14.454, 31.0]\n", + "367 (-0.001, 7.91]\n", + "562 (7.91, 14.454]\n", + "731 (14.454, 31.0]\n", + "824 (31.0, 512.329]\n", + "833 (-0.001, 7.91]\n", + "Name: Fare, dtype: category\n", + "Categories (4, interval[float64]): [(-0.001, 7.91] < (7.91, 14.454] < (14.454, 31.0] < (31.0, 512.329]]" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.qcut(train_df['Fare'],4).sample(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FareBandSurvived
0(-0.001, 7.91]0.197309
1(7.91, 14.454]0.303571
2(14.454, 31.0]0.454955
3(31.0, 512.329]0.581081
\n", + "
" + ], + "text/plain": [ + " FareBand Survived\n", + "0 (-0.001, 7.91] 0.197309\n", + "1 (7.91, 14.454] 0.303571\n", + "2 (14.454, 31.0] 0.454955\n", + "3 (31.0, 512.329] 0.581081" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df['FareBand'] = pd.qcut(train_df['Fare'], 4)\n", + "train_df[['FareBand', 'Survived']].groupby(['FareBand'], as_index=False).mean().sort_values(by='FareBand', ascending=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Create FareBand feature\n", + "for df in combine:\n", + " df.loc[df['Fare'] <= 7.91, 'Fare'] = 0\n", + " df.loc[(df['Fare'] > 7.91) & (df['Fare'] <= 14.454), 'Fare'] = 1\n", + " df.loc[(df['Fare'] > 14.454) & (df['Fare'] <= 31), 'Fare'] = 2\n", + " df.loc[df['Fare'] > 31, 'Fare'] = 3\n", + " df['Fare'] = df['Fare'].astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare',\n", + " 'Embarked', 'Title', 'FamilySize', 'IsAlone', 'AgeBand', 'FareBand'],\n", + " dtype='object')" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Drop unneeded features, better to use IsAlone as main feature for family size\n", + "train_df = train_df.drop(['Name', 'Parch', 'SibSp', 'FamilySize', 'FareBand', 'Age'], axis=1)\n", + "test_df = test_df.drop(['Name', 'Parch', 'SibSp', 'FamilySize','Age'], axis=1)\n", + "combine = [train_df, test_df]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SurvivedPclassSexFareEmbarkedTitleIsAloneAgeBand
85813121301
53203001101
85203121200
12603002111
73803000111
76511130303
71712110211
69113111200
16203000111
14213120301
\n", + "
" + ], + "text/plain": [ + " Survived Pclass Sex Fare Embarked Title IsAlone AgeBand\n", + "858 1 3 1 2 1 3 0 1\n", + "532 0 3 0 0 1 1 0 1\n", + "852 0 3 1 2 1 2 0 0\n", + "126 0 3 0 0 2 1 1 1\n", + "738 0 3 0 0 0 1 1 1\n", + "765 1 1 1 3 0 3 0 3\n", + "717 1 2 1 1 0 2 1 1\n", + "691 1 3 1 1 1 2 0 0\n", + "162 0 3 0 0 0 1 1 1\n", + "142 1 3 1 2 0 3 0 1" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df.sample(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Machine Learning

" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((712, 7), (712,), (179, 7), (179,))" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train, X_val, Y_train, Y_val = train_test_split(train_df.drop(\"Survived\", axis=1), train_df[\"Survived\"], test_size=0.2, random_state=True)\n", + "X_train.shape, Y_train.shape, X_val.shape, Y_val.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.770949720670391" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Fit a machine learning model on training data\n", + "logreg = LogisticRegression()\n", + "logreg.fit(X_train, Y_train)\n", + "Y_pred = logreg.predict(X_val)\n", + "accuracy_score(Y_val, Y_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FeatureCorrelation
1Sex2.131160
4Title0.516233
3Embarked0.298914
5IsAlone0.054254
2Fare-0.097203
6AgeBand-0.411285
0Pclass-1.229798
\n", + "
" + ], + "text/plain": [ + " Feature Correlation\n", + "1 Sex 2.131160\n", + "4 Title 0.516233\n", + "3 Embarked 0.298914\n", + "5 IsAlone 0.054254\n", + "2 Fare -0.097203\n", + "6 AgeBand -0.411285\n", + "0 Pclass -1.229798" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coeff_df = pd.DataFrame(train_df.columns.delete(0))\n", + "coeff_df.columns = ['Feature']\n", + "coeff_df[\"Correlation\"] = pd.Series(logreg.coef_[0])\n", + "coeff_df.sort_values(by='Correlation', ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.776536312849162" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dt = DecisionTreeClassifier()\n", + "dt.fit(X_train, Y_train)\n", + "Y_pred = dt.predict(X_val)\n", + "accuracy_score(Y_val, Y_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'sns' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0msns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheatmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconfusion_matrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mannot\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mfmt\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'2.0f'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'sns' is not defined" + ] + } + ], + "source": [ + "sns.heatmap(confusion_matrix(Y_val,Y_pred), annot=True,fmt='2.0f')" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 3 folds for each of 9 candidates, totalling 27 fits\n", + "0.8160112359550562\n", + "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=100,\n", + " max_features=None, max_leaf_nodes=None,\n", + " min_impurity_decrease=0.0, min_impurity_split=None,\n", + " min_samples_leaf=1, min_samples_split=2,\n", + " min_weight_fraction_leaf=0.0, presort=False, random_state=0,\n", + " splitter='best')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[Parallel(n_jobs=1)]: Done 27 out of 27 | elapsed: 0.1s finished\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import GridSearchCV\n", + "\n", + "max_depth=range(100,1000,100)\n", + "hyper={'max_depth':max_depth}\n", + "grd=GridSearchCV(estimator=DecisionTreeClassifier(random_state=0),param_grid=hyper,verbose=True)\n", + "grd.fit(X_train,Y_train)\n", + "print(grd.best_score_)\n", + "print(grd.best_estimator_)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.776536312849162" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Y_pred = grd.best_estimator_.predict(X_val)\n", + "accuracy_score(Y_val, Y_pred)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

YOUR TURN...

" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#insert code here" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 87f1b77fbf44a644616f9bdeed736af4cec0ba18 Mon Sep 17 00:00:00 2001 From: IbrahimJakmour Date: Mon, 26 Feb 2018 10:02:31 +0200 Subject: [PATCH 5/6] Delete Codi_DS_Bootcamp.ipynb --- Codi_DS_Bootcamp.ipynb | 5524 ---------------------------------------- 1 file changed, 5524 deletions(-) delete mode 100644 Codi_DS_Bootcamp.ipynb diff --git a/Codi_DS_Bootcamp.ipynb b/Codi_DS_Bootcamp.ipynb deleted file mode 100644 index 5e3ef7c..0000000 --- a/Codi_DS_Bootcamp.ipynb +++ /dev/null @@ -1,5524 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "

Programming for A Better Future

\n", - "

Workshop by Hani El-Sayyed

\n", - "\n", - "The Codi Data Science & Machine Learning workshop will take you through exploring a (public) dataset using Python plus an open-source stack of DS & ML tools.\n", - "\n", - "The dataset is featured on Kaggle, a data science competitions platform." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# data analysis and wrangling\n", - "import pandas as pd\n", - "import numpy as np\n", - "import random as rnd\n", - "\n", - "# visualization\n", - "import seaborn as sns\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline\n", - "\n", - "# machine learning\n", - "from sklearn.linear_model import LogisticRegression\n", - "from sklearn.svm import SVC, LinearSVC\n", - "from sklearn.ensemble import RandomForestClassifier\n", - "from sklearn.neighbors import KNeighborsClassifier\n", - "from sklearn.naive_bayes import GaussianNB\n", - "from sklearn.linear_model import Perceptron\n", - "from sklearn.linear_model import SGDClassifier\n", - "from sklearn.tree import DecisionTreeClassifier\n", - "from sklearn.model_selection import train_test_split \n", - "from sklearn.metrics import accuracy_score\n", - "from sklearn.metrics import confusion_matrix\n", - "\n", - "import warnings\n", - "warnings.filterwarnings('ignore') " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Data

" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* On April 15, 1912, during her maiden voyage, the Titanic sank after colliding with an iceberg, killing 1502 out of 2224 passengers and crew.\n", - "* This sensational tragedy shocked the international community and led to better safety regulations for ships.\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.\n", - "* Although there was some element of luck involved in surviving the sinking, some groups of people were more likely to survive than others.\n", - "* Goal #1 of the workshop is to understand what elements led to survival through explantory data analysis.\n", - "* Goal #2 of the workshop is to prepare and clean the data.\n", - "* Goal #3 is to create a predictive model that predicts whether a passenger would have survived using cleaned data. " - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "train_df = pd.read_csv('data/train.csv')\n", - "test_df = pd.read_csv('data/test.csv')\n", - "combined = [train_df, test_df]" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
888911Fortune, Miss. Mabel Helenfemale23.03219950263.0000C23 C25 C27S
49950003Svensson, Mr. Olofmale24.0003500357.7958NaNS
20220303Johanson, Mr. Jakob Alfredmale34.00031012646.4958NaNS
575803Novel, Mr. Mansouermale28.50026977.2292NaNC
61161203Jardin, Mr. Jose NetomaleNaN00SOTON/O.Q. 31013057.0500NaNS
\n", - "
" - ], - "text/plain": [ - " PassengerId Survived Pclass Name Sex Age \\\n", - "88 89 1 1 Fortune, Miss. Mabel Helen female 23.0 \n", - "499 500 0 3 Svensson, Mr. Olof male 24.0 \n", - "202 203 0 3 Johanson, Mr. Jakob Alfred male 34.0 \n", - "57 58 0 3 Novel, Mr. Mansouer male 28.5 \n", - "611 612 0 3 Jardin, Mr. Jose Neto male NaN \n", - "\n", - " SibSp Parch Ticket Fare Cabin Embarked \n", - "88 3 2 19950 263.0000 C23 C25 C27 S \n", - "499 0 0 350035 7.7958 NaN S \n", - "202 0 0 3101264 6.4958 NaN S \n", - "57 0 0 2697 7.2292 NaN C \n", - "611 0 0 SOTON/O.Q. 3101305 7.0500 NaN S " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.sample(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* PassengerId: Passenger ID\n", - "* Survived: Passenger Survival Indicator\n", - "* Pclass: Passenger Class\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" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "
\n", - "
\n", - "

Overview

\n", - "
\n", - "
\n", - "
\n", - "

Dataset info

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Number of variables12
Number of observations891
Total Missing (%)8.1%
Total size in memory83.6 KiB
Average record size in memory96.1 B
\n", - "
\n", - "
\n", - "

Variables types

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Numeric6
Categorical4
Boolean1
Date0
Text (Unique)1
Rejected0
Unsupported0
\n", - "
\n", - "
\n", - " \n", - "

Warnings

\n", - "
  • Age has 177 / 19.9% missing values Missing
  • Cabin has 687 / 77.1% missing values Missing
  • Cabin has a high cardinality: 148 distinct values Warning
  • Fare has 15 / 1.7% zeros Zeros
  • Parch has 678 / 76.1% zeros Zeros
  • SibSp has 608 / 68.2% zeros Zeros
  • Ticket has a high cardinality: 681 distinct values Warning
\n", - "
\n", - "
\n", - "
\n", - "

Variables

\n", - "
\n", - "
\n", - "
\n", - "

Age
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count89
Unique (%)10.0%
Missing (%)19.9%
Missing (n)177
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean29.699
Minimum0.42
Maximum80
Zeros (%)0.0%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum0.42
5-th percentile4
Q120.125
Median28
Q338
95-th percentile56
Maximum80
Range79.58
Interquartile range17.875
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation14.526
Coef of variation0.48912
Kurtosis0.17827
Mean29.699
MAD11.323
Skewness0.38911
Sum21205
Variance211.02
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
24.0303.4%\n", - "
 
\n", - "
22.0273.0%\n", - "
 
\n", - "
18.0262.9%\n", - "
 
\n", - "
28.0252.8%\n", - "
 
\n", - "
19.0252.8%\n", - "
 
\n", - "
30.0252.8%\n", - "
 
\n", - "
21.0242.7%\n", - "
 
\n", - "
25.0232.6%\n", - "
 
\n", - "
36.0222.5%\n", - "
 
\n", - "
29.0202.2%\n", - "
 
\n", - "
Other values (78)46752.4%\n", - "
 
\n", - "
(Missing)17719.9%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
0.4210.1%\n", - "
 
\n", - "
0.6710.1%\n", - "
 
\n", - "
0.7520.2%\n", - "
 
\n", - "
0.8320.2%\n", - "
 
\n", - "
0.9210.1%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
70.020.2%\n", - "
 
\n", - "
70.510.1%\n", - "
 
\n", - "
71.020.2%\n", - "
 
\n", - "
74.010.1%\n", - "
 
\n", - "
80.010.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Cabin
\n", - " Categorical\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count148
Unique (%)16.6%
Missing (%)77.1%
Missing (n)687
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
G6\n", - "
\n", - "  \n", - "
\n", - " 4\n", - "
B96 B98\n", - "
\n", - "  \n", - "
\n", - " 4\n", - "
C23 C25 C27\n", - "
\n", - "  \n", - "
\n", - " 4\n", - "
Other values (144)\n", - "
\n", - " 192\n", - "
\n", - " \n", - "
(Missing)\n", - "
\n", - " 687\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
G640.4%\n", - "
 
\n", - "
B96 B9840.4%\n", - "
 
\n", - "
C23 C25 C2740.4%\n", - "
 
\n", - "
E10130.3%\n", - "
 
\n", - "
F3330.3%\n", - "
 
\n", - "
D30.3%\n", - "
 
\n", - "
F230.3%\n", - "
 
\n", - "
C22 C2630.3%\n", - "
 
\n", - "
B2820.2%\n", - "
 
\n", - "
B3520.2%\n", - "
 
\n", - "
Other values (137)17319.4%\n", - "
 
\n", - "
(Missing)68777.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Embarked
\n", - " Categorical\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count4
Unique (%)0.4%
Missing (%)0.2%
Missing (n)2
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
S\n", - "
\n", - " 644\n", - "
\n", - " \n", - "
C\n", - "
\n", - " 168\n", - "
\n", - " \n", - "
Q\n", - "
\n", - "  \n", - "
\n", - " 77\n", - "
(Missing)\n", - "
\n", - "  \n", - "
\n", - " 2\n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
S64472.3%\n", - "
 
\n", - "
C16818.9%\n", - "
 
\n", - "
Q778.6%\n", - "
 
\n", - "
(Missing)20.2%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Fare
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count248
Unique (%)27.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean32.204
Minimum0
Maximum512.33
Zeros (%)1.7%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum0
5-th percentile7.225
Q17.9104
Median14.454
Q331
95-th percentile112.08
Maximum512.33
Range512.33
Interquartile range23.09
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation49.693
Coef of variation1.5431
Kurtosis33.398
Mean32.204
MAD28.164
Skewness4.7873
Sum28694
Variance2469.4
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
8.05434.8%\n", - "
 
\n", - "
13.0424.7%\n", - "
 
\n", - "
7.8958384.3%\n", - "
 
\n", - "
7.75343.8%\n", - "
 
\n", - "
26.0313.5%\n", - "
 
\n", - "
10.5242.7%\n", - "
 
\n", - "
7.925182.0%\n", - "
 
\n", - "
7.775161.8%\n", - "
 
\n", - "
26.55151.7%\n", - "
 
\n", - "
0.0151.7%\n", - "
 
\n", - "
Other values (238)61569.0%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
0.0151.7%\n", - "
 
\n", - "
4.012510.1%\n", - "
 
\n", - "
5.010.1%\n", - "
 
\n", - "
6.237510.1%\n", - "
 
\n", - "
6.437510.1%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
227.52540.4%\n", - "
 
\n", - "
247.520820.2%\n", - "
 
\n", - "
262.37520.2%\n", - "
 
\n", - "
263.040.4%\n", - "
 
\n", - "
512.329230.3%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Name
\n", - " Categorical, Unique\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
First 3 values
Coutts, Master. William Loch \"William\"
Sedgwick, Mr. Charles Frederick Waddington
Collander, Mr. Erik Gustaf
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Last 3 values
Beckwith, Mrs. Richard Leonard (Sallie Monypeny)
Jalsevac, Mr. Ivan
Stone, Mrs. George Nelson (Martha Evelyn)
\n", - "\n", - "
\n", - "

First 10 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
Abbing, Mr. Anthony10.1%\n", - "
 
\n", - "
Abbott, Mr. Rossmore Edward10.1%\n", - "
 
\n", - "
Abbott, Mrs. Stanton (Rosa Hunt)10.1%\n", - "
 
\n", - "
Abelson, Mr. Samuel10.1%\n", - "
 
\n", - "
Abelson, Mrs. Samuel (Hannah Wizosky)10.1%\n", - "
 
\n", - "
\n", - "

Last 10 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
de Mulder, Mr. Theodore10.1%\n", - "
 
\n", - "
de Pelsmaeker, Mr. Alfons10.1%\n", - "
 
\n", - "
del Carlo, Mr. Sebastiano10.1%\n", - "
 
\n", - "
van Billiard, Mr. Austin Blyler10.1%\n", - "
 
\n", - "
van Melkebeke, Mr. Philemon10.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Parch
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count7
Unique (%)0.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean0.38159
Minimum0
Maximum6
Zeros (%)76.1%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum0
5-th percentile0
Q10
Median0
Q30
95-th percentile2
Maximum6
Range6
Interquartile range0
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation0.80606
Coef of variation2.1123
Kurtosis9.7781
Mean0.38159
MAD0.58074
Skewness2.7491
Sum340
Variance0.64973
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
067876.1%\n", - "
 
\n", - "
111813.2%\n", - "
 
\n", - "
2809.0%\n", - "
 
\n", - "
550.6%\n", - "
 
\n", - "
350.6%\n", - "
 
\n", - "
440.4%\n", - "
 
\n", - "
610.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
067876.1%\n", - "
 
\n", - "
111813.2%\n", - "
 
\n", - "
2809.0%\n", - "
 
\n", - "
350.6%\n", - "
 
\n", - "
440.4%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
2809.0%\n", - "
 
\n", - "
350.6%\n", - "
 
\n", - "
440.4%\n", - "
 
\n", - "
550.6%\n", - "
 
\n", - "
610.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

PassengerId
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count891
Unique (%)100.0%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean446
Minimum1
Maximum891
Zeros (%)0.0%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum1
5-th percentile45.5
Q1223.5
Median446
Q3668.5
95-th percentile846.5
Maximum891
Range890
Interquartile range445
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation257.35
Coef of variation0.57703
Kurtosis-1.2
Mean446
MAD222.75
Skewness0
Sum397386
Variance66231
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
89110.1%\n", - "
 
\n", - "
29310.1%\n", - "
 
\n", - "
30410.1%\n", - "
 
\n", - "
30310.1%\n", - "
 
\n", - "
30210.1%\n", - "
 
\n", - "
30110.1%\n", - "
 
\n", - "
30010.1%\n", - "
 
\n", - "
29910.1%\n", - "
 
\n", - "
29810.1%\n", - "
 
\n", - "
29710.1%\n", - "
 
\n", - "
Other values (881)88198.9%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
110.1%\n", - "
 
\n", - "
210.1%\n", - "
 
\n", - "
310.1%\n", - "
 
\n", - "
410.1%\n", - "
 
\n", - "
510.1%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
88710.1%\n", - "
 
\n", - "
88810.1%\n", - "
 
\n", - "
88910.1%\n", - "
 
\n", - "
89010.1%\n", - "
 
\n", - "
89110.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Pclass
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count3
Unique (%)0.3%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean2.3086
Minimum1
Maximum3
Zeros (%)0.0%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum1
5-th percentile1
Q12
Median3
Q33
95-th percentile3
Maximum3
Range2
Interquartile range1
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation0.83607
Coef of variation0.36215
Kurtosis-1.28
Mean2.3086
MAD0.76197
Skewness-0.63055
Sum2057
Variance0.69902
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
349155.1%\n", - "
 
\n", - "
121624.2%\n", - "
 
\n", - "
218420.7%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
121624.2%\n", - "
 
\n", - "
218420.7%\n", - "
 
\n", - "
349155.1%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
121624.2%\n", - "
 
\n", - "
218420.7%\n", - "
 
\n", - "
349155.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Sex
\n", - " Categorical\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count2
Unique (%)0.2%
Missing (%)0.0%
Missing (n)0
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
male\n", - "
\n", - " 577\n", - "
\n", - " \n", - "
female\n", - "
\n", - " 314\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
male57764.8%\n", - "
 
\n", - "
female31435.2%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

SibSp
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count7
Unique (%)0.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean0.52301
Minimum0
Maximum8
Zeros (%)68.2%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum0
5-th percentile0
Q10
Median0
Q31
95-th percentile3
Maximum8
Range8
Interquartile range1
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation1.1027
Coef of variation2.1085
Kurtosis17.88
Mean0.52301
MAD0.71378
Skewness3.6954
Sum466
Variance1.216
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
060868.2%\n", - "
 
\n", - "
120923.5%\n", - "
 
\n", - "
2283.1%\n", - "
 
\n", - "
4182.0%\n", - "
 
\n", - "
3161.8%\n", - "
 
\n", - "
870.8%\n", - "
 
\n", - "
550.6%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
060868.2%\n", - "
 
\n", - "
120923.5%\n", - "
 
\n", - "
2283.1%\n", - "
 
\n", - "
3161.8%\n", - "
 
\n", - "
4182.0%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
2283.1%\n", - "
 
\n", - "
3161.8%\n", - "
 
\n", - "
4182.0%\n", - "
 
\n", - "
550.6%\n", - "
 
\n", - "
870.8%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Survived
\n", - " Boolean\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count2
Unique (%)0.2%
Missing (%)0.0%
Missing (n)0
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean0.38384
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
0\n", - "
\n", - " 549\n", - "
\n", - " \n", - "
1\n", - "
\n", - " 342\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
054961.6%\n", - "
 
\n", - "
134238.4%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Ticket
\n", - " Categorical\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count681
Unique (%)76.4%
Missing (%)0.0%
Missing (n)0
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
1601\n", - "
\n", - "  \n", - "
\n", - " 7\n", - "
347082\n", - "
\n", - "  \n", - "
\n", - " 7\n", - "
CA. 2343\n", - "
\n", - "  \n", - "
\n", - " 7\n", - "
Other values (678)\n", - "
\n", - " 870\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
160170.8%\n", - "
 
\n", - "
34708270.8%\n", - "
 
\n", - "
CA. 234370.8%\n", - "
 
\n", - "
310129560.7%\n", - "
 
\n", - "
CA 214460.7%\n", - "
 
\n", - "
34708860.7%\n", - "
 
\n", - "
38265250.6%\n", - "
 
\n", - "
S.O.C. 1487950.6%\n", - "
 
\n", - "
PC 1775740.4%\n", - "
 
\n", - "
413340.4%\n", - "
 
\n", - "
Other values (671)83493.6%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Correlations

\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "

Sample

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", - "
\n", - "
\n", - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import pandas_profiling\n", - "pandas_profiling.ProfileReport(train_df)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Explanatory Data Analysis

" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

What is the distribution of features across the data?

" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassAgeSibSpParchFare
count891.000000891.000000891.000000714.000000891.000000891.000000891.000000
mean446.0000000.3838382.30864229.6991180.5230080.38159432.204208
std257.3538420.4865920.83607114.5264971.1027430.80605749.693429
min1.0000000.0000001.0000000.4200000.0000000.0000000.000000
25%223.5000000.0000002.00000020.1250000.0000000.0000007.910400
50%446.0000000.0000003.00000028.0000000.0000000.00000014.454200
75%668.5000001.0000003.00000038.0000001.0000000.00000031.000000
max891.0000001.0000003.00000080.0000008.0000006.000000512.329200
\n", - "
" - ], - "text/plain": [ - " PassengerId Survived Pclass Age SibSp \\\n", - "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", - "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", - "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", - "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", - "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", - "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", - "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", - "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", - "\n", - " Parch Fare \n", - "count 891.000000 891.000000 \n", - "mean 0.381594 32.204208 \n", - "std 0.806057 49.693429 \n", - "min 0.000000 0.000000 \n", - "25% 0.000000 7.910400 \n", - "50% 0.000000 14.454200 \n", - "75% 0.000000 31.000000 \n", - "max 6.000000 512.329200 " - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.describe()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NameSexTicketCabinEmbarked
count891891891204889
unique89126811473
topCoutts, Master. William Loch \"William\"male1601C23 C25 C27S
freq157774644
\n", - "
" - ], - "text/plain": [ - " Name Sex Ticket Cabin \\\n", - "count 891 891 891 204 \n", - "unique 891 2 681 147 \n", - "top Coutts, Master. William Loch \"William\" male 1601 C23 C25 C27 \n", - "freq 1 577 7 4 \n", - "\n", - " Embarked \n", - "count 889 \n", - "unique 3 \n", - "top S \n", - "freq 644 " - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.describe(include=['O'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

How many survived?

" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 0.616162\n", - "1 0.383838\n", - "Name: Survived, dtype: float64" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.Survived.value_counts(normalize=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Are there any specific features correlated with survival?

" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
Pclass
10.629630
20.472826
30.242363
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "Pclass \n", - "1 0.629630\n", - "2 0.472826\n", - "3 0.242363" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[['Pclass', 'Survived']].groupby(['Pclass']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived01All
Pclass
180136216
29787184
3372119491
All549342891
\n", - "
" - ], - "text/plain": [ - "Survived 0 1 All\n", - "Pclass \n", - "1 80 136 216\n", - "2 97 87 184\n", - "3 372 119 491\n", - "All 549 342 891" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.crosstab(train_df.Pclass,train_df.Survived,margins=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
Sex
female0.742038
male0.188908
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "Sex \n", - "female 0.742038\n", - "male 0.188908" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[[\"Sex\", \"Survived\"]].groupby(['Sex']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
SibSp
10.535885
20.464286
00.345395
30.250000
40.166667
50.000000
80.000000
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "SibSp \n", - "1 0.535885\n", - "2 0.464286\n", - "0 0.345395\n", - "3 0.250000\n", - "4 0.166667\n", - "5 0.000000\n", - "8 0.000000" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[[\"SibSp\", \"Survived\"]].groupby(['SibSp']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
Parch
30.600000
10.550847
20.500000
00.343658
50.200000
40.000000
60.000000
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "Parch \n", - "3 0.600000\n", - "1 0.550847\n", - "2 0.500000\n", - "0 0.343658\n", - "5 0.200000\n", - "4 0.000000\n", - "6 0.000000" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[[\"Parch\", \"Survived\"]].groupby(['Parch']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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z/5OEBISoocffljLli1TZGSkrrnmGi1dulS9evXSyJEjPXoswFdRW+DPaJoC2KxZs9S7d2/9/ve/14YNG+RwOHTVVVcpJSVFjzzySMt6jz32mKqqqjRt2jTZ7XZNnDhRKSkp5522/rZx48YpNzdXaWlprRaaC607evRoPffcc1q9erVWr16tK664QnfddZeysrIk/ePtzatXr9aiRYs0ZcoUhYaG6pFHHjH6jdVdmZmZamxs1MKFC+VwOJSUlKQXXnjhnJvDgUBGbYG/6uQ0OTsBAAACHHOMAAAABmiaAAAADNA0AQAAGKBpAgAAMEDTBAAAYICmCQAAwECHf05TRYXZg86CgjopMjJclZW1am7236coBEqeErn6K3dz7dGji1fioLacK1ByDZQ8JXK9mLbUFr+ZaQoK6qROnTopKKiT1aF4VaDkKZGrv/K1XH0t3ksRKLkGSp4SuXr8GF7bMwAAgB+haQIAADBA0wQAAGCApgkAAMAATRMAAIABmiYAAAADNE0AAAAGaJoAAAAMdPgngqNtkpbvNl63aPYwL0YCAIB/YKYJAADAAE0TAACAAZomAAAAAzRNAAAABmiaAAAADNA0AQAAGOCRAzB+PAGPJgAABDJmmgAAAAzQNAEAABigaQIAADBA0wQAAGCApgkAAMAATRMAAIABmiYAAAADNE0AAAAGaJoAAAAMuP1E8G3btmnOnDm6/PLLW5aNGDFCS5cu1a5du7Rs2TJ9+eWXuuqqqzR37lzdddddHg3Y35g+jVviidwAAFjJ7abpo48+0ve//30tWbLEZfnnn3+umTNn6t///d915513qrCwULNmzVJhYaF69uzpsYABAACs4PbluY8++kj9+vU7Z/mmTZuUmJioESNGyGazKSUlRUlJScrLy/NIoAAAAFZya6apublZBw8elN1u15o1a9TU1KThw4drzpw5Ki0tVWxsrMv60dHRKi4uNt5/eXm5KioqXAO0hSkqKqrVbYODg1z+9Uc2W5Cledps7XvMQBjTs8jVu6gtZgIl10DJUyJXT3OraaqsrNSNN96oe+65Rzk5OTpx4oTmzZunrKwsNTQ0yG63u6wfGhqquro64/3n5eUpNzfXZVlGRoYyMzON9xERYW99JR/VrVt4y/+tyPObx29P/jym30au3kFtcU+g5BooeUrk6iluNU3du3fXhg0bWj63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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "grd = sns.FacetGrid(train_df, col='Survived')\n", - "grd.map(plt.hist, 'Age', bins=20)\n", - "#notice we need to group ages when designing our model" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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3e8UFxcn6doh7apVq1o1l59++kmXL1++6YLRIUOGSFLRIezrXnnlFX3xxRdavXq1jhw5ogMHDujo0aOqU6eOJOmFF17Q8uXL1b59e4WEhCgyMlLt2rUraoZvvPGG+vbtq4iICIWFhSkyMlIdO3a8ZcN79913tXbt2mJvi46O1rhx4+x/UO6Qp6enunfvru7duys/P1+7d+/W559/rpUrV8pisWjatGk2z/Xwww9bfd+hQweNGzdOmzZtUnR0tFavXq22bdsW22BvN/brr7+WJP3+97+3us/ly5eLwtCBAwcUGRlpdXtYWNhtm2GvXr20e/fuYm/r06eP+vbte9N2b2/vm671uh68bvcKFq6NnuM49Bz7eg5sRwAzoEqVKjf94t2ofPnyNs9lsVjUt29f7d+/X9HR0erQoYPefPNNvfPOO0VjAgICtHr1an3zzTfatm2btm7dqvnz52vAgAHq37+/wsLCtGXLFm3btk1paWlKSUnRjBkzNHfuXEVERNy0z0GDBun1118vdj32vPq7Wxs3btT//d//qU+fPpKuBYhWrVqpVatWqlatmj799FOr8Tdes3HlypWb5vv1qQxfX189++yzWrt2rVq1aqWvvvpKs2fPLnYttxt7fb+LFi266QLa69eU/Hp9UsnPg/Hjx1tdc3OjWx1JuP/++296F1JWVpYkqWbNmrfdH1wXPccx6Dn29xzYjgBWBjz88MMqX7689u3bV3SIX5JeeuklPfvss0WHlCXphx9+0JYtW7R06VI9+uijkq69yjly5EjRNQmrV6/WuXPnFBsbq2bNmmngwIFKTEzUunXr1L9/fyUlJalZs2Zq06aN2rRpo5EjR6pjx47asGFDsc2wevXqql69upMfhZL9+9//1owZM/TCCy/oN7/5jdVtlSpVKlrj9aZy7ty5otsPHz5s0z66dOmi+Ph4rVixQtWrVy/28ShpbP369SVdCzrPPPNM0fipU6eqXLlyGjx4sBo2bKg9e/ZYzbdv377bru1OAlPz5s21atUqnTt3rug/rrS0NPn5+Vk913BvoefYhp7DizRn4l2QZYCPj4969Oih6dOna9OmTTpy5IimTp2qQ4cOqXXr1lZj77vvPnl5eenzzz/X0aNHtW/fPg0ePFjZ2dlFp5ouXryoSZMmadWqVTp27JjS09O1c+dOhYWFSbrWGMaMGaO0tDT9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UwTVq1e37cGCS6Pn0HNM9RxJmjVrliS53DWEphHADJg9e7bmz58v6dqrzkuXLqlevXqaNm2aatWqpXPnzmnp0qVKTEwsOt8/aNAgXb16VefPn79pvsjISIWHh6tBgwaSrjWehQsXav/+/ZKkI0eOqGLFiqpdu7Zq1aqlWrVqKTAwULVq1Sq6vVKlSnrooYdUuXJlDRo0SOHh4apSpUqx669cufJtf9ls8fHHH+vTTz/VyJEj7/g//QoVKujTTz/VokWL9Pnnn2vJkiX67//+b3l5eSkmJkYjR45U+fLlbZ6vYcOGio6OLvr+xRdf1MqVK4sa3GeffaaaNWuqZcuWVvcrV67cbcdu375d33zzjdLS0hQQECBJevPNN7Vnzx59/PHHmjhxoj7++GM9//zzio2NlST17t1b3377rTIyMm653utz2aOgoKDoiMd1148Q3Ol1MSj76Dn0nNLqObAdAcyA3/3ud4qLi5N07ZB21apVrZrLTz/9pMuXL+uxxx6zut/1X7Rfv4PklVde0RdffKHVq1fryJEjOnDggI4ePao6depIkl544QUtX75c7du3V0hIiCIjI9WuXbuiZvjGG2+ob9++ioiIUFhYmCIjI9WxY8dbNrx3331Xa9euLfa26OhojRs37pa1WywWTZ8+XR9++KH69Omj11577dYPlA0qVqyonj17qmfPnsrNzdXOnTu1evVqLVq0SD4+PkWH423x8MMPW33fuXNnJScna8+ePWratKlWr16tTp06FZ2GsHXs999/L0lq06aN1X0uXbpUFHoOHDigjh07Wt0eFhZ222bYsWPHW76ja+zYsXrhhRdu2u7t7a1Lly5Zbbu+Bl9f31vuC66NnkPPkUqn58B2BDADqlSpctMv3o3seQVlsVjUt29f7d+/X9HR0erQoYPefPNNvfPOO0VjAgICtHr1an3zzTfatm2btm7dqvnz52vAgAHq37+/wsLCtGXLFm3btk1paWlKSUnRjBkzNHfuXEVERNy0z0GDBun1118vdj2VKlW65VovX76skSNH6rPPPtOwYcNuOYetli1bpsLCQv3ud7+TJPn7+6tt27Zq27atBg8erC1btlg1Q4vFonLlykm6dhTg1359KqN27dpq0aKF1q5dq8qVKysjI0PTpk0rdi23G3v16lVVqlSp2Gskbjwadf36mOtKeh7MmTOn2Dok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1vLly3XHHXdowoQJkqSbb75ZX3/9tf7617/+6Hzbtm3rdG3n1dbWOpz9kqSrr75aknTmzBmXtwfvQM+h53iq58B5BDADfv3rX2vMmDGSvj+l3bZtW4fm8s0336iurk49evRwuN1TTz0lSfZT2OeNHj1af/vb35Sfn6/y8nJ9/fXXOnDggG666SZJ0vDhw7Vq1SoNHjxYt956q+Lj45WYmGhvho899pjGjRunPn36KCYmRvHx8brnnnt+tOE9++yzKigouOi6pKQkzZ49+5L1n28ICxYsUP/+/VVYWKgRI0Zc8jY/xs/PTw888IAeeOAB1dTU6NNPP9V7772nNWvWyLIsZWVlOb2tn/70pw5/DxkyRLNnz9YHH3ygpKQk5efna9CgQRdtsJca++GHH0qSHn74YYfb1NXV2cPQ119/fcFbIzExMZdsho8++qg+/fTTi657/PHHNW7cuAuWBwYGXvBZr/PB61KvYOHd6Dn0HMkzPQfOI4AZcM0111zwxPuhq666yultWZalcePGaffu3UpKStKQIUP09NNPa9asWfYxYWFhys/P1+eff66tW7fqo48+0pIlSzRhwgQ98cQTiomJ0ebNm7V161YVFRUpLy9PCxYs0OLFi9WnT58L9vnkk0/qd7/73UXn82Ov/srKyvTtt9/aT5dL37/1dc011+jQoUNO1/tDhYWF2rt3rx5//HFJ3weIfv36qV+/fmrXrp1ef/11h/E//MzGuXPnLtjev7+VERQUpF/84hcqKChQv379tGXLFi1cuPCic7nU2PP7XbFixQWvus9/puTf5yc1/jjIyMhw+MzND/3YmYSOHTtecBVSRUWFJOm666675P7gveg536PnmO85cB4BrBn46U9/qquuukpffvml/RS/JN1///36xS9+YX81J0l///vftXnzZr311lv62c9+Jun7Vznl5eX2zyTk5+erurpaKSkp6tmzp9LT0zVz5ky9++67euKJJ5Sdna2ePXtq4MCBGjhwoKZPn6577rlHGzZsuGgzbN++vdq3b+9STR9++KGysrL00Ucf2RtmeXm5jh07pi5durh8H0nSd999pwULFmj48OG6/vrrHda1adPGPsfzTaW6utq+fv/+/U7tY+TIkUpNTdXq1avVvn37i94fjY2NjIyU9H3Qufvuu+3jX3rpJbVq1UoTJ07Ubbfdps8++8xh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+X7foefQczxZr9cHsKCgIJ0+fdph2fm/feUX3aurq5Wenq6CggItX75ct956q2w2m2prax3G1dbWenXNCxcuVEBAgMaMGXPBOl+sV5ICAgIkSTNmzFCbNm107bXXauLEidq8ebMsy/K5mgsLC7VhwwaNHj1aAQEBioyMVFpamt544w2vOcYtoedILaPv0HPoOZ6s19/IXppQZGSkjh8/rsOHD+vaa6+VJJWVlaljx44KCQnx8OyuXHl5uR577DF16tRJeXl5CgsLkyRFRUVp69atDmNLS0sVGRnpiWm6RX5+vioqKhQbGytJ9ifG+++/r5SUFH311VcO40tLS9WtWzfj83SniIgINTQ0qK6uTldffbWk71+xSdJtt92m119/3WG8tx/j7777zn710Xn+/v666qqrFBUV5RXH2Nd7jtRy+g49h57j0WNs5KP+TezBBx+0nnrqKauqqsp+RVJ2dranp3XFjh8/bt19993WtGnTrPr6eod1R48etWJjY63XXnvNOnv2rFVUVGTFxMRYRUVFHpqt+02dOtV+RVJpaakVHR1trVu3zn61SnR0tLV3714Pz/LKnD171kpMTLQmVqWZygAABPlJREFUTJhgVVdXW0eOHLEefvhhKy0tzSeP8Z49e6xu3bpZf/7zn61z585Z5eXl1r333mtlZmZ61TH21Z5jWS2779BzfO/4Nuee08qy/u+yAC92+PBhzZ49W5988olat26tESNG6JlnnnH4EKk3eu2115SZmSmbzaZWrVo5rPv888/15ZdfKiMjQ19//bXCwsI0fvx4jRw50kOzdb/z38eTmZkpSfrwww81b948lZeX64YbbtDkyZPVv39/T07RLQ4dOqTMzEwVFxfrzJkzSkhI0IwZMxQaGuqTx/jjjz9WVlaW9u7dq5CQEA0fPtx+xZ23HGNf7TlSy+479Bx6jslj7BMBDAAAwJt4/YfwAQAAvA0BDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAIZmobq6Wj/72c/085///ILf7QIAd6PnwNMIYGgW1q1bp/bt26u6ulqFhYWeng4AH0fPgafxU0RoFh544AF17dpVhw4dUk1Njf77v//b01MC4MPoOfA0f09PACgrK9POnTv1u9/9TjU1NZo2bZrKysrUpUsXSVJ9fb2ys7O1atUqVVVV6a677lLHjh1VUlJib5plZWXKzMzUjh07FBwcrDvvvFPTpk1Thw4dPFkagGaInoPmgLcg4XF5eXkKCgrSXXfdpUGDBikgIEBvvPGGff28efOUm5urZ599VqtXr1Z4eLjDq9VDhw5p9OjR6ty5s/Ly8vSXv/xF1dXV+vWvf62amhpPlASgGaPnoDkggMGjzp07p4KCAg0YMEA2m00hISHq37+/8vPzdfr0aZ0+fVqvv/66Jk6cqMGDB6tLly6aNWuW/uM//sO+jTfeeEPh4eF69tln1aVLF3Xr1k1ZWVk6fPiw1q9f78HqADQ39Bw0F7wFCY/avHmzKisrNWzYMPuyYcOGqbCwUOvWrVPXrl1VW1urHj16ONyuZ8+eKikpkST9/e9/V1lZmWJiYhzGnDlzRmVlZU1fBACvQc9Bc0EAg0etXr1akpSenn7BujfffFN//OMfJUmXulakoaFBvXv31nPPPXfBupCQEDfNFIAvoOeguSCAwWOOHj2qzZs3a+TIkUpNTXVYt2zZMuXl5ammpkaBgYH64osvdNttt9nX79q1SwEBAZKkyMhIvfvuu7r++uvty44fP66pU6cqNTVVvXv3NlcUgGaLnoPmhM+AwWPy8/N17tw5Pfroo4qKinL4b9y4cfLz89Pq1as1ZswYZWdn6/3339c333yjefPm6YsvvrBvZ/To0aqqqtLTTz+tf/zjHyopKdGkSZO0a9cuRUZGerBCAM0JPQfNCWfA4DGrV6/Wz3/+c/ul3z/UuXNnJSYmat26ddqyZYvq6uo0c+ZMnT59WgMGDNDAgQN15swZ+9jly5dr/vz5Gj16tPz8/NSjRw8tW7ZM7du3N10WgGaKnoPmhC9iRbNXWFionj17KiwszL7skUceUceOHTVnzhwPzgyAL6LnwATegkSz9+qrr2rSpEn6xz/+oQMHDmjp0qXatm2bhg8f7umpAfBB9ByYwBkwNHvffvutMjMzVVxcrNraWkVERGjcuHFKTEz09NQA+CB6DkwggAEAABjGW5AAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhv0/i/bZxgmq2MsAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "grd = sns.FacetGrid(train_df, col='Survived', row='Pclass')\n", - "grd.map(plt.hist, 'Age', bins=20)\n", - "grd.add_legend()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sns.factorplot('Pclass','Survived',hue='Sex',data=train_df)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sns.factorplot('Embarked','Survived',hue='Pclass',data=train_df)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Oldest passenger: 80.0 years\n", - "Youngest passenger: 0.42 years\n", - "Average age on the Titanic: 29.7 years\n" - ] - } - ], - "source": [ - "print('Oldest passenger:',train_df['Age'].max(),'years')\n", - "print('Youngest passenger:',train_df['Age'].min(),'years')\n", - "print('Average age on the Titanic:',round(train_df['Age'].mean(), 2),'years')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Key Observations\n", - "* The chance of survival for women is high as compared to men.\n", - "* 1st class passenger increases chances of survival.\n", - "* Children do have a higher chance of survival. Passengers between age group 15 to 35 had the least survival rate.\n", - "* The chances of survival at C looks to be better than Pclass1 passengers got at S.\n", - "* Having a larger family size is correlated with lower chance of survival." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Cleaning the Data + Feature Engineering

\n", - "

4 C's of Data Cleaning: Correcting, Completing, Creating, and Converting

" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Train columns with null values:\n", - "\n", - " PassengerId 0\n", - "Survived 0\n", - "Pclass 0\n", - "Name 0\n", - "Sex 0\n", - "Age 177\n", - "SibSp 0\n", - "Parch 0\n", - "Ticket 0\n", - "Fare 0\n", - "Cabin 687\n", - "Embarked 2\n", - "dtype: int64\n" - ] - } - ], - "source": [ - "print('Train columns with null values:\\n\\n', train_df.isnull().sum())" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "train_df = train_df.drop(['PassengerId', 'Ticket', 'Cabin'], axis=1) #correcting by dropping Cabin because it contains null values, and tickets since it has duplicates\n", - "test_df = test_df.drop(['PassengerId', 'Ticket', 'Cabin'], axis=1)\n", - "combine = [train_df, test_df]" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Creating a new title feature from Name\n", - "for df in combine:\n", - " df['Title'] = df.Name.str.extract(' ([A-Za-z]+)\\.', expand=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Sexfemalemale
Title
Capt01
Col02
Countess10
Don01
Dr16
Jonkheer01
Lady10
Major02
Master040
Miss1820
Mlle20
Mme10
Mr0517
Mrs1250
Ms10
Rev06
Sir01
\n", - "
" - ], - "text/plain": [ - "Sex female male\n", - "Title \n", - "Capt 0 1\n", - "Col 0 2\n", - "Countess 1 0\n", - "Don 0 1\n", - "Dr 1 6\n", - "Jonkheer 0 1\n", - "Lady 1 0\n", - "Major 0 2\n", - "Master 0 40\n", - "Miss 182 0\n", - "Mlle 2 0\n", - "Mme 1 0\n", - "Mr 0 517\n", - "Mrs 125 0\n", - "Ms 1 0\n", - "Rev 0 6\n", - "Sir 0 1" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.crosstab(train_df['Title'], train_df['Sex'])" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Creating a new title feature from Name\n", - "for df in combine:\n", - " df['Title'].replace(['Mlle','Mme','Ms','Ddr','Major','Lady','Countess','Jonkheer','Col','Rev','Capt','Sir','Don', 'Dona'],\n", - " ['Miss','Miss','Miss','Mr','Mr','Mrs','Mrs','Other','Other','Other','Mr','Mr','Mr', 'Mrs'],inplace=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Title\n", - "Dr 43.571429\n", - "Master 5.482642\n", - "Miss 21.834533\n", - "Mr 32.413823\n", - "Mrs 37.046243\n", - "Other 44.923077\n", - "Name: Age, dtype: float64" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.concat([train_df, test_df]).groupby('Title')['Age'].mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Correct null values in Age using Title\n", - "for df in combine:\n", - " df.loc[(df.Age.isnull())&(df.Title=='Dr'),'Age']=44\n", - " df.loc[(df.Age.isnull())&(df.Title=='Mr'),'Age']=32\n", - " df.loc[(df.Age.isnull())&(df.Title=='Mrs'),'Age']=37\n", - " df.loc[(df.Age.isnull())&(df.Title=='Master'),'Age']=6\n", - " df.loc[(df.Age.isnull())&(df.Title=='Miss'),'Age']=22\n", - " df.loc[(df.Age.isnull())&(df.Title=='Other'),'Age']=45" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.concat([train_df, test_df]).Age.isnull().any()" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Title\n", - "Dr 0.428571\n", - "Master 0.575000\n", - "Miss 0.704301\n", - "Mr 0.159004\n", - "Mrs 0.795276\n", - "Other 0.111111\n", - "Name: Survived, dtype: float64" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.concat([train_df, test_df]).groupby('Title')['Survived'].mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#converting title and sex to categorical\n", - "title_mapping = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Other\": 6}\n", - "\n", - "for df in combine:\n", - " df['Title'] = df['Title'].map(title_mapping)\n", - " df['Title'] = df['Title'].fillna(0)\n", - " df['Sex'] = df['Sex'].map( {'female': 1, 'male': 0} ).astype(int)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Completing null values in Embarked feature\n", - "port = train_df.Embarked.dropna().mode()[0]\n", - "for df in combine:\n", - " df['Embarked'] = df['Embarked'].fillna(port)\n", - "\n", - "#converting a categorical feature to numeric\n", - "for df in combine:\n", - " df['Embarked'] = df['Embarked'].map( {'S': 0, 'C': 1, 'Q': 2} ).astype(int)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Complete missing fare with median\n", - "for df in combine: \n", - " df['Fare'].fillna(df['Fare'].median(), inplace = True)" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Create new features based on SibSp and Parch\n", - "for df in combine:\n", - " df['FamilySize'] = df['SibSp'] + df['Parch'] + 1\n", - " df['IsAlone'] = 1\n", - " df['IsAlone'].loc[df['FamilySize'] > 1] = 0" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
FamilySize
40.724138
30.578431
20.552795
70.333333
10.303538
50.200000
60.136364
80.000000
110.000000
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "FamilySize \n", - "4 0.724138\n", - "3 0.578431\n", - "2 0.552795\n", - "7 0.333333\n", - "1 0.303538\n", - "5 0.200000\n", - "6 0.136364\n", - "8 0.000000\n", - "11 0.000000" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[['FamilySize', 'Survived']].groupby(['FamilySize']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
IsAlone
00.505650
10.303538
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "IsAlone \n", - "0 0.505650\n", - "1 0.303538" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[['IsAlone', 'Survived']].groupby(['IsAlone']).mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Create AgeBand features, maximum age is 80, 5 bins total means 16 bin size\n", - "for df in combine:\n", - " df['AgeBand']=0\n", - " df.loc[df['Age']<=16,'AgeBand']=0\n", - " df.loc[(df['Age']>16)&(df['Age']<=32),'AgeBand']=1\n", - " df.loc[(df['Age']>32)&(df['Age']<=48),'AgeBand']=2\n", - " df.loc[(df['Age']>48)&(df['Age']<=64),'AgeBand']=3\n", - " df.loc[df['Age']>64,'AgeBand']=4" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xd4VGX6xvF7MpOeEAJJ6IEQIJQAAgFEehMWFxHFjm1RUQQVd7Gsq6y6dleUEsVVf4rIrgpSVBALijTpXTpJSCEkgfQ+yfz+QCPjUJLJJCfl+7kuL8lzzpm5k8CbzDPveV+TzWazCQAAAAAAAKhGbkYHAAAAAAAAQP1DUwoAAAAAAADVjqYUAAAAAAAAqh1NKQAAAAAAAFQ7mlIAAAAAAACodjSlAAAAAAAAUO1oSgEAAAAAAKDa0ZQCAAAAAABAtaMpBQAAAAAAgGpHUwpw0rBhwxQREVH2X6dOnRQVFaXbbrtN27ZtK9djbN68WREREUpISKjitFWjtLRUkyZN0pw5c4yOAgAuV5/H+SNHjujee+9V37591a9fPz344INKSkoyOhYAuFx9Huv37dunO+64Qz169NDll1+up59+WllZWUbHQj1DUwqohL/85S9av3691q9fr7Vr12rRokXy9fXV3XffreTkZKPjVamCggLNmDFD69evNzoKAFSZ+jjOp6en66677pKvr68WLlyo//znP0pPT9fdd9+twsJCo+MBgMvVx7E+JSVFd911l0JDQ7V06VJFR0drx44deuyxx4yOhnqGphRQCT4+PgoODlZwcLBCQkLUoUMHPfPMM8rPz9c333xjdLwqs2PHDo0fP167d+9WgwYNjI4DAFWmPo7z3333nfLz8/XSSy+pffv2ioyM1Kuvvqpjx45px44dRscDAJerj2N9YmKiBg4cqJkzZ6pNmzbq2bOnrr/+em3atMnoaKhnaEoBLmaxWCRJHh4ekiSr1ao5c+Zo2LBh6t69u6699lr99NNP5702KytLM2fO1ODBg9WlSxf1799fM2fOVEFBQdk57733nkaMGKHIyEgNGzZM8+bNk81mkyTl5+frySefVP/+/dW1a1ddc801F/1B+vjjj9tNVz73v8cff/yC161bt04jR47UsmXL5O/vX+GvEQDUZnV9nO/Xr5/mzZsnT09Ph2OZmZnl+yIBQC1X18f6Hj166PXXXy/7PI8ePaqlS5eqf//+Ff9iAZVgMToAUJecOnVKL7zwgnx8fDRo0CBJ0gsvvKCVK1fq6aefVmRkpJYuXaopU6Zo2bJlDtc/9thjSk5O1uzZs9W4cWPt2rVLTzzxhNq2bas77rhDa9as0dtvv6033nhDYWFh2rVrlx599FG1bNlS48aN05tvvqlDhw7pnXfeUYMGDfTZZ59p+vTpWr16tVq2bOnwfE8++aT++te/nvdz8fLyuuDn+dBDDzn5FQKA2q0+jPMtW7Z0eKz58+fL09NTvXv3ruiXDABqnfow1p9r1KhRio2NVYsWLRQdHV3BrxZQOTSlgEqYP3++3n//fUln3z0pKipSeHi43njjDTVv3lw5OTn69NNP9Y9//ENjxoyRdLahU1paqtzcXIfH69+/v6KiotSxY0dJZ18YLFy4UIcOHZIknThxQp6enmrZsqWaN2+u5s2bKyQkRM2bNy877ufnp9DQUPn7++uhhx5SVFSUAgICzpvf39+fmU4AcBGM89KCBQu0aNEiPfHEE2rcuHGlHgsAaqL6Pta/9tprKigo0Guvvabbb79dy5cvl6+vr9OPB1QETSmgEm666SbddtttkiQ3Nzc1bNjQ7gdCTEyMiouLddlll9ldN336dElnd+o41y233KI1a9Zo+fLlOnHihA4fPqz4+Hi1adNGknT11VdryZIluvLKKxUREaH+/ftr5MiRZT/A7rnnHt13333q16+fevToof79++uqq6664A+pp59+Wl988cV5j40dO1bPPvtsxb8oAFCH1Odx3maz6c0339Rbb72lyZMn684777zwFwoAarH6PNZLUteuXSVJc+bM0eDBg/Xtt9/qmmuuueg1gKvQlAIqISAgQK1bt77gcXd393I/ls1m03333adDhw5p7NixGjVqlB555BE99dRTZec0atRIy5cv186dO7VhwwatX79e77//vqZNm6apU6eqR48eWrt2rTZs2KBNmzZp8eLFmjNnjt59913169fP4TkfeughTZo06bx5/Pz8yp0dAOqq+jrOFxcX64knntCXX36pRx999IKPAQB1QX0c648dO6aEhAQNHjy4rBYSEqKAgACdOnWq3J8vUFk0pYAq1Lp1a7m7u2vv3r1l03clacKECRo9enTZuxKS9Msvv2jt2rX69NNP1b17d0ln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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sns.factorplot('AgeBand','Survived',data=train_df,col='Pclass')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "459 (-0.001, 7.91]\n", - "578 (14.454, 31.0]\n", - "863 (31.0, 512.329]\n", - "751 (7.91, 14.454]\n", - "64 (14.454, 31.0]\n", - "367 (-0.001, 7.91]\n", - "562 (7.91, 14.454]\n", - "731 (14.454, 31.0]\n", - "824 (31.0, 512.329]\n", - "833 (-0.001, 7.91]\n", - "Name: Fare, dtype: category\n", - "Categories (4, interval[float64]): [(-0.001, 7.91] < (7.91, 14.454] < (14.454, 31.0] < (31.0, 512.329]]" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.qcut(train_df['Fare'],4).sample(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
FareBandSurvived
0(-0.001, 7.91]0.197309
1(7.91, 14.454]0.303571
2(14.454, 31.0]0.454955
3(31.0, 512.329]0.581081
\n", - "
" - ], - "text/plain": [ - " FareBand Survived\n", - "0 (-0.001, 7.91] 0.197309\n", - "1 (7.91, 14.454] 0.303571\n", - "2 (14.454, 31.0] 0.454955\n", - "3 (31.0, 512.329] 0.581081" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df['FareBand'] = pd.qcut(train_df['Fare'], 4)\n", - "train_df[['FareBand', 'Survived']].groupby(['FareBand'], as_index=False).mean().sort_values(by='FareBand', ascending=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Create FareBand feature\n", - "for df in combine:\n", - " df.loc[df['Fare'] <= 7.91, 'Fare'] = 0\n", - " df.loc[(df['Fare'] > 7.91) & (df['Fare'] <= 14.454), 'Fare'] = 1\n", - " df.loc[(df['Fare'] > 14.454) & (df['Fare'] <= 31), 'Fare'] = 2\n", - " df.loc[df['Fare'] > 31, 'Fare'] = 3\n", - " df['Fare'] = df['Fare'].astype(int)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare',\n", - " 'Embarked', 'Title', 'FamilySize', 'IsAlone', 'AgeBand', 'FareBand'],\n", - " dtype='object')" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Drop unneeded features, better to use IsAlone as main feature for family size\n", - "train_df = train_df.drop(['Name', 'Parch', 'SibSp', 'FamilySize', 'FareBand', 'Age'], axis=1)\n", - "test_df = test_df.drop(['Name', 'Parch', 'SibSp', 'FamilySize','Age'], axis=1)\n", - "combine = [train_df, test_df]" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
SurvivedPclassSexFareEmbarkedTitleIsAloneAgeBand
85813121301
53203001101
85203121200
12603002111
73803000111
76511130303
71712110211
69113111200
16203000111
14213120301
\n", - "
" - ], - "text/plain": [ - " Survived Pclass Sex Fare Embarked Title IsAlone AgeBand\n", - "858 1 3 1 2 1 3 0 1\n", - "532 0 3 0 0 1 1 0 1\n", - "852 0 3 1 2 1 2 0 0\n", - "126 0 3 0 0 2 1 1 1\n", - "738 0 3 0 0 0 1 1 1\n", - "765 1 1 1 3 0 3 0 3\n", - "717 1 2 1 1 0 2 1 1\n", - "691 1 3 1 1 1 2 0 0\n", - "162 0 3 0 0 0 1 1 1\n", - "142 1 3 1 2 0 3 0 1" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.sample(10)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Machine Learning

" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "((712, 7), (712,), (179, 7), (179,))" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_train, X_val, Y_train, Y_val = train_test_split(train_df.drop(\"Survived\", axis=1), train_df[\"Survived\"], test_size=0.2, random_state=True)\n", - "X_train.shape, Y_train.shape, X_val.shape, Y_val.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.770949720670391" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Fit a machine learning model on training data\n", - "logreg = LogisticRegression()\n", - "logreg.fit(X_train, Y_train)\n", - "Y_pred = logreg.predict(X_val)\n", - "accuracy_score(Y_val, Y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
FeatureCorrelation
1Sex2.131160
4Title0.516233
3Embarked0.298914
5IsAlone0.054254
2Fare-0.097203
6AgeBand-0.411285
0Pclass-1.229798
\n", - "
" - ], - "text/plain": [ - " Feature Correlation\n", - "1 Sex 2.131160\n", - "4 Title 0.516233\n", - "3 Embarked 0.298914\n", - "5 IsAlone 0.054254\n", - "2 Fare -0.097203\n", - "6 AgeBand -0.411285\n", - "0 Pclass -1.229798" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "coeff_df = pd.DataFrame(train_df.columns.delete(0))\n", - "coeff_df.columns = ['Feature']\n", - "coeff_df[\"Correlation\"] = pd.Series(logreg.coef_[0])\n", - "coeff_df.sort_values(by='Correlation', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.776536312849162" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dt = DecisionTreeClassifier()\n", - "dt.fit(X_train, Y_train)\n", - "Y_pred = dt.predict(X_val)\n", - "accuracy_score(Y_val, Y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'sns' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0msns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheatmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconfusion_matrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mannot\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mfmt\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'2.0f'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'sns' is not defined" - ] - } - ], - "source": [ - "sns.heatmap(confusion_matrix(Y_val,Y_pred), annot=True,fmt='2.0f')" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Fitting 3 folds for each of 9 candidates, totalling 27 fits\n", - "0.8160112359550562\n", - "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=100,\n", - " max_features=None, max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0, min_impurity_split=None,\n", - " min_samples_leaf=1, min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0, presort=False, random_state=0,\n", - " splitter='best')\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[Parallel(n_jobs=1)]: Done 27 out of 27 | elapsed: 0.1s finished\n" - ] - } - ], - "source": [ - "from sklearn.model_selection import GridSearchCV\n", - "\n", - "max_depth=range(100,1000,100)\n", - "hyper={'max_depth':max_depth}\n", - "grd=GridSearchCV(estimator=DecisionTreeClassifier(random_state=0),param_grid=hyper,verbose=True)\n", - "grd.fit(X_train,Y_train)\n", - "print(grd.best_score_)\n", - "print(grd.best_estimator_)" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.776536312849162" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Y_pred = grd.best_estimator_.predict(X_val)\n", - "accuracy_score(Y_val, Y_pred)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

YOUR TURN...

" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#insert code here" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 3ac8c4a841aa05f407b9c224c3b6f00b8f9ab7f3 Mon Sep 17 00:00:00 2001 From: IbrahimJakmour Date: Mon, 26 Feb 2018 10:04:31 +0200 Subject: [PATCH 6/6] Delete Codi_DS_Bootcamp-checkpoint.ipynb --- .../Codi_DS_Bootcamp-checkpoint.ipynb | 5505 ----------------- 1 file changed, 5505 deletions(-) delete mode 100644 .ipynb_checkpoints/Codi_DS_Bootcamp-checkpoint.ipynb diff --git a/.ipynb_checkpoints/Codi_DS_Bootcamp-checkpoint.ipynb b/.ipynb_checkpoints/Codi_DS_Bootcamp-checkpoint.ipynb deleted file mode 100644 index 5386298..0000000 --- a/.ipynb_checkpoints/Codi_DS_Bootcamp-checkpoint.ipynb +++ /dev/null @@ -1,5505 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "

Programming for A Better Future

\n", - "

Workshop by Hani El-Sayyed

\n", - "\n", - "The Codi Data Science & Machine Learning workshop will take you through exploring a (public) dataset using Python plus an open-source stack of DS & ML tools.\n", - "\n", - "The dataset is featured on Kaggle, a data science competitions platform." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# data analysis and wrangling\n", - "import pandas as pd\n", - "import numpy as np\n", - "import random as rnd\n", - "\n", - "# visualization\n", - "import seaborn as sns\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline\n", - "\n", - "# machine learning\n", - "from sklearn.linear_model import LogisticRegression\n", - "from sklearn.svm import SVC, LinearSVC\n", - "from sklearn.ensemble import RandomForestClassifier\n", - "from sklearn.neighbors import KNeighborsClassifier\n", - "from sklearn.naive_bayes import GaussianNB\n", - "from sklearn.linear_model import Perceptron\n", - "from sklearn.linear_model import SGDClassifier\n", - "from sklearn.tree import DecisionTreeClassifier\n", - "from sklearn.model_selection import train_test_split \n", - "from sklearn.metrics import accuracy_score\n", - "from sklearn.metrics import confusion_matrix\n", - "\n", - "import warnings\n", - "warnings.filterwarnings('ignore') " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Data

" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* On April 15, 1912, during her maiden voyage, the Titanic sank after colliding with an iceberg, killing 1502 out of 2224 passengers and crew.\n", - "* This sensational tragedy shocked the international community and led to better safety regulations for ships.\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.\n", - "* Although there was some element of luck involved in surviving the sinking, some groups of people were more likely to survive than others.\n", - "* Goal #1 of the workshop is to understand what elements led to survival through explantory data analysis.\n", - "* Goal #2 of the workshop is to prepare and clean the data.\n", - "* Goal #3 is to create a predictive model that predicts whether a passenger would have survived using cleaned data. " - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "train_df = pd.read_csv('data/train.csv')\n", - "test_df = pd.read_csv('data/test.csv')\n", - "combined = [train_df, test_df]" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
888911Fortune, Miss. Mabel Helenfemale23.03219950263.0000C23 C25 C27S
49950003Svensson, Mr. Olofmale24.0003500357.7958NaNS
20220303Johanson, Mr. Jakob Alfredmale34.00031012646.4958NaNS
575803Novel, Mr. Mansouermale28.50026977.2292NaNC
61161203Jardin, Mr. Jose NetomaleNaN00SOTON/O.Q. 31013057.0500NaNS
\n", - "
" - ], - "text/plain": [ - " PassengerId Survived Pclass Name Sex Age \\\n", - "88 89 1 1 Fortune, Miss. Mabel Helen female 23.0 \n", - "499 500 0 3 Svensson, Mr. Olof male 24.0 \n", - "202 203 0 3 Johanson, Mr. Jakob Alfred male 34.0 \n", - "57 58 0 3 Novel, Mr. Mansouer male 28.5 \n", - "611 612 0 3 Jardin, Mr. Jose Neto male NaN \n", - "\n", - " SibSp Parch Ticket Fare Cabin Embarked \n", - "88 3 2 19950 263.0000 C23 C25 C27 S \n", - "499 0 0 350035 7.7958 NaN S \n", - "202 0 0 3101264 6.4958 NaN S \n", - "57 0 0 2697 7.2292 NaN C \n", - "611 0 0 SOTON/O.Q. 3101305 7.0500 NaN S " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.sample(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* PassengerId: Passenger ID\n", - "* Survived: Passenger Survival Indicator\n", - "* Pclass: Passenger Class\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" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "
\n", - "
\n", - "

Overview

\n", - "
\n", - "
\n", - "
\n", - "

Dataset info

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Number of variables12
Number of observations891
Total Missing (%)8.1%
Total size in memory83.6 KiB
Average record size in memory96.1 B
\n", - "
\n", - "
\n", - "

Variables types

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Numeric6
Categorical4
Boolean1
Date0
Text (Unique)1
Rejected0
Unsupported0
\n", - "
\n", - "
\n", - " \n", - "

Warnings

\n", - "
  • Age has 177 / 19.9% missing values Missing
  • Cabin has 687 / 77.1% missing values Missing
  • Cabin has a high cardinality: 148 distinct values Warning
  • Fare has 15 / 1.7% zeros Zeros
  • Parch has 678 / 76.1% zeros Zeros
  • SibSp has 608 / 68.2% zeros Zeros
  • Ticket has a high cardinality: 681 distinct values Warning
\n", - "
\n", - "
\n", - "
\n", - "

Variables

\n", - "
\n", - "
\n", - "
\n", - "

Age
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count89
Unique (%)10.0%
Missing (%)19.9%
Missing (n)177
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean29.699
Minimum0.42
Maximum80
Zeros (%)0.0%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum0.42
5-th percentile4
Q120.125
Median28
Q338
95-th percentile56
Maximum80
Range79.58
Interquartile range17.875
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation14.526
Coef of variation0.48912
Kurtosis0.17827
Mean29.699
MAD11.323
Skewness0.38911
Sum21205
Variance211.02
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
24.0303.4%\n", - "
 
\n", - "
22.0273.0%\n", - "
 
\n", - "
18.0262.9%\n", - "
 
\n", - "
28.0252.8%\n", - "
 
\n", - "
19.0252.8%\n", - "
 
\n", - "
30.0252.8%\n", - "
 
\n", - "
21.0242.7%\n", - "
 
\n", - "
25.0232.6%\n", - "
 
\n", - "
36.0222.5%\n", - "
 
\n", - "
29.0202.2%\n", - "
 
\n", - "
Other values (78)46752.4%\n", - "
 
\n", - "
(Missing)17719.9%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
0.4210.1%\n", - "
 
\n", - "
0.6710.1%\n", - "
 
\n", - "
0.7520.2%\n", - "
 
\n", - "
0.8320.2%\n", - "
 
\n", - "
0.9210.1%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
70.020.2%\n", - "
 
\n", - "
70.510.1%\n", - "
 
\n", - "
71.020.2%\n", - "
 
\n", - "
74.010.1%\n", - "
 
\n", - "
80.010.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Cabin
\n", - " Categorical\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count148
Unique (%)16.6%
Missing (%)77.1%
Missing (n)687
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
G6\n", - "
\n", - "  \n", - "
\n", - " 4\n", - "
B96 B98\n", - "
\n", - "  \n", - "
\n", - " 4\n", - "
C23 C25 C27\n", - "
\n", - "  \n", - "
\n", - " 4\n", - "
Other values (144)\n", - "
\n", - " 192\n", - "
\n", - " \n", - "
(Missing)\n", - "
\n", - " 687\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
G640.4%\n", - "
 
\n", - "
B96 B9840.4%\n", - "
 
\n", - "
C23 C25 C2740.4%\n", - "
 
\n", - "
E10130.3%\n", - "
 
\n", - "
F3330.3%\n", - "
 
\n", - "
D30.3%\n", - "
 
\n", - "
F230.3%\n", - "
 
\n", - "
C22 C2630.3%\n", - "
 
\n", - "
B2820.2%\n", - "
 
\n", - "
B3520.2%\n", - "
 
\n", - "
Other values (137)17319.4%\n", - "
 
\n", - "
(Missing)68777.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Embarked
\n", - " Categorical\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count4
Unique (%)0.4%
Missing (%)0.2%
Missing (n)2
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
S\n", - "
\n", - " 644\n", - "
\n", - " \n", - "
C\n", - "
\n", - " 168\n", - "
\n", - " \n", - "
Q\n", - "
\n", - "  \n", - "
\n", - " 77\n", - "
(Missing)\n", - "
\n", - "  \n", - "
\n", - " 2\n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
S64472.3%\n", - "
 
\n", - "
C16818.9%\n", - "
 
\n", - "
Q778.6%\n", - "
 
\n", - "
(Missing)20.2%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Fare
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count248
Unique (%)27.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean32.204
Minimum0
Maximum512.33
Zeros (%)1.7%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum0
5-th percentile7.225
Q17.9104
Median14.454
Q331
95-th percentile112.08
Maximum512.33
Range512.33
Interquartile range23.09
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation49.693
Coef of variation1.5431
Kurtosis33.398
Mean32.204
MAD28.164
Skewness4.7873
Sum28694
Variance2469.4
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
8.05434.8%\n", - "
 
\n", - "
13.0424.7%\n", - "
 
\n", - "
7.8958384.3%\n", - "
 
\n", - "
7.75343.8%\n", - "
 
\n", - "
26.0313.5%\n", - "
 
\n", - "
10.5242.7%\n", - "
 
\n", - "
7.925182.0%\n", - "
 
\n", - "
7.775161.8%\n", - "
 
\n", - "
26.55151.7%\n", - "
 
\n", - "
0.0151.7%\n", - "
 
\n", - "
Other values (238)61569.0%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
0.0151.7%\n", - "
 
\n", - "
4.012510.1%\n", - "
 
\n", - "
5.010.1%\n", - "
 
\n", - "
6.237510.1%\n", - "
 
\n", - "
6.437510.1%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
227.52540.4%\n", - "
 
\n", - "
247.520820.2%\n", - "
 
\n", - "
262.37520.2%\n", - "
 
\n", - "
263.040.4%\n", - "
 
\n", - "
512.329230.3%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Name
\n", - " Categorical, Unique\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
First 3 values
Coutts, Master. William Loch \"William\"
Sedgwick, Mr. Charles Frederick Waddington
Collander, Mr. Erik Gustaf
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Last 3 values
Beckwith, Mrs. Richard Leonard (Sallie Monypeny)
Jalsevac, Mr. Ivan
Stone, Mrs. George Nelson (Martha Evelyn)
\n", - "\n", - "
\n", - "

First 10 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
Abbing, Mr. Anthony10.1%\n", - "
 
\n", - "
Abbott, Mr. Rossmore Edward10.1%\n", - "
 
\n", - "
Abbott, Mrs. Stanton (Rosa Hunt)10.1%\n", - "
 
\n", - "
Abelson, Mr. Samuel10.1%\n", - "
 
\n", - "
Abelson, Mrs. Samuel (Hannah Wizosky)10.1%\n", - "
 
\n", - "
\n", - "

Last 10 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
de Mulder, Mr. Theodore10.1%\n", - "
 
\n", - "
de Pelsmaeker, Mr. Alfons10.1%\n", - "
 
\n", - "
del Carlo, Mr. Sebastiano10.1%\n", - "
 
\n", - "
van Billiard, Mr. Austin Blyler10.1%\n", - "
 
\n", - "
van Melkebeke, Mr. Philemon10.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Parch
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count7
Unique (%)0.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean0.38159
Minimum0
Maximum6
Zeros (%)76.1%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum0
5-th percentile0
Q10
Median0
Q30
95-th percentile2
Maximum6
Range6
Interquartile range0
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation0.80606
Coef of variation2.1123
Kurtosis9.7781
Mean0.38159
MAD0.58074
Skewness2.7491
Sum340
Variance0.64973
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
067876.1%\n", - "
 
\n", - "
111813.2%\n", - "
 
\n", - "
2809.0%\n", - "
 
\n", - "
550.6%\n", - "
 
\n", - "
350.6%\n", - "
 
\n", - "
440.4%\n", - "
 
\n", - "
610.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
067876.1%\n", - "
 
\n", - "
111813.2%\n", - "
 
\n", - "
2809.0%\n", - "
 
\n", - "
350.6%\n", - "
 
\n", - "
440.4%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
2809.0%\n", - "
 
\n", - "
350.6%\n", - "
 
\n", - "
440.4%\n", - "
 
\n", - "
550.6%\n", - "
 
\n", - "
610.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

PassengerId
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count891
Unique (%)100.0%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean446
Minimum1
Maximum891
Zeros (%)0.0%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum1
5-th percentile45.5
Q1223.5
Median446
Q3668.5
95-th percentile846.5
Maximum891
Range890
Interquartile range445
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation257.35
Coef of variation0.57703
Kurtosis-1.2
Mean446
MAD222.75
Skewness0
Sum397386
Variance66231
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
89110.1%\n", - "
 
\n", - "
29310.1%\n", - "
 
\n", - "
30410.1%\n", - "
 
\n", - "
30310.1%\n", - "
 
\n", - "
30210.1%\n", - "
 
\n", - "
30110.1%\n", - "
 
\n", - "
30010.1%\n", - "
 
\n", - "
29910.1%\n", - "
 
\n", - "
29810.1%\n", - "
 
\n", - "
29710.1%\n", - "
 
\n", - "
Other values (881)88198.9%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
110.1%\n", - "
 
\n", - "
210.1%\n", - "
 
\n", - "
310.1%\n", - "
 
\n", - "
410.1%\n", - "
 
\n", - "
510.1%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
88710.1%\n", - "
 
\n", - "
88810.1%\n", - "
 
\n", - "
88910.1%\n", - "
 
\n", - "
89010.1%\n", - "
 
\n", - "
89110.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Pclass
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count3
Unique (%)0.3%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean2.3086
Minimum1
Maximum3
Zeros (%)0.0%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum1
5-th percentile1
Q12
Median3
Q33
95-th percentile3
Maximum3
Range2
Interquartile range1
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation0.83607
Coef of variation0.36215
Kurtosis-1.28
Mean2.3086
MAD0.76197
Skewness-0.63055
Sum2057
Variance0.69902
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
349155.1%\n", - "
 
\n", - "
121624.2%\n", - "
 
\n", - "
218420.7%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
121624.2%\n", - "
 
\n", - "
218420.7%\n", - "
 
\n", - "
349155.1%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
121624.2%\n", - "
 
\n", - "
218420.7%\n", - "
 
\n", - "
349155.1%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Sex
\n", - " Categorical\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count2
Unique (%)0.2%
Missing (%)0.0%
Missing (n)0
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
male\n", - "
\n", - " 577\n", - "
\n", - " \n", - "
female\n", - "
\n", - " 314\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
male57764.8%\n", - "
 
\n", - "
female31435.2%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

SibSp
\n", - " Numeric\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count7
Unique (%)0.8%
Missing (%)0.0%
Missing (n)0
Infinite (%)0.0%
Infinite (n)0
\n", - "\n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean0.52301
Minimum0
Maximum8
Zeros (%)68.2%
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "
\n", - "

Quantile statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Minimum0
5-th percentile0
Q10
Median0
Q31
95-th percentile3
Maximum8
Range8
Interquartile range1
\n", - "
\n", - "
\n", - "

Descriptive statistics

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Standard deviation1.1027
Coef of variation2.1085
Kurtosis17.88
Mean0.52301
MAD0.71378
Skewness3.6954
Sum466
Variance1.216
Memory size7.0 KiB
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
060868.2%\n", - "
 
\n", - "
120923.5%\n", - "
 
\n", - "
2283.1%\n", - "
 
\n", - "
4182.0%\n", - "
 
\n", - "
3161.8%\n", - "
 
\n", - "
870.8%\n", - "
 
\n", - "
550.6%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "

Minimum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
060868.2%\n", - "
 
\n", - "
120923.5%\n", - "
 
\n", - "
2283.1%\n", - "
 
\n", - "
3161.8%\n", - "
 
\n", - "
4182.0%\n", - "
 
\n", - "
\n", - "

Maximum 5 values

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
2283.1%\n", - "
 
\n", - "
3161.8%\n", - "
 
\n", - "
4182.0%\n", - "
 
\n", - "
550.6%\n", - "
 
\n", - "
870.8%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Survived
\n", - " Boolean\n", - "

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count2
Unique (%)0.2%
Missing (%)0.0%
Missing (n)0
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Mean0.38384
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
0\n", - "
\n", - " 549\n", - "
\n", - " \n", - "
1\n", - "
\n", - " 342\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
054961.6%\n", - "
 
\n", - "
134238.4%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Ticket
\n", - " Categorical\n", - "

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Distinct count681
Unique (%)76.4%
Missing (%)0.0%
Missing (n)0
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - "
1601\n", - "
\n", - "  \n", - "
\n", - " 7\n", - "
347082\n", - "
\n", - "  \n", - "
\n", - " 7\n", - "
CA. 2343\n", - "
\n", - "  \n", - "
\n", - " 7\n", - "
Other values (678)\n", - "
\n", - " 870\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
ValueCountFrequency (%) 
160170.8%\n", - "
 
\n", - "
34708270.8%\n", - "
 
\n", - "
CA. 234370.8%\n", - "
 
\n", - "
310129560.7%\n", - "
 
\n", - "
CA 214460.7%\n", - "
 
\n", - "
34708860.7%\n", - "
 
\n", - "
38265250.6%\n", - "
 
\n", - "
S.O.C. 1487950.6%\n", - "
 
\n", - "
PC 1775740.4%\n", - "
 
\n", - "
413340.4%\n", - "
 
\n", - "
Other values (671)83493.6%\n", - "
 
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Correlations

\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "

Sample

\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", - "
\n", - "
\n", - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import pandas_profiling\n", - "pandas_profiling.ProfileReport(train_df)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Explanatory Data Analysis

" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

What is the distribution of features across the data?

" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassAgeSibSpParchFare
count891.000000891.000000891.000000714.000000891.000000891.000000891.000000
mean446.0000000.3838382.30864229.6991180.5230080.38159432.204208
std257.3538420.4865920.83607114.5264971.1027430.80605749.693429
min1.0000000.0000001.0000000.4200000.0000000.0000000.000000
25%223.5000000.0000002.00000020.1250000.0000000.0000007.910400
50%446.0000000.0000003.00000028.0000000.0000000.00000014.454200
75%668.5000001.0000003.00000038.0000001.0000000.00000031.000000
max891.0000001.0000003.00000080.0000008.0000006.000000512.329200
\n", - "
" - ], - "text/plain": [ - " PassengerId Survived Pclass Age SibSp \\\n", - "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", - "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", - "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", - "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", - "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", - "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", - "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", - "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", - "\n", - " Parch Fare \n", - "count 891.000000 891.000000 \n", - "mean 0.381594 32.204208 \n", - "std 0.806057 49.693429 \n", - "min 0.000000 0.000000 \n", - "25% 0.000000 7.910400 \n", - "50% 0.000000 14.454200 \n", - "75% 0.000000 31.000000 \n", - "max 6.000000 512.329200 " - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.describe()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NameSexTicketCabinEmbarked
count891891891204889
unique89126811473
topCoutts, Master. William Loch \"William\"male1601C23 C25 C27S
freq157774644
\n", - "
" - ], - "text/plain": [ - " Name Sex Ticket Cabin \\\n", - "count 891 891 891 204 \n", - "unique 891 2 681 147 \n", - "top Coutts, Master. William Loch \"William\" male 1601 C23 C25 C27 \n", - "freq 1 577 7 4 \n", - "\n", - " Embarked \n", - "count 889 \n", - "unique 3 \n", - "top S \n", - "freq 644 " - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.describe(include=['O'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

How many survived?

" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 0.616162\n", - "1 0.383838\n", - "Name: Survived, dtype: float64" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.Survived.value_counts(normalize=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Are there any specific features correlated with survival?

" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
Pclass
10.629630
20.472826
30.242363
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "Pclass \n", - "1 0.629630\n", - "2 0.472826\n", - "3 0.242363" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[['Pclass', 'Survived']].groupby(['Pclass']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived01All
Pclass
180136216
29787184
3372119491
All549342891
\n", - "
" - ], - "text/plain": [ - "Survived 0 1 All\n", - "Pclass \n", - "1 80 136 216\n", - "2 97 87 184\n", - "3 372 119 491\n", - "All 549 342 891" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.crosstab(train_df.Pclass,train_df.Survived,margins=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
Sex
female0.742038
male0.188908
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "Sex \n", - "female 0.742038\n", - "male 0.188908" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[[\"Sex\", \"Survived\"]].groupby(['Sex']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
SibSp
10.535885
20.464286
00.345395
30.250000
40.166667
50.000000
80.000000
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "SibSp \n", - "1 0.535885\n", - "2 0.464286\n", - "0 0.345395\n", - "3 0.250000\n", - "4 0.166667\n", - "5 0.000000\n", - "8 0.000000" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[[\"SibSp\", \"Survived\"]].groupby(['SibSp']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
Parch
30.600000
10.550847
20.500000
00.343658
50.200000
40.000000
60.000000
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "Parch \n", - "3 0.600000\n", - "1 0.550847\n", - "2 0.500000\n", - "0 0.343658\n", - "5 0.200000\n", - "4 0.000000\n", - "6 0.000000" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[[\"Parch\", \"Survived\"]].groupby(['Parch']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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z/5OEBISoocffljLli1TZGSkrrnmGi1dulS9evXSyJEjPXoswFdRW+DPaJoC2KxZs9S7d2/9/ve/14YNG+RwOHTVVVcpJSVFjzzySMt6jz32mKqqqjRt2jTZ7XZNnDhRKSkp5522/rZx48YpNzdXaWlprRaaC607evRoPffcc1q9erVWr16tK664QnfddZeysrIk/ePtzatXr9aiRYs0ZcoUhYaG6pFHHjH6jdVdmZmZamxs1MKFC+VwOJSUlKQXXnjhnJvDgUBGbYG/6uQ0OTsBAAACHHOMAAAABmiaAAAADNA0AQAAGKBpAgAAMEDTBAAAYICmCQAAwECHf05TRYXZg86CgjopMjJclZW1am7236coBEqeErn6K3dz7dGji1fioLacK1ByDZQ8JXK9mLbUFr+ZaQoK6qROnTopKKiT1aF4VaDkKZGrv/K1XH0t3ksRKLkGSp4SuXr8GF7bMwAAgB+haQIAADBA0wQAAGCApgkAAMAATRMAAIABmiYAAAADNE0AAAAGaJoAAAAMdPgngqNtkpbvNl63aPYwL0YCAIB/YKYJAADAAE0TAACAAZomAAAAAzRNAAAABmiaAAAADNA0AQAAGOCRAzB+PAGPJgAABDJmmgAAAAzQNAEAABigaQIAADBA0wQAAGCApgkAAMAATRMAAIABmiYAAAADNE0AAAAGaJoAAAAMuP1E8G3btmnOnDm6/PLLW5aNGDFCS5cu1a5du7Rs2TJ9+eWXuuqqqzR37lzdddddHg3Y35g+jVviidwAAFjJ7abpo48+0ve//30tWbLEZfnnn3+umTNn6t///d915513qrCwULNmzVJhYaF69uzpsYABAACs4PbluY8++kj9+vU7Z/mmTZuUmJioESNGyGazKSUlRUlJScrLy/NIoAAAAFZya6apublZBw8elN1u15o1a9TU1KThw4drzpw5Ki0tVWxsrMv60dHRKi4uNt5/eXm5KioqXAO0hSkqKqrVbYODg1z+9Uc2W5Cledps7XvMQBjTs8jVu6gtZgIl10DJUyJXT3OraaqsrNSNN96oe+65Rzk5OTpx4oTmzZunrKwsNTQ0yG63u6wfGhqquro64/3n5eUpNzfXZVlGRoYyMzON9xERYW99JR/VrVt4y/+tyPObx29P/jym30au3kFtcU+g5BooeUrk6iluNU3du3fXhg0bWj63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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "grd = sns.FacetGrid(train_df, col='Survived')\n", - "grd.map(plt.hist, 'Age', bins=20)\n", - "#notice we need to group ages when designing our model" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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3e8UFxcn6doh7apVq1o1l59++kmXL1++6YLRIUOGSFLRIezrXnnlFX3xxRdavXq1jhw5ogMHDujo0aOqU6eOJOmFF17Q8uXL1b59e4WEhCgyMlLt2rUraoZvvPGG+vbtq4iICIWFhSkyMlIdO3a8ZcN79913tXbt2mJvi46O1rhx4+x/UO6Qp6enunfvru7duys/P1+7d+/W559/rpUrV8pisWjatGk2z/Xwww9bfd+hQweNGzdOmzZtUnR0tFavXq22bdsW22BvN/brr7+WJP3+97+3us/ly5eLwtCBAwcUGRlpdXtYWNhtm2GvXr20e/fuYm/r06eP+vbte9N2b2/vm671uh68bvcKFq6NnuM49Bz7eg5sRwAzoEqVKjf94t2ofPnyNs9lsVjUt29f7d+/X9HR0erQoYPefPNNvfPOO0VjAgICtHr1an3zzTfatm2btm7dqvnz52vAgAHq37+/wsLCtGXLFm3btk1paWlKSUnRjBkzNHfuXEVERNy0z0GDBun1118vdj32vPq7Wxs3btT//d//qU+fPpKuBYhWrVqpVatWqlatmj799FOr8Tdes3HlypWb5vv1qQxfX189++yzWrt2rVq1aqWvvvpKs2fPLnYttxt7fb+LFi266QLa69eU/Hp9UsnPg/Hjx1tdc3OjWx1JuP/++296F1JWVpYkqWbNmrfdH1wXPccx6Dn29xzYjgBWBjz88MMqX7689u3bV3SIX5JeeuklPfvss0WHlCXphx9+0JYtW7R06VI9+uijkq69yjly5EjRNQmrV6/WuXPnFBsbq2bNmmngwIFKTEzUunXr1L9/fyUlJalZs2Zq06aN2rRpo5EjR6pjx47asGFDsc2wevXqql69upMfhZL9+9//1owZM/TCCy/oN7/5jdVtlSpVKlrj9aZy7ty5otsPHz5s0z66dOmi+Ph4rVixQtWrVy/28ShpbP369SVdCzrPPPNM0fipU6eqXLlyGjx4sBo2bKg9e/ZYzbdv377bru1OAlPz5s21atUqnTt3rug/rrS0NPn5+Vk913BvoefYhp7DizRn4l2QZYCPj4969Oih6dOna9OmTTpy5IimTp2qQ4cOqXXr1lZj77vvPnl5eenzzz/X0aNHtW/fPg0ePFjZ2dlFp5ouXryoSZMmadWqVTp27JjS09O1c+dOhYWFSbrWGMaMGaO0tDT9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UwTVq1e37cGCS6Pn0HNM9RxJmjVrliS53DWEphHADJg9e7bmz58v6dqrzkuXLqlevXqaNm2aatWqpXPnzmnp0qVKTEwsOt8/aNAgXb16VefPn79pvsjISIWHh6tBgwaSrjWehQsXav/+/ZKkI0eOqGLFiqpdu7Zq1aqlWrVqKTAwULVq1Sq6vVKlSnrooYdUuXJlDRo0SOHh4apSpUqx669cufJtf9ls8fHHH+vTTz/VyJEj7/g//QoVKujTTz/VokWL9Pnnn2vJkiX67//+b3l5eSkmJkYjR45U+fLlbZ6vYcOGio6OLvr+xRdf1MqVK4sa3GeffaaaNWuqZcuWVvcrV67cbcdu375d33zzjdLS0hQQECBJevPNN7Vnzx59/PHHmjhxoj7++GM9//zzio2NlST17t1b3377rTIyMm653utz2aOgoKDoiMd1148Q3Ol1MSj76Dn0nNLqObAdAcyA3/3ud4qLi5N07ZB21apVrZrLTz/9pMuXL+uxxx6zut/1X7Rfv4PklVde0RdffKHVq1fryJEjOnDggI4ePao6depIkl544QUtX75c7du3V0hIiCIjI9WuXbuiZvjGG2+ob9++ioiIUFhYmCIjI9WxY8dbNrx3331Xa9euLfa26OhojRs37pa1WywWTZ8+XR9++KH69Omj11577dYPlA0qVqyonj17qmfPnsrNzdXOnTu1evVqLVq0SD4+PkWH423x8MMPW33fuXNnJScna8+ePWratKlWr16tTp06FZ2GsHXs999/L0lq06aN1X0uXbpUFHoOHDigjh07Wt0eFhZ222bYsWPHW76ja+zYsXrhhRdu2u7t7a1Lly5Zbbu+Bl9f31vuC66NnkPPkUqn58B2BDADqlSpctMv3o3seQVlsVjUt29f7d+/X9HR0erQoYPefPNNvfPOO0VjAgICtHr1an3zzTfatm2btm7dqvnz52vAgAHq37+/wsLCtGXLFm3btk1paWlKSUnRjBkzNHfuXEVERNy0z0GDBun1118vdj2VKlW65VovX76skSNH6rPPPtOwYcNuOYetli1bpsLCQv3ud7+TJPn7+6tt27Zq27atBg8erC1btlg1Q4vFonLlykm6dhTg1359KqN27dpq0aKF1q5dq8qVKysjI0PTpk0rdi23G3v16lVVqlSp2Gskbjwadf36mOtKeh7MmTOn2Dok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1vLly3XHHXdowoQJkqSbb75ZX3/9tf7617/+6Hzbtm3rdG3n1dbWOpz9kqSrr75aknTmzBmXtwfvQM+h53iq58B5BDADfv3rX2vMmDGSvj+l3bZtW4fm8s0336iurk49evRwuN1TTz0lSfZT2OeNHj1af/vb35Sfn6/y8nJ9/fXXOnDggG666SZJ0vDhw7Vq1SoNHjxYt956q+Lj45WYmGhvho899pjGjRunPn36KCYmRvHx8brnnnt+tOE9++yzKigouOi6pKQkzZ49+5L1n28ICxYsUP/+/VVYWKgRI0Zc8jY/xs/PTw888IAeeOAB1dTU6NNPP9V7772nNWvWyLIsZWVlOb2tn/70pw5/DxkyRLNnz9YHH3ygpKQk5efna9CgQRdtsJca++GHH0qSHn74YYfb1NXV2cPQ119/fcFbIzExMZdsho8++qg+/fTTi657/PHHNW7cuAuWBwYGXvBZr/PB61KvYOHd6Dn0HMkzPQfOI4AZcM0111zwxPuhq666yultWZalcePGaffu3UpKStKQIUP09NNPa9asWfYxYWFhys/P1+eff66tW7fqo48+0pIlSzRhwgQ98cQTiomJ0ebNm7V161YVFRUpLy9PCxYs0OLFi9WnT58L9vnkk0/qd7/73UXn82Ov/srKyvTtt9/aT5dL37/1dc011+jQoUNO1/tDhYWF2rt3rx5//HFJ3weIfv36qV+/fmrXrp1ef/11h/E//MzGuXPnLtjev7+VERQUpF/84hcqKChQv379tGXLFi1cuPCic7nU2PP7XbFixQWvus9/puTf5yc1/jjIyMhw+MzND/3YmYSOHTtecBVSRUWFJOm666675P7gveg536PnmO85cB4BrBn46U9/qquuukpffvml/RS/JN1///36xS9+YX81J0l///vftXnzZr311lv62c9+Jun7Vznl5eX2zyTk5+erurpaKSkp6tmzp9LT0zVz5ky9++67euKJJ5Sdna2ePXtq4MCBGjhwoKZPn6577rlHGzZsuGgzbN++vdq3b+9STR9++KGysrL00Ucf2RtmeXm5jh07pi5durh8H0nSd999pwULFmj48OG6/vrrHda1adPGPsfzTaW6utq+fv/+/U7tY+TIkUpNTdXq1avVvn37i94fjY2NjIyU9H3Qufvuu+3jX3rpJbVq1UoTJ07Ubbfdps8++8xh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+X7foefQczxZr9cHsKCgIJ0+fdph2fm/feUX3aurq5Wenq6CggItX75ct956q2w2m2prax3G1dbWenXNCxcuVEBAgMaMGXPBOl+sV5ICAgIkSTNmzFCbNm107bXXauLEidq8ebMsy/K5mgsLC7VhwwaNHj1aAQEBioyMVFpamt544w2vOcYtoedILaPv0HPoOZ6s19/IXppQZGSkjh8/rsOHD+vaa6+VJJWVlaljx44KCQnx8OyuXHl5uR577DF16tRJeXl5CgsLkyRFRUVp69atDmNLS0sVGRnpiWm6RX5+vioqKhQbGytJ9ifG+++/r5SUFH311VcO40tLS9WtWzfj83SniIgINTQ0qK6uTldffbWk71+xSdJtt92m119/3WG8tx/j7777zn710Xn+/v666qqrFBUV5RXH2Nd7jtRy+g49h57j0WNs5KP+TezBBx+0nnrqKauqqsp+RVJ2dranp3XFjh8/bt19993WtGnTrPr6eod1R48etWJjY63XXnvNOnv2rFVUVGTFxMRYRUVFHpqt+02dOtV+RVJpaakVHR1trVu3zn61SnR0tLV3714Pz/LKnD171kpMTLQmVqWZygAABPlJREFUTJhgVVdXW0eOHLEefvhhKy0tzSeP8Z49e6xu3bpZf/7zn61z585Z5eXl1r333mtlZmZ61TH21Z5jWS2779BzfO/4Nuee08qy/u+yAC92+PBhzZ49W5988olat26tESNG6JlnnnH4EKk3eu2115SZmSmbzaZWrVo5rPv888/15ZdfKiMjQ19//bXCwsI0fvx4jRw50kOzdb/z38eTmZkpSfrwww81b948lZeX64YbbtDkyZPVv39/T07RLQ4dOqTMzEwVFxfrzJkzSkhI0IwZMxQaGuqTx/jjjz9WVlaW9u7dq5CQEA0fPtx+xZ23HGNf7TlSy+479Bx6jslj7BMBDAAAwJt4/YfwAQAAvA0BDAAAwDACGAAAgGEEMAAAAMMIYAAAAIYRwAAAAAwjgAEAABhGAAMAADCMAIZmobq6Wj/72c/085///ILf7QIAd6PnwNMIYGgW1q1bp/bt26u6ulqFhYWeng4AH0fPgafxU0RoFh544AF17dpVhw4dUk1Njf77v//b01MC4MPoOfA0f09PACgrK9POnTv1u9/9TjU1NZo2bZrKysrUpUsXSVJ9fb2ys7O1atUqVVVV6a677lLHjh1VUlJib5plZWXKzMzUjh07FBwcrDvvvFPTpk1Thw4dPFkagGaInoPmgLcg4XF5eXkKCgrSXXfdpUGDBikgIEBvvPGGff28efOUm5urZ599VqtXr1Z4eLjDq9VDhw5p9OjR6ty5s/Ly8vSXv/xF1dXV+vWvf62amhpPlASgGaPnoDkggMGjzp07p4KCAg0YMEA2m00hISHq37+/8vPzdfr0aZ0+fVqvv/66Jk6cqMGDB6tLly6aNWuW/uM//sO+jTfeeEPh4eF69tln1aVLF3Xr1k1ZWVk6fPiw1q9f78HqADQ39Bw0F7wFCY/avHmzKisrNWzYMPuyYcOGqbCwUOvWrVPXrl1VW1urHj16ONyuZ8+eKikpkST9/e9/V1lZmWJiYhzGnDlzRmVlZU1fBACvQc9Bc0EAg0etXr1akpSenn7BujfffFN//OMfJUmXulakoaFBvXv31nPPPXfBupCQEDfNFIAvoOeguSCAwWOOHj2qzZs3a+TIkUpNTXVYt2zZMuXl5ammpkaBgYH64osvdNttt9nX79q1SwEBAZKkyMhIvfvuu7r++uvty44fP66pU6cqNTVVvXv3NlcUgGaLnoPmhM+AwWPy8/N17tw5Pfroo4qKinL4b9y4cfLz89Pq1as1ZswYZWdn6/3339c333yjefPm6YsvvrBvZ/To0aqqqtLTTz+tf/zjHyopKdGkSZO0a9cuRUZGerBCAM0JPQfNCWfA4DGrV6/Wz3/+c/ul3z/UuXNnJSYmat26ddqyZYvq6uo0c+ZMnT59WgMGDNDAgQN15swZ+9jly5dr/vz5Gj16tPz8/NSjRw8tW7ZM7du3N10WgGaKnoPmhC9iRbNXWFionj17KiwszL7skUceUceOHTVnzhwPzgyAL6LnwATegkSz9+qrr2rSpEn6xz/+oQMHDmjp0qXatm2bhg8f7umpAfBB9ByYwBkwNHvffvutMjMzVVxcrNraWkVERGjcuHFKTEz09NQA+CB6DkwggAEAABjGW5AAAACGEcAAAAAMI4ABAAAYRgADAAAwjAAGAABgGAEMAADAMAIYAACAYQQwAAAAwwhgAAAAhv0/i/bZxgmq2MsAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "grd = sns.FacetGrid(train_df, col='Survived', row='Pclass')\n", - "grd.map(plt.hist, 'Age', bins=20)\n", - "grd.add_legend()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sns.factorplot('Pclass','Survived',hue='Sex',data=train_df)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAb0AAAGGCAYAAADvk18qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3XlcVPX+P/DXbDDDvgmIoOyIO4qZu7lkWaTmQmVmaWauWTe/mt02S7tlXe/P1K6mprkUallott5McUVTc0MFBERQ9nVggJk5vz9QkgZkZhwY4Lyej0ePmM98zpk3AvOac87nfD4SQRAEEBERiYDU2gUQERE1FYYeERGJBkOPiIhEg6FHRESiwdAjIiLRYOgREZFoMPSIiEg0GHpERCQaDD0iIhINhh4REYkGQ4+IiESDoUdERKIht3YB1paTU2LtEoiImkybNo7WLsGqeKRHRESiwdAjIiLRYOgREZFoMPSIiEg0GHpERCQaDD0iIhINhh4REYkGQ4+IiESDoUdERKLB0CMiItFoFqGXn5+PESNG4Pjx4/X2OXDgAKKiotCjRw88/PDD2L9/fxNWSERErYHVQ++PP/5AdHQ0rl27Vm+f1NRUzJ07Fy+99BJOnjyJuXPnYv78+cjKymrCSolITNRFeVAX5Vm7DLIwq4be7t278eqrr+Lll19usF9kZCSGDx8OuVyOUaNGoXfv3oiJiWmiSolITC7G/gu+WyLguyUCF/d8YO1yyIKsusrCgAEDEBUVBblcftfgS0pKQmhoaK224OBgXLp0yaTXy87ORk5OTq02udwOnp6eJu2HiFovdUkB+l77L+QSPQCgb9qnyC5/EfaOrlaujCzBqqHXpk0bo/qp1WqoVKpabUqlEmVlZSa9XkxMDFatWlWrbfbs2Zg3b55J+yGi1is//U/YSLQ1j20kWlQUXoNve18rVkWW0iLW01OpVNBoNLXaNBoN7O3tTdpPdHQ0hg4dWqtNLrdDQYH6nmskotZBra6os621vE+4upr2vtnatIjQCw0NxYULF2q1JSUloUuXLibtx9PT0+BUZk5OCbRa/T3XSEStg04v1NnG94nWweqjN43x2GOPIT4+Hvv27YNWq8W+ffsQHx+P0aNHW7s0IiJqQZpt6EVERCA2NhYAEBQUhNWrV2Pt2rXo3bs31qxZg08++QQBAQFWrpKIiFqSZnN68/Lly7Uenz59utbjgQMHYuDAgU1ZEhERtTLN9kiPiIjI0hh6REQkGgw9IiISDYYeERGJBkOPiIhEg6FHRESiwdAjIiLRYOgREZFoMPSIiEg0GHpERCQaDD0iIhINhh4REYkGQ4+IiESDoUdERKLB0CMiItFg6BERkWgw9IiISDQYekREJBoMPSIiEg2GHhERiQZDj4iIRIOhR0REosHQIyIi0WDoERGRaDD0iIhINBh6REQkGgw9IiISDYYeERGJBkOPiIhEg6FHRESiwdAjIiLRYOgREZFoMPSIiEg0GHpERCQaDD0iIhINhh4REYkGQ4+IiESDoUdERKLB0CMiItFg6BERkWgw9IiISDQYekREJBoMPSIiEg2GHhERiQZDj4iIRIOhR0REosHQIyIi0WDoERGRaFg19PLy8jBr1ixERkaiT58+WLp0KbRabZ19N2/ejKFDh6Jnz56IiorCTz/91MTVEhFRS2fV0Js/fz7s7OwQFxeHXbt24ejRo9i0aZNBvwMHDmDt2rVYv349Tp06hTlz5mD+/Pm4fv160xdNREQtltVCLy0tDfHx8ViwYAFUKhX8/Pwwa9YsbNu2zaDv1atXIQhCzX8ymQwKhQJyudwKlRMRUUtltdRITEyEi4sLvLy8atqCgoKQmZmJ4uJiODk51bQ/8sgj+OabbzBq1CjIZDJIJBIsX74c3t7eJr1mdnY2cnJyarXJ5Xbw9PS8t2+GiFoNmVRSZ5tcziEQrYHVQk+tVkOlUtVqu/24rKysVuhVVVWhY8eOWLp0KTp27Ig9e/bg9ddfR1BQEMLCwox+zZiYGKxatapW2+zZszFv3rx7+E6IqDXJt7c1aLO3t4Wrq70VqiFLs1ro2dnZoby8vFbb7cf29rV/ud5991307NkT3bp1AwCMGzcOe/fuxe7du7Fo0SKjXzM6OhpDhw6t1SaX26GgQG3Ot0BklhJNFQDAUamwciVUF7W6os621vI+IfbwtlrohYSEoLCwELm5ufDw8AAAJCcnw9vbG46OjrX6ZmZmokuXLrXa5HI5FArT3jQ8PT0NTmXm5JRAq9Wb8R0QmW7LiXSsjksBAMwZFIinI32tXBH9nU4v1NnG94nWwWonqf39/dGrVy8sW7YMpaWlSE9Px5o1azB+/HiDvkOHDsXWrVtx4cIF6PV6/Pjjjzh+/DhGjRplhcqJzFNaocWnh1OhEwCdAKw5lILSirpv0SGixmHVK7MrV66EVqvFsGHDMHHiRAwcOBCzZs0CAERERCA2NhYAMGfOHEyaNAlz585F7969sW7dOqxevRrh4eHWLJ/IJBlFGlTp/jqKqNIJyCjSWLEiIvGx6ph/Dw8PrFy5ss7nTp8+XfO1XC7H3LlzMXfu3KYqjYiIWiGOwSUiItFg6BERkWgw9IiamBPUcELrGP5O1NJwHi+iJjRdthcL5V8BAP6lfRJAT+sWRCQyPNIjaiKyqlK8Kt8BuUQPuUSPBfIYyKpKrV0Wkagw9IiaiFKdDlvJX/fl2Uq0UKrTrVgRkfgw9IiISDQYekREJBoMPSIiEg2GHhERiQZDj4iIRIOhR0REosHQIyIi0WDoERGRaDD0iIhINBh6REQkGgw9IiISDYYeERGJBkOPqAkUlVfhUHKeQfuBpFwUlFVaoSIicWLoETWyHxOyEfXZcfyQkG3w3M+XchD1WTy+O3fDCpURiQ8XkSVqRHsv3MQ7P16pfiCpu0+FVo/3fk6EVi9gXHefpiuOSIR4pEfUSG4Wa/D+L4lG91/+vyRcKyhvxIqIiKFH1Ei+OXsDlTrB6P46Adh1JrMRKyIihh5RIxAEAbHns0zebu+FLGj1xgclEZmGoUfUCEoqtMhTmz4qs6RCi3wztiMi43AgC5GF6AUB52+U4GByHvYn5pq9Hx7pETUehh7RPdBU6RB/rRAHk/MQl5yH/LKqe97nmetF8HayhVRSz3BPajSyvAT4Jqw1aHe5eRgI6g7IbKxQFVkSQ4/IRAVllYi7mo+DSXk4llaACq3eovt/68fL+Op0BmYPDECfDq4W3TfVQ1cBh98XQ3Upps6nA859BF3aThSN2gCde8cmLo4siaFHZITU/DLEJefhQFIezmYWo7FPQCZklWLOrnO4r70L5gwKQLiXYyO/oojpdXD6aRZsU366azdZcRpcdo9D4bjvoHMNbqLiyNIYekR10OkFnL9RjIO3gi7NhPvnZBIgwtcZg4I9cDajCL9eMf/6Xvy1Qjyz9TSGh7bBzAH+aO+qMntfVDflha0NBt5t0ooiOP4yF4UT9gE8/dwiMfSIbtFU6XA8reDW9bl8FJQbf33OTiFDvwBXDAp2Rz9/NzirFACACd3bQiG7UucUZHcaEOAGH2cldp+7gao67u379UoO9ifmYEy3tnj+/vbwcLA17ZujugkCVGc3mLSJIucc5DdOQOtzXyMVRY2JoUeilqeuxKGr1Udz8dcKTbo+5+lgg4FB7hgc7I5evi6wkRveASSXSfHOw2EYGuKBg0eygdLaz3dws8PkvuEYGuoBqUSCSZG+WHckFfsuZhucQtUJwNd/3sD3F7LwZK92mBzpB0cl/4TvhfzmScgLr5q8nSrhK5Qw9FokiSAIoh4fnZNTYu0SLKZEowUAvhHehSAISMsvx4Fbpy3P3zDt+lxIG3sMuhV0HT0dIDHhFNf1KycQ8cvYWm2nR+yGb2hvg75JOWqsPpSCQ1fz692fs1KOKff5YWJEO9jWEbjUMOXF7XDc/38mb1fl1ROF42MboaLG16aNuK8P892xldhyIh2r41IAAHMGBeLpSF8rV9R86PQCzmUW40ByHg4m55k0v6VMKkFPX2cMCnLHoCB3+DgrG7HSvwS3sceKsV1w5noRPolLwdnMYoM+RRotVh5MwVenMjCjnz9GdfaCXMrrTMaSlmTCJuUX8zbWay1bDDUZhl4rUFqhxaeHU3H7UtCaQykY09UbDrbi/fGWV+lwLLX6+tyhq/koNOH6nL2NDP0C3DA4yB19A1zhpFQ0YqV318PXGeuf6I6DyflYcygFV/PKDPpkl1bi3Z+vYOvJ65g1wB+Dg91NOgIVFW05bK/+BOWlnVCkH4TEzHG4entvCxdGTUW874qtSEaRptbghyqdgIwiDcI8HaxYVdPLVVci7tbR3AkTr895OdpWn7YMckdPP2coZM3ndKFEIsHgYHcMCHTDvotZWHskDVklFQb9UvLLsCD2Irq2dcKcQf7o6etihWqbIUGAPPsMlAk7YJv4HaSVhkfNpqoIibJAYWQNDD1qsQRBQEp+GQ4kVc+Gcv5GiUmf28M8HTAoyA2DgzwQ6mnf7I+OZFIJorp448GOnvj6z0xsPHYNRRrD02znbhRjRsxZ9A9ww+yB/ghpI64PP7dJ1NlQXvkGyoQdkBdcsdh+9SoPVASNstj+qGkx9KhF0eoFnM0swoGk6iO664Uao7eVSSWI9Pvr+py3U9Ncn7M0W7kUT/XyxWNdvLHl5HVsP3kdmjqOag+n5ONISj4eCvfEjP4d0M5ZBPf46Sphk/orlJd2wCZtPySCrsFNtK7BkJblQVpRYNRLlAxeCsh4y0hLxdCjZq+sUodjaQU4mJSLQ1fz6zy6qY+DrQz9A9wwKMgd/QLcWtV1TgdbOWb298eEHj7YcDQNu8/dhO5vk1ULAH5IyMYvl3MwrntbTLu/PVztWt/8kbLci1AmxEB5ZTekmvpHvN6mt3VGRegYaDpGQ9umK6Ql6XDe8/Rdb18QJDKUDvkAlUGPWLJ0amKt5x2AWpXc0gocvDW/5YlrBSYtxurtaIvBwdVHcxG+zev6XGPwsLfBwuEheKqXL/57OBU/X84x6KPVC4g5nYk957PwdKQvnopsB3ublv3nL9EUQHn5G9he2gFF7oUG+wsSKar8BkHTMRoVASMA+V9H+nqn9iicsA/K81sgP70eSk3ttRBz2w6DdNBC6Dw6Wfz7oKbVsn/rqdUQBAHJeWU4eOu05YWbpt0/2dHTAYOCqweihLRp/tfnGoOfqwpLHw3H5N6+WB2XimNphqfryqp0WHc0DTvPZGLa/e3xePe2LetDgV4Lm2sHoLwUA5uUXyDRNzwqV+sSCE3HiagIGwe9Q9t6+wk2DijvORPX7Xsi4tdxtZ5L7zIHvgy8VoGhR1aj1Qv4M+Ov63MZRcZfn5NLJYj0c8GgW0d0Xo68xnJbRy9HfDK+K05cK8CquFRcrOMDREF5FT7an4ztpzLwYv8OGNnRs1kvZSTLT4Ty0g7YXv4GsrKGV6TXKxxQERJVffrSu5dp82RKWtCHADIZQ4+alLpSi2OpBTiQlIfDKfkoNuH6nKOtHP0Dq6/P9fV3bVXX5xpD7/au2PSUC35LzMWaQ6l13pSfWaTBm/suY8uJ65g9MAD9/F2bzVGypKIYtomxUF6KgSLrtFHbVLbrD034BFQEjgIUdo1cIbVEfNegRpddUoG4W/NbnkwvrHNC5fr4ONliULAHBgW5IaKdM+Qt6VRcMyCRSDAstA0GB3sg9vxNfHYkDbnqSoN+iTlqzP/mPHr6OmPOwAB09XGyQrUABD0U1w9DmRAD26s/QKIzvB/x73SOftB0nABNxwnQO/k1QZHUkjH0yOIEQUBSrrpmWZ6ErNKGN7pDuJdDzUCUYA9xXp+zNLlUgse7tcWocE98dSoDm0+ko7TCcDj/qetFmPrlGQwJdsesAQEIcG+aoyVpUSqUl3ZCeWknZKWZDfYX5EpUBD0CTceJqGrXl6ckyWgMPbIIrU6P0xlFOJicj4NJucgsbvgT+m0KWfX1ucHB7hgY6A5PXp9rNEqFDM/2aY+x3dpic3w6dpzJrHPmmt9vXWd9tLMXpvft0Dj3NFaqYZv8ffWglMzjRm1S1bZ39aCU4Ech2Ih74mQyD0OPzFZaocXR1AIcSMrFkZQClFQYf33OSSnHgFvX5+73d23xw+dbGmeVAvMGByK6Zzt8djQNe87fxN9u8YNeAGLPZ+HHhGxMjGiHZ+/zq1kn0GyCAMWN49VTgiXthURrOJfo3+nsvVERNh6a8InQuQTe2+uT6PGdhkySVVKBg8l5OHjr+pz27++Ud9HOWVlz2rJ7O2euCNAMeDna4p8PhuLpXr5YczgV+xMNV3mv1AnYevI6vj13A8/09sOTPdtBqZCZ9DrSkkwoL++EMmEHZMVpDfYXZLaoCBgJTfhEVPkOBKSmvR5Rfawaenl5eXjjjTcQHx8PmUyGxx57DAsXLoRcblhWfHw8li9fjqSkJDg5OeGpp57CjBkzrFC1uAiCgCs56pqgu5Rt2vW5zt6O1actg9wR5G7H63PNlL+7HT58rBPO3yjGqrgU/JFeZNCntEKHNYdSseN0Jqb3bY/HunjffWBRzYoGO6BIjzNqRYMqz+7Vpy9DRkNQcsJssjyrht78+fPh5eWFuLg45ObmYubMmdi0aROef/75Wv2Sk5Pxwgsv4K233sKYMWNw+fJlTJkyBR06dMBDDz1kpepbL61Ojz+uF9WsWHDDhOtzNjIJerd3xaBgdwwMdEMbB16fa0m6tHXCpxO64WhqAVbFpSAxR23QJ1ddifd/TcK2PzIws78/hoV6/PVhRhAgzzpdfU9dYqxRKxroVR7QhD5effrSvaOlvyWiWqwWemlpaYiPj8fBgwehUqng5+eHWbNmYfny5Qaht337dgwbNgxjx1avOt2xY0d89dVXcHAQ5+zxfycIhp+gb5i4tFBphRZHUvJxMLn6/rm6RvbVx/n29blgD9zfwRV2NjwV1ZJJJBL0C3DD/f6u+PlSDj49nIrMOiYOuFZQjtf2JiDcywH/6O2I+9XVEz3LCxIbfA1BKkdlh2HQhEejsv0DgMx6axaSuFgt9BITE+Hi4gIvL6+atqCgIGRmZqK4uBhOTn/dJ3T27Fn069cPr7zyCg4fPgw3Nzc8++yziI6OtkbpzYYgCPju3E1sOHbN4LkFsRfRu70LZvb3r/eeq5vFmurTlsl5+CO9yKTrc34uSgwK8sCgYDd08+H1udZIKpHgoXBPDAv1wO6zN7Dh2DXkl/017ZcCWgyTnsL4/AMY8sufkEsaXr9Q694Rmo7R0ISOhWDn0ZjlE9XJaqGnVquhUtVe6uT247KyslqhV1RUhC+++AIrVqzAhx9+iNOnT2PGjBlwdnY26fRmdnY2cnJqT8Yrl9vB09PzHr4T6xAEAUt/TsTXZ27U2+fEtUKcvv4n3n+sE4aHtYEgCLicXYrfE3Pxe2IeLptwfU4CoIuPE4aEuGNwsAcCeX3OZLI6PhjIpBLI5c37HjO5XIqnevthdLe22HryOuLj4xCl/w2jZYfhJmn4d0hv64LKjmNR2SkaujZdAYkEzflcQEv9OZFxrBZ6dnZ2KC+vPS3S7cf29va12m1sbDBs2DAMGTIEANC7d2+MHj0aP/zwg0mhFxMTg1WrVtVqmz17NubNm2fGd2Bdq/cn3TXwbtPqBbwWexH7O3vhzLXCOk9T1cdWLsWAYA+M6OSFoeGe8HRsmevPNRc2Ps4GbUE+zrB3ta+jdzOjzoPr5Z1YdH0rID0HNPD+rxMkSHLqA+/B0+DcYzSUclu0lN+efHvD69D29rZwbQk/J2qQ0aH37bffGr3TMWPGNNgnJCQEhYWFyM3NhYdH9WmO5ORkeHt7w9Gx9k2nQUFBqKysPXWSTqer81rW3URHR2Po0KG12uRyOxQUGF6sb85KK7RY9VvD101u0+oF7Dt306i+LioFBgW5Y0iIO+73d4Pq9vU5ra7F/Ts1N7IKwxUBdBVVzfffVa+FInU/bC7GQGHkigbJ+rbYqRuM3boByMpxg/I7KZ7OuIJn+rSHYwuZK1WtNhy4pVZXNN+fk4nEHt5G/xYuWrSo1mOJRAJBEKBSqSCXy1FSUgKZTAZXV1ejQs/f3x+9evXCsmXLsGTJEhQUFGDNmjUYP368Qd8nnngCzz//PL777js89thjOHnyJPbs2YOPPvrI2PIBAJ6enganMnNySqCtY0aK5iz27E2UV1mu5vauKgwKql6Wp6uPU63TOy3t36Y5E7SGH9K0WgG6ZvZvXL2iQcytFQ2yG+yvldvjoM0grCrog1NCCKpPhlfTVOmx/ug17Dydief6tMf4Hj6wbeanCf++EO/tNv4ttA5Gh96lS5dqvt63bx8+++wzvP/+++jYsXqIcUpKCl577TU88ojxqwqvXLkSS5YswbBhwyCVSjFmzBjMmjULABAREYF33nkHjz32GPr27Ys1a9Zg5cqVeOedd+Dm5oaFCxdi2LBhRr9Wa3IsteGVoe9GAqCrjxMGB1XfKO7fRPMrUvMlqSiqXtEgIQaK7DNGbVO9osFEVASOQleFCi9eL8InB1Nw7obhbQpFGi3+c+AqvjyVgRf6dcAjnbzqvHZG1NgkgqnnCAEMHToUK1asQPfu3Wu1nzt3DjNnzsShQ4csVmBjy8kxbbHS5mD6V2dwJqPh+5/+LsDNDk9H+qJ/oBvc7W0aoTK6G1nOBbjtGFmrLX/iT9C16WydgvQ6KDJur2jwo3ErGji1r17RIGwC9E6+Bs8LgoCDyXlYfSgVKXn1TzEW4G6H2QP8MSjIvdkNiLp+5QQifhlbq+30iN3wDe1tpYosq00bcc9ZatZJ9sLCQtjaGl7s1ev10GiMHyhB5jF1CqjbJkT44LGu3hauhloaaWEKlJd3mbCigap6RYPwiajyuf+uKxpIJBIMDvbAgEB3fH8xC+uOpCGrxDBMU/LK8Op3F9HNxwlzBgYgwtdwkA9RYzAr9Pr06YMlS5bgww8/hK9v9ae95ORkvPPOOzUjLKnxdPNxwrHUAtO3a2ulNdLI+irVsE3eC2XCDtjcMHZFg/vuWNHAtIkgZFIJHuvijZEdPbHzTCY2Hb+GojoWDD6bWYwXYv7EgEA3zB4QgOA24h5kQY3PrNB7++23MW3aNIwYMaLmfrri4mJ069YNb7zxhkULJEOju3hjw9E0mLAWK7q0dUSYF2ewERUzVzTQdJyAio4TLLKiga1ciqcjfTGmqze2nEjH9j8yoKljQMihq/k4fDUfD3fyxIx+/vBxbik3OFBLY1boeXl54bvvvsORI0eQmFg9dD48PBz3339/szs/3xp5Otrikc5eiD2fZfQ2U3pzRWmxkJZk/LUgq7ErGgQ+BE3HCY22ooGDrRwzBwRgQg8frD92Dd+evWHwoU0AsO9iNn65nINx3X0wtY8fXO147Zksy+wbZ2QyGYKCggBU3yyuVqsZeE1owdBgXCsoN2pAywt9O2BICKd8atW05bC9+iOUCTuguH7I+BUNwqNREfxYk61o4OFgi0XDQ/BUL1/893AqfrmcY9CnSifgq1MZ2HP+JiZF+mJSL1/O50oWY1boVVZWYuHChfjhhx8glUrx008/4YMPPkBJSQlWrVplcHM5WZ5SIcMn47pixe9XEXv+Buq6hcjNToEX+/tjbLe2TV8gNT5BgDzr1K3Tl7GQVjY8ElmvagNN2OPQdJwInXtYExRZt/auKix7NByTe/tidVwKjqcVGvRRV+qw7kgadp3JxLT7q1d7V9xtKSMiI5j1G/Tpp5/i0qVL2Lx5c80ozmeeeQYZGRlYvny5RQuk+ikVMrw2IgQrx3U1eG72AH/sfaEPA68VkqqzoDq1Bq5fDoXr16OhurjtroEnSOWoCHwIRaM+R96UeKj7v2HVwLtTuJcjVo3vhtXjuyK8nmvO+WVVWP5bMiZ8fhI/JmRDb/pdVkQ1zDrS+/777/H222+jT58+NW333Xcf3n33XSxYsABLliyxWIHUMCel4bIsfQPc+Km4NdFVwCb11+rRl9d+h0RoeOknrXs4NOG3VjRQuTdBkea7r4MrNrd3wf+u5OLTw6m4VlBu0CejSIM39l3CFyfSMXtgAPr5u/KSCpnMrNDLyspC+/btDdrbtm2L4mLTb5omau0kZTlQXfzSoF11YQvKes+H3r7u+yflOedhmxADZeK3kGoavk1Fb+sCTehYVIRHQ+vRGWhBoSCRSDA8rA2GBLsj9vxNfHb0GnLVlQb9EnPUmP/NefT0dcbcQQHowltxyARmhV5QUBCOHDmCiRMn1mrfu3cvgoODLVIYUWthmxADxwOL65zxRHVhK5QJO1A64C1ouk4BAEjK86G88g2UCTsgz7vY4P4FiRSV7YdA03EiKgNGALKWvVq9XCbF4919MKqTF748lYEvTqTXuajxqetFeG77GQwJdsfsAQGcTo+MYlbozZ07F/Pnz8eVK1eg0+mwe/duXL16FT///DNWrFhh6RrJSE6ongW+GLzBt7lQXtgGx98X3rWPRF8Jx4OvQ55zHtKKQtik/mrUigZa1+Dqm8fDxkFv79Vg/5ZGqZDhuT7VA1g2x6djx+kMVNZxc+rvSdULIUd19sb0fh3g5diyQ785CQsLg1KphFT616WSHj164LXXXkNoaOhdtx06dCjeeOMNPPDAA41dpknMCr0HHngAn3zyCdauXQuZTIYNGzYgJCQEK1aswMiRIxveAVncdNleLJR/BQD4l/ZJAD2tWxBBWpwOh4P/NLq/KsHw9Off6W0cURH8GDThE6H16tmiTl+ay0WlwEuDAxEd4YPPjqZh74Us/H0hBL0AfHf+Jn68lI2JPXww5T4/OKsMr3WT6Xbu3FkTcFVVVfj4448xffp0/Pbbb5DJWt6tJGaNdEhPT8egQYOwbds2nD59Gn/++Sd27drFwLMSWVUpXpXvgFyih1yixwJ5DGRVxq+KTo1Ddf4Lo47YGiJAgkrfgSgevhJ5z55C6QMfQOvdSxSBdydvJyXeGBmGL6f0wpDgugfmVGj12HLyOsZuOIFNx69BU9XwgB8ynkKhwLhx43Dz5k0UFRUBAHbs2IERI0agZ8+emDx5Mq5du2awXUJCAp599lkMGDAAPXr0wPTp05EKx17VAAAgAElEQVSXlwegegWf6OhoREZG4qGHHsLGjRtrtvv3v/+NAQMGoG/fvpg2bRrS09Pv+XswK/RGjBiBSZMm4euvv0ZZWcNTG1HjUqrTYSv5a15DW4kWSvW9/3LQPRD0UCbE3NMudE4doL7vVeRPPoqi0V+iIuxxQKGyUIEtV6C7PZaP7owNT/aod6LqkgotVh9KxeMbT+CbszegrWONPDJdYWEhtmzZgpCQELi5uSEuLg7Lly/HRx99hBMnTqBz585YuNDwdP5LL72EYcOGIS4uDvv370dRURG2bNkCAFiyZAlGjhyJkydP4pNPPsGaNWuQmZmJo0ePYu/evdizZw/i4uLg7e2Nzz777J6/B7NOb27btg2xsbH48MMP8d5772H48OEYO3Ys+vXrd88FEbVIWg3kBYmQ5V6EPC8B8uyzkGrMW/dQE/QoNF2noMqnz11XNBC7bj5OWDuxG46kFGD1oRQk5hiubJ5TWon3f0nEtpPXMWuAP4aGePA2BxM98cQTNdf0bGxs0K1bN3zyyScAqgcvjhkzpmaZublz5yIlJcVgH+vXr4evry8qKiqQlZUFV1dXZGVVT6Po6OiIgwcPIjg4GH369EF8fDykUiny8vKQn5+P3bt3Y/jw4Xj33XdrXVs0l1mh16tXL/Tq1Qv//Oc/ceDAAcTGxmLmzJlwdXXF6NGj8fLLL99zYUTNkiBAqr4Jee5FyPISqgMuNwGywmSj7p0zhrrf69A7ca5UY0gkEvQPdEPfAFf8mJCNtYdTkVlsOEr2WkE5Fu1JQCdvR8wZ6I/e7V2tUG3L9NVXX9U7aCU3NxdhYX9NdGBvb48uXboY9Dt79ixeeOEFqNVqhIaGoqioCK6u1T+D999/HytWrMDixYtRXFyMRx55BP/85z/RtWtXLFu2DFu3bsXHH38MPz8/LFq06J5X8jF77k2g+vzu8OHDERERgd27d+PTTz/F+vXrGXrUOvz96O3W/425X85cglQOvR3nSTWVVCLBqE5eGB7aBrvP3sCGY9dQUG54PfXizRLM2nkO93dwxZyBAXWuPKKu4/YIqpunp2fNERsAlJSU4NNPP8Urr7xS05aVlYWFCxdi+/btNUeEixcvhl6vhyAIuHLlChYvXox3330XFy9exKuvvopt27YhKioKgYGB2L59O0pKSrB9+3bMnz8ff/zxxz0NoDE79MrKyvDzzz9jz549OH78ONq1a4dp06Zh7NixDW9M1JzcPnrLS7gj4Cx79GasyoCRgJzX7cxlI5ciumc7PNrFC9tPZmDryesoq2Mwy7G0AhxLK8CDYW3wYn9/+LmqkF5QjvXH0pB++QoG/G3g5+q4FAwV/DEirE0TfSctQ1RUFF5++WWMHj0aoaGhWLt2Lc6ePQu5/K9oKS2tHlSnUqkgCAIOHTqEH374AUOHDoVEIsF7772HBx98ELNmzYK3tzekUilcXFzw559/4v3338fWrVvh5+cHZ2dnODk53fOIUbNC7+WXX8bvv/8OiUSCkSNHYtOmTYiMjLynQoiaRBMcvekc2kLr3gl6pRtUl3eatG15l2csVoeY2dvIMb1fB4zr0RYbj13D13/WPZjl58s5+F9iLgYGuiH+WgHKKvXoVMclv8wiDRbvTcD5G8WYPziQ1wVv6devH1599VW8/PLLyM3NRUREhMH8y0FBQZg5cyaeeeYZ6PV6BAYG4oknnsCxY8cAAB9//DHeeecdbN68GQqFAlFRURg3bhxkMhkuX76MJ598Emq1GgEBAVi5cuU91ywRBNNnb508eTIef/xxPPTQQ1CpWvan0pychmemb+6uXzmBiF9qH2GfHrEbvqG9rVRRM9AER2+CzBZatzBoPcKhcw+H1qMTtO7hEJR/XS9yOLAYqvNfGLU/TccJKBn6b9HditAUMorKsfZwGn5MyG5w0aVOklTss11cq21UxTJcFPwBAHMHBuCZ+1ruNdc2bcS9Co5ZR3q3h5oSNQs1R28JkOddhPzW/xvj6O3OcNO5BADSu/8JlQ5cAuir6px3806akDEoGfIBA6+RtHNWYcmojng60hdrDqXicIp5I2sBYP2xNDzevS0cbO9pSARZidE/tWHDhmHXrl1wdXWtORdbn//9738WKY6olmZy9GYSqRylQz5EReAo2P3xCWxuxKNYWv2346QXUOXVC2W95qDSfzgDrwmEejrgP493wanrhVh1MAXnbtR/pufOn9Odyqv02HshC0/0bNeotVLjMDr0xo4dC6VSWfM1z2lTo2qyo7dw6Nw7QesRXn0kZ8TRm8kkElR1eACldp6I/XE8/uNWvUr5y/mFiBq8DLo2nS37etSgnr4u2PBkD6w8mIKtJ68bPL/JybHWzwl/W+D98NV8hl4LZfRf95w5c2q+HjNmDPz8Wu457dbG08HGqLZmSRAgLcv667633IuNd/TmHg6dRzi0t47gzD56M5NaV46Vbi7Q3frA+P/cXDBUVw5lk1ZBt0kkEvg4G/7r66WVBj8nz7xK4I5fx7puh6CWwayPtCNGjECvXr1qBrPY23NWf2tSKQx/jCqFHM3ubqOmOHqz94bWo1PjH72ZIbMiB1V3nCGpkkiQWZGDQCvWJHa2csMZPrSKYoOfk1ZRXCv06tqOWgZOQ0aWV9fRW94lyAqSWt3RG7VsnbzMG8nYyVvcIyBbMk5DRvdGq4G8IOnWwJLGPnq7c+RkYLM4eqOWLbiNPbq2dcK5G8UmbTe2W90r3VPzx2nIWgFpaaZBm23yHpQ7d4BgYzjNklma7OgttPqUJI/eqIlM7u2L/4tteIX62wYEuiHQXbyXdARBwOn0Quy/lI18dSVUChm6+blgZGcv2Mqb//p6nIasBZNUFMPh94WwTdpj8Jz9H6ugOvs5yiLnozziRdOGw9c6ertz1hLz7236O529961Tk5149EZW9UCIB6bc54fN8Q0vx+XvpsJbD4U12K+1ikvMwb9+uIQLmYZHxu72Nniuvz9mDgmGTNp8R/dzGrIWSlJZAudvJ0KRe77ePtIqNRyOLoW0LAvq/m8ZBt+to7faA0sSGv/ozT0cgsrNIvsnsoTZA/zhZqfAuiNp9fYZEOiGt0aGwUWkK7LvOJmORV+fNVi1/rY8dSU++vkKzmcUY9VTEZDLGmewT35+PqKjo/Hee++hT58+Jm9vVuhlZ2fjzTffbBXTkLVUDr8vumvg3cnuz/XQuneGziO86Y7ebp2a5NEbtQQSiQRP9fLF6K7e2PJ7EnZoaz8/qZcvHr3fcMkcsYhPyb9r4N3pxws38cGPl/D6I50sXscff/yBRYsW1bk6u7HMejcqLy9HeHg4A89KpMXpsE2MNWkbx99ehqVOONw+ertzYAmP3qg1sLeRo2tbJ+z425lOV3txHt3d9slviUYF3m2bj6Rh5pBguNlb7n7h3bt3Y+XKlViwYME9jRsxK/QyMjJ4b54VKS9+CUmD0+bWZm7g6ey97jg12YlHb0Qik5qrRlxirknbVOr02HEyHS8ODrJYHQMGDEBUVBTkcnnTh9706dOxePFiTJs2De3bt6+Znuw2Hx8fswuihimy/7T4Pnn0RkR1OZ6SZ9Z2R5PzLBp6bdpYZi1Ds0Lvo48+AgCcOHGi1hycgiBAIpEgISHBIsVR3STa8nva3uDozT0cOtcgHr0RkYHicm3DneraTtM8p2oz613uiy+MWx+MGofezPvWynrMQFnP2Tx6IyKjOSjN+zDsqGye10HN+m7uu+8+S9dBJqj0HwbblJ9M2kaQyFDe/XkGHhGZ5L4A894z+pi5XWMzK/Ree+21uz7//vvvm1UMGUcTMgb2h9+DtNL4qZMqA0dC79C2EasiotYoqI0D+gW540iy8df2FDIJJkY2z5V4zAq969drrz+l1WqRnp4OtVqNUaNGWaQwuguFHcru+wccDr1lVHdBroK69yuNXBQRtVZzHgjG0at5EIwcNP7Ufe3RxtG20eq5fPmy2duaFXpbtmwxaBMEAW+99RZcXTlPYlMo7zYV0rIs2J1ac9d+glyFoofXQ+fesYkqI6LWpl+wB5aM7oI3vm14QowhYW0a5cZ0S7HYPDESiQRTp07Frl27LLVLuhuJBOq+i1E08r+ocg01eFqQyFAR9AgKxu9BVfvBViiQiFqTyfd3wLrJvRDYpu57tB1t5Zj9QBA+eyYSNs14vUGLjlHPzc1FWVmZJXdJDagMfhQ65wC47RhZq73o0S8YdkRkUQ929saITl44kpyH3y5lo6CsEkqFDN19nRHV3Qd2Ns3/tiezKly1apVBW0lJCb7//nv079//nouie6dXeVi7BCJqhSQSCfoHe6B/cMt8jzEr9L755huDNoVCgYEDB+KVVzhggoiImiezQu+3336r+To/Px8nTpyAh4cHevXqZbHCiIiILM2kq42rV69Gnz59kJZWvebU6dOn8eCDD2L+/Pl4+umn8dxzz0Gj0TRKoURERPfK6NCLiYnB2rVrER0dDXd3dwDVN6nb2dlh7969+P3336FWq7F27dpGK5aIiOheGB16O3fuxKJFi/DKK6/AwcEBZ8+eRWpqKp555hkEBQXBy8sLM2fOxL59+xqzXiIisqbcJODHxcAnvYAP/IF/dwJingaS/gfo9daurkFGh15ycjL69etX8/jYsWOQSCQYPPivYfHBwcHIzMw0+sXz8vIwa9YsREZGok+fPli6dCm02rvP6H3lyhV0794dx48fN/p1iIjoHmkrgT3zgVW9gGOrgbwkoLwAKM4AEvYAWx8H1g0CClKtXeldmXRN785lhP744w+4ubkhJCSkpk2tVpu0mvr8+fNhZ2eHuLg47Nq1C0ePHsWmTZvq7V9eXo5//OMfvG5IRNSU9Drg66nAH5/fvd/Nc8DGh4DC9Lv3M8OlS5fw3HPP4b777kP//v3xf//3f8jPzzd5P0aHXlhYGE6cOAEAKC4uxvHjxzFgwIBafX744QeEhhrODlKXtLQ0xMfHY8GCBVCpVPDz88OsWbOwbdu2erd55513MHz4cGNLJiIiSzixofpozhglN4DdL1r05TUaDZ5//nlERETg0KFD2Lt3LwoLC7F48WKT92V06E2aNAlLly7F0qVLMXXqVFRWVmLy5MkAgOzsbGzYsAEbNmzAhAkTjNpfYmIiXFxc4OXlVdMWFBSEzMxMFBcbrh7w7bffIi0tDXPmzDG2ZCIiuld6PXD8U9O2STsE3DhrsRIyMzPRsWNHzJ49GzY2NnB1dUV0dHTNgZgpjL5PLyoqChUVFfjyyy8hlUrxn//8B126dAEArFu3Dl999RWmT5+O0aNHG7W/uk6F3n5cVlYGJyenmvbk5GSsWLECX375JWQymbElG8jOzkZOTk6tNrncDp6enmbvszmQySUGbXK5BJJmPP+d2FwpuozNmYaflDdmfocpbgEId22+E/SKjVRi+PcklUggF+vfU9phIP+q6dud+gJ45COLlBAYGIj169fXavvpp5/QuXNnk/dl0s3p48ePx/jx4w3ap0+fjtmzZ5u0woKdnR3Ky8trtd1+bG//14SmFRUVePnll7F48WL4+PiYUq6BmJgYgynUZs+ejXnz5t3Tfq1OY3gd1clRBbjWPTEsNR1BELD6zGqsPVv3rTxHCs7iSNxUTOk0Ba9EvgKpRKRvrM2AIAg4k3MG3xR8b/DcnxUXMNxhHOwUdlaozMqyE8zbLueSZeu4RRAE/Oc//8H+/fuxdetWk7e3yOygd56iNFZISAgKCwuRm5sLD4/qOdySk5Ph7e0NR0fHmn7nzp1DamoqXn/9dbz++us17S+++CJGjx6Nt99+2+jXjI6OxtChQ2u1yeV2KChQm1x/cyIrKYfT39qKS8qhU7bs76s12HBpHTZf2dhgv80XN0NTUYXZnVv4B7AWSqPVYOnpd3Dgxv46n9+R9T1++yYeS3t/0OKPyl1N/TCsrzLvhXSV5m13F6WlpXjttddw4cIFbN26FWFhYSbvw2pTYvv7+6NXr15YtmwZlixZgoKCAqxZs8bgSDIyMhJnz9Y+NxwWFob//ve/6NOnj0mv6enpaXAqMyenBFpt87+35G4EreHKjlqtAF0L/75aupSSZKMC77aY5O0Y5DUU4S4t+021pdHqtXjt5AL8kXv360O5mhy8fHQO/t/9nyLIKeSufVsVB9MPau5pu3pcu3YN06dPh4+PD3bt2gU3Nzez9mPVcykrV66EVqvFsGHDMHHiRAwcOBCzZs0CAERERCA2Ntaa5bUYeuf2EKQ2NY8FqQ30zu2tWBEBwLdphhOzN2R78hfILMvAzfIbyC7PQq4mB/kV+SiqLERxZTFKq0pRri2DRqdBpa4SOr0WeoEfbu7F7rRdDQbebWXaMiw78w4EY5cQbw2ChwPmnNbtPMZiJRQVFWHKlCno2bMnNmzYYHbgAYBEENVPz1BOTom1S7AI1em1sD+6DACg7rsY5REzrFyRuOkEHcb88hDU2qY7xSyVyCCFBFKJtPpriQRSyG49ltxqk0IK6a22v31d09bANnc8lkikkN16PQkkf/taVtNHequfBHV9LYNEUl23DA1sc+u1a21z6/XqrdXge/3r30kCCRafXIDcipyG/4Hv8NF9K9HTI7KRfpKNq00bx4Y7/V3sPODUZuP723sCL18A5DYN9zXC559/jn/9619QqVS17hcHqueANgVDr5WEHgBIKooAAIKts5UroaLKIoz99WFrl0GNZLjPSCzu8Za1yzCLWaFXnAmsewAovWlc//GfA10eN/11mgCHirUigq0zA4+oCVxXW37GkWbNyQeYvBtwbGAEvUQKPPqfZht4AEOPyOLyK/KwOXGDtcugRiRAhNdRvToBLx4CBi2oPn15J6kC6DIeeP5/QORz1qnPSFYbvUnU2hRXFiPm6jbsTtsJjc68+WH7tOmLJwKfhk7QQS/oIUAPnaA3/PrW/3W41U8Q6t5G0EMHPfSCDoIgVG8j6CBAgF7QQSfoa399azu9oIcedX2tg/7WfvS4/bXOsH9dj2vVVl1PXfXrcavuerbRN4PAaaO07MjEFsPeHRj6T2DQ/wE3/gTK8gCFCvDuCtiZP7ikKTH0iO5RmVaNr1N3YMfV7fc8cOW50BcQ6mz6vUdicjv4BOHO4L71IeB2cENfK8QNgl4QoIcOFdoKLDr5D6i1pSbVMMxnRCN9dy2E3Abw623tKszC0CMyU4WuArFp32D71S0oqiy85/1NCprCwDOCRCKBDDJAAljiLWx0h8exPfkLo/u723qgv9ege35dsg6GHpGJtHotfri+F1uSPkeupv6h7h0c/PFsyPO4XpqOjYnrIKD+gdJPBz+L50KmN0a51IAnAp/G4aw4pJWmNNhXCin+0XUR5FK+dbZUvGWhFd2yQI1LJ+jwW+Yv2JS4HjfK6l8sua3KB1NCpmFYuwchk1RPkJ5Wmoot51bgt4LaN0EPdu2FyZ3nI9ApqFFrp7vL1eRg8clXkVScWG8fhdQGr3V/A0PaDmvCyizPrFsWWhGGHkOPGiAIAuKyDuDzK5/d9WjA3dYDk4Ofw8N+j0IhVRg8fzXtBzx/4d1abes7v4HADryfrzmo1FXg54wfsP3S57iprX0E39ehF2ZHLoKPXTsrVWc5lgg9nV6HpMIkFFYUQilXIsg5CA42DhaorvHxGJ2oHoIg4GTucWy8sg6Xi+qfMd5J4YyngiZjdIdxsJXZNmGFZEk2Mls82n4MXAr1ePN67SVxRrkObRWBd69KKksQczkGOy7vwA31jZp2pUyJUYGjMDl8MoJdg61YYcMYekR1OJt/Bhsur8W5gj/r7WMvt8fEgKcwLmAi7ORcxqm1+Ps0V1QttSgVL/76IjJKMwye0+g0+CbxG8QmxWJJ/yWICoqyQoXGYegR3eFK0SVsvLIO8TnH6u1jK7XFWP8JiA6cBGcbzoBDrV9ueS6m/zIdN9V3n4ZMK2jx+qHX4aBwwAPtH7BoDUePHsW///1vJCcnQ6VS4aGHHsKCBQugVCpN2g9nZCECkFqSgrdPLcaLh6fWG3hyiRxjOozH1iE78ULHWQw8Eo3//vnfBgPvNgEC3jv+HqrMXYevDvn5+ZgxYwaefPJJnDx5Ert370Z8fDzWrVtn8r54pEeillmWgc2JG/C/jJ/rnelDCike9H0YzwRPhbdd2yaukMi61FVq7EneY9I22WXZOJB+AMM7DLdIDW5ubjhy5AgcHBwgCAIKCwtRUVFh1hJDDD0SpRxNDrYmbcK+9FjoBF29/R5oOwxTQp5He4cOTVgdUfMRlxGHMm2Zydv9kPKDxUIPABwcqkeHDh48GFlZWYiMjMTjj5s+sTVDj0SlqLIQ25O34Lu0r1Gpr6y33/2e/TE1dDqCnUKbsDqi5idbnW3Wdjnlpq1RaKyff/4ZRUVFePXVVzFv3jysX7/epO0ZeiQKpVWl2JnyJXalxKBcV/+n1h7uPTEtdAY6u3ZtwuqImi9zZ59prFlrlEollEolFixYgAkTJqCoqAjOzsZfX2foUatWri3Ht2m78NXVrSipqn8ignCXzpgWOqPFroZN1FgCXQLN2i7AKcBiNZw6dQqLFy9GbGwsbGyqV2OvrKyEQqGASqUyaV8MPWqVKnWV+D49FluTNqGgMr/efoGOQZgaOgN9Pfvz/iyiOvT26o12Du3qvD/vbh4PsdxCsmFhYdBoNPj444/xj3/8Azk5Ofjggw8wfvz4mhA0FkOPWhWdXoufM37E5sQNyNZk1dvP184Pz4Y+jyFth0Eq4Z07RPWRSWV4suOT+OjkRw13vqVHmx7o7NHZYjXY29tj/fr1WLZsGfr37w9HR0dERUVh9uzZJu+LoUetgl7Q48CN3/B54npcV1+rt5+n0gvPhEzFyHYPQ8aZ8omMMil8Eo7fOI64jLgG+7op3bBswDKL1xAcHIyNGzfe8374V08tmiAIOJZ9BBuvrENySf0z5LvauGJS8BQ86jcGNjLTTocQiZ1cKseKB1bgnSPvYM/V+u/ZC3AOwMoHVsLPya8JqzMNQ49arFO5J7HxylpcLLxQbx8HuSOeCJqEsR0mQCU37YI3Ef3FVmaLZQOXYUrnKYi5HIOD1w+iqKIItnJbdHHvgglhEzDYd3CzX2uweVdHVIeEwgvYcHktTuWdrLePUqbC+IBoTAx4Eg4Kca8fRmRJYW5heLPvm9Yuw2wMPWoxkouTsPHKOhzNPlRvH4XUBmM6PI4nAyfDxda1CasjopaAoUfNXnrpNWxKXI/9N36tt49MIsMo3yg8Hfws2qg8m7A6ImpJGHrUbGWV38SWxM/xY8Y+6OuZH1MCCYb5PIgpIdPQzt63iSs0jeBgOFl1XW1E1HgYetTs5FfkYVvSZuxN/+6uy5MM9BqCZ0OfR4CjeTNGNDVBYWdUGxE1HoYeNRvFlcWIuboNu9N2QqPT1Nuvt0cfTA19AWEu4U1YHRG1Bgw9sroyrRpfp+7Ajqvbodaq6+3X1bU7poa9gO5uEU1YHRG1Jgw9spoKXQVi077B9qtbUFRZWG+/EKcwTAubgd4efTg/JhHdE4YeNTmtXosfru/FlqTPkaupf82tDg7+eC5kOgZ6D2HYEZFFMPSoyegEHX7L/AWbEtfjRllmvf3aqnwwJWQahrV7EDKJrAkrJKLWjqFHjU4QBMRlHcDnVz5DWmlKvf3cbT0wOfg5POz3KBRSRRNWSERiwdCjRiMIAk7mHsfGK+twuehSvf2cFM54KmgyRncYB1uZbRNWSGTIU+EBhSCg6tYpdYUgwFPhYeWqyFIYetQozuafwYbLa3Gu4M96+9jL7TEx4CmMC5gIO7l9E1ZHVD+VVImX8guxws0FAPBSfiFUIUorV0WWwtAji7pSdAkbr6xDfM6xevvYSm0x1n8CogMnwdnGuQmrs662qnZQSBU1N9wrpAq0VbWzclVUlynFJRhbWgoAcNILOG3leshyGHpkEaklKdiU+BkO3vy93j5yiRyPth+DSUHPwF0pvtNF9gp7TAudgXWXPwUATAudAXsFj3CbKye9YO0SqBEw9OieZJZlYHPiBvwv42fooa+zjxRSPOj7MJ4JngpvO3HPNTkx8CmM8osCAC55RGQFDD0yS44mB1uTNmFfeix09UwGDQAPtB2GKSHPo71Dhyasrnlj2BFZD0OPTFJUWYjtyVvwXdrXqNRX1tvvfs/+mBo6HcFOoU1YHRHR3TH0WpHSqhIAjXMkUVpVip0pX2JXSgzKdWX19uvh3hPTQmegs2tXi9dARHSvGHqtRMzV7fjs1gCJF8JmYmLgUxbZb7m2HN+m7cJXV7ei5Fao1iXcpTOmhc5AT49Ii7wuEVFjYOi1AuoqNTZeWVuz0OqGK2vxiN/oexoZWKmrxPfpsdiatAkFlfn19gt0DMLU0Bno69mf82MSUbPH0GsFbpRn1FpstUpfhRvlGQhWmH49TafX4ueMH7E5cQOyNVn19vO188Ozoc9jSNthkEqkZtVNRNTUGHoEANALehy48Rs+T1yP6+pr9fbzVHrhmZCpGNnuYcik/PUhopaF71oiJwgCjmUfwcYr65BcklhvP1cbV0wKnoJH/cbARmbThBUSEVkOQ0/ETuf9gQ2X/4uLhRfq7eMgd8QTQZMwtsMEqOSqJqyOiMjyGHoilFB4ARsur8WpvJP19lHKVBgfEI2JAU/yZmoiajWsGnp5eXl44403EB8fD5lMhsceewwLFy6EXG5Y1pdffolNmzYhOzsbnp6eeOaZZzBp0iQrVN28lFaV4NeMnw3aV5xfjicDn0ZfrwE1C7EmFydh45V1OJp9qN79KaQ2GNPhcTwZOBkutq6NVjcRkTVYNfTmz58PLy8vxMXFITc3FzNnzsSmTZvw/PPP1+r366+/4t///jc+++wzdO/eHWfOnMELL7wADw8PjBw50krVW9+FgnN4849FKKgsMHguofAC3jz1Grq6dseMjnPwdWoMfr/xPwioe4EGVvoAABDNSURBVBJdmUSGUb5ReDr4WbRReTZ26UREVmG10EtLS0N8fDwOHjwIlUoFPz8/zJo1C8uXLzcIvaysLEyfPh09evQAAERERKBPnz44ceKEaEMvsegyFsTPh0ZXftd+5wr+xJyj0+t9XgIJhvk8iCkh09DO3tfSZRIRNStWC73ExES4uLjAy8urpi0oKAiZmZkoLi6Gk5NTTfvfT2Pm5eXhxIkTeO2110x6zezsbOTk5NRqk8vt4OnZso5sBEHAh+eWNhh4DRnUdgimhb2AAKdAC1VG1PLJpIaTLMikEsjlvB+1NbBa6KnVaqhUtUcD3n5cVlZWK/TulJOTgxkzZqBLly549NFHTXrNmJgYrFq1qlbb7NmzMW/ePJP2Y20nb55EcnGS2dv39+mPuRFz0dmjswWrImod8u1tDdrs7W3h6sq1D1sDq4WenZ0dystrH6ncfmxvX/cv15kzZ/DSSy8hMjIS77//fp0DXu4mOjoaQ4cOrdUml9uhoEBt0n6sbWfCN2Zt18HBH//ovhA93CMAoMV930RNQa2uqLOttfy9iD28rRZ6ISEhKCwsRG5uLjw8qlfRTk5Ohre3NxwdDYfI79q1C++99x7mzZuHqVOnmvWanp6eBqcyc3JKoNXWvfhpc5VZmmHWdg/7RqGLc/cW9/0SNSVdHSum6/QC/25aCaudpPb390evXr2wbNkylJaWIj09HWvWrMH48eMN+v700094++238cknn5gdeARwOmgiEjurXplduXIltFothg0bhokTJ2LgwIGYNWsWgOoRmrGxsQCAVatWQafTYd68eYiIiKj5780337Rm+VbjpfJu0u2IiFoLq96n5+HhgZUrV9b53OnTp2u+3rNnT1OV1CKMaPcQfsrYZ9I2Tgon9PHs10gVERG1DByD2wJFuPdCBwd/k7Z52C8KtjLDUWlERGLC0GuBJBIJFnRdDBupcasdBDgE4umgZxu1JiKiloCh10J1cu2C93t/DMcGJoMOc+6I5X3+3z2tok5E1FpwlYUWLMK9FzYP+gpfJG7Et9e+rvVcoGMwngx8GoPbDoWci70SEQHgkV6L52LrilHtowzaF3X/J4a1e5CBR0R0B4YeERGJBkOPiIhEg6FHRESiwdAjIiLRYOi1Am1V7aCQKmoeK6QKtFW1s2JFRETNE0OvFbBX2GNa6AxIJTJIJTJMC53B+/KIiOrA8eytxMTApzDKr/rWBYcGblgnIhIrhl4rwrAjIro7nt4kIiLRYOgREZFoMPSIiEg0GHpERCQaDD0iIhINhh4REYkGQ4+IiESDoUdERKLB0CMiItFg6BERkWgw9IiISDQYekREJBoMPSIiEg2GHhERiQZDj4iIRIOhR0REosHQIyIi0WDoERGRaDD0iIhINBh6REQkGgw9IiISDYYeERGJBkOPiIhEg6FHRESiwdAjIiLRYOgREZFoMPSIiEg0GHpERCQaDD0iIhINhh4REYkGQ4+IiESDoUdERKLB0CMiItFg6BERkWgw9IiISDSsGnp5eXmYNWsWIiMj0adPHyxduhRarbbOvgcOHEBUVBR69OiBhx9+GPv372/iaomIqKWzaujNnz8fdnZ2iIuLw65du3D06FFs2rTJoF9qairmzp2Ll156CSdPnsTcuXMxf/58ZGVlNX3RRETUYlkt9NLS0hAfH48FCxZApVLBz88Ps2bNwrZt2wz67t69G5GRkRg+fDjkcjlGjRqF3r17IyYmxgqVExFRSyW31gsnJibCxcUFXl5eNW1BQUHIzMxEcXExnJycatqTkpIQGhpaa/vg4GBcunTJpNfMzs5GTk5OrTa53A6enp5mfAdE1BrJpJI62+RyDoFoDawWemq1GiqVqlbb7cdlZWW1Qq+uvkqlEmVlZSa9ZkzM/2/v/mOyqvs/jj81RBFMbn4oZU7YVBaKxEKSEIKrSLBbQEdSMMn4/pGSuogWSUnYMsMBjiSi0rJlP5zpCBnetJx/5I9vbAk5MZlhJjYHCAhCED+/fxDX1+vG7tK4O8F5PTa2i8855+MbjvDifM7nOp+9FBQU2LQ9/fTTbNiw4ab6EZGxy87Hj+5/2WE/bnB+QfeAHV4+fkyZ6mhwZTISDAu9yZMn09nZadM29Lmjo+1/LgcHB7q6umzaurq6hu33e+Lj47FYLDZtdnaTaWnpuKl+RGQsm0ilZwr3Xxj8A/l/PVPw7Z84Zn5P/OMf5g5vw0Jvzpw5XL16lStXruDm5gZAbW0tHh4eTJkyxWbfuXPnUl1dbdP2/fffM3/+/Jv6N6dNmzZsKLOx8Rq9vf238BWIyFh19z+f51Lr/wy+nuqq3xFjiGGD1J6entx777289tprtLe3U1dXR2FhIXFxccP2jY6OpqKigrKyMnp7eykrK6OiooKYmBgDKhcRM3Cc6orjVFejy5ARZuid2TfeeIPe3l4efPBBVq5cSUhICCkpKQD4+/tTUlICDE5wefPNN3n77bdZuHAhhYWF7NixAy8vLyPLFxGRUWbcwMDAgNFFGKmx8ZrRJYiI/GXc3af8/k5jmObgioiIaSj0RETENBR6IiJiGgo9ERExDYWeiIiYhkJPRERMQ6EnIiKmodATERHTUOiJiIhpmP6JLGNJQ0MDe/fuJT4+XmsE/o3pPI0OOk9jk670xpDGxkYKCgqGLZQrfy86T6ODztPYpNATERHTUOiJiIhpKPRERMQ0bsvKysoyuggZOY6OjgQGBuLo6Gh0KfIf6DyNDjpPY49mb4qIiGloeFNERExDoSciIqah0BMREdNQ6ImIiGko9ERExDQUeiIiYhoKPRERMQ07owuQP6+1tZXt27dz5MgRWltbcXJyIjg4mNTUVDw8PIwuT67zww8/UFRUxIkTJ7h27Rqurq5ERkaydu1avQFa5C+gK70xIDU1lZaWFj777DOqqqooLi6mu7ubJ598kt7eXqPLk1+dPHmS5cuXM2PGDIqLi6msrOTdd9/l22+/JTk5mb6+PqNLFODs2bOkpaWxePFi/P39iYiIIDs7m6tXrxpdmowAhd4Y8M033xAREYG7uzsAbm5uZGRk4OfnR1tbm8HVyZDMzExiY2PZsGEDLi4uAHh5ebF9+3ZcXV2pq6szuEI5evQojz/+ODNnzmT//v2cPHmSoqIi6urqiI2Npb6+3ugS5U/SY8jGgIyMDMrLy1m2bBmBgYH4+fkxY8YMo8uS61y8eJGIiAg++ugjAgICjC5HbqC3txeLxUJMTAxpaWk22/r7+0lISGD69Onk5+cbVKGMBF3pjQGvvvoqmZmZXL58mczMTCwWCxEREZSUlBhdmvyqubkZGLwKl7+nyspK6uvrWb58+bBt48ePJy4ujsOHD+uWwSiniSxjwPjx44mJiSEmJoaBgQFqa2v5/PPPef7553F3dycoKMjoEk1vaOi5sbERT0/PYduvXLmiQDRYQ0MDAHfeeecNt3t4eNDT00NzczPTpk37K0uTEaQrvVHuq6++wt/f33qTfdy4ccyePZu0tDR8fHw4c+aMwRUKwIwZM5g7dy5lZWXDtjU1NREeHk5paakBlcmQoSD76aefbri9oaGBCRMm4Ozs/FeWJSNMoTfKLVy4EFdXVzZu3EhNTQ09PT20t7dTUlLChQsXCAsLM7pE+dWmTZvYv38/BQUFtLS0MDAwwHfffceaNWuYN28eS5YsMbpEU/P392f69Ons27fP2nbq1Cm++OIL+vr6OHDgAA888AD29vYGVil/liayjAENDQ0UFBRw9OhRmpqamDBhAvfccw/r16/Hz8/P6PLkOqdOnaKoqIiqqio6Oztxc3MjMjKSp556CicnJ6PLM73jx4+TkpJCUlISiYmJ1NXVkZGRwS+//EJfXx+ffvopd911l9Flyp+g0BMRuU5NTQ1FRUVUVFTQ0dGBm5sbQUFBnDhxgsDAQNLS0nB1dTW6TLlFCj0RkT+gs7OTgwcPEh0dzaRJk4wuR26RQk9ERExDE1lERMQ0FHoiImIaCj0RETENhZ6IiJiGQk9ERExDoSciIqah0BNTWbVqFd7e3r/50djYeNN9Xrp0CW9vb77++usRr9fb25sDBw6MaJ8Wi4UdO3aMaJ8io4VWWRDTiYqK4sUXX7zhNj1pQ2RsU+iJ6UyaNMm61I+ImIuGN0X+jcVi4cMPP7Q+sDs0NJR9+/ZRWVlJbGwsfn5+PPbYY1y8eNHmuKqqKqKjo/H19eXRRx+lurrauq27u5vc3Fweeugh5s+fz3333cezzz5LS0sL8P9DpIWFhQQHB2OxWGhra7Ppv6mpiaVLl5KUlERnZycAJ0+eJDExkQULFhAWFsbmzZtpb2+3HnPt2jXS09MJCAggKCiI3bt3/5e+ayKjg0JP5AZyc3MJCQmhtLSUsLAwsrKyePnll3nhhRfYs2cPjY2N5OTk2Byzc+dO1qxZQ3FxMd7e3iQkJFBfXw/Atm3bKC0tZcuWLZSXl5Odnc2xY8d46623bPooKSnhgw8+ID8/n9tvv93a3tzczBNPPIGHhwfvvPMODg4OnD17ltWrVxMcHExJSQk5OTlUV1eTnJzM0NMFn3nmGevKDu+99x5Hjhz5zfXiRMxAw5tiOgcPHqS8vHxYe3h4OHl5eQCEhoaycuVKAJKSkti7dy+rVq1i0aJFwOB9wS+//NLm+HXr1rF06VIAsrKyOH78OB9//DGpqan4+vry8MMPExgYCAwuKrt48WJqamps+khISGD27Nk2ba2traxevZo77riDgoICJk6cCMCuXbsICgoiJSUFAE9PT+vVZEVFBe7u7hw9epTdu3cTEBAADIZ5eHj4rX/zREY5hZ6YjsVi4bnnnhvWPnnyZOtrLy8v6+uhJ+pfv47axIkT6e7utjl+KFgA7Ozs8PHx4dy5cwDExMRw4sQJ8vLyuHDhArW1tZw/f97mGIBZs2YNqysvL4+enh7mzZtnDTyAM2fO8OOPP+Lv7z/smNraWuvQqa+vr7Xdzc2NmTNnDttfxCwUemI6jo6ONwyX69nZDf/RGD/+P98NuO2222w+7+vrs4ZUVlYWZWVlxMbGEhYWxtq1a9m1a5d1+HPIjZasuf/++4mLi2PdunVERUURGhoKQH9/P8uWLWPNmjXDjnFxceHYsWPW/X7vaxMxC93TExkhp0+ftr7u7u7m9OnTzJkzh5aWFj755BOysrLIyMhgxYoV3H333Zw/f54/srLXkiVLiIiI4JFHHmHTpk3WiSpz5szh3LlzzJo1y/rR19fH1q1buXz5Mj4+PsDgZJchbW1twybgiJiJ/uQT0+nq6vrNN6FfP3nkZuXm5uLs7IynpyeFhYV0d3eTmJiIk5MTU6ZM4fDhw8ybN4+uri727NlDdXU1fn5+f7j/l156iaioKLZu3cqWLVtITk4mMTGRzMxMkpKS6OjoYPPmzXR0dODp6Ym9vT2RkZG88sor2Nvb4+bmRl5e3rBhWREzUeiJ6Rw6dIhDhw7dcNvQRJZbsX79enJycrh06RILFizg/fffx9nZGYD8/Hxef/11li1bxtSpU61vWSgqKuLnn3/+Q/27uLiwceNG0tPTiYyMJCQkhJ07d5Kfn8+KFStwcHBg0aJFpKenY29vD0B2djbbtm0jNTWV/v5+4uPjaW5uvuWvUWS008rpIiJiGrqnJyIipqHQExER01DoiYiIaSj0RETENBR6IiJiGgo9ERExDYWeiIiYhkJPRERMQ6EnIiKmodATERHTUOiJiIhpKPRERMQ0/g+wQiBYCCvWCQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sns.factorplot('Embarked','Survived',hue='Pclass',data=train_df)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Oldest passenger: 80.0 years\n", - "Youngest passenger: 0.42 years\n", - "Average age on the Titanic: 29.7 years\n" - ] - } - ], - "source": [ - "print('Oldest passenger:',train_df['Age'].max(),'years')\n", - "print('Youngest passenger:',train_df['Age'].min(),'years')\n", - "print('Average age on the Titanic:',round(train_df['Age'].mean(), 2),'years')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Key Observations\n", - "* The chance of survival for women is high as compared to men.\n", - "* 1st class passenger increases chances of survival.\n", - "* Children do have a higher chance of survival. Passengers between age group 15 to 35 had the least survival rate.\n", - "* The chances of survival at C looks to be better than Pclass1 passengers got at S.\n", - "* Having a larger family size is correlated with lower chance of survival." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Cleaning the Data + Feature Engineering

\n", - "

4 C's of Data Cleaning: Correcting, Completing, Creating, and Converting

" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Train columns with null values:\n", - "\n", - " PassengerId 0\n", - "Survived 0\n", - "Pclass 0\n", - "Name 0\n", - "Sex 0\n", - "Age 177\n", - "SibSp 0\n", - "Parch 0\n", - "Ticket 0\n", - "Fare 0\n", - "Cabin 687\n", - "Embarked 2\n", - "dtype: int64\n" - ] - } - ], - "source": [ - "print('Train columns with null values:\\n\\n', train_df.isnull().sum())" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "train_df = train_df.drop(['PassengerId', 'Ticket', 'Cabin'], axis=1) #correcting by dropping Cabin because it contains null values, and tickets since it has duplicates\n", - "test_df = test_df.drop(['PassengerId', 'Ticket', 'Cabin'], axis=1)\n", - "combine = [train_df, test_df]" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "#Creating a new title feature from Name\n", - "for df in combine:\n", - " df['Title'] = df.Name.str.extract(' ([A-Za-z]+)\\.', expand=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Sexfemalemale
Title
Capt01
Col02
Countess10
Don01
Dr16
Jonkheer01
Lady10
Major02
Master040
Miss1820
Mlle20
Mme10
Mr0517
Mrs1250
Ms10
Rev06
Sir01
\n", - "
" - ], - "text/plain": [ - "Sex female male\n", - "Title \n", - "Capt 0 1\n", - "Col 0 2\n", - "Countess 1 0\n", - "Don 0 1\n", - "Dr 1 6\n", - "Jonkheer 0 1\n", - "Lady 1 0\n", - "Major 0 2\n", - "Master 0 40\n", - "Miss 182 0\n", - "Mlle 2 0\n", - "Mme 1 0\n", - "Mr 0 517\n", - "Mrs 125 0\n", - "Ms 1 0\n", - "Rev 0 6\n", - "Sir 0 1" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.crosstab(train_df['Title'], train_df['Sex'])" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "#Creating a new title feature from Name\n", - "for df in combine:\n", - " df['Title'].replace(['Mlle','Mme','Ms','Ddr','Major','Lady','Countess','Jonkheer','Col','Rev','Capt','Sir','Don', 'Dona'],\n", - " ['Miss','Miss','Miss','Mr','Mr','Mrs','Mrs','Other','Other','Other','Mr','Mr','Mr', 'Mrs'],inplace=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Title\n", - "Dr 43.571429\n", - "Master 5.482642\n", - "Miss 21.834533\n", - "Mr 32.413823\n", - "Mrs 37.046243\n", - "Other 44.923077\n", - "Name: Age, dtype: float64" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.concat([train_df, test_df]).groupby('Title')['Age'].mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "#Correct null values in Age using Title\n", - "for df in combine:\n", - " df.loc[(df.Age.isnull())&(df.Title=='Dr'),'Age']=44\n", - " df.loc[(df.Age.isnull())&(df.Title=='Mr'),'Age']=32\n", - " df.loc[(df.Age.isnull())&(df.Title=='Mrs'),'Age']=37\n", - " df.loc[(df.Age.isnull())&(df.Title=='Master'),'Age']=6\n", - " df.loc[(df.Age.isnull())&(df.Title=='Miss'),'Age']=22\n", - " df.loc[(df.Age.isnull())&(df.Title=='Other'),'Age']=45" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.concat([train_df, test_df]).Age.isnull().any()" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Title\n", - "Dr 0.428571\n", - "Master 0.575000\n", - "Miss 0.704301\n", - "Mr 0.159004\n", - "Mrs 0.795276\n", - "Other 0.111111\n", - "Name: Survived, dtype: float64" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.concat([train_df, test_df]).groupby('Title')['Survived'].mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "#converting title and sex to categorical\n", - "title_mapping = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Other\": 6}\n", - "\n", - "for df in combine:\n", - " df['Title'] = df['Title'].map(title_mapping)\n", - " df['Title'] = df['Title'].fillna(0)\n", - " df['Sex'] = df['Sex'].map( {'female': 1, 'male': 0} ).astype(int)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], - "source": [ - "#Completing null values in Embarked feature\n", - "port = train_df.Embarked.dropna().mode()[0]\n", - "for df in combine:\n", - " df['Embarked'] = df['Embarked'].fillna(port)\n", - "\n", - "#converting a categorical feature to numeric\n", - "for df in combine:\n", - " df['Embarked'] = df['Embarked'].map( {'S': 0, 'C': 1, 'Q': 2} ).astype(int)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "#Complete missing fare with median\n", - "for df in combine: \n", - " df['Fare'].fillna(df['Fare'].median(), inplace = True)" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "#Create new features based on SibSp and Parch\n", - "for df in combine:\n", - " df['FamilySize'] = df['SibSp'] + df['Parch'] + 1\n", - " df['IsAlone'] = 1\n", - " df['IsAlone'].loc[df['FamilySize'] > 1] = 0" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
FamilySize
40.724138
30.578431
20.552795
70.333333
10.303538
50.200000
60.136364
80.000000
110.000000
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "FamilySize \n", - "4 0.724138\n", - "3 0.578431\n", - "2 0.552795\n", - "7 0.333333\n", - "1 0.303538\n", - "5 0.200000\n", - "6 0.136364\n", - "8 0.000000\n", - "11 0.000000" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[['FamilySize', 'Survived']].groupby(['FamilySize']).mean().sort_values(by='Survived', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Survived
IsAlone
00.505650
10.303538
\n", - "
" - ], - "text/plain": [ - " Survived\n", - "IsAlone \n", - "0 0.505650\n", - "1 0.303538" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df[['IsAlone', 'Survived']].groupby(['IsAlone']).mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "#Create AgeBand features, maximum age is 80, 5 bins total means 16 bin size\n", - "for df in combine:\n", - " df['AgeBand']=0\n", - " df.loc[df['Age']<=16,'AgeBand']=0\n", - " df.loc[(df['Age']>16)&(df['Age']<=32),'AgeBand']=1\n", - " df.loc[(df['Age']>32)&(df['Age']<=48),'AgeBand']=2\n", - " df.loc[(df['Age']>48)&(df['Age']<=64),'AgeBand']=3\n", - " df.loc[df['Age']>64,'AgeBand']=4" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xd4VGX6xvF7MpOeEAJJ6IEQIJQAAgFEehMWFxHFjm1RUQQVd7Gsq6y6dleUEsVVf4rIrgpSVBALijTpXTpJSCEkgfQ+yfz+QCPjUJLJJCfl+7kuL8lzzpm5k8CbzDPveV+TzWazCQAAAAAAAKhGbkYHAAAAAAAAQP1DUwoAAAAAAADVjqYUAAAAAAAAqh1NKQAAAAAAAFQ7mlIAAAAAAACodjSlAAAAAAAAUO1oSgEAAAAAAKDa0ZQCAAAAAABAtaMpBQAAAAAAgGpHUwpw0rBhwxQREVH2X6dOnRQVFaXbbrtN27ZtK9djbN68WREREUpISKjitFWjtLRUkyZN0pw5c4yOAgAuV5/H+SNHjujee+9V37591a9fPz344INKSkoyOhYAuFx9Huv37dunO+64Qz169NDll1+up59+WllZWUbHQj1DUwqohL/85S9av3691q9fr7Vr12rRokXy9fXV3XffreTkZKPjVamCggLNmDFD69evNzoKAFSZ+jjOp6en66677pKvr68WLlyo//znP0pPT9fdd9+twsJCo+MBgMvVx7E+JSVFd911l0JDQ7V06VJFR0drx44deuyxx4yOhnqGphRQCT4+PgoODlZwcLBCQkLUoUMHPfPMM8rPz9c333xjdLwqs2PHDo0fP167d+9WgwYNjI4DAFWmPo7z3333nfLz8/XSSy+pffv2ioyM1Kuvvqpjx45px44dRscDAJerj2N9YmKiBg4cqJkzZ6pNmzbq2bOnrr/+em3atMnoaKhnaEoBLmaxWCRJHh4ekiSr1ao5c+Zo2LBh6t69u6699lr99NNP5702KytLM2fO1ODBg9WlSxf1799fM2fOVEFBQdk57733nkaMGKHIyEgNGzZM8+bNk81mkyTl5+frySefVP/+/dW1a1ddc801F/1B+vjjj9tNVz73v8cff/yC161bt04jR47UsmXL5O/vX+GvEQDUZnV9nO/Xr5/mzZsnT09Ph2OZmZnl+yIBQC1X18f6Hj166PXXXy/7PI8ePaqlS5eqf//+Ff9iAZVgMToAUJecOnVKL7zwgnx8fDRo0CBJ0gsvvKCVK1fq6aefVmRkpJYuXaopU6Zo2bJlDtc/9thjSk5O1uzZs9W4cWPt2rVLTzzxhNq2bas77rhDa9as0dtvv6033nhDYWFh2rVrlx599FG1bNlS48aN05tvvqlDhw7pnXfeUYMGDfTZZ59p+vTpWr16tVq2bOnwfE8++aT++te/nvdz8fLyuuDn+dBDDzn5FQKA2q0+jPMtW7Z0eKz58+fL09NTvXv3ruiXDABqnfow1p9r1KhRio2NVYsWLRQdHV3BrxZQOTSlgEqYP3++3n//fUln3z0pKipSeHi43njjDTVv3lw5OTn69NNP9Y9//ENjxoyRdLahU1paqtzcXIfH69+/v6KiotSxY0dJZ18YLFy4UIcOHZIknThxQp6enmrZsqWaN2+u5s2bKyQkRM2bNy877ufnp9DQUPn7++uhhx5SVFSUAgICzpvf39+fmU4AcBGM89KCBQu0aNEiPfHEE2rcuHGlHgsAaqL6Pta/9tprKigo0Guvvabbb79dy5cvl6+vr9OPB1QETSmgEm666SbddtttkiQ3Nzc1bNjQ7gdCTEyMiouLddlll9ldN336dElnd+o41y233KI1a9Zo+fLlOnHihA4fPqz4+Hi1adNGknT11VdryZIluvLKKxUREaH+/ftr5MiRZT/A7rnnHt13333q16+fevToof79++uqq6664A+pp59+Wl988cV5j40dO1bPPvtsxb8oAFCH1Odx3maz6c0339Rbb72lyZMn684777zwFwoAarH6PNZLUteuXSVJc+bM0eDBg/Xtt9/qmmuuueg1gKvQlAIqISAgQK1bt77gcXd393I/ls1m03333adDhw5p7NixGjVqlB555BE99dRTZec0atRIy5cv186dO7VhwwatX79e77//vqZNm6apU6eqR48eWrt2rTZs2KBNmzZp8eLFmjNnjt59913169fP4TkfeughTZo06bx5/Pz8yp0dAOqq+jrOFxcX64knntCXX36pRx999IKPAQB1QX0c648dO6aEhAQNHjy4rBYSEqKAgACdOnWq3J8vUFk0pYAq1Lp1a7m7u2vv3r1l03clacKECRo9enTZuxKS9Msvv2jt2rX69NNP1b17d0ln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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sns.factorplot('AgeBand','Survived',data=train_df,col='Pclass')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "459 (-0.001, 7.91]\n", - "578 (14.454, 31.0]\n", - "863 (31.0, 512.329]\n", - "751 (7.91, 14.454]\n", - "64 (14.454, 31.0]\n", - "367 (-0.001, 7.91]\n", - "562 (7.91, 14.454]\n", - "731 (14.454, 31.0]\n", - "824 (31.0, 512.329]\n", - "833 (-0.001, 7.91]\n", - "Name: Fare, dtype: category\n", - "Categories (4, interval[float64]): [(-0.001, 7.91] < (7.91, 14.454] < (14.454, 31.0] < (31.0, 512.329]]" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.qcut(train_df['Fare'],4).sample(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
FareBandSurvived
0(-0.001, 7.91]0.197309
1(7.91, 14.454]0.303571
2(14.454, 31.0]0.454955
3(31.0, 512.329]0.581081
\n", - "
" - ], - "text/plain": [ - " FareBand Survived\n", - "0 (-0.001, 7.91] 0.197309\n", - "1 (7.91, 14.454] 0.303571\n", - "2 (14.454, 31.0] 0.454955\n", - "3 (31.0, 512.329] 0.581081" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df['FareBand'] = pd.qcut(train_df['Fare'], 4)\n", - "train_df[['FareBand', 'Survived']].groupby(['FareBand'], as_index=False).mean().sort_values(by='FareBand', ascending=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [ - "#Create FareBand feature\n", - "for df in combine:\n", - " df.loc[df['Fare'] <= 7.91, 'Fare'] = 0\n", - " df.loc[(df['Fare'] > 7.91) & (df['Fare'] <= 14.454), 'Fare'] = 1\n", - " df.loc[(df['Fare'] > 14.454) & (df['Fare'] <= 31), 'Fare'] = 2\n", - " df.loc[df['Fare'] > 31, 'Fare'] = 3\n", - " df['Fare'] = df['Fare'].astype(int)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare',\n", - " 'Embarked', 'Title', 'FamilySize', 'IsAlone', 'AgeBand', 'FareBand'],\n", - " dtype='object')" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [], - "source": [ - "#Drop unneeded features, better to use IsAlone as main feature for family size\n", - "train_df = train_df.drop(['Name', 'Parch', 'SibSp', 'FamilySize', 'FareBand', 'Age'], axis=1)\n", - "test_df = test_df.drop(['Name', 'Parch', 'SibSp', 'FamilySize','Age'], axis=1)\n", - "combine = [train_df, test_df]" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
SurvivedPclassSexFareEmbarkedTitleIsAloneAgeBand
85813121301
53203001101
85203121200
12603002111
73803000111
76511130303
71712110211
69113111200
16203000111
14213120301
\n", - "
" - ], - "text/plain": [ - " Survived Pclass Sex Fare Embarked Title IsAlone AgeBand\n", - "858 1 3 1 2 1 3 0 1\n", - "532 0 3 0 0 1 1 0 1\n", - "852 0 3 1 2 1 2 0 0\n", - "126 0 3 0 0 2 1 1 1\n", - "738 0 3 0 0 0 1 1 1\n", - "765 1 1 1 3 0 3 0 3\n", - "717 1 2 1 1 0 2 1 1\n", - "691 1 3 1 1 1 2 0 0\n", - "162 0 3 0 0 0 1 1 1\n", - "142 1 3 1 2 0 3 0 1" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_df.sample(10)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

Machine Learning

" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "((712, 7), (712,), (179, 7), (179,))" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_train, X_val, Y_train, Y_val = train_test_split(train_df.drop(\"Survived\", axis=1), train_df[\"Survived\"], test_size=0.2, random_state=True)\n", - "X_train.shape, Y_train.shape, X_val.shape, Y_val.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.770949720670391" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Fit a machine learning model on training data\n", - "logreg = LogisticRegression()\n", - "logreg.fit(X_train, Y_train)\n", - "Y_pred = logreg.predict(X_val)\n", - "accuracy_score(Y_val, Y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
FeatureCorrelation
1Sex2.131160
4Title0.516233
3Embarked0.298914
5IsAlone0.054254
2Fare-0.097203
6AgeBand-0.411285
0Pclass-1.229798
\n", - "
" - ], - "text/plain": [ - " Feature Correlation\n", - "1 Sex 2.131160\n", - "4 Title 0.516233\n", - "3 Embarked 0.298914\n", - "5 IsAlone 0.054254\n", - "2 Fare -0.097203\n", - "6 AgeBand -0.411285\n", - "0 Pclass -1.229798" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "coeff_df = pd.DataFrame(train_df.columns.delete(0))\n", - "coeff_df.columns = ['Feature']\n", - "coeff_df[\"Correlation\"] = pd.Series(logreg.coef_[0])\n", - "coeff_df.sort_values(by='Correlation', ascending=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.776536312849162" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dt = DecisionTreeClassifier()\n", - "dt.fit(X_train, Y_train)\n", - "Y_pred = dt.predict(X_val)\n", - "accuracy_score(Y_val, Y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 45, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "sns.heatmap(confusion_matrix(Y_val,Y_pred), annot=True,fmt='2.0f')" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Fitting 3 folds for each of 9 candidates, totalling 27 fits\n", - "0.8160112359550562\n", - "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=100,\n", - " max_features=None, max_leaf_nodes=None,\n", - " min_impurity_decrease=0.0, min_impurity_split=None,\n", - " min_samples_leaf=1, min_samples_split=2,\n", - " min_weight_fraction_leaf=0.0, presort=False, random_state=0,\n", - " splitter='best')\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[Parallel(n_jobs=1)]: Done 27 out of 27 | elapsed: 0.1s finished\n" - ] - } - ], - "source": [ - "from sklearn.model_selection import GridSearchCV\n", - "\n", - "max_depth=range(100,1000,100)\n", - "hyper={'max_depth':max_depth}\n", - "grd=GridSearchCV(estimator=DecisionTreeClassifier(random_state=0),param_grid=hyper,verbose=True)\n", - "grd.fit(X_train,Y_train)\n", - "print(grd.best_score_)\n", - "print(grd.best_estimator_)" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.776536312849162" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Y_pred = grd.best_estimator_.predict(X_val)\n", - "accuracy_score(Y_val, Y_pred)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

YOUR TURN...

" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [], - "source": [ - "#insert code here" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}