Skip to content

Instantly share code, notes, and snippets.

@gcnit
Created August 25, 2017 16:28
Show Gist options
  • Save gcnit/ab4ce1ba84989abbd76281217aeb9d03 to your computer and use it in GitHub Desktop.
Save gcnit/ab4ce1ba84989abbd76281217aeb9d03 to your computer and use it in GitHub Desktop.
Titanic Kaggle
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import scipy.stats as sp\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import sklearn\n",
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.svm import SVC\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"matplotlib.style.use('ggplot')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"train_dataset = pd.read_csv(\"../data/train.csv\")\n",
"test_dataset = pd.read_csv(\"../data/test.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 891 entries, 0 to 890\n",
"Data columns (total 12 columns):\n",
"PassengerId 891 non-null int64\n",
"Survived 891 non-null int64\n",
"Pclass 891 non-null int64\n",
"Name 891 non-null object\n",
"Sex 891 non-null object\n",
"Age 714 non-null float64\n",
"SibSp 891 non-null int64\n",
"Parch 891 non-null int64\n",
"Ticket 891 non-null object\n",
"Fare 891 non-null float64\n",
"Cabin 204 non-null object\n",
"Embarked 889 non-null object\n",
"dtypes: float64(2), int64(5), object(5)\n",
"memory usage: 83.6+ KB\n"
]
}
],
"source": [
"train_dataset.info()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>Braund, Mr. Owen Harris</td>\n",
" <td>male</td>\n",
" <td>22.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>A/5 21171</td>\n",
" <td>7.2500</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
" <td>female</td>\n",
" <td>38.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>PC 17599</td>\n",
" <td>71.2833</td>\n",
" <td>C85</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>Heikkinen, Miss. Laina</td>\n",
" <td>female</td>\n",
" <td>26.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>STON/O2. 3101282</td>\n",
" <td>7.9250</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
" <td>female</td>\n",
" <td>35.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>113803</td>\n",
" <td>53.1000</td>\n",
" <td>C123</td>\n",
" <td>S</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>Allen, Mr. William Henry</td>\n",
" <td>male</td>\n",
" <td>35.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>373450</td>\n",
" <td>8.0500</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" PassengerId Survived Pclass \\\n",
"0 1 0 3 \n",
"1 2 1 1 \n",
"2 3 1 3 \n",
"3 4 1 1 \n",
"4 5 0 3 \n",
"\n",
" Name Sex Age SibSp \\\n",
"0 Braund, Mr. Owen Harris male 22.0 1 \n",
"1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n",
"2 Heikkinen, Miss. Laina female 26.0 0 \n",
"3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n",
"4 Allen, Mr. William Henry male 35.0 0 \n",
"\n",
" Parch Ticket Fare Cabin Embarked \n",
"0 0 A/5 21171 7.2500 NaN S \n",
"1 0 PC 17599 71.2833 C85 C \n",
"2 0 STON/O2. 3101282 7.9250 NaN S \n",
"3 0 113803 53.1000 C123 S \n",
"4 0 373450 8.0500 NaN S "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_dataset.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Fare</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>891.000000</td>\n",
" <td>891.000000</td>\n",
" <td>891.000000</td>\n",
" <td>714.000000</td>\n",
" <td>891.000000</td>\n",
" <td>891.000000</td>\n",
" <td>891.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>446.000000</td>\n",
" <td>0.383838</td>\n",
" <td>2.308642</td>\n",
" <td>29.699118</td>\n",
" <td>0.523008</td>\n",
" <td>0.381594</td>\n",
" <td>32.204208</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>257.353842</td>\n",
" <td>0.486592</td>\n",
" <td>0.836071</td>\n",
" <td>14.526497</td>\n",
" <td>1.102743</td>\n",
" <td>0.806057</td>\n",
" <td>49.693429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.420000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>223.500000</td>\n",
" <td>0.000000</td>\n",
" <td>2.000000</td>\n",
" <td>20.125000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>7.910400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>446.000000</td>\n",
" <td>0.000000</td>\n",
" <td>3.000000</td>\n",
" <td>28.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>14.454200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>668.500000</td>\n",
" <td>1.000000</td>\n",
" <td>3.000000</td>\n",
" <td>38.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>31.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>891.000000</td>\n",
" <td>1.000000</td>\n",
" <td>3.000000</td>\n",
" <td>80.000000</td>\n",
" <td>8.000000</td>\n",
" <td>6.000000</td>\n",
" <td>512.329200</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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_dataset.describe()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def plot_attribute(df, x_axis, index, axes):\n",
" ax = axes[index]\n",
" survived = df[[x_axis, 'Survived']].groupby([x_axis],as_index=False).mean()\n",
" ax.set_ylabel('Survival Probability')\n",
" ax.set_ylim([0, 1])\n",
" survived.plot.bar(x=x_axis, y='Survived', ax=ax)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def set_title(df):\n",
" names = pd.DataFrame(df.Name.str.split(',').tolist(), columns=\"surname rest\".split())\n",
" titles = pd.DataFrame(names.rest.str.split('.').tolist())\n",
" df['Title'] = titles[0]\n",
" is_mr = (df['Title'] == ' Mr') | (df['Title'] == ' Sir')\n",
" is_mrs = (df['Title'] == ' Mrs') | (df['Title'] == ' Mlle')\n",
" is_miss = (df['Title'] == ' Miss') | (df['Title'] == ' Ms') | (df['Title'] == ' Mme')\n",
" is_master = (df['Title'] == ' Master')\n",
" is_unknown = ~(is_mr | is_mrs | is_miss | is_master)\n",
" df['Title'][is_mr] = 'Mr'\n",
" df['Title'][is_mrs] = 'Mrs'\n",
" df['Title'][is_miss] = 'Miss'\n",
" df['Title'][is_master] = 'Master'\n",
" df['Title'][is_unknown] = 'Unknown'\n",
"\n",
"def set_is_child(df):\n",
" df['Age'].fillna(df['Age'].median(), inplace=True)\n",
" df['isChild'] = df['Age'].round()\n",
" is_child = df['isChild'] < 16\n",
" is_not_child = df['isChild'] >= 16\n",
" df['isChild'][is_child] = 1\n",
" df['isChild'][is_not_child] = 0\n",
" df['isChild'] = df['isChild'].astype(int)\n",
"\n",
"def set_is_cheap(df):\n",
" df['Fare'].fillna(df['Fare'].median(), inplace=True)\n",
" df['isCheap'] = df['Fare'].round()\n",
" is_cheap = df['isCheap'] <= 50\n",
" is_not_cheap = df['isCheap'] > 50\n",
" df['isCheap'][is_cheap] = 1\n",
" df['isCheap'][is_not_cheap] = 0\n",
" df['isCheap'] = df['isCheap'].astype(int)\n",
"\n",
"def set_is_male(df):\n",
" is_male = (df['Sex'] == 'male')\n",
" is_female = (df['Sex'] == 'female')\n",
" df['isMale'] = df['Sex']\n",
" df['isMale'][is_male] = 1\n",
" df['isMale'][is_female] = 0\n",
" df['isMale'] = df['isMale'].astype(int)\n",
" \n",
"def set_family(df):\n",
" df['Family'] = df['Parch'] + df['SibSp']\n",
" is_alone = df['Family'] == 0\n",
" is_small_family = (df['Family'] > 0) & (df['Family'] < 4)\n",
" is_big_family = df['Family'] >= 4\n",
" df['Family'][is_alone] = 'Alone'\n",
" df['Family'][is_small_family] = 'Small'\n",
" df['Family'][is_big_family] = 'Big'\n",
"\n",
"def cleanup_embarked(df):\n",
" df['Embarked'].fillna('S', inplace=True)\n",
"\n",
"def cleanup_pclass(df):\n",
" df['Pclass'] = df['Pclass'].astype(str)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def derive_features(df):\n",
" set_is_male(df)\n",
" set_is_child(df)\n",
" set_is_cheap(df)\n",
" set_title(df)\n",
" set_family(df)\n",
" cleanup_embarked(df)\n",
" cleanup_pclass(df)\n",
"\n",
"def create_dummy_values(df):\n",
" dummies = pd.get_dummies(df[['Title', 'Family', 'Pclass', 'Embarked']])\n",
" df = df.join(dummies)\n",
" return df\n",
"\n",
"def drop_features(df):\n",
" df = df.drop(['PassengerId', 'Name', 'Pclass', 'Sex', 'Ticket', 'Cabin', 'Title', 'Embarked', 'Age', 'Fare', 'Family', 'SibSp', 'Parch'], axis=1)\n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"train_df = train_dataset.copy()\n",
"derive_features(train_df)\n",
"train_df = create_dummy_values(train_df)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJUAAAjXCAYAAACQBC7NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XuQVfWBJ/BvP3grSncjSMHqBHUcfGXYNlFMEKRlHB+E\nJD4mY2I2bjlGRvCRiVmMr8ToYCbGGFHXQZdMxq2VcVXEtcaY1smqYKpQRBedjbJuEp3mke7GQETQ\n9t79I5XedLDhXui+3Y2fTxVV99zzO+d8b/9xPfX1d363qlgsFgMAAAAAZaju6wAAAAAADDxKJQAA\nAADKplQCAAAAoGxKJQAAAADKplQCAAAAoGxKJQAAAADKVluJi9xxxx1ZtWpV9ttvv9x888077C8W\ni1m8eHFeeOGFDBkyJHPmzMlHPvKRSkQDAAAAYDdUZKbStGnTcuWVV3a7/4UXXsj69evz/e9/P3/1\nV3+Vu+++uxKxAAAAANhNFSmVJk2alH322afb/c8991ymTp2aqqqqHHbYYXn77bezadOmSkQDAAAA\nYDf0izWV2tvb09DQ0LldX1+f9vb2PkwEAAAAwM5UZE2lntTc3Jzm5uYkyYIFC/o4DQAAAMCHU78o\nlerq6tLa2tq53dbWlrq6ug8c29TUlKamps7tlpaWXs8HfLg0NDR0+U4CAOiv3LcAvWHcuHEljesX\nj781NjbmqaeeSrFYzKuvvprhw4dn1KhRfR0LAAAAgG5UZKbS9773vbzyyivZsmVLvvzlL+fss89O\nR0dHkmTmzJn50z/906xatSrz5s3L4MGDM2fOnErEAgAAAGA3VRWLxWJfh9gTHn8Deppp5ADAQOG+\nBegNpT7+1i/WVAIAAADYHcViMdu2bUuhUEhVVVVfxxkwisViqqurM3To0N3+uymVAAAAgAFr27Zt\nGTRoUGprVRzl6ujoyLZt2zJs2LDdOr5fLNQNAAAAsDsKhYJCaTfV1tamUCjs9vFKJQAAAGDA8sjb\nntmTv59SCQAAAGAP3XrrrZk+fXqamppy8sknZ9WqVXt8zscffzwLFy7sgXTJoYce2iPn+X3mhwEA\nAAB7jfcvmNWj56tZtGyXY5577rk0Nzfnsccey5AhQ9Le3p533323pPN3dHR0+/jezJkzM3PmzLLy\nVpKZSgAAAAB7YOPGjamrq8uQIUOSJHV1dRk7dmw+/vGPp729PUny4osv5swzz0yS3HzzzZk7d24+\n9alPZd68eTn99NPzs5/9rPN8Z555Zl588cUsWbIkX//617N58+Z87GMf61z/aOvWrWlsbMx7772X\nn//85zn33HNzyimn5NOf/nTWrl2bJPnlL3+ZM844IzNmzMhNN93UK59bqQQAAACwB0488cS0tLTk\nE5/4RObPn59nn312l8e89tprue+++3LHHXdk1qxZeeSRR5IkGzZsyIYNG3LMMcd0jh05cmSOOOKI\nzvP++Mc/zrRp0zJo0KBcccUVuf766/PYY4/l6quvzvz585Mk11xzTc4777w88cQTGTNmTC98aqUS\nAAAAwB4ZMWJEHnvssXz7299OfX19LrrooixZsmSnx8ycOTPDhg1Lkpxxxhl59NFHkySPPPJITjvt\ntB3Gz5o1K8uW/fZRvGXLlmXWrFl5++238/zzz+fCCy/MySefnK997WvZuHFjkmTlypWZPXt2kuSz\nn/1sj33W32dNJQAAAIA9VFNTkylTpmTKlCk5/PDDc//996e2trbzkbXt27d3GT98+PDO1wceeGBG\njRqVV155JcuWLcuCBQt2OP/MmTOzYMGCbNq0KS+99FJOOOGEbN26NSNHjsyPf/zjD8zU27+MZ6YS\nAAAAwB5Yu3ZtXn/99c7tl19+OePHj8/48ePz0ksvJUnnTKTuzJo1K3feeWe2bNmSSZMm7bB/xIgR\nOeaYY3LNNdekqakpNTU12XfffTNhwoTOR+eKxWJefvnlJMmxxx6bhx9+OEny4IMP9sjn/ENKJQAA\nAIA9sHXr1lx66aWZNm1ampqa8tprr+UrX/lKLr/88lxzzTX58z//89TU1Oz0HKeddloefvjhnHHG\nGd2OmTVrVh588MHMmvX/f+Fu4cKFue+++9LU1JTp06fn8ccfT5J885vfzA9+8IPMmDEj69ev75kP\n+geqisVisVfOXCEtLS19HQHYyzQ0NKS1tbWvYwAA7JL7FvhtofP7j5JRng/6+40bN66kY81UAgAA\nAKBsSiUAAAAAyqZUAgAAAKBsSiUAAABgwBrgS0X3uT35+ymVAAAAgAGruro6HR0dfR1jQOro6Eh1\n9e5XQ7U9mAUAAACgooYOHZpt27Zl+/btqaqq6us4A0axWEx1dXWGDh262+dQKgEAAAADVlVVVYYN\nG9bXMT6UPP4GAAAAQNmUSgAAAACUTakEAAAAQNmUSgAAAACUTakEAAAAQNmUSgAAAACUTakEAAAA\n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\nrVqVm266KUOHDs3NN9/cY58HAKAnWKgbAGAXamtrs379+mzevDlDhw7NYYcdliTZsmVLRo0atcvj\np02blnHjxmXw4ME5/vjj8/Of/3yXxzz77LM59dRT09DQkH322SezZ8/e048BANCjlEoAALvw5S9/\nOS0tLbnssssyf/78PP/880mSfffdN5s2bdrl8fvvv3/n6yFDhmTbtm27PGbTpk1dZkCNHj16N5ID\nAPQepRIAwC4ceOCBufTSS7No0aJ86lOfyne/+91s27YtRx11VNauXZu2trYev+aoUaPS2trauf37\nrwEA+gOlEgDALjz11FPZvHlzqqurM3z48CRJdXV1jj766Bx99NH5zne+k9dffz3vv/9+3nnnnTz+\n+ON58skn9+iaxx9/fP75n/85bW1t+c1vfpOlS5f2xEcBAOgxFuoGANiF1atX54c//GG2b9+e0aNH\n55JLLsngwYOTJF/5ylfy4IMP5pZbbslbb72VfffdN0cffXTOPPPMPbrmjBkz0tLSkq9+9asZNmxY\nzjjjjKxZs6YnPg4AQI+oKhaLxb4OAQAAAMDA4vE3AAAAAMqmVAIAAACgbEolAAAAAMqmVAIAAACg\nbEolAAAAAMqmVAIAAACgbEolAAAAAMqmVAIAAACgbEolAAAAAMqmVAIAAACgbEolAAAAAMqmVAIA\nAACgbEolAAAAAMqmVAIAAACgbEolAAAAAMqmVAIAAACgbEolAAAAAMqmVAIAAACgbEolAAAAAMqm\nVAIAAACgbLWVuMgdd9yRVatWZb/99svNN9+8w/5isZjFixfnhRdeyJAhQzJnzpx85CMfqUQ0AAAA\nAHZDRWYqTZs2LVdeeWW3+1944YWsX78+3//+9/NXf/VXufvuuysRCwAAAIDdVJFSadKkSdlnn326\n3f/cc89l6tSpqaqqymGHHZa33347mzZtqkQ0AAAAAHZDv1hTqb29PQ0NDZ3b9fX1aW9v78NEAAAA\nAOxMRdZU6knNzc1pbm5OkixYsKCP0wAAAAB8OPWLUqmuri6tra2d221tbamrq/vAsU1NTWlqaurc\nbmlp6fV8wIdLQ0NDl+8kAID+yn0L0BvGjRtX0rh+8fhbY2NjnnrqqRSLxbz66qsZPnx4Ro0a1dex\nAAAAAOhGRWYqfe9738srr7ySLVu25Mtf/nLOPvvsdHR0JElmzpyZP/3TP82qVasyb968DB48OHPm\n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\nAMqmVAIAAACgbDtcqLutra2kA0yePHm3hQEAAACgb9hhqdTR0dGTOQAAAADoQ3ZYKl1xxRU9mQMA\nAACAPmSHpdJbeeONN7Jx48YUi8WubYMHD97toQAAAACobiWVSitXrszXvva1/OEPf9huX6lrLwEA\nAACw5yjp6W/33XdfRo8enW9961tpbGzM3Llzc8opp+TKK6+sdD4AAAAAqlBJpdIf/vCHnH/++dl7\n771TLBbT2NiYCy64wFVKAAAAAO9SJZVK/fr1y7Zt25Ik++67b9atW5disZg//elPFQ0HAAAAQHUq\naU2lww8/PE8++WROPPHEjB07Nrfddlv69euX0aNHVzofAAAAAFWopFLpmmuu6Xp93nnnZcSIEdm8\neXPGjx9fsWAAAAAAVK+SSqXf//73GTlyZJKktrZWmQQAAADwLldSqfTFL34xAwcOzLHHHpvjjjsu\ngwcPrnQuAAAAAKpYSQt1f/Ob38wFF1yQl19+Oddee20+97nP5Wc/+1lee+21kk+0dOnSTJ8+PVOn\nTs28efN2OO9Xv/pVzj333PzHf/xHyccGAAAAoGeVdKVSbW1txowZkzFjxuTNN9/MkiVL8m//9m/5\n9re/nX/5l3952/cXCoXMmTMn119/fZqbmzNjxoy0trZm+PDh3ea98cYb+dnPfpZDDz101z4NAAAA\nAD2ipCuV/urNN9/MU089lcWLF2fFihV53/veV9L7li9fniFDhmTw4MGpr6/PuHHjsmTJku3mtbW1\n5eMf/3j69etXTiwAAAAAelhJVyo9/fTTWbhwYZ566qkMHz4848aNy2WXXZb999+/pJN0dnamubm5\na9zc3Jxly5Z1m7NixYqsW7cuY8aMyfz583d4rAULFmTBggVJkpkzZ6alpaWkDLCmtwMAeyTfQwD0\npvr6et9FQK8pqVT69re/nWOPPTbnnntuhgwZsttDFAqFPPjgg7niiivedu7EiRMzceLErvG6det2\nex4AKJXvIQB6U0tLi+8iYLcbNmxYSfNKKpXuuuuudxSmqakpHR0dXeOOjo40NTV1jTdv3pyXXnop\nt9xyS5Lk1VdfzR133JFrr702o0aNekfnBgAAAGD322Gp9MMf/jCf+MQnkvxlraMdmTx58tueZNSo\nUWlvb8/atWvT1NSUxYsXZ9q0aV37GxsbM2fOnK7xzTffnAsvvFChBAAAAFCldlgq/ecri96Jurq6\nXHrppbn11ltTKBQyYcKEjBgxIm1tbRk1alRaW1vf0fEBAAAA6Fk1xWKx2Nsh3olVq1b1dgT6iG2X\nndXbEYA9UN3sHT9cAgAqzZpKQCWUuqZSbSmT7rjjjjz55JN5880331EoAAAAAPYMJZVKRxxxRObP\nn5/LLrssd999d5YuXZpCoVDpbAAAAABUqZKe/nbmmWfmzDPPTHt7exYuXJgHHnggf/rTn3LMMcfk\n0ksvrXRGAAAAAKpMSVcq/dXQoUNzzjnnZPr06TnooIPy85//vFK5AAAAAKhiJV2plCSrV6/OokWL\nsmjRomzYsCFjx47N2WefXclsAAAAAFSpkkqlGTNmZNWqVTnqqKNy4YUX5gMf+EDq6uoqnQ0AAACA\nKvW2pVKxWMzYsWNzyimnpLGxsScyAQAAAFDl3nZNpZqamnz/+99PQ0NDT+QBAAAAoA8oaaHukSNH\npr29vdJZAAAAAOgjSlpTafTo0bnttttywgknpKWlpdu+k046qSLBAAAAAKheJZVKL7zwQg488MD8\n7ne/226fUgkAAADg3aekUummm26qdA4AAAAA+pCSSqVCobDDfbW1JS3LBAAAAMAepKRS6bzzztvh\nvra2tt0WBgAAAIC+oaRS6e677+42Xr9+febNm5fW1taKhAIAAACgupV079qgQYO6/TnssMNy1VVX\n5V//9V8rnQ8AAACAKrTLCyJt2rQpGzZs2J1ZAAAAAOgjSrr9bdasWampqekab9myJb/73e9y/PHH\nVywYAAAAANWrpFJpyJAh3cb9+/fPKaeckg984AMVCQUAAABAdSupVDrnnHMqnQMAAACAPmSnpdKK\nFStSX1+f97znPUmSDRs25P77789LL72UQw89NBdddFEaGhp6JCgAAAAA1WOnC3Xff//9efXVV7vG\n//zP/5z29vacfPLJeemll/LQQw9VPCAAAAAA1WenpdLLL7+c973vfUmS119/Pb/5zW8yderUnHba\naZk+fXqeeuqpHgkJAAAAQHXZaam0bdu21Nf/5Q65ZcuWZf/998+wYcOSJC0tLXn99dcrnxAAAACA\nqrPTUmnEiBF58sknkySLFi3KkUce2bWvs7MzjY2NlU0HAAAAQFXaaal0/vnnZ/bs2bnkkkvy9NNP\nZ9KkSV37Fi9enPe+970VDwgAAABA9dnp098OP/zw3HPPPWlvb8/QoUMzYMCArn1jxozJuHHjKh4Q\n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\nAAAAlE2pBAAAAEDZlEoAAAAAlE2pBAAAAEDZlEoAAAAAlE2pBAAAAEDZlEoAAAAAlE2pBAAAAEDZ\nlEoAAAAAlE2pBAAAAEDZlEoAAAAAlE2pBAAAAEDZlEoAAAAAlE2pBAAAAEDZ6nviJPfcc0+efvrp\n7LfffvnSl7603f5isZi5c+fmN7/5Tfr3758rrrgiBx98cE9EAwAAAGAX9MiVSieeeGKuu+66He7/\nzW9+k9WrV+drX/ta/vEf/zH33XdfT8QCAAAAYBf1SKl0xBFHZJ999tnh/l//+tcZP358ampqcthh\nh+X111/P+vXreyIaAAAAALugR25/ezudnZ1paWnpGjc3N6ezszMHHHDAdnMXLFiQBQsWJElmzpzZ\nYxkBAAAA+P9VRalUjokTJ2bixIld41WrVvViGmBP1NLSknXr1vV2DACAt+V3C1AJw4YNK2leVTz9\nrampqds/hB0dHWlqaurFRAAAAADsTFWUSq2trXn88cdTLBbz4osvprGx8S1vfQMAAACgOvTI7W9f\n+cpX8vzzz2fjxo355Cc/mXPPPTdbt25Nkpx66qn5r//1v+bpp5/OtGnTstdee+WKK67oiVgAAAAA\n7KKaYrFY7O0Q74Q1lYDdzdoEAEBf4XcLJMViMZs3b06hUEhNTU1vx+kzisViamtr09DQsN3fW6lr\nKvW5hboBAAAA/mrz5s3p169f6utVHOXaunVrNm/enAEDBuzS+6tiTSUAAACAXVEoFBRKu6i+vj6F\nQmGX369UAgAAAPost7y9M+/k70+pBAAAAEDZXB8GAAAA7DG2XXbWbj1e3ez5Jc376le/mnnz5qWu\nri41NTW5/fbbM2bMmHd07n/7t3/Liy++mKuuuuodHSdJDj300CxbtuwdH+dvKZUAAAAA3oFf//rX\nWbBgQR5++OH0798/nZ2defPNN0t679atW3e4JtSpp56aU089dXdG3a3c/gYAAADwDqxduzZNTU3p\n379/kqSpqSlDhgzJ0Ucfnc7OziTJb3/725x99tlJki996UuZOnVqPv7xj2fatGk588wz88ILL3Qd\n7+yzz85vf/vbtLW15XOf+1w2bNiQj3zkI12Lam/atCmtra3585//nN///vc5//zzc9ppp+Xv/u7v\nsnz58iTJH//4x3zsYx/LySefnNtvv70in1upBAAAAPAOnHDCCVm1alWOO+64zJgxI08++eTbvmfZ\nsmX5zne+k3vuuSdnnXVWfvzjHydJ1qxZkzVr1uSDH/xg19yBAwdm9OjRXcf993//95x44onp169f\nrr322nzhC1/Iww8/nBtuuCEzZsxIktx444256KKL8sgjj2Tw4MEV+NRKJQAAAIB3ZO+9987DDz+c\nO+64I83Nzbn88svT1ta20/eceuqpGTBgQJLkYx/7WH76058mSX784x/njDPO2G7+WWedlfnz/7K+\n0/z583PWWWfl9ddfz1NPPZUpU6bklFNOyWc/+9msXbs2SbJkyZJMmjQpSfL3f//3u+2z/i1rKgEA\nAAC8Q3V1dRk3blzGjRuXww8/PN/73vdSX1/fdcvali1bus1vbGzsej106NAccMABef755zN//vzM\nnDlzu+OfeuqpmTlzZtavX59nnnkmxx57bDZt2pSBAwfm3//9398yU01NzW78hNtzpRIAAADAO7B8\n+fKsWLGia/zcc89l+PDhGT58eJ555pkk6boSaUfOOuus3Hvvvdm4cWOOOOKI7fbvvffe+eAHP5gb\nb7wxEydOTF1dXfbdd9+MGDGi69a5YrGY5557Lkly1FFH5V//9V+TJD/84Q93y+f8z1ypBAAAAOwx\n6mbP7/Fzbtq0Kddff302bNiQ+vr6jBw5MnfccUeWLVuWT3/60/mnf/qnHHPMMTs9xhlnnJEbb7wx\nn/rUp3Y456yzzsqUKVPy/e9/v2vb3XffnRkzZuSrX/1qtm7dmo9//OMZPXp0Pv/5z+fKK6/MPffc\nU7EnyNUUi8ViRY7cQ1atWtXbEYA9TEtLS9atW9fbMQAA3pbfLfCXQudvbyWjPG/19zds2LCS3uv2\nNwAAAADKplQCAAAAoGxKJQAAAKDP6uOr+vS6d/L3p1QCAAAA+qza2tps3bq1t2P0SVu3bk1t7a5X\nQ57+BgAAAPRZDQ0N2bx5c7Zs2ZKamprejtNnFIvF1NbWpqGhYZePoVQCAAAA+qyampoMGDCgt2O8\nK7n9DQAAAICyKZUAAAAAKJtSCQAAAICyKZUAAAAAKJtSCQAAAICyKZUAAAAAKJtSCQAAAICyKZUA\nAAAAKJtSCQAAAICyKZUAAAAAKJtSCQAAAICyKZUAAAAAKJtSCQAAAICyKZUAAAAAKJtSCQAAAICy\nKZUAAAAAKJtSCQAAAICyKZUAAAAAKJtSCQAAAICyKZUAAAAAKJtSCQAAAICyKZUAAAAAKJtSCQAA\nAICyKZUAAAAAKJtSCQAAAICy1ffUiZYuXZq5c+emUCjk5JNPzqRJk7rtX7duXb7+9a/n9ddfT6FQ\nyH//7/89Y8aM6al4AAAAAJShR0qlQqGQOXPm5Prrr09zc3NmzJiR1tbWDB8+vGvOD37wgxxzzDE5\n9dRTs3Llyvzv//2/lUoAAAAAVapHbn9bvnx5hgwZksGDB6e+vj7jxo3LkiVLus2pqanJpk2bkiSb\nNm3KAQcc0BPRAAAAANgFPXKlUmdnZ5qbm7vGzc3NWbZsWbc555xzTr74xS/m4YcfzpYtW3LDDTe8\n5bEWLFiQBQsWJElmzpyZlpaWygUH3pXq6+v92wIA9Al+twC9qcfWVHo7ixYtyoknnpiPfexjefHF\nFzNr1qx86UtfSm1t94upJk6cmIkTJ3aN161b19NRgT1cS0uLf1sAgD7B7xagEoYNG1bSvB65/a2p\nqSkdHR1d446OjjQ1NXWb8+ijj+aYY45Jkhx22GH585//nI0bN/ZEPAAAAADK1COl0qhRo9Le3p61\na9dm69atWbx4cVpbW7vNaWlpybPPPpskWblyZf785z9n4MCBPREPAAAAgDL1yO1vdXV1ufTSS3Pr\nrbemUChkwoQJGTFiRNra2jJq1Ki0trbmoosuyje+8Y389Kc/TZJcccUVqamp6Yl4AAAAAJSpplgs\nFns7xDuxatWq3o4A7GGsTQAA9BV+twCVUFVrKgEAAACwZ1EqAQAAAFA2pRIAAAAAZVMqAQAAAFA2\npRIAAAAAZVMqAQAAAFA2pRIAAAAAZVMqAQAAAFA2pRIAAAAAZVMqAQAAAFA2pRIAAAAAZVMqAQAA\nAFA2pRIAAAAAZVMqAQAAAFA2pRIAAAAAZVMqAQAAAFA2pRIAAAAAZSupVNq4cWOlcwAAAADQh9SX\nMumKK67IkUcemfHjx6e1tTX19SW9DQAAAIA9VE2xWCy+3aQNGzZk4cKFeeKJJ7J69eqMHTs2J5xw\nQg4//PCeyLhTq1at6u0IwB6mpaUl69at6+0YAABvy+8WoBKGDRtW0rySSqW/tWrVqjz++ON54okn\nUlNTk+OPPz4nnXRSBg0atEtB3ymlErC7+XEGAPQVfrcAlVBqqVT2Qt2vvvpqXn311bzxxhsZPHhw\nOjs7c+2112bevHllhwQAAACgbyppcaSXXnopTzzxRBYuXJj+/fvnhBNOyD/90z+lubk5SfL3f//3\n+cxnPpNJkyZVNCwAAAAA1aGkUummm27Ksccem2uuuSaHHHLIdvsPPPDAnH766bs9HAAAAADVqaQ1\nlZ5//vkcccQR221fvnz5W5ZMPcmaSsDuZm0CAKCv8LsFqIRS11Qq6Uql22+/PQ888MB222+99dbM\nnTu3vGTQS7ZddlZvR6CPWNPbAehT6mbP7+0IAADQK3ZaKhUKhSRJsVjs+vNXa9asSV1dXWXTAQAA\nAFCVdloqnXfeeV2v/9t/+2/d9tXW1ubv/u7vKpMKAAAAgKq201Lp7rvvTrFYzM0335xbbrmla3tN\nTU0GDhyYvfbaq+IBAQAAAKg+Oy2VBg0alCS55557eiQMAAAAAH3DDkulb3zjG5kyZUqSv1yxtCNX\nXXXV7k8FAAAAQFXbYal04IEHdr0ePHhwj4QBAAAAoG/YYan0t4twn3POOT0SBgAAAIC+YYel0rPP\nPlvSAd7//vfvtjAAAAAA9A07LJXuvffet31zTU3NTtdbAgAAAGDPtMNS6etf/3pP5gAAAACgD6nt\n7QAAAAAA9D07vFLp6quvzl133ZUkufzyy3d4gFJukwMAAABgz7LDUmnKlCldr6dOndojYQAAAADo\nG3ZYKh1++OFdr4844ogeCQMAAABA37DDUulvbd26NT/4wQ+yaNGirF+/PgcccEDGjRuXT3ziE9lr\nr70qnREAAACAKlNSqTR79uysWrUql1xySQYNGpRXXnklP/rRj9LZ2Zkrrrii0hkBAAAAqDIllUpL\nlizJrFmzsvfeeydJhg8fnkMPPdRaSwAAAADvUrWlTNp///2zZcuWbtvefPPNHHDAARUJBQAAAEB1\n2+GVSs8++2zX6/Hjx+e2227Laaedlubm5nR0dOTnP/95xo8fX/KJli5dmrlz56ZQKOTkk0/OpEmT\ntpuzePHifO9730tNTU0OOuigTJ8+vcyPAwAAAEBP2GGpdO+992637Uc/+lG38YIFC96yHPrPCoVC\n5syZk+uvvz7Nzc2ZMWNGWltbM3z48K457e3tmTdvXr7whS9kn332yWuvvVbO5wAAAACgB+2wVPr6\n17++206yfPnyDBkyJIMHD06SjBs3LkuWLOlWKj3yyCP56Ec/mn322SdJst9+++228wMAAACwe5W0\nUPc71dnZmebm5q5xc3Nzli1b1m3OqlWrkiQ33HBDCoVCzjnnnHzoQx/qiXgAAAAAlKmkUmnTpk35\n3ve+l+effz4bN25MsVjs2vdWt8ntikKhkPb29tx0003p7OzMTTfdlDvvvLPriXN/tWDBgixYsCBJ\nMnPmzLS0tOyW87PnW9PbAYA9ku8hAHpTfX297yKg15RUKt13333p7OzM2WefnVmzZmXq1KmZP39+\njj766JJO0tTUlI6Ojq5xR0dHmpqatptz6KGHpr6+PgceeGCGDh2a9vb2HHLIId3mTZw4MRMnTuwa\nr1u3rqQMAFAJvocA6E0tLS2+i4DdbtiwYSXNqy1l0jPPPJNPf/rTOeqoo1JbW5ujjjoqV199dZ54\n4omSTjJq1Ki0t7dn7dq12bp1axYvXpzW1tZucz7ykY/kueeeS5Js2LAh7e3tXWswAQAAAFBdSrpS\nqVgsprGxMUnS0NCQTZs2Zf/998/q1atLOkldXV0uvfTS3HrrrSkUCpkwYUJGjBiRtra2jBo1Kq2t\nrfngBz+Y3/72t7n66qtTW1ubCy64IPvuu++ufzIAAAAAKqakUumggw7K888/nyOPPDKHH3547rvv\nvjQ0NGTo0KEln2jMmDEZM2ZMt22TJ0/uel1TU5OLL744F198ccnHBAAAAKB3lHT725QpUzJo0KAk\nySWXXJJ+/frl9ddfz1VXXVXRcAAAAABUp5KuVPrbtY3222+/XH755RULBAAAAED1K6lUSpJHH300\nixYtyvr163PAAQfk2GOPzYQJE1JTU1PJfAAAAABUoZJKpYceeihLlizJGWec0fXIyh//+MdZtWpV\nLrjggkpnBAAAAKDKlFQqPfbYY7n99tvT3NzctW3MmDH57Gc/q1QCAAAAeBcqaaHuAQMGZMCAAdtt\na2xsrEgoAAAAAKrbDq9UWrNmTdfr008/PXfeeWcmTZqUpqamdHR0ZP78+TnjjDN6JCQAAAAA1WWH\npdK0adO22/bcc891Gz/77LM57bTTdn8qAAAAAKraDkultra2nswBAAAAQB9S0kLdf7Vu3bp0dnam\nqakpLS0tlcoEAAAAQJUrqVRav359vvKVr+TFF1/Mvvvum40bN+awww7L9OnT09TUVOmMAAAAAFSZ\nkp7+Nnv27Bx00EGZO3duvvnNb2bu3LkZOXJkZs+eXel8AAAAAFShkkqlF154IRdddFEaGhqSJA0N\nDbngggvy4osvVjQcAAAAANWppFJp7733zsqVK7ttW7VqVRobGysSCgAAAIDqVtKaSmeddVa+8IUv\n5KSTTsqgQYPyyiuv5LHHHsvkyZMrnQ8AAACAKlRSqTRx4sQMGTIkCxcuzB//+McccMABmTZtWo48\n8shK5wMAAACgCr1tqVQoFHLPPfdkypQpef/7398TmQAAAACocm+7plJtbW2eeeaZ1NTU9EQeAAAA\nAPqAkhbqPuOMM/Ld7343W7durXQeAAAAAPqAktZUevjhh/Pqq6/mpz/9aQYOHNht37333luRYAAA\nAABUr5JKpalTp1Y6BwAAAAB9yNuWSps2bUpDQ0OGDh2aAQMG9EQmAAAAAKrcTkulp59+OnfddVfe\nfPPNNDQ05DOf+YwnwAEAAACw84W629racv755+fBBx/M5MmT853vfKencgEAAABQxXZaKq1Zsyan\nnXZa+vfvn49+9KNZvXp1T+UCAAAAoIrttFQqFotdr+vq6rJt27aKBwIAAACg+u10TaUtW7bkpptu\n6hpv3ry52zhJbrnllsokAwAAAKBq7bRU+uQnP9ltPGHChIqGAQAAAKBv2GmpdOKJJ/ZQDAAAAAD6\nkp2uqQQAAAAAb0WpBAAAAEDZlEoAAAAAlE2pBAAAAEDZdrhQd1tbW0kHmDx58m4LAwAAAEDfsMNS\nqaOjoydzAAAAANCH7LBUuuKKK3oyBwAAAAB9yA5LpbfyxhtvZOPGjSkWi13bBg8evNtDAQAAAFDd\nSiqVVq5cma997Wv5wx/+sN2+UtdeAgAAAGDPUdLT3+67776MHj063/rWt9LY2Ji5c+fmlFNOyZVX\nXlnpfAAAAABUoZJKpT/84Q85//zzs/fee6dYLKaxsTEXXHCBq5QAAAAA3qVKKpX69euXbdu2JUn2\n3XffrFu3LsViMX/6058qGg4AAACA6lTSmkqHH354nnzyyZx44okZO3ZsbrvttvTr1y+jR4+udD4A\nAAAAqlBJpdI111zT9fq8887LiBEjsnnz5owfP75iwQAAAACoXiWVSr///e8zcuTIJEltba0yCQAA\nAOBdrqQ1lb74xS/mmmuuyQ9+8IOsWbNml060dOnSTJ8+PVOnTs28efN2OO9Xv/pVzj333PzHf/zH\nLp0HAAAAgMor6Uqlb37zm1m6dGkWLlyYa6+9NsOHD89xxx2XcePGZb/99nvb9xcKhcyZMyfXX399\nmpubM2PGjLS2tmb48OHd5r3xxhv52c9+lkMPPXTXPg0AAAAAPaKkK5Vqa2szZsyYTJs2LbNnz87p\np5+eX/3qV7n88stLOsny5cszZMiQDB48OPX19Rk3blyWLFmy3by2trZ8/OMfT79+/cr7FAAAk06m\nOAAAIABJREFUAAD0qJJKpb96880389RTT2Xx4sVZsWJF3ve+95X0vs7OzjQ3N3eNm5ub09nZ2W3O\nihUrsm7duowZM6acSAAAAAD0gpJuf3v66aezcOHCPPXUUxk+fHjGjRuXyy67LPvvv/9uCVEoFPLg\ngw/miiuueNu5CxYsyIIFC5IkM2fOTEtLy27JwJ5v11YDA9g530MA9Kb6+nrfRUCvKalU+va3v51j\njz025557boYMGVL2SZqamtLR0dE17ujoSFNTU9d48+bNeemll3LLLbckSV599dXccccdufbaazNq\n1Khux5o4cWImTpzYNV63bl3ZeQBgd/E9BEBvamlp8V0E7HbDhg0raV5JpdJdd931jsKMGjUq7e3t\nWbt2bZqamrJ48eJMmzata39jY2PmzJnTNb755ptz4YUXblcoAQAAAFAddlgq/fCHP8wnPvGJJH9Z\nQHtHJk+e/LYnqaury6WXXppbb701hUIhEyZMyIgRI9LW1pZRo0altbV1F6IDAAAA0Ft2WCr959vV\n3qkxY8Zstwj3jgqpm2+++R2fDwAAAIDK2WGpdNlll3W9LmUBbQAAAADePWpLmXTHHXfkySefzJtv\nvlnpPAAAAAD0ASWVSkcccUTmz5+fyy67LHfffXeWLl2aQqFQ6WwAAAAAVKmSnv525pln5swzz0x7\ne3sWLlyYBx54IH/6059yzDHH5NJLL610RgAAAACqTElXKv3V0KFDc84552T69Ok56KCD8vOf/7xS\nuQAAAACoYiVdqZQkq1evzqJFi7Jo0aJs2LAhY8eOzdlnn13JbAAAAABUqZJKpRkzZmTVqlU56qij\ncuGFF+YDH/hA6urqKp0NAAAAgCr1tqVSsVjM2LFjc8opp6SxsbEnMgEAAABQ5d52TaWampp8//vf\nT0NDQ0/kAQAAAKAPKGmh7pEjR6a9vb3SWQAAAADoI0paU2n06NG57bbbcsIJJ6SlpaXbvpNOOqki\nwQAAAACoXiWVSi+88EIOPPDA/O53v9tun1IJAAAA4N2npFLppptuqnQOAAAAAPqQkkqlQqGww321\ntSUtywQAAADAHqSkUum8887b4b62trbdFgYAAACAvqGkUunuu+/uNl6/fn3mzZuX1tbWioQCAAAA\noLqVVCoNGjRou/FVV12VGTNmWKgbAAB2s22XndXbEegj1vR2APqUutnzezsCe5hdXhBp06ZN2bBh\nw+7MAgAAAEAfUdKVSrNmzUpNTU3XeMuWLfnd736X448/vmLBAAAAAKheJZVKQ4YM6Tbu379/Tjnl\nlHzgAx+oSCgAAAAAqltJpdI555xT6RwAAAAA9CE7LZVWrFiR+vr6vOc970mSbNiwIffff39eeuml\nHHroobnooovS0NDQI0EBAAAAqB47Xaj7/vvvz6uvvto1/ud//ue0t7fn5JNPzksvvZSHHnqo4gEB\nAAAAqD47LZVefvnlvO9970uSvP766/nNb36TqVOn5rTTTsv06dPz1FNP9UhIAAAAAKrLTkulbdu2\npb7+L3fILVu2LPvvv3+GDRuWJGlpacnrr79e+YQAAAAAVJ2dlkojRozIk08+mSRZtGhRjjzyyK59\nnZ2daWxsrGw6AAAAAKrSTkul888/P7Nnz84ll1ySp59+OpMmTerat3jx4rz3ve+teEAAAAAAqs9O\nn/52+OGH55577kl7e3uGDh2aAQMGdO0bM2ZMxo0bV/GAAAAAAFSfnZZKSTJgwIAcfPDB223/69pK\nAAAAALz77PT2NwAAAAB4K0olAAAAAMqmVAIAAACgbEolAAAAAMqmVAIAAACgbEolAAAAAMqmVAIA\nAACgbEolAAAAAMqmVAIAAACgbEolAAAAAMqmVAIAAACgbEolAAAAAMqmVAIAAACgbEolAAAAAMqm\nVAIAAACgbPU9daKlS5dm7ty5KRQKOfnkkzNp0qRu+3/yk5/kkUceSV1dXQYOHJjLL788gwYN6ql4\nAAAAAJShR65UKhQKmTNnTq677rrcddddWbRoUVauXNltzsiRIzNz5szceeedGTt2bB566KGeiAYA\n8P+xd+/RVdUHvsC/efAKL0mCIBeqY9RrfRdji1gtSHS8vspMtbZXx1a7HB8VtXbU0amVjsWh1mdF\nWwctXse5S/qwll7vddpovVaoM/igXNRWGKatFlBJQCjIIyT3j07TpghmAzkJ8PmsxVpn7/07+3zP\nWXGb9c1v/w4AANugJKXSokWLMnz48AwbNiyVlZUZO3Zs5s6d22HMIYcckj59+iRJ9t9//zQ3N5ci\nGgAAAADboCSlUnNzc2pqatq3a2pqtloaPfnkkzniiCNKEQ0AAACAbVCyNZU66+mnn87ixYszefLk\n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\nr+Smm25KXV1d9t133yTJypUrs3r16nzjG9/IwoUL8w//8A+pq6vLiBEjuvwzAQD4UxbqBgD4E5WV\nlVm2bFlWrVqVvn375oADDkiSrF69OkOGDHnP548bNy4jRoxI7969c/TRR+eXv/xlkuTpp5/OBz7w\ngYwePTrl5eU57LDDUldXlxdeeCFJMnr06AwfPjxlZWU56KCDcthhh+XnP/95h3OfddZZ6dWrVw46\n6KB84AMfyJw5c3bsmwcA6CQzlQAA/sRFF12UmTNn5nOf+1z23HPPnHHGGTnyyCMzcODALF269D2f\nv8cee7Q/7tOnT9atW5ckWb58eZ599tk8//zz7cc3bdrUfvvbiy++mO985ztZsmRJ2trasn79+rzv\nfe9rH9u/f//07du3fXvo0KFZsWLFdr9fAIBtoVQCAPgTe+21V6644oq0trbm3/7t33Lbbbfl/vvv\nz6GHHpr//b//d5qamlJTU1P4vDU1NTn22GNz0UUXbXZs48aNufXWW3PppZemvr4+lZWVufnmmzuM\nWbNmTdatW9deLC1fvjyjRo3atjcJALCd3P4GAPAnnn766axatSrl5eWpqqpKkvbb1Q477LDccsst\nWbx4cTZt2pR33nknP/zhD/Pkk0++53mPPfbYPP/885k3b15aW1uzYcOGvPTSS2lqakpLS0s2btyY\nQYMGpaKiIi+++GLmz5+/2Tm+9a1vpaWlJa+88kpeeOGFHH300Tv8/QMAdIaZSgAAf2LevHl58MEH\ns379+gwdOjSXX355evfunST5/Oc/n0ceeSS33357Vq5cmYEDB+awww7LGWec8Z7nra2tzdVXX52H\nHnood955Z8rLy7PffvvlggsuSL9+/XLeeefl9ttvz8aNG3PkkUemvr6+w/P32GOPDBgwIBdeeGF6\n9+6dCy64IP/lv/yXLvkMAADeS1lbW1tbd4cAAGDrXnrppdx11135xje+0d1RAACSuP0NAAAAgG2g\nVAIAAACgMLe/AQAAAFCYmUoAAAAAFKZUAgAAAKAwpRIAAAAAhSmVAAAAAChMqQQAAABAYUolAAAA\nAApTKgEAAABQmFIJAAAAgMKUSgAAAAAUplQCAAAAoDClEgAAAACFKZUAAAAAKEypBAAAAEBhSiUA\nAAAAClMqAQAAAFCYUgkAAACAwpRKAAAAABSmVAIAAACgsMpSvMg999yTF154IYMHD86tt9662fG2\ntrbMmDEjL774Yvr06ZNLLrkk++67bymiAQAAALANSjJTady4cbnuuuu2ePzFF1/MsmXL8rWvfS1/\n/dd/nfvuu68UsQAAAADYRiUplQ466KAMGDBgi8efe+65HHfccSkrK8sBBxyQNWvWZMWKFaWIBgAA\nAMA26BFrKjU3N6e2trZ9u6amJs3Nzd2YCAAAAICtKcmaSjtSY2NjGhsbkyRTp07t5jQAAAAAu6ce\nUSpVV1dn+fLl7dtNTU2prq5+17ENDQ1paGho316yZEmX54PuVFtb2+G/DwB2Tq7nALsG13N2ByNG\njOjUuB5x+1t9fX2efvrptLW15dVXX01VVVWGDBnS3bEAAAAA2IKSzFS644478vLLL2f16tW56KKL\n8vGPfzwtLS1JkhNPPDEf+MAH8sILL+Syyy5L7969c8kll5QiFgAAAADbqKytra2tu0NsD7e/sasz\nvRZg1+B6DrBrcD1nd9DZ2996xJpKAAAAANuira0t69atS2tra8rKyro7zk6jra0t5eXl6du37zZ/\nbkolAAAAYKe1bt269OrVK5WVKo6iWlpasm7duvTr12+bnt8jFuoGAAAA2Batra0KpW1UWVmZ1tbW\nbX6+UgkAAADYabnlbftsz+enVAIAAADYTnfeeWfGjx+fhoaGnHDCCXnhhRe2+5w//OEPM23atB2Q\nLtl///13yHn+mPlhAAAAwC5j0wWn79DzVUyf9Z5jnnvuuTQ2Nubxxx9Pnz590tzcnA0bNnTq/C0t\nLVu8fe/EE0/MiSeeWChvKZmpBAAAALAd3nzzzVRXV6dPnz5Jkurq6gwfPjwf+tCH0tzcnCT52c9+\nljPOOCNJcuutt2bSpEn56Ec/mssuuyynnnpqfvGLX7Sf74wzzsjPfvazzJw5M3/3d3+XVatW5YMf\n/GD7+kdr165NfX19Nm7cmF/+8pc5++yzc9JJJ+Uv/uIvsmjRoiTJr3/965x22mmZMGFCvvKVr3TJ\n+1YqAQAAAGyHj3zkI1myZEk+/OEP59prr81Pf/rT93zOwoUL8/DDD+eee+7J6aefnh/84AdJkjfe\neCNvvPFGDj/88PaxgwYNysEHH9x+3h/96EcZN25cevXqlauvvjo33nhjHn/88Vx//fW59tprkyRf\n/OIXc+655+aJJ57IsGHDuuBdK5UAAAAAtkv//v3z+OOP5+abb05NTU0uvvjizJw5c6vPOfHEE9Ov\nX78kyWmnnZbHHnssSfKDH/wgp5xyymbjTz/99Mya9btb8WbNmpXTTz89a9asyfPPP58LL7wwJ5xw\nQq655pq8+eabSZK5c+dm4sSJSZKPfexjO+y9/jFrKgEAAABsp4qKiowdOzZjx47NgQcemG9/+9up\nrKxsv2Vt/fr1HcZXVVW1P95rr70yZMiQvPzyy5k1a1amTp262flPPPHETJ06NStWrMj8+fNzzDHH\nZO3atRk0aFB+9KMfvWumrv5mPDOVAAAAALbDokWLsnjx4vbtl156KSNHjszIkSMzf/78JGmfibQl\np59+er7+9a9n9erVOeiggzY73r9//xx++OH54he/mIaGhlRUVGTgwIEZNWpU+61zbW1teemll5Ik\nRx11VL7//e8nSR555JEd8j7/lFIJAAAAYDusXbs2V1xxRcaNG5eGhoYsXLgwn//853PllVfmi1/8\nYv7bf/tvqaio2Oo5TjnllHz/+9/PaaedtsUxp59+eh555JGcfvofvuFu2rRpefjhh9PQ0JDx48fn\nhz/8YZLk7//+7/PAAw9kwoQJWbZs2Y55o3+irK2tra1LzlwiS5Ys6e4I0KVqa2uzfPny7o4BwHZy\nPQfYNbie9zxr167tcCsZxbzb5zdixIhOPddMJQAAAAAKUyoBAAAAUJhSCQAAAIDClEoAAADATmsn\nXyq6223P56dUAgAAAHZa5eXlaWlp6e4YO6WWlpaUl297NVS5A7MAAAAAlFTfvn2zbt26rF+/PmVl\nZd0dZ6fR1taW8vLy9O3bd5vPoVQCAAAAdlplZWXp169fd8fYLbn9DQAAAIDClEoAAAAAFKZUAgAA\nAKAwpRIAAAAAhSmVAAAAAChMqQQAAABAYUolAAAAAApTKgEAAABQmFIJAAAAgMKUSgAAAAAUplQC\nAAAAoDClEgAAAACFKZUAAAAAKEypBAAAAEBhSiUAAAAAClMqAQAAAFCYUgkAAACAwpRKAAAAABSm\nVAIAAACgMKUSAAAAAIUplQAAAAAoTKkEAAAAQGFKJQAAAAAKUyoBAAAAUFhlqV5o3rx5mTFjRlpb\nWzNhwoRMnDixw/Hly5fn7rvvzpo1a9La2pr//t//e0aPHl2qeAAAAAAUUJJSqbW1Nffff3++8IUv\npKamJtdee23q6+szcuTI9jHf/e53c/TRR+fEE0/M66+/nn/4h39QKgEAAAD0UCW5/W3RokUZPnx4\nhg0blsrKyowdOzZz587tMKasrCxr165NkqxduzZDhgwpRTQAAAAAtkFJZio1NzenpqamfbumpiYL\nFy7sMObMM8/Ml7/85Tz++ONZv359rr/++lJEAwAAAGAblGxNpfcye/bsjBs3LqeddlpeffXV3HXX\nXbn11ltTXt5xMlVjY2MaGxuTJFOnTk1tbW13xIWSqays9HMOsAtwPQfYNbiewx+UpFSqrq5OU1NT\n+3ZTU1Oqq6s7jHnyySdz3XXXJUkOOOCAbNy4MatXr87gwYM7jGtoaEhDQ0P79vLly7swOXS/2tpa\nP+cAuwDXc4Bdg+s5u4MRI0Z0alxJ1lSqq6vL0qVL8+abb6alpSVz5sxJfX19hzG1tbVZsGBBkuT1\n11/Pxo0bM2jQoFLEAwAAAKCgksxUqqioyPnnn58pU6aktbU148ePz6hRozJz5szU1dWlvr4+5557\nbu6999489thjSZJLLrkkZWVlpYgHAAAAQEFlbW1tbd0dYnssWbKkuyNAlzK9FmDX4HoOsGtwPWd3\n0KNufwMAAABg16JUAgAAAKAwpRIAAAAAhSmVAAAAAChMqQQAAABAYUolAAAAAApTKgEAAABQmFIJ\nAAAAgMKUSgAAAAAUplQCAAAAoDClEgAAAACFKZUAAAAAKEypBAAAAEBhSiUAAAAAClMqAQAAAFCY\nUgkAAACAwpRKAAAAABTWqVJp9erVXZ0DAAAAgJ1IZWcGXXLJJTn00ENz3HHHpb6+PpWVnXoaAAAA\nALuoTs1Uuvvuu3PIIYfk+9//fi644ILce++9+fnPf97V2QAAAADoocra2traijxhyZIlefrpp/OT\nn/wkZWVlOfbYY3P88cdn6NChXZXxPfPArqy2tjbLly/v7hgAbCfXc4Bdg+s5u4MRI0Z0alzhhbpX\nrlyZlStX5p133smwYcPS3Nycq6++Oo8++mjhkAAAAADsnDq1ONJrr72Wn/zkJ3nmmWfSp0+ffOQj\nH8lXv/rV1NTUJEk+9rGP5aqrrsrEiRO7NCwAAAAAPUOnSqUbbrghxxxzTK688srst99+mx3fc889\nc/LJJ+/wcAAAAAD0TJ0qlf7mb/4mBx100Gb7Fy1a1F4ynXXWWTs2GQAAAAA9VqfWVPrKV77yrvun\nTJmyQ8MAAAAAsHPY6kyl1tbWJElbW1v7v9974403UlFR0bXpAAAAAOiRtloqffKTn2x//IlPfKLD\nsfLy8vzFX/xF16QCAAAAoEfbaqk0bdq0tLW1ZfLkyfnSl77Uvr+srCyDBg1K7969uzwgAAAAAD3P\nVkuloUOHJknuueeekoQBAAAAYOewxVLp3nvvzYUXXpjkdzOWtuTSSy/d8akAAAAA6NG2WCrtueee\n7Y+HDRtWkjAAAAAA7By2WCr98SLcZ555ZknCAAAAALBz2GKptGDBgk6d4JBDDtlhYQAAAADYOWyx\nVPr617/+nk8uKyvb6npLAAAAAOyatlgq3X333aXMAQAAAMBOpLy7AwAAAACw89niTKXPfe5zuf32\n25MkF1988RZP0Jnb5AAAAADYtWyxVLrwwgvbH0+aNKkkYQAAAADYOWyxVDrwwAPbHx900EElCQMA\nAADAzmGLpdIfa2lpyXe/+93Mnj07K1asyJAhQzJ27Nj85V/+ZXr37t3VGQEAAADoYTpVKk2fPj1L\nlizJeeedl6FDh+att97K9773vTQ3N+eSSy7p6owAAAAA9DCdKpXmzp2bu+66K/3790+SjBw5Mvvv\nv7+1lgAAAAB2U+WdGbTHHntk/fr1HfZt2LAhQ4YM6ZJQAAAAAPRsW5yptGDBgvbHxx13XG666aac\ndNJJqampSVNTU/7lX/4lxx13XKdfaN68eZkxY0ZaW1szYcKETJw4cbMxc+bMybe//e2UlZVl7733\nzuWXX17w7QAAAABQClsslb7+9a9vtu973/teh+3GxsZ3LYf+VGtra+6///584QtfSE1NTa699trU\n19dn5MiR7WOWLl2aRx99NDfeeGMGDBiQt99+u8j7AAAAAKCEtlgq3X333TvsRRYtWpThw4dn2LBh\nSZKxY8dm7ty5HUqlJ554In/+53+eAQMGJEkGDx68w14fAAAAgB2rUwt1b6/m5ubU1NS0b9fU1GTh\nwoUdxixZsiRJcv3116e1tTVnnnlmjjjiiFLEAwAAAKCgTpVKa9euzbe//e28/PLLWb16ddra2tqP\nvdttctuitbU1S5cuzQ033JDm5ubccMMNueWWW9q/ce73Ghsb09jYmCSZOnVqamtrd8jrQ09VWVnp\n5xxgF+B6DrBrcD2HP+hUqXTfffelubk5Z5xxRu66665MmjQps2bNyoc+9KFOvUh1dXWamprat5ua\nmlJdXb3ZmP333z+VlZXZc889s9dee2Xp0qXZb7/9OoxraGhIQ0ND+/by5cs7lQF2VrW1tX7OAXYB\n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\nNa7ohbrfeuutvPXWW3n33XczbNiwtLW15cILL8zdd99ddEgAAAAAeqduLY702muv5dFHH81jjz2W\nfv365bDDDsv3v//91NfXJ0mOOeaYXHDBBZk6dWqPhgUAAACgMnSrVLr88stz8MEH57zzzstHP/rR\n9+3fZZdd8rnPfW6rhwMAAACgMnWrVPpv/+2/Za+99nrf+0uXLu0smU444YStmwwAAACAitWtNZWu\nuuqqD3x/xowZWzUMAAAAAL3DJmcqdXR0JEkKhULnP/9hxYoVqamp6dl0AAAAAFSkTZZKX/7ylztf\n/9f/+l+77Kuurs4Xv/jFnkkFAAAAQEXbZKk0a9asFAqFXHHFFfnOd77T+X5VVVUGDx6cvn379nhA\nAAAAACrPJkuloUOHJklmz55dkjAAAAAA9A4bLZVuueWWnHbaaUn+NGNpY775zW9u/VQAAAAAVLSN\nlkq77LJL5+thw4aVJAwAAAAAvcNGS6W/XIT7uOOOK0kYAAAAAHqHjZZKzz//fLcOsM8++2y1MAAA\nAAD0DhstlW6++eYP/XBVVdUm11sCAAAAYNu00VLppptuKmUOAAAAAHqR6nIHAAAAAKD32ehMpXPP\nPTfXXXddkuSMM87Y6AG6c5scAAAAANuWjZZKp512WufrM888syRhAAAAAOgdNloqjR07tvP1Xnvt\nVZIwAAAAAPQOGy2V/tKGDRvyy1/+MgsWLMibb76ZIUOGZPz48fnSl76Uvn379nRGAAAAACpMt0ql\nOXPmpKWlJV/72tcydOjQ/OEPf8ivfvWrtLW1Zdq0aT2dEQAAAIAK061SadGiRbnxxhuzww47JElG\njhyZPffc01pLAAAAANup6u4M2nnnnbN27dou761bty5DhgzpkVAAAAAAVLaNzlR6/vnnO18feuih\n+d73vpcjjzwy9fX1WbVqVX7961/n0EMP7faJnnnmmcydOzcdHR2ZNGlSpk6d+r4xCxcuzJ133pmq\nqqrstttuOfvss4v8OgAAAACUwkZLpZtvvvl97/3qV7/qst3c3PyB5dB/1tHRkdtuuy2XXHJJ6uvr\nM3369DQ2NmbkyJGdY5YvX5677747V155ZXbcccf8+7//ezHfAwAAAIAS2mipdNNNN221kyxdujTD\nhw/PsGHDkiTjx4/PokWLupRKv/nNb/LZz342O+64Y5Jkp5122mrnBwAAAGDr6tZC3Vuqra0t9fX1\nndv19fVZsmRJlzEtLS1JkksvvTQdHR057rjj8olPfKIU8QAAAAAoUrdKpfb29tx555158cUXs3r1\n6hQKhc59H3Sb3Obo6OjI8uXLc/nll6etrS2XX355rrnmms4nzv2H5ubmNDc3J0lmzpyZhoaGrXJ+\nqFS1tbV+zwG2Aa7nANsG13P4s26VSrfeemva2tpy7LHH5sYbb8yZZ56Z+fPn58ADD+zWSerq6rJq\n1arO7VWrVqWuru59Y/bcc8/U1tZml112ya677prly5fnox/9aJdxTU1NaWpq6txubW3tVgborRoa\nGvyeA2wDXM8Btg2u52wPRowY0a1x1d0Z9Nxzz+X888/P/vvvn+rq6uy///4599xz8+ijj3brJKNH\nj87y5cuzcuXKbNiwIQsXLkxjY2OXMQcccEBeeOGFJMnbb7+d5cuXd67BBAAAAEBl6dZMpUKhkIED\nByZJ+vfvn/b29uy888554403unWSmpqanHLKKZkxY0Y6OjoyceLEjBo1KvPmzcvo0aPT2NiY/fbb\nL88++2zOPffcVFdX56STTsqgQYM2/5sBAAAA0GO6VSrttttuefHFF7Pvvvtm7NixufXWW9O/f//s\nuuuu3T7RuHHjMm7cuC7vnXDCCZ2vq6qq8tWvfjVf/epXu31MAAAAAMqjW7e/nXbaaRk6dGiS5Gtf\n+1r69OmTd955J9/85jd7NBwAAAAAlamq8JePcuuFWlpayh0BepSFAAG2Da7nQE9479Qp5Y4APa5m\nzvxyR9judHeh7m7d/pYkDz30UBYsWJA333wzQ4YMycEHH5yJEyemqqpqs0MCAAAA0Dt1q1S6/fbb\ns2jRohx11FGdf8t27733pqWlJSeddFJPZwQAAACgwnSrVHr44Ydz1VVXpb6+vvO9cePG5aKLLlIq\nAQAAAGyHurVQ94ABAzJgwID3vTdw4MAeCQUAAABAZdvoTKUVK1Z0vv7c5z6Xa665JlOnTk1dXV1W\nrVqV+fPn56ijjipJSAAAAAAqy0ZLpbPOOut9773wwgtdtp9//vkceeSRWz8VAAAAABVto6XSvHnz\nSpkDAAAAgF6kWwt1/4fW1ta0tbWlrq4uDQ0NPZUJAAAAgArXrVLpzTffzA9/+MO88sorGTRoUFav\nXp0xY8bk7LPPTl1dXU9nBAAAAKDCdOvpb3PmzMluu+2WuXPn5kc/+lHmzp2b3XffPXPmzOnpfAAA\nAABUoG6VSi+//HJOPvnk9O/fP0nSv3//nHTSSXnllVd6NBwAAAAAlalbpdIOO+yQ119/vct7LS0t\nGThwYI+EAgAAAKCydWtNpSlTpuTKK6/M4YcfnqFDh+YPf/hDHn744Zxwwgk9nQ8AAACACtStUqmp\nqSnDhw/PY489lt///vcZMmRIzjrrrOy77749nQ8AAACACvShpVJHR0dmz56d0047Lfvss08pMgEA\nAABQ4T50TaXq6uo899xzqaqqKkUeAAAAAHqBbi3UfdRRR+UXv/hFNmzY0NN5AAAAAOgFurWm0v33\n35+33nor9913XwYPHtxl380339wjwQAAAACoXN0qlc4888yezgEAAABAL/KhpVJ7e3v69++fXXfd\nNQMGDChFJgAAAAAq3CZLpcWLF+e6667LunXr0r9//1xwwQWeAAcAAADAphfqnjdvXk488cT89Kc/\nzQknnJA77rijVLkAAAAAqGCbLJVWrFiRI488Mv369ctnP/vZvPHGG6XKBQAAAEAF22SpVCgUOl/X\n1NTkvffe6/FAAAAAAFS+Ta6ptHbt2lx++eWd22vWrOmynSTf+c53eiYZAAAAABVrk6XS6aef3mV7\n4sSJPRoGAAAAgN5hk6XShAkTShQDAAAAgN5kk2sqAQAAAMAHUSoBAAAAUDSlEgAAAABFUyoBAAAA\nULSNLtQ9b968bh3ghBNO2GphAAAAAOgdNloqrVq1qpQ5AAAAAOhFNloqTZs2rZQ5AAAAAOhFNloq\nfZB33303q1evTqFQ6Hxv2LBhWz0UAAAAAJWtW6XS66+/nhtuuCH/+q//+r593V17CQAAAIBtR7ee\n/nbrrbdm7733zo9//OMMHDgwc+fOzRFHHJFvfOMbPZ0PAAAAgArUrVLpX//1X3PiiSdmhx12SKFQ\nyMCBA3PSSSeZpQQAAACwnepWqdSnT5+89957SZJBgwaltbU1hUIhf/zjH3s0HAAAAACVqVtrKo0d\nOzaPP/54JkyYkIMOOijf+9730qdPn+y99949nQ8AAACACtStUum8887rfP3lL385o0aNypo1a3Lo\noYf2WDAAAAAAKle3SqVXX301u+++e5KkurpamQQAAACwnevWmkrf/e53c9555+WXv/xlVqxYsVkn\neuaZZ3L22WfnzDPPzN13373RcU888USOP/74/L//9/826zwAAAAA9LxuzVT60Y9+lGeeeSaPPfZY\n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\n1NSUmTNnZubMmT0bGirEt771rXJHAGArcD0H2Da4nsOflaRUGj16dJYvX56VK1dmw4YNWbhwYRob\nG7uM+dSnPpWHH344SfLEE09k7733TlVVVSniAQAAAFCkktz+VlNTk1NOOSUzZsxIR0dHJk6cmFGj\nRmXevHkZPXp0Ghsbc/jhh2fWrFk588wzs+OOO+acc84pRTQAAAAANkNVwSPWoKI1Nzenqamp3DEA\n2EKu5wDbBtdz+DOlEgAAAABFK8maSgAAAABsW5RKAAAAABRNqQQAAABA0Ury9Deg+9auXZt77703\nra2tOf3007N8+fK0tLTkU5/6VLmjAVCkZcuWve+9gQMHZujQoampqSlDIgCArUepBBVm9uzZ2WOP\nPbJkyZIkSV1dXX7wgx8olQB6odtuuy3Lli3LbrvtlkKhkNdeey2jRo1Ke3t7vv71r2e//fYrd0QA\nNuH8889PVVXV+94vFAqpqqrKNddcU4ZUUDmUSlBhVqxYkXPPPTcLFixIkvTr16/MiQDYXEOGDMnV\nV1+dUaNGJUlef/31zJs3LyeddFKuueYapRJAhfvWt75V7ghQ0ZRKUGFqa2uzbt26zr8ReeONN1Jb\n619VgN5o+fLlnYVSkowcOTItLS0ZNmxYGVMB0F1Dhw4tdwSoaP5PFSrM8ccfnxkzZqS1tTU33HBD\nXn755UybNq3csQDYDCNHjsycOXNy8MEHJ0kWLlyYj3zkI1m/fr2/MADoBU4++eRN3v72z//8z2VI\nBZWjqlAoFModAuhq9erVWbJkSQqFQvbcc88MHjy43JEA2Azr1q3Lr3/967z00ktJkr/+67/OZz/7\n2fTp0yfr1q1L//79y5wQAGDzKZWgArW1teUPf/hD3nvvvc739tprrzImAgAA/v3f/z3r16/v3G5o\naChjGig/866hwtx+++15/PHHM3LkyM6ptlVVVUolgF7kBz/4Qc4777yNPjXI04IAepcnn3wyP/3p\nT/Pmm29m8ODBaW1tzUc+8pH84Ac/KHc0KCulElSYRYsW5Yc//GH69OlT7igAbKavfe1rSTw1CGBb\nMW/evMyYMSNXXnllrr766jz//PN59NFHyx0Lyq663AGAroYNG9bltjcAep8hQ4Yk+dNTg/7jn379\n+qWhocGThAB6oZqamgwaNCiFQiEdHR3ZZ599smzZsnLHgrIzUwkqTN++fXPBBRdk33337fJkoFNO\nOaWMqQAoxiuvvJKf//zn2XHHHXPMMcdk1qxZefvtt1MoFPLNb34zn/jEJ8odEYAi7LDDDlmzZk0+\n9rGP5YYbbshOO+2Ufv36lTsWlJ2FuqHCPPzwwx/4/oQJE0qaA4DN961vfStf/vKX097enh/96EeZ\nPn16xowZk3/7t3/L9ddfn6uvvrrcEQEowpo1a9K3b98UCoU8+uijaW9vzyGHHJJBgwaVOxqUlZlK\nUGEmTJiQDRs2pKWlJUkyYsSILjOWAKh87733Xvbbb78kyS9+8YuMGTMmSfKRj3yknLEA2Ez9+/dP\nkrS3t6exsbHMaaBy+D9VqDAvvPBCbrrpps41N1pbW/ONb3zD098AepHq6j8vW9m3b98u+z7oaXAA\nVLYHH3wwv/jFL9K3b99UVVWlUCikqqoqs2bNKnc0KCulElSYn/70p7nkkksyYsSIJElLS0uuv/76\nXHXVVWVOBkB3vfrqq/nqV7+aQqGQdevW5atf/WqSpFAoZP369WVOB0Cx7r333lx77bUZPHhwuaNA\nRVEqQYV57733Ogul5E+3v3kaHEDvMm/evHJHAGArGjZsmIW54QNYqBsqzOzZs1NdXZ1DDjkkSfLo\no4+mo6Mj06ZNK3MyAADYPv3ud7/L7Nmzs+eee3pCM/wFpRJUmPXr1+fXv/51XnrppSTJ2LFj89nP\nfjZ9+vQpczIAANg+TZ8+PWPHjs1f/dVfdVkbzxOa2d4plQAAAGATLrzwwlx99dXljgEVR6kEFeL8\n88/f6BOBqqqq8v3vf7/EiQAAgCT5+c9/nl122SWf+tSnutxBsOOOO5YxFZSfUgkqxB/+8If3vVco\nFLJq1arcfffdmT59ehlSAQAA3/jGN5LkfX8JPGvWrHLEgYqhVIIK9Lvf/S6PPfZYnnjiieyyyy45\n8MADc+SRR5Y7FgAAbFeWLl2ahoaG7LzzzkmShx9+OP/n//yfDB06NMcff7yZSmz3qssdAPiTlpaW\n3HnnnTnnnHPy4x//OA0NDSkUCrn88ssVSgAAUAZz5szpfNrbiy++mP/+3/97DjvssAwcODC33HJL\nmdNB+dV++BCgFM4999yMHTs23/rWtzJ8+PAkyX333VfmVAAAsP3q6OjonI20cOHCTJo0KQcddFAO\nOuigXHDBBWVOB+VnphJUiPPPPz9DhgzJd77znfzTP/1T/u///b9xdyoAAJRPR0dH3nvvvSTJ888/\nn3322afLPtjemakEFeKAAw7IAQcckDVr1uTJJ5/Mfffdl7fffjtz5szJyukxtgAAIABJREFUAQcc\nkP3226/cEQEAYLty8MEH54orrsigQYPSt2/ffOxjH0uSvPHGGxk4cGCZ00H5WagbKtgf//jHPPHE\nE1m4cGEuu+yycscBAIDtziuvvJK33norH//4x9O/f/8kf1oPdc2aNdljjz3KnA7KS6kEAAAAQNGs\nqQQAAABA0ZRKAAAAABRNqQQAUEZnn312fvvb3yZJ7rjjjtx0001lTgQA0D2e/gYAsBHf+MY38tZb\nb6W6+s9/D3f99denrq5uq53j+uuv32rHAgAoJaUSAMAmXHTRRfn4xz9e7hgAABVHqQQAUISOjo5c\nd911eemll7J+/frsvvvu+frXv56RI0cmSW644YbsuOOOWb58eV566aXsscceOffcc3PXXXflkUce\nyZAhQ3L22Wdn9913T5KcfvrpOfPMM7P33nt3Oc+MGTOy//77Z/LkyZ3vnXvuuTnxxBPT2NhYsu8L\nALAx1lQCACjSpz71qdxwww350Y9+lFGjRmXWrFld9i9cuDBf+cpXcttttyVJvv3tb2fMmDH58Y9/\nnMbGxvzsZz/70HMcdthhefTRRzu3ly1bltWrV+eTn/zk1v0yAACbSakEALAJ3//+9/N3f/d3+bu/\n+7tcffXVqa6uzoQJEzJgwID07ds3xx13XJYtW5Y1a9Z0fubAAw/Mf/kv/yV9+/bN/vvvn/79++cz\nn/lMqqurM378+Lz66qsfet4DDjggr732WlauXJkkeeSRRzJ+/PjU1NT01FcFACiK298AADbhggsu\n6LKmUkdHR37+85/niSeeyOrVq1NVVZUkWb16dfr3758k2WmnnTrH9+3bNzvvvHOX7b8soDamb9++\nOeigg/LII4/kS1/6UhYsWJCLLrpoa30tAIAtplQCACjC//7f/ztPP/10LrvssgwdOjSrV6/O17/+\n9RQKha1+rsMOOyy33HJLRo8enR133DEf/ehHt/o5AAA2l9vfAACK8O6776a2tjaDBg3K2rVrc8cd\nd/TYucaOHZsNGzbkX/7lX3LIIYf02HkAADaHUgkAoAgTJ07MkCFDctppp+X888/PmDFjeuxcVVVV\nOfTQQ/Paa68plQCAilNV6Im52v/J7Nmzs3jx4uy000659tpr37e/UChk7ty5efrpp9OvX79MmzYt\n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\nPPFEzjvvvIJOsnz58gwdOjRDhgxJdXV1xo0bl6VLl241buHChfnc5z6XPn36FPcuAAAAACipgkql\nP9m0aVOefPLJLFmyJCtWrMgnPvGJgp7X1taW+vr6zu36+vq0tbVtMWbFihVZs2ZNxo4dW0wkAAAA\nAHpAQbe/PfXUU3nsscfy5JNPZsSIERk3blzOPvvsDBw4cIeEaG9vz5133plp06Z96Njm5uY0Nzcn\nSWbPnp2GhoYdkoHCbN+KWtC7uK6wM3A9Z2fgeg50h+rqatcX+P8VVCp9//vfz+GHH55TTjklQ4cO\nLfokdXV1aW1t7dxubW1NXV1d5/aGDRvy8ssv56qrrkqSvPHGG7n++utz8cUXZ9SoUVu8VlNTU5qa\nmjq316xZU3QegG1xXQH4eHA9B7pDQ0OD6wsfe8OHDy9oXEGl0k033fSRwowaNSotLS1ZvXp16urq\nsmTJksyYMaPzeG1tbebPn9+5feWVV+b000/fqlACAAAAoDx0WSr98Ic/zIknnpjkjwtod2XKlCkf\nepKqqqqcddZZueaaa9Le3p4JEyZk5MiRWbhwYUaNGpXGxsbtiA4AAABAT+myVPq3t6t9VGPHjt1q\nEe6uCqkrr7zyI58PAAAAgO7TZal09tlndz4uZAFtAAAAAHYelYUMuv766/P4449n06ZN3Z0HAAAA\ngF6goFJpzJgxWbRoUc4+++zcfPPNWbZsWdrb27s7GwAAAABlqqBffzvhhBNywgknpKWlJY899li+\n973v5e23386nPvWpnHXWWd2dEQAAAIAyU9BMpT8ZNmxYTj755MycOTN77rlnHnrooe7KBQAAAEAZ\nK2imUpK89tprWbx4cRYvXpy33norhx12WE466aTuzAYAAABAmSqoVLr00kuzcuXKHHLIITn99NNz\n4IEHpqqqqruzAQAAAFCmPrRU6ujoyGGHHZajjz46tbW1pcgEAAAAQJn70DWVKioq8k//9E+pqakp\nRR4AAAAAeoGCFurea6+90tLS0t1ZAAAAAOglClpTab/99su1116bz3zmM2loaNji2JFHHtktwQAA\nAAAoXwWVSr/97W+zxx575Ne//vVWx5RKAAAAADufgkqlWbNmdXcOAAAAAHqRgkql9vb2Lo9VVha0\nLBMAAAAAHyMFlUqnnnpql8cWLly4w8IAAAAA0DsUVCrdfPPNW2yvXbs2999/fxobG7slFAAAAADl\n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\n4cKFGTVqVBobG3PkkUfm5ptvzvTp07Prrrvmy1/+cimiAQAAALAdKjr8xBqUtebm5jQ1NfV0DAA+\nItdzgI8H13P4V0olAAAAAIpWkjWVAAAAAPh4USoBAAAAUDSlEgAAAABFUyoBAHSDV199Nf/3//7f\nbNiwYYv9y5Yt66FEAGyP5cuXZ/ny5UmSV155JT/+8Y/z1FNP9XAqKA/VPR0AKMy//Mu/ZMKECT0d\nA4AC/O///b/z0EMP5d/9u3+Xf/iHf8h//s//OYccckiS5H/9r/+Vgw8+uIcTAlCIe+65J8uWLcv7\n77+fAw88MC+++GL222+/PPDAA3nppZdy4okn9nRE6FFKJeglfvCDHyiVAHqJhx9+ONddd11qamqy\nevXq/P3f/31ef/31TJw4MX54F6D3eOKJJ/LNb34z7733Xv72b/82c+fOTW1tbSZNmpTLLrtMqcRO\nT6kEZeSrX/3qB+7v6OjIm2++WeI0AGyvjo6O1NTUJEn22GOPXHnllbnxxhvz+uuvK5UAepGqqqpU\nVlamb9++GTJkSGpra5Mku+yySyoqKno4HfQ8pRKUkTfffDNf+9rX0r9//y32d3R05IorruihVAAU\na/fdd89LL72UvfbaK0lSU1OTv/u7v8vcuXPzhz/8oWfDAVCw6urqbNy4MX379s3s2bM7969fvz6V\nlZYohooO/3cZlI25c+dmwoQJGT169FbHvv3tb2fmzJk9kAqAYrW2tqaqqioDBw7c6thvfvObD7zO\nA1B+3nvvvfTp02er/W+99VbeeOON/MVf/EUPpILyoVQCAAAAoGjm6wEAAABQNKUSAAAAAEVTKgEA\n7GDPPfdczj333J6OAQDQrfz6GwDAh/jSl76UN954I5WVlampqcnBBx+c//Jf/ktqamp6OhoAQI8x\nUwkAoACXXHJJvv/97+e6667LihUrcu+99/Z0JACAHmWmEgBAEerq6nLwwQfn5Zdfzttvv50777wz\nTz/9dDZt2pRPfOITufjii7d6zv3335+HH344b775Zurr63Pqqafm0EMPTZK89tprmTt3bl566aVU\nV1dn//33zwUXXJCOjo5873vfy2OPPZb33nsvDQ0NmTlzpp+vBgDKhlIJAKAIa9asya9+9asceuih\nmTNnTmpqanLjjTempqYmL7zwwgc+Z8iQIbnqqqsycODAPPHEE5kzZ06+853vZNCgQbn77rtz0EEH\nZdasWdm8eXNWrFiRJHn66afz61//Ot/+9rdTW1ubV199Nf379y/lWwUA2CalEgBAAb75zW+mqqoq\ntbW1GTt2bI499tice+65mT9/fnbdddckyZgxYz7wuZ/61Kc6H48bNy733Xdfli9fnkMOOSTV1dV5\n/fXXs3bt2tTX12f06NFJkurq6mzYsCGvvvpq9t5774wYMaL73yQAQBGUSgAABbjoooty4IEHdm4v\nX748u+66a2ehtC3/5//8n/z4xz/O66+/niTZsGFD1q1blySZOnVq7r777lx22WXp379/TjjhhBx5\n5JHZf//9c+yxx2b+/PlZs2ZNDj300Jx++umpra3tnjcIAFAkpRIAwHaor6/P22+/nXfeeWebt6W9\n/vrrue222/L1r389++67byorK3PRRRelo6MjSTJw4MCce+65SZLf/OY3ufrqqzNmzJgMHTo0EydO\nzMSJE/Pmm2/mpptuyqJFi/KFL3yhJO8PAODD+PU3AIDtMGjQoBx88MG5/fbb8/bbb2fz5s15/vnn\ntxq3cePGVFRUZMCAAUmSf/mXf8nLL7/cefzxxx9Pa2trknSWUxUVFVm+fHlefPHFbN68OX379k2f\nPn1SWel/ugEA5cNMJQCA7TR9+vTccccdueCCC7J58+bst99+W62rNGLEiJxwwgn52te+lsrKyhxx\nxBH5q7/6q87jv/vd73LHHXdk/fr1GThwYM4888wMGTIkq1evzve+972sWrUqu+yySw466KBMmjSp\n1G8RAKBLFR1/mnsNAAAAAAUyhxoAAACAoimVAAAAACiaUgkAAACAoimVAAAAACiaUgkAAACAoimV\nAAAAACiaUgkAAACAoimVAAAAACiaUgkAAACAoimVAAAAACiaUgkAAACAoimVAAAAACiaUgkAAACA\noimVAAAAACiaUgkAAACAoimVAAAAACiaUgkAAACAoimVAAAAACiaUgkAAACAoimVAAAAAChadSlO\ncuutt+app57K7rvvnhtvvHGr4x0dHVmwYEF+9atfpW/fvpk2bVr+8i//shTRAAAAANgOJZmpNH78\n+Fx22WVdHv/Vr36V1157Ld/5znfyt3/7t7n99ttLEQsAAACA7VSSUmnMmDHZdddduzz+y1/+Mkcc\ncUQqKiqy77775p133snatWtLEQ0AAACA7VAWayq1tbWloaGhc7u+vj5tbW09mAgAAACAbSnJmko7\n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\nbrst55xzTpI/zljqyvnnn7/jUwEAAABQ1roslfbYY4/Ox0OGDClJGAAAAAB6hy5LpT9fhPvkk08u\nSRgAAAAAeocuS6Vnn322oBfYf//9d1gYAAAAAHqHLkuluXPnfuiTKyoqtrneEgAAAAAfT12WSrfc\nckspcwAAAADQi1T2dAAAAAAAep8uZypdcMEFuemmm5Ik5513XpcvUMhtcgAAAAB8vHRZKp1zzjmd\nj6dPn16SMAAAAAD0Dl2WSqNHj+58PGbMmJKEAQAAAKB36LJU+nObN2/Ovffem8WLF2ft2rUZNGhQ\nxo0blxNPPDG77LJLd2cEAAAAoMwUVCrNmzcvK1euzJlnnpnBgwfn9ddfz3333Ze2trZMmzatuzMC\nAAAAUGYKKpWWLl2aOXPmpH///kmSESNGZJ999rHWEgAAAMBOqrKQQQMHDszGjRu32Ldp06YMGjSo\nW0IBAAAAUN66nKn07LPPdj4+4ogjcu211+a4445LfX19Wltb89BDD+WII44o+ETLli3LggUL0t7e\nnqOOOiqTJ0/easySJUtyzz33pKKiInvuuWdmzpxZ5NsBAAAAoBS6LJXmzp271b777rtvi+3m5uYP\nLIf+rfb29syfPz+XX3556uvrc+mll6axsTEjRozoHNPS0pL7778/V199dXbddde8+eabxbwPAAAA\nAEqoy1Lplltu2WEnWb58eYYOHZohQ4YkScaNG5elS5duUSo9/PDDOfbYY7PrrrsmSXbfffcddn4A\nAAAAdqyCFur+qNra2lJfX9+5XV9fnxdffHGLMStXrkySXHHFFWlvb8/JJ5+cgw8+uBTxAAAAAChS\nQaXS+vXrc8899+T555/PunXr0tHR0Xnsg26T2x7t7e1paWnJrFmz0tbWllmzZuWGG27o/MW5P2lu\nbk5zc3OSZPbs2WloaNgh56f0qqur/f1Rllb1dAA+EtcVypXvPcqV773ezXWFcuV7b+dQUKl0++23\np62tLSeddFLmzJmT6dOnZ9GiRfnkJz9Z0Enq6urS2traud3a2pq6urqtxuyzzz6prq7OHnvskWHD\nhqWlpSV77733FuOamprS1NTUub1mzZqCMlB+Ghoa/P0BO5zrCuXK9x7QHVxXKFe+93q34cOHFzSu\nspBBzzzzTL7yla/kkEMOSWVlZQ455JBccMEF+cUvflHQSUaNGpWWlpasXr06mzdvzpIlS9LY2LjF\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbdf0389208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axes = plt.subplots(nrows=7, ncols=1, figsize=(20,40))\n",
"plot_attribute(train_df, 'isChild', 0, axes)\n",
"plot_attribute(train_df, 'isMale', 1, axes)\n",
"plot_attribute(train_df, 'isCheap', 2, axes)\n",
"plot_attribute(train_df, 'Embarked', 3, axes)\n",
"plot_attribute(train_df, 'Family', 4, axes)\n",
"plot_attribute(train_df, 'Pclass', 5, axes)\n",
"plot_attribute(train_df, 'Title', 6, axes)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 891 entries, 0 to 890\n",
"Data columns (total 18 columns):\n",
"Survived 891 non-null int64\n",
"isMale 891 non-null int64\n",
"isChild 891 non-null int64\n",
"isCheap 891 non-null int64\n",
"Title_Master 891 non-null uint8\n",
"Title_Miss 891 non-null uint8\n",
"Title_Mr 891 non-null uint8\n",
"Title_Mrs 891 non-null uint8\n",
"Title_Unknown 891 non-null uint8\n",
"Family_Alone 891 non-null uint8\n",
"Family_Big 891 non-null uint8\n",
"Family_Small 891 non-null uint8\n",
"Pclass_1 891 non-null uint8\n",
"Pclass_2 891 non-null uint8\n",
"Pclass_3 891 non-null uint8\n",
"Embarked_C 891 non-null uint8\n",
"Embarked_Q 891 non-null uint8\n",
"Embarked_S 891 non-null uint8\n",
"dtypes: int64(4), uint8(14)\n",
"memory usage: 40.1 KB\n"
]
}
],
"source": [
"train_df = drop_features(train_df)\n",
"train_df.info()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 418 entries, 0 to 417\n",
"Data columns (total 17 columns):\n",
"isMale 418 non-null int64\n",
"isChild 418 non-null int64\n",
"isCheap 418 non-null int64\n",
"Title_Master 418 non-null uint8\n",
"Title_Miss 418 non-null uint8\n",
"Title_Mr 418 non-null uint8\n",
"Title_Mrs 418 non-null uint8\n",
"Title_Unknown 418 non-null uint8\n",
"Family_Alone 418 non-null uint8\n",
"Family_Big 418 non-null uint8\n",
"Family_Small 418 non-null uint8\n",
"Pclass_1 418 non-null uint8\n",
"Pclass_2 418 non-null uint8\n",
"Pclass_3 418 non-null uint8\n",
"Embarked_C 418 non-null uint8\n",
"Embarked_Q 418 non-null uint8\n",
"Embarked_S 418 non-null uint8\n",
"dtypes: int64(3), uint8(14)\n",
"memory usage: 15.6 KB\n"
]
}
],
"source": [
"test_df = test_dataset.copy()\n",
"derive_features(test_df)\n",
"test_df = create_dummy_values(test_df)\n",
"test_df = drop_features(test_df)\n",
"test_df.info()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"train_x = train_df.drop(['Survived'], axis=1)\n",
"train_y = train_df['Survived'].astype(int)\n",
"test_x = test_df.copy()\n",
"train_stack = pd.DataFrame(0, index=np.arange(len(train_x)), columns=['lr', 'rf', 'svc', 'knn'])\n",
"test_stack = pd.DataFrame(0, index=np.arange(len(test_x)), columns=['lr', 'rf', 'svc', 'knn'])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def predict(train_x, train_y, test_df, algo):\n",
" algo.fit(train_x, train_y)\n",
" pred_y = algo.predict(test_df)\n",
" score = algo.score(train_x, train_y)\n",
" return pred_y, score"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.82940516273849607"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lr_pred_train, score = predict(train_x, train_y, train_x, LogisticRegression())\n",
"lr_pred_y, score = predict(train_x, train_y, test_x, LogisticRegression())\n",
"train_stack['lr'] = lr_pred_train\n",
"test_stack['lr'] = lr_pred_y\n",
"score"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.84848484848484851"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf_pred_train, score = predict(train_x, train_y, train_x, RandomForestClassifier(n_estimators=100))\n",
"rf_pred_y, score = predict(train_x, train_y, test_x, RandomForestClassifier(n_estimators=100))\n",
"train_stack['rf'] = rf_pred_train\n",
"test_stack['rf'] = rf_pred_y\n",
"score"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.82828282828282829"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"svc_pred_train, score = predict(train_x, train_y, train_x, SVC())\n",
"svc_pred_y, score = predict(train_x, train_y, test_x, SVC())\n",
"train_stack['svc'] = svc_pred_train\n",
"test_stack['svc'] = svc_pred_y\n",
"score"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.83838383838383834"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"knn_pred_train, score = predict(train_x, train_y, train_x, KNeighborsClassifier())\n",
"knn_pred_y, score = predict(train_x, train_y, test_x, KNeighborsClassifier())\n",
"train_stack['knn'] = knn_pred_train\n",
"test_stack['knn'] = knn_pred_y\n",
"score"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.84287317620650959"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"prediction_train = np.around(((rf_pred_train + 2*knn_pred_train + svc_pred_train + 0.01)/4)).astype(int)\n",
"prediction_y = np.around(((rf_pred_y + 2*knn_pred_y + svc_pred_y + 0.01)/4)).astype(int)\n",
"score = 1 - sum(abs(train_y - prediction_train))/len(train_y)\n",
"score"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.842873176207\n",
"0.848484848485\n",
"0.848484848485\n",
"0.838383838384\n"
]
}
],
"source": [
"lr_prediction_y, lr_score = predict(train_stack, train_y, test_stack, LogisticRegression())\n",
"rf_prediction_y, rf_score = predict(train_stack, train_y, test_stack, RandomForestClassifier())\n",
"svc_prediction_y, svc_score = predict(train_stack, train_y, test_stack, SVC())\n",
"knn_prediction_y, knn_score = predict(train_stack, train_y, test_stack, KNeighborsClassifier())\n",
"print(lr_score)\n",
"print(rf_score)\n",
"print(svc_score)\n",
"print(knn_score)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"submission = pd.DataFrame({\n",
" \"PassengerId\": test_dataset[\"PassengerId\"],\n",
" \"Survived\": prediction_y\n",
" })\n",
"submission.to_csv('../titanic.csv', index=False)"
]
}
],
"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.5.2+"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment