Skip to content

Instantly share code, notes, and snippets.

@jieun1128
Created July 10, 2020 06:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jieun1128/66c6b3cb420634372a21c8a67ad8ce6f to your computer and use it in GitHub Desktop.
Save jieun1128/66c6b3cb420634372a21c8a67ad8ce6f to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 7장 타이타닉 생존자 예측하기\n",
"## 7-1. 데이터 읽고 전체적인 상황 확인하기"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 1309 entries, 0 to 1308\n",
"Data columns (total 14 columns):\n",
"pclass 1309 non-null int64\n",
"survived 1309 non-null int64\n",
"name 1309 non-null object\n",
"sex 1309 non-null object\n",
"age 1046 non-null float64\n",
"sibsp 1309 non-null int64\n",
"parch 1309 non-null int64\n",
"ticket 1309 non-null object\n",
"fare 1308 non-null float64\n",
"cabin 295 non-null object\n",
"embarked 1307 non-null object\n",
"boat 486 non-null object\n",
"body 121 non-null float64\n",
"home.dest 745 non-null object\n",
"dtypes: float64(3), int64(4), object(7)\n",
"memory usage: 143.2+ KB\n"
]
}
],
"source": [
"raw_data = pd.read_excel('./data/titanic.xls')\n",
"raw_data.info()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>survived</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>fare</th>\n",
" <th>body</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1046.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1308.000000</td>\n",
" <td>121.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>2.294882</td>\n",
" <td>0.381971</td>\n",
" <td>29.881135</td>\n",
" <td>0.498854</td>\n",
" <td>0.385027</td>\n",
" <td>33.295479</td>\n",
" <td>160.809917</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.837836</td>\n",
" <td>0.486055</td>\n",
" <td>14.413500</td>\n",
" <td>1.041658</td>\n",
" <td>0.865560</td>\n",
" <td>51.758668</td>\n",
" <td>97.696922</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.166700</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>2.000000</td>\n",
" <td>0.000000</td>\n",
" <td>21.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>7.895800</td>\n",
" <td>72.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>3.000000</td>\n",
" <td>0.000000</td>\n",
" <td>28.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>14.454200</td>\n",
" <td>155.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>3.000000</td>\n",
" <td>1.000000</td>\n",
" <td>39.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>31.275000</td>\n",
" <td>256.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>1.000000</td>\n",
" <td>80.000000</td>\n",
" <td>8.000000</td>\n",
" <td>9.000000</td>\n",
" <td>512.329200</td>\n",
" <td>328.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass survived age sibsp parch \\\n",
"count 1309.000000 1309.000000 1046.000000 1309.000000 1309.000000 \n",
"mean 2.294882 0.381971 29.881135 0.498854 0.385027 \n",
"std 0.837836 0.486055 14.413500 1.041658 0.865560 \n",
"min 1.000000 0.000000 0.166700 0.000000 0.000000 \n",
"25% 2.000000 0.000000 21.000000 0.000000 0.000000 \n",
"50% 3.000000 0.000000 28.000000 0.000000 0.000000 \n",
"75% 3.000000 1.000000 39.000000 1.000000 0.000000 \n",
"max 3.000000 1.000000 80.000000 8.000000 9.000000 \n",
"\n",
" fare body \n",
"count 1308.000000 121.000000 \n",
"mean 33.295479 160.809917 \n",
"std 51.758668 97.696922 \n",
"min 0.000000 1.000000 \n",
"25% 7.895800 72.000000 \n",
"50% 14.454200 155.000000 \n",
"75% 31.275000 256.000000 \n",
"max 512.329200 328.000000 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data.describe()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>survived</th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>ticket</th>\n",
" <th>fare</th>\n",
" <th>cabin</th>\n",
" <th>embarked</th>\n",
" <th>boat</th>\n",
" <th>body</th>\n",
" <th>home.dest</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allen, Miss. Elisabeth Walton</td>\n",
" <td>female</td>\n",
" <td>29.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>24160</td>\n",
" <td>211.3375</td>\n",
" <td>B5</td>\n",
" <td>S</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>St Louis, MO</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allison, Master. Hudson Trevor</td>\n",
" <td>male</td>\n",
" <td>0.9167</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>11</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Miss. Helen Loraine</td>\n",
" <td>female</td>\n",
" <td>2.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Mr. Hudson Joshua Creighton</td>\n",
" <td>male</td>\n",
" <td>30.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>135.0</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Mrs. Hudson J C (Bessie Waldo Daniels)</td>\n",
" <td>female</td>\n",
" <td>25.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass survived name sex \\\n",
"0 1 1 Allen, Miss. Elisabeth Walton female \n",
"1 1 1 Allison, Master. Hudson Trevor male \n",
"2 1 0 Allison, Miss. Helen Loraine female \n",
"3 1 0 Allison, Mr. Hudson Joshua Creighton male \n",
"4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) female \n",
"\n",
" age sibsp parch ticket fare cabin embarked boat body \\\n",
"0 29.0000 0 0 24160 211.3375 B5 S 2 NaN \n",
"1 0.9167 1 2 113781 151.5500 C22 C26 S 11 NaN \n",
"2 2.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n",
"3 30.0000 1 2 113781 151.5500 C22 C26 S NaN 135.0 \n",
"4 25.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n",
"\n",
" home.dest \n",
"0 St Louis, MO \n",
"1 Montreal, PQ / Chesterville, ON \n",
"2 Montreal, PQ / Chesterville, ON \n",
"3 Montreal, PQ / Chesterville, ON \n",
"4 Montreal, PQ / Chesterville, ON "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"f,ax=plt.subplots(1,2,figsize=(12,6))\n",
"\n",
"raw_data['survived'].value_counts().plot.pie(explode=[0,0.1],\n",
" autopct='%1.2f%%',ax=ax[0])\n",
"ax[0].set_title('Survived')\n",
"ax[0].set_ylabel('')\n",
"\n",
"sns.countplot('survived', data=raw_data,ax=ax[1])\n",
"ax[1].set_title('Survived')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1296x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"raw_data['age'].hist(bins=20,figsize=(18,8),grid=False);"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>survived</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>fare</th>\n",
" <th>body</th>\n",
" </tr>\n",
" <tr>\n",
" <th>pclass</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.619195</td>\n",
" <td>39.159918</td>\n",
" <td>0.436533</td>\n",
" <td>0.365325</td>\n",
" <td>87.508992</td>\n",
" <td>162.828571</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.429603</td>\n",
" <td>29.506705</td>\n",
" <td>0.393502</td>\n",
" <td>0.368231</td>\n",
" <td>21.179196</td>\n",
" <td>167.387097</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.255289</td>\n",
" <td>24.816367</td>\n",
" <td>0.568406</td>\n",
" <td>0.400564</td>\n",
" <td>13.302889</td>\n",
" <td>155.818182</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" survived age sibsp parch fare body\n",
"pclass \n",
"1 0.619195 39.159918 0.436533 0.365325 87.508992 162.828571\n",
"2 0.429603 29.506705 0.393502 0.368231 21.179196 167.387097\n",
"3 0.255289 24.816367 0.568406 0.400564 13.302889 155.818182"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data.groupby('pclass').mean()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>survived</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>fare</th>\n",
" <th>body</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>pclass</th>\n",
" <td>1.000000</td>\n",
" <td>-0.312469</td>\n",
" <td>-0.408106</td>\n",
" <td>0.060832</td>\n",
" <td>0.018322</td>\n",
" <td>-0.558629</td>\n",
" <td>-0.034642</td>\n",
" </tr>\n",
" <tr>\n",
" <th>survived</th>\n",
" <td>-0.312469</td>\n",
" <td>1.000000</td>\n",
" <td>-0.055513</td>\n",
" <td>-0.027825</td>\n",
" <td>0.082660</td>\n",
" <td>0.244265</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>age</th>\n",
" <td>-0.408106</td>\n",
" <td>-0.055513</td>\n",
" <td>1.000000</td>\n",
" <td>-0.243699</td>\n",
" <td>-0.150917</td>\n",
" <td>0.178739</td>\n",
" <td>0.058809</td>\n",
" </tr>\n",
" <tr>\n",
" <th>sibsp</th>\n",
" <td>0.060832</td>\n",
" <td>-0.027825</td>\n",
" <td>-0.243699</td>\n",
" <td>1.000000</td>\n",
" <td>0.373587</td>\n",
" <td>0.160238</td>\n",
" <td>-0.099961</td>\n",
" </tr>\n",
" <tr>\n",
" <th>parch</th>\n",
" <td>0.018322</td>\n",
" <td>0.082660</td>\n",
" <td>-0.150917</td>\n",
" <td>0.373587</td>\n",
" <td>1.000000</td>\n",
" <td>0.221539</td>\n",
" <td>0.051099</td>\n",
" </tr>\n",
" <tr>\n",
" <th>fare</th>\n",
" <td>-0.558629</td>\n",
" <td>0.244265</td>\n",
" <td>0.178739</td>\n",
" <td>0.160238</td>\n",
" <td>0.221539</td>\n",
" <td>1.000000</td>\n",
" <td>-0.043110</td>\n",
" </tr>\n",
" <tr>\n",
" <th>body</th>\n",
" <td>-0.034642</td>\n",
" <td>NaN</td>\n",
" <td>0.058809</td>\n",
" <td>-0.099961</td>\n",
" <td>0.051099</td>\n",
" <td>-0.043110</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass survived age sibsp parch fare body\n",
"pclass 1.000000 -0.312469 -0.408106 0.060832 0.018322 -0.558629 -0.034642\n",
"survived -0.312469 1.000000 -0.055513 -0.027825 0.082660 0.244265 NaN\n",
"age -0.408106 -0.055513 1.000000 -0.243699 -0.150917 0.178739 0.058809\n",
"sibsp 0.060832 -0.027825 -0.243699 1.000000 0.373587 0.160238 -0.099961\n",
"parch 0.018322 0.082660 -0.150917 0.373587 1.000000 0.221539 0.051099\n",
"fare -0.558629 0.244265 0.178739 0.160238 0.221539 1.000000 -0.043110\n",
"body -0.034642 NaN 0.058809 -0.099961 0.051099 -0.043110 1.000000"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data.corr()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10, 10))\n",
"sns.heatmap(raw_data.corr(), linewidths=0.01, square=True,\n",
" annot=True, cmap=plt.cm.viridis, linecolor=\"white\")\n",
"plt.title('Correlation between features')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 7-3. 나이별 구별 및 성별 생존률 확인하기"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>survived</th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>ticket</th>\n",
" <th>fare</th>\n",
" <th>cabin</th>\n",
" <th>embarked</th>\n",
" <th>boat</th>\n",
" <th>body</th>\n",
" <th>home.dest</th>\n",
" <th>age_cat</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allen, Miss. Elisabeth Walton</td>\n",
" <td>female</td>\n",
" <td>29.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>24160</td>\n",
" <td>211.3375</td>\n",
" <td>B5</td>\n",
" <td>S</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>St Louis, MO</td>\n",
" <td>young</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allison, Master. Hudson Trevor</td>\n",
" <td>male</td>\n",
" <td>0.9167</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>11</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>baby</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Miss. Helen Loraine</td>\n",
" <td>female</td>\n",
" <td>2.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>baby</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Mr. Hudson Joshua Creighton</td>\n",
" <td>male</td>\n",
" <td>30.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>135.0</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>young</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Mrs. Hudson J C (Bessie Waldo Daniels)</td>\n",
" <td>female</td>\n",
" <td>25.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>young</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass survived name sex \\\n",
"0 1 1 Allen, Miss. Elisabeth Walton female \n",
"1 1 1 Allison, Master. Hudson Trevor male \n",
"2 1 0 Allison, Miss. Helen Loraine female \n",
"3 1 0 Allison, Mr. Hudson Joshua Creighton male \n",
"4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) female \n",
"\n",
" age sibsp parch ticket fare cabin embarked boat body \\\n",
"0 29.0000 0 0 24160 211.3375 B5 S 2 NaN \n",
"1 0.9167 1 2 113781 151.5500 C22 C26 S 11 NaN \n",
"2 2.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n",
"3 30.0000 1 2 113781 151.5500 C22 C26 S NaN 135.0 \n",
"4 25.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n",
"\n",
" home.dest age_cat \n",
"0 St Louis, MO young \n",
"1 Montreal, PQ / Chesterville, ON baby \n",
"2 Montreal, PQ / Chesterville, ON baby \n",
"3 Montreal, PQ / Chesterville, ON young \n",
"4 Montreal, PQ / Chesterville, ON young "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data['age_cat'] = pd.cut(raw_data['age'], \n",
" bins=[0, 3, 7, 15, 30, 60, 100], \n",
" include_lowest=True, \n",
" labels=['baby', 'children', 'teenage', \n",
" 'young', 'adult', 'old'])\n",
"raw_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>survived</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>fare</th>\n",
" <th>body</th>\n",
" </tr>\n",
" <tr>\n",
" <th>age_cat</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>baby</th>\n",
" <td>2.585366</td>\n",
" <td>0.634146</td>\n",
" <td>1.540651</td>\n",
" <td>1.487805</td>\n",
" <td>1.365854</td>\n",
" <td>29.615346</td>\n",
" <td>4.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>children</th>\n",
" <td>2.640000</td>\n",
" <td>0.640000</td>\n",
" <td>5.160000</td>\n",
" <td>1.760000</td>\n",
" <td>1.360000</td>\n",
" <td>31.022828</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>teenage</th>\n",
" <td>2.632653</td>\n",
" <td>0.489796</td>\n",
" <td>11.540816</td>\n",
" <td>1.734694</td>\n",
" <td>1.163265</td>\n",
" <td>38.390904</td>\n",
" <td>132.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>young</th>\n",
" <td>2.412955</td>\n",
" <td>0.368421</td>\n",
" <td>23.389676</td>\n",
" <td>0.352227</td>\n",
" <td>0.236842</td>\n",
" <td>27.313140</td>\n",
" <td>169.720930</td>\n",
" </tr>\n",
" <tr>\n",
" <th>adult</th>\n",
" <td>1.893564</td>\n",
" <td>0.423267</td>\n",
" <td>41.548267</td>\n",
" <td>0.376238</td>\n",
" <td>0.405941</td>\n",
" <td>47.141986</td>\n",
" <td>154.777778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>old</th>\n",
" <td>1.545455</td>\n",
" <td>0.242424</td>\n",
" <td>65.393939</td>\n",
" <td>0.303030</td>\n",
" <td>0.363636</td>\n",
" <td>60.248309</td>\n",
" <td>185.600000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass survived age sibsp parch fare \\\n",
"age_cat \n",
"baby 2.585366 0.634146 1.540651 1.487805 1.365854 29.615346 \n",
"children 2.640000 0.640000 5.160000 1.760000 1.360000 31.022828 \n",
"teenage 2.632653 0.489796 11.540816 1.734694 1.163265 38.390904 \n",
"young 2.412955 0.368421 23.389676 0.352227 0.236842 27.313140 \n",
"adult 1.893564 0.423267 41.548267 0.376238 0.405941 47.141986 \n",
"old 1.545455 0.242424 65.393939 0.303030 0.363636 60.248309 \n",
"\n",
" body \n",
"age_cat \n",
"baby 4.000000 \n",
"children NaN \n",
"teenage 132.000000 \n",
"young 169.720930 \n",
"adult 154.777778 \n",
"old 185.600000 "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data.groupby('age_cat').mean()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x288 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=[14,4])\n",
"plt.subplot(131)\n",
"sns.barplot('pclass', 'survived', data=raw_data)\n",
"plt.subplot(132)\n",
"sns.barplot('age_cat', 'survived', data=raw_data)\n",
"plt.subplot(133)\n",
"sns.barplot('sex', 'survived', data=raw_data)\n",
"plt.subplots_adjust(top=1, bottom=0.1, left=0.10, right=1, hspace=0.5, wspace=0.5)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtcAAAGDCAYAAADgeTwhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xu4HWV5///3RwIixwAGCgkYFKoIFISAUKs/Kq0KWkJbI1CVgPwaa8HSavsVW6vWw7dobT3V2mJpCYocRC3RUlqKh7ZS0KRyFC1RFGIQIoeoUKvo/f1jng2LZCfZIbP22kner+ta15p55pmZe9Ze+1n3etYzM6kqJEmSJG24x406AEmSJGlTYXItSZIk9cTkWpIkSeqJybUkSZLUE5NrSZIkqScm15IkSVJPTK41ZST51SR3JPlBkmeMOp6NTZJTkvzHqOOQpL4k+eskfzyE7b45yUf63u4obYrHtLEyud4EJfmNJItbknpnkn9K8guTsN9Kss8GbOJdwBlVtV1VfXkN23+gHde3k/xFki02YH9agyT7J/mXJPcluT/JkiTHjjouSWuW5BeSXJ1kZZJ7k3whyWEb634Aquq3quqtw9j2sCX5ZpL/SfL91o5eneS3kph7beL8A29ikrwGeA/wf4HdgL2AvwLmjjKuCXoScPM66hxUVdsBRwO/Afzm0KMaoRF+efgUcCXde2hX4HeA740oFknrkGQH4NPA+4GdgZnAnwD/O1X3k86mnof8SlVtT/f5djbwOuDc0YakYdvU39SblSQ7Am8BTq+qT1TVA1X146r6VFX9Qavz+CTvSbK8Pd6T5PFt2WrDCgZ7o5Ocl+QDSf6xfRO/NslT2rJ/a6tc33qWTxgnvscleUOSbyW5O8n5SXZsMf0A2KKt//V1HWtVfRX4d+CAtu2zkny9xfWVJL86sN99kny+9bJ8N8nFrTxJ3t1iWZnkhiRj23t8kncluT3JXe2nySe0ZUclWZbktW3dO5OcOrC/XZJ8Ksn3knwpydsGX9ckT0tyZevx+VqSlwwsOy/JB5NcnuQB4BeTHNuO6futx/731/LSJMn72/F8NcnRrXBekiWrVHxtkn8YZwNPBPYGPlRVP2qPL1TV4DG8KMl1A70xP9fKn9KO65A2v0d7zY9ax59U0ob5WYCqurCqflJV/1NV/1JVN4xVSPKKJLek+0Xqn5M8qZX/fPs/3bPNH9T+t5+2vvvJKkMTksxunyPT2vznkrw9yReAB4E/TLJ4cAdJfi/JojZ9XpK3telbkrxooN60FvdYe3NEa4/uT3L9YLuTZO/2OfD9JFcCT1zTC7m2/STZOslHktzT9vOlJLut9S/TvV4rq2oRcAIwf4KfNTsl+XSSFe1v9ukksx7LMWmSVZWPTeQBvAB4CJi2ljpvAa6h642cAVwNvLUtOwX4j1XqF7BPmz4PuBc4HJgGXABcNF7dNez7FcBS4MnAdsAngA+vx/qDsTwd+A5wWpufB+xB94XxBOABYPe27ELgj9qyrYFfaOXPB5YA04EA+w2s8x5gEV3PzPZ0Pbl/2pYd1V7ntwBbAsfSfUjs1JZf1B7btDjvGHtdgW3b/KntNTwE+C6w/8BrvBJ41kC8dwLPbst3Ag5Zw+tzSovr91pcJ7Rt7Qw8vv3t9huo/2Xg18fZToBb6Xqnjgd2W2X5IcDdwDPpvhDNB74JPL4t/03glnb8/wy8a9T/Gz58bOoPYAfgHmAhcMxYezSw/PjW/u7X2p43AFcPLH878BngCcANdEP0xpb9FfBXE9zPm4GPDMzPpmu7p7X5zwG3A/u3OHYEvg/sO7DOl4AT2/R5wNva9BuBCwbqvRD4apue2eI6trWdv9zmZ7Tl/wn8RWsLn9P2+ZE1vJZr288r6T4Ptmnt36HADmvYzjeBXxqn/HbgVW16bZ81uwC/3va1PfAx4B8GtjPhY/Ixyf+Pow7AR49/THgp8J111Pk6cOzA/POBb7bpU1h3cv23A8uOHWtwVq27hn1fBfz2wPxTgR8PNLoTSa6/B9zXjuNtwOPWUPc6YG6bPh84B5i1Sp3nAv8NHDG4Hbrk8gHgKQNlRwK3temjgP9h4EsMXbJ5RGtsfww8dWDZ23gkuT4B+PdV4vgb4E0Dr/H5qyy/vTXo4zbgA/VOAZYDGSj7IvDyNv1B4O1tev/2Oj5+DduaBfxle51/Cvwb7cOvbeetq9T/GvD/DcwvAm6k+5Aedx8+fPjo90GXOJ8HLKP7or2I9uUY+CdaZ0Sbfxxdp8CT2vyWdJ0NNwJXDLYj67mfN7Pu5Potq2zvI8Ab2/S+dEniNm3+PB5JrvdZZdkFA+u9joHOmlb2z3Rf/vdqcW47sOyjrDm5Xtt+XkHXKfVzE/h7fJPxk+tr6Dp81vpZM856BwP3ten1OiYfk/twWMim5R7giWM/v63BHsC3Bua/1com6jsD0w/S9UBP1Hj7nkY3rneiDqmqnarqKVX1hqr6KUCSkweGKdxPN1xk7Cey/0PXiH0xyc1JXgFQVZ+hSyA/ANyV5Jx04wln0PUULBnY3hWtfMw9VfXQwPzYazGjHdMdA8sGp58EPHNsu23bLwV+Zg31oeu5OBb4VvsJ8Mi1vD7frtbKNoN/34XAbyQJ8HLgkqoad5xkVS2rqjOq6ikt5gfovqSMHcNrVzmGPXn0++hDdH+D969pH5L6VVW3VNUpVTWL7v9vD7qeUej+b9878D97L127OLOt+2O6RPYA4M9XaUfWZz8TsWob91HgpDb9G3S9sw+Os9+ldL+K/UqSbYDj2rpjxzdvlXbpF4DdW3z3VdUDA5sb/Cxan/18mC5pvyjd0Mp3JtlyogfezKR7/df6WZNkmyR/k24o5ffoOjmmpzsXZ72OSZPL5HrT8p/AD+l+/luT5XSN0Ji9Whl0CdQ2YwuSDCZ8fRhv3w8Bd23IRtu4wQ8BZwC7VNV04Ca6Dw6q6jtV9ZtVtQddD/BfpY0jr6r3VdWhdD25Pwv8Ad0wjf+hG6oxvT12rO5EynVZ0Y5p1kDZngPTdwCfH9ju9OqujvKqgTqP+lCrqi9V1Vy6oTz/AFyylv3PbMnzmIf/vlV1DfAj4Nl0H2AfnsDxUFV30H0BOWDgGN6+yjFsU1UXAiTZju6D9lzgzUl2nsh+JPWnuvNSzuPR/7evXOX/9glVdTVAkpnAm4C/B/487Vycx7CfR32O8OiOg4dXW2X+X+g6hg6mS7I/uvoqD7uw1ZkLfKUlwmPH9+FVjm/bqjqbbmjdTkm2HdjOXus4tHH3U915TH9SVU8Hfh54EXDyOrb1sHRXVZkJ/Afr/qx5Ld0vvM+sqh3ohn5A99n2WI5Jk8TkehNSVSvpxop9IMnx7VvvlkmOSfLOVu1C4A1JZqQ7ce2NdD/JAVwP7J/k4CRb0/28tz7uohtPvSYXAr/XTsLYju6KJhev0gP8WGxL11ivAEh3cuFYQz92Mt9Ysntfq/uTJIcleWbrdXiA7ovJT1pv+IeAdyfZtW1jZpLnryuQqvoJ3VjyN7fX/2k8uuH9NPCzSV7e/jZbtjj2G297SbZK8tIkO7aepe8BP1lLCLsCv9O2O4/u59vLB5afT9db/1ANnKC4yj53SvIn6U4EfVx7n7yC7qdM6F6b32qvXZJsm+SFSbZvy98LLKmq/x/4R+Cv1xKvpB6kO1H6tWNtXbqTE0/ikf/bvwZen2T/tnzH1kbQvpCfR/eF+DS6xG3cy99NYD/XAc9Jsle6k+xfv67Y22fApcCf0Y09vnIt1S8Cnge8ikcn4R+h62l+fpIt0p14eFSSWVX1LWAx8CetTf0F4FfWEda4+0nyi0kObL3H36MbBri2NnlsvR3SnSR5Ed3QjRsn8FmzPV3yfX/rpHjT2PYe4zFpkphcb2Kq6i+A19CdrLKC7tv8GXQ9ntCN/11MNxb2RuC/WhlV9d90J+n9K90Jbet7Q5I3Awvbz1svGWf539H1lv4bcBtdMvvq9dzHaqrqK8Cf0/Xc3wUcCHxhoMphwLXprkiyCDizqm6jOzHnQ3QJ97fohtW8q63zOrqTf65pP8f9K10PwkScQXeSznfojvdC2mWqqur7dA32iXQ9yt8B3kF3QsqavBz4Zovjt4CXraXutXRjFr9Ld4LSi6vqnoHlH6b74rG2Xusf0Y2T/Fe6D4+bWvyntGNYTHfS4l/SvXZLx5YlmUt3Yu1vtW29BjgkyUvXsj9JG+77dCcZX5vuSkPX0P3vvhagqj5J19Zc1NqSm+hOSITuUpu7AX/choOcCpya5Nnw8I1c/nqC+7kSuJjuM2YJXYfCRHwU+CXgY2vrcKmqO+na+p9v+xkrv4Oul/kPeeSz7w94JM/5jRb3vXRJ6vmsxZr2Q9cTfyld23gL8Hke6aAaz6eSfL/F80d0JyCeOrB8bZ8176E7wfS7dK/zFatse72OSZMnaxlWJakHSd4B/ExVzZ8CsTyB7uTLQ6rq1lHHI0nSpsaea6ln7WfTn2tDJg6n+5n1k6OOq3kV8CUTa0mShmNtV5WQ9NhsTzcUZA+6XuI/By4baUR0t+KlOxFmbSe8SpKkDeCwEEmSJKknDguRJEmSemJyLUmSJPVkox5z/cQnPrFmz5496jAkab0tWbLku1U1Y901Nx222ZI2ZhNttzfq5Hr27NksXrx41GFI0npLstndqtg2W9LGbKLttsNCJEmSpJ6YXEuSJEk9MbmWJJHkqUmuG3h8L8nvJtk5yZVJbm3PO7X6SfK+JEuT3JDkkFEfgyRNBRv1mGtJUj+q6mvAwQBJtgC+TXdn0bOAq6rq7CRntfnXAccA+7bHM4EPtmdJm6kf//jHLFu2jB/+8IejDmWDbL311syaNYstt9zyMa1vci1JWtXRwNer6ltJ5gJHtfKFwOfokuu5wPnV3YnsmiTTk+xeVXeOImBJo7ds2TK23357Zs+eTZJRh/OYVBX33HMPy5YtY++9935M23BYiCRpVScCF7bp3cYS5va8ayufCdwxsM6yVvYoSRYkWZxk8YoVK4YYsqRR++EPf8guu+yy0SbWAEnYZZddNqj33eRakvSwJFsBxwEfW1fVccpqtYKqc6pqTlXNmTFjs7qst7RZ2pgT6zEbegwm15KkQccA/1VVd7X5u5LsDtCe727ly4A9B9abBSyftCglbZYWLVrE2Wef3cu2tttuu162syqTa0nSoJN4ZEgIwCJgfpueD1w2UH5yu2rIEcBKx1tL6sNDDz20xmXHHXccZ5111iRGs/5MriVJACTZBvhl4BMDxWcDv5zk1rZsrMvocuAbwFLgQ8BvT2KokjYCDzzwAC984Qs56KCDOOCAA7j44ouZPXs23/3udwFYvHgxRx11FABvfvObWbBgAc973vM4+eSTeeYzn8nNN9/88LaOOuoolixZwnnnnccZZ5zBypUrmT17Nj/96U8BePDBB9lzzz358Y9/zNe//nVe8IIXcOihh/LsZz+br371qwDcdtttHHnkkRx22GH88R//8dCO2+RakgRAVT1YVbtU1cqBsnuq6uiq2rc939vKq6pOr6qnVNWBVeV9zSU9yhVXXMEee+zB9ddfz0033cQLXvCCtdZfsmQJl112GR/96Ec58cQTueSSSwC48847Wb58OYceeujDdXfccUcOOuggPv/5zwPwqU99iuc///lsueWWLFiwgPe///0sWbKEd73rXfz2b3ff/c8880xe9apX8aUvfYmf+ZmfGdJRm1xLkiRpCA488ED+9V//lde97nX8+7//OzvuuONa6x933HE84QlPAOAlL3kJH/tYd171JZdcwrx581arf8IJJ3DxxRcDcNFFF3HCCSfwgx/8gKuvvpp58+Zx8MEH88pXvpI77+xGrH3hC1/gpJNOAuDlL395b8e5Kq9zLUmSpN797M/+LEuWLOHyyy/n9a9/Pc973vOYNm3aw0M5Vr3c3bbbbvvw9MyZM9lll1244YYbuPjii/mbv/mb1bZ/3HHH8frXv557772XJUuW8NznPpcHHniA6dOnc911140b02RczcTkWhqC299y4KhD0CTY6403jjoEST059A/OH3UIk27Jn5081O0vX76cnXfemZe97GVst912nHfeecyePZslS5ZwzDHH8PGPf3yt65944om8853vZOXKlRx44Oqfq9tttx2HH344Z555Ji960YvYYost2GGHHdh777352Mc+xrx586gqbrjhBg466CCe9axncdFFF/Gyl72MCy64YFiH7bAQSZIk9e/GG2/k8MMP5+CDD+btb387b3jDG3jTm97EmWeeybOf/Wy22GKLta7/4he/mIsuuoiXvOQla6xzwgkn8JGPfIQTTjjh4bILLriAc889l4MOOoj999+fyy7rLnL03ve+lw984AMcdthhrFy5ck2b3GDp7ly7cZozZ04tXuw5NJp67LnePGxIz3WSJVU1p8dwpjzbbE1l9lxvuFtuuYX99tuv122OynjHMtF2255rSZIkqScm15IkSVJPTK4lSZKknphcS5IkST0xuZYkSZJ6YnItSZIk9cTkWpIkSZusK664gqc+9anss88+nH322UPfn3dolCRJ0tD1fS3xiVyn+yc/+Qmnn346V155JbNmzeKwww7juOOO4+lPf3qvsQyy51qSJEmbpC9+8Yvss88+PPnJT2arrbbixBNPfPiOjcNici1JkqRN0re//W323HPPh+dnzZrFt7/97aHuc6jJdZLfS3JzkpuSXJhk6yR7J7k2ya1JLk6yVav7+Da/tC2fPczYJEmStGmrqtXKkgx1n0NLrpPMBH4HmFNVBwBbACcC7wDeXVX7AvcBp7VVTgPuq6p9gHe3epIkSdJjMmvWLO64446H55ctW8Yee+wx1H0Oe1jINOAJSaYB2wB3As8FLm3LFwLHt+m5bZ62/OgM+6uFJEmSNlmHHXYYt956K7fddhs/+tGPuOiiizjuuOOGus+hJddV9W3gXcDtdEn1SmAJcH9VPdSqLQNmtumZwB1t3Yda/V1W3W6SBUkWJ1m8YsWKYYUvSZKkjdy0adP4y7/8S57//Oez33778ZKXvIT9999/uPsc1oaT7ETXG703cD/wMeCYcaqODYYZr5d6tYEyVXUOcA7AnDlzVh9II0mSpClnIpfOG4Zjjz2WY489dtL2N8xhIb8E3FZVK6rqx8AngJ8HprdhIgCzgOVtehmwJ0Bb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\n",
"text/plain": [
"<Figure size 864x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"f,ax=plt.subplots(1,2,figsize=(12,6))\n",
"sns.countplot('sex',data=raw_data, ax=ax[0])\n",
"ax[0].set_title('Count of Passengers by Sex')\n",
"\n",
"sns.countplot('sex',hue='survived',data=raw_data, ax=ax[1])\n",
"ax[1].set_title('Sex:Survived vs Dead')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 7-4. 보트 탑승 승객의 생존률 확인하기"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>survived</th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>ticket</th>\n",
" <th>fare</th>\n",
" <th>cabin</th>\n",
" <th>embarked</th>\n",
" <th>boat</th>\n",
" <th>body</th>\n",
" <th>home.dest</th>\n",
" <th>age_cat</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allen, Miss. Elisabeth Walton</td>\n",
" <td>female</td>\n",
" <td>29.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>24160</td>\n",
" <td>211.3375</td>\n",
" <td>B5</td>\n",
" <td>S</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>St Louis, MO</td>\n",
" <td>young</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allison, Master. Hudson Trevor</td>\n",
" <td>male</td>\n",
" <td>0.9167</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>11</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>baby</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Anderson, Mr. Harry</td>\n",
" <td>male</td>\n",
" <td>48.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>19952</td>\n",
" <td>26.5500</td>\n",
" <td>E12</td>\n",
" <td>S</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>New York, NY</td>\n",
" <td>adult</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Andrews, Miss. Kornelia Theodosia</td>\n",
" <td>female</td>\n",
" <td>63.0000</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>13502</td>\n",
" <td>77.9583</td>\n",
" <td>D7</td>\n",
" <td>S</td>\n",
" <td>10</td>\n",
" <td>NaN</td>\n",
" <td>Hudson, NY</td>\n",
" <td>old</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Appleton, Mrs. Edward Dale (Charlotte Lamson)</td>\n",
" <td>female</td>\n",
" <td>53.0000</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>11769</td>\n",
" <td>51.4792</td>\n",
" <td>C101</td>\n",
" <td>S</td>\n",
" <td>D</td>\n",
" <td>NaN</td>\n",
" <td>Bayside, Queens, NY</td>\n",
" <td>adult</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass survived name sex \\\n",
"0 1 1 Allen, Miss. Elisabeth Walton female \n",
"1 1 1 Allison, Master. Hudson Trevor male \n",
"5 1 1 Anderson, Mr. Harry male \n",
"6 1 1 Andrews, Miss. Kornelia Theodosia female \n",
"8 1 1 Appleton, Mrs. Edward Dale (Charlotte Lamson) female \n",
"\n",
" age sibsp parch ticket fare cabin embarked boat body \\\n",
"0 29.0000 0 0 24160 211.3375 B5 S 2 NaN \n",
"1 0.9167 1 2 113781 151.5500 C22 C26 S 11 NaN \n",
"5 48.0000 0 0 19952 26.5500 E12 S 3 NaN \n",
"6 63.0000 1 0 13502 77.9583 D7 S 10 NaN \n",
"8 53.0000 2 0 11769 51.4792 C101 S D NaN \n",
"\n",
" home.dest age_cat \n",
"0 St Louis, MO young \n",
"1 Montreal, PQ / Chesterville, ON baby \n",
"5 New York, NY adult \n",
"6 Hudson, NY old \n",
"8 Bayside, Queens, NY adult "
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"boat_survivors = raw_data[raw_data['boat'].notnull()]\n",
"boat_survivors.head()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"f,ax=plt.subplots(1,2,figsize=(12,6))\n",
"\n",
"boat_survivors['survived'].value_counts().plot.pie(explode=[0,0.1],\n",
" autopct='%1.2f%%',ax=ax[0])\n",
"ax[0].set_title('Survived')\n",
"ax[0].set_ylabel('')\n",
"\n",
"sns.countplot('survived',data=boat_survivors,ax=ax[1])\n",
"ax[1].set_title('Survived')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 7-5. 귀족들의 생존률만 다시 조사해보기"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Allen, Miss. Elisabeth Walton'"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data['name'][0]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"' Miss. Elisabeth Walton'"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data['name'][0].split(',')[1]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"' Miss'"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data['name'][0].split(',')[1].split('.')[0]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Miss'"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data['name'][0].split(',')[1].split('.')[0].strip()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test = lambda x: x+2\n",
"test(2)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[2, 3, 4, 5, 6]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(map(test, range(5)))"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Miss', 'Master', 'Mr', 'Mrs', 'Col', 'Mme', 'Dr', 'Major', 'Capt',\n",
" 'Lady', 'Sir', 'Mlle', 'Dona', 'Jonkheer', 'the Countess', 'Don',\n",
" 'Rev', 'Ms'], dtype=object)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"conversion_rare = lambda x: x.split(',')[1].split('.')[0].strip()\n",
"raw_data['title'] = raw_data['name'].map(conversion_rare)\n",
"\n",
"titles = raw_data['title'].unique()\n",
"titles"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>sex</th>\n",
" <th>female</th>\n",
" <th>male</th>\n",
" </tr>\n",
" <tr>\n",
" <th>title</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Capt</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Col</th>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Don</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dona</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dr</th>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Jonkheer</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lady</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Major</th>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Master</th>\n",
" <td>0</td>\n",
" <td>61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Miss</th>\n",
" <td>260</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mlle</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mme</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mr</th>\n",
" <td>0</td>\n",
" <td>757</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mrs</th>\n",
" <td>197</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ms</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Rev</th>\n",
" <td>0</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sir</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>the Countess</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"sex female male\n",
"title \n",
"Capt 0 1\n",
"Col 0 4\n",
"Don 0 1\n",
"Dona 1 0\n",
"Dr 1 7\n",
"Jonkheer 0 1\n",
"Lady 1 0\n",
"Major 0 2\n",
"Master 0 61\n",
"Miss 260 0\n",
"Mlle 2 0\n",
"Mme 1 0\n",
"Mr 0 757\n",
"Mrs 197 0\n",
"Ms 2 0\n",
"Rev 0 8\n",
"Sir 0 1\n",
"the Countess 1 0"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(raw_data['title'], raw_data['sex'])"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Miss', 'Rare', 'Mr', 'Mrs'], dtype=object)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data['title'] = raw_data['title'].replace('Mlle', 'Miss')\n",
"raw_data['title'] = raw_data['title'].replace('Ms', 'Miss')\n",
"raw_data['title'] = raw_data['title'].replace('Mme', 'Mrs')\n",
"\n",
"Rare = ['Lady','the Countess','Countess','Capt', 'Master',\n",
" 'Col','Don','Dr','Major','Rev','Sir','Jonkheer', 'Dona']\n",
"\n",
"for each in Rare:\n",
" raw_data['title'] = raw_data['title'].replace(each, 'Rare')\n",
" \n",
"raw_data['title'].unique()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" title survived\n",
"0 Miss 0.678030\n",
"1 Mr 0.162483\n",
"2 Mrs 0.787879\n",
"3 Rare 0.466667\n"
]
}
],
"source": [
"print (raw_data[['title', 'survived']].groupby(['title'], as_index=False).mean())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 7-6. 학습하기 위해 데이터를 정리하고, 특징을 선택하기"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>survived</th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>ticket</th>\n",
" <th>fare</th>\n",
" <th>cabin</th>\n",
" <th>embarked</th>\n",
" <th>boat</th>\n",
" <th>body</th>\n",
" <th>home.dest</th>\n",
" <th>age_cat</th>\n",
" <th>title</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allen, Miss. Elisabeth Walton</td>\n",
" <td>female</td>\n",
" <td>29.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>24160</td>\n",
" <td>211.3375</td>\n",
" <td>B5</td>\n",
" <td>S</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>St Louis, MO</td>\n",
" <td>young</td>\n",
" <td>Miss</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allison, Master. Hudson Trevor</td>\n",
" <td>male</td>\n",
" <td>0.9167</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>11</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>baby</td>\n",
" <td>Rare</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Miss. Helen Loraine</td>\n",
" <td>female</td>\n",
" <td>2.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>baby</td>\n",
" <td>Miss</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Mr. Hudson Joshua Creighton</td>\n",
" <td>male</td>\n",
" <td>30.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>135.0</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>young</td>\n",
" <td>Mr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Mrs. Hudson J C (Bessie Waldo Daniels)</td>\n",
" <td>female</td>\n",
" <td>25.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>young</td>\n",
" <td>Mrs</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass survived name sex \\\n",
"0 1 1 Allen, Miss. Elisabeth Walton female \n",
"1 1 1 Allison, Master. Hudson Trevor male \n",
"2 1 0 Allison, Miss. Helen Loraine female \n",
"3 1 0 Allison, Mr. Hudson Joshua Creighton male \n",
"4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) female \n",
"\n",
" age sibsp parch ticket fare cabin embarked boat body \\\n",
"0 29.0000 0 0 24160 211.3375 B5 S 2 NaN \n",
"1 0.9167 1 2 113781 151.5500 C22 C26 S 11 NaN \n",
"2 2.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n",
"3 30.0000 1 2 113781 151.5500 C22 C26 S NaN 135.0 \n",
"4 25.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n",
"\n",
" home.dest age_cat title \n",
"0 St Louis, MO young Miss \n",
"1 Montreal, PQ / Chesterville, ON baby Rare \n",
"2 Montreal, PQ / Chesterville, ON baby Miss \n",
"3 Montreal, PQ / Chesterville, ON young Mr \n",
"4 Montreal, PQ / Chesterville, ON young Mrs "
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"tmp = []\n",
"for each in raw_data['sex']:\n",
" if each == 'female':\n",
" tmp.append(0)\n",
" elif each == 'male':\n",
" tmp.append(1)\n",
" else:\n",
" tmp.append(np.nan)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>survived</th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>ticket</th>\n",
" <th>fare</th>\n",
" <th>cabin</th>\n",
" <th>embarked</th>\n",
" <th>boat</th>\n",
" <th>body</th>\n",
" <th>home.dest</th>\n",
" <th>age_cat</th>\n",
" <th>title</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allen, Miss. Elisabeth Walton</td>\n",
" <td>0</td>\n",
" <td>29.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>24160</td>\n",
" <td>211.3375</td>\n",
" <td>B5</td>\n",
" <td>S</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>St Louis, MO</td>\n",
" <td>young</td>\n",
" <td>Miss</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Allison, Master. Hudson Trevor</td>\n",
" <td>1</td>\n",
" <td>0.9167</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>11</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>baby</td>\n",
" <td>Rare</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Miss. Helen Loraine</td>\n",
" <td>0</td>\n",
" <td>2.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>baby</td>\n",
" <td>Miss</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Mr. Hudson Joshua Creighton</td>\n",
" <td>1</td>\n",
" <td>30.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>135.0</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>young</td>\n",
" <td>Mr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Allison, Mrs. Hudson J C (Bessie Waldo Daniels)</td>\n",
" <td>0</td>\n",
" <td>25.0000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>young</td>\n",
" <td>Mrs</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass survived name sex \\\n",
"0 1 1 Allen, Miss. Elisabeth Walton 0 \n",
"1 1 1 Allison, Master. Hudson Trevor 1 \n",
"2 1 0 Allison, Miss. Helen Loraine 0 \n",
"3 1 0 Allison, Mr. Hudson Joshua Creighton 1 \n",
"4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) 0 \n",
"\n",
" age sibsp parch ticket fare cabin embarked boat body \\\n",
"0 29.0000 0 0 24160 211.3375 B5 S 2 NaN \n",
"1 0.9167 1 2 113781 151.5500 C22 C26 S 11 NaN \n",
"2 2.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n",
"3 30.0000 1 2 113781 151.5500 C22 C26 S NaN 135.0 \n",
"4 25.0000 1 2 113781 151.5500 C22 C26 S NaN NaN \n",
"\n",
" home.dest age_cat title \n",
"0 St Louis, MO young Miss \n",
"1 Montreal, PQ / Chesterville, ON baby Rare \n",
"2 Montreal, PQ / Chesterville, ON baby Miss \n",
"3 Montreal, PQ / Chesterville, ON young Mr \n",
"4 Montreal, PQ / Chesterville, ON young Mrs "
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data['sex'] = tmp\n",
"raw_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>survived</th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>age</th>\n",
" <th>sibsp</th>\n",
" <th>parch</th>\n",
" <th>ticket</th>\n",
" <th>fare</th>\n",
" <th>cabin</th>\n",
" <th>embarked</th>\n",
" <th>boat</th>\n",
" <th>body</th>\n",
" <th>home.dest</th>\n",
" <th>age_cat</th>\n",
" <th>title</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Allen, Miss. Elisabeth Walton</td>\n",
" <td>0.0</td>\n",
" <td>29.0000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>24160</td>\n",
" <td>211.3375</td>\n",
" <td>B5</td>\n",
" <td>S</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>St Louis, MO</td>\n",
" <td>young</td>\n",
" <td>Miss</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>Allison, Master. Hudson Trevor</td>\n",
" <td>1.0</td>\n",
" <td>0.9167</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>11</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>baby</td>\n",
" <td>Rare</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>Allison, Miss. Helen Loraine</td>\n",
" <td>0.0</td>\n",
" <td>2.0000</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>baby</td>\n",
" <td>Miss</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>Allison, Mr. Hudson Joshua Creighton</td>\n",
" <td>1.0</td>\n",
" <td>30.0000</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>135.0</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>young</td>\n",
" <td>Mr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>Allison, Mrs. Hudson J C (Bessie Waldo Daniels)</td>\n",
" <td>0.0</td>\n",
" <td>25.0000</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>113781</td>\n",
" <td>151.5500</td>\n",
" <td>C22 C26</td>\n",
" <td>S</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Montreal, PQ / Chesterville, ON</td>\n",
" <td>young</td>\n",
" <td>Mrs</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass survived name sex \\\n",
"0 1.0 1.0 Allen, Miss. Elisabeth Walton 0.0 \n",
"1 1.0 1.0 Allison, Master. Hudson Trevor 1.0 \n",
"2 1.0 0.0 Allison, Miss. Helen Loraine 0.0 \n",
"3 1.0 0.0 Allison, Mr. Hudson Joshua Creighton 1.0 \n",
"4 1.0 0.0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) 0.0 \n",
"\n",
" age sibsp parch ticket fare cabin embarked boat body \\\n",
"0 29.0000 0.0 0.0 24160 211.3375 B5 S 2 NaN \n",
"1 0.9167 1.0 2.0 113781 151.5500 C22 C26 S 11 NaN \n",
"2 2.0000 1.0 2.0 113781 151.5500 C22 C26 S NaN NaN \n",
"3 30.0000 1.0 2.0 113781 151.5500 C22 C26 S NaN 135.0 \n",
"4 25.0000 1.0 2.0 113781 151.5500 C22 C26 S NaN NaN \n",
"\n",
" home.dest age_cat title \n",
"0 St Louis, MO young Miss \n",
"1 Montreal, PQ / Chesterville, ON baby Rare \n",
"2 Montreal, PQ / Chesterville, ON baby Miss \n",
"3 Montreal, PQ / Chesterville, ON young Mr \n",
"4 Montreal, PQ / Chesterville, ON young Mrs "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data['survived'] = raw_data['survived'].astype('float')\n",
"raw_data['pclass'] = raw_data['pclass'].astype('float')\n",
"raw_data['sex'] = raw_data['sex'].astype('float')\n",
"raw_data['sibsp'] = raw_data['sibsp'].astype('float')\n",
"raw_data['parch'] = raw_data['parch'].astype('float')\n",
"raw_data['fare'] = raw_data['fare'].astype('float')\n",
"raw_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 1045 entries, 0 to 1308\n",
"Data columns (total 16 columns):\n",
"pclass 1045 non-null float64\n",
"survived 1045 non-null float64\n",
"name 1045 non-null object\n",
"sex 1045 non-null float64\n",
"age 1045 non-null float64\n",
"sibsp 1045 non-null float64\n",
"parch 1045 non-null float64\n",
"ticket 1045 non-null object\n",
"fare 1045 non-null float64\n",
"cabin 272 non-null object\n",
"embarked 1043 non-null object\n",
"boat 417 non-null object\n",
"body 119 non-null float64\n",
"home.dest 685 non-null object\n",
"age_cat 1045 non-null category\n",
"title 1045 non-null object\n",
"dtypes: category(1), float64(8), object(7)\n",
"memory usage: 131.8+ KB\n"
]
}
],
"source": [
"raw_data = raw_data[raw_data['age'].notnull()]\n",
"raw_data = raw_data[raw_data['sibsp'].notnull()]\n",
"raw_data = raw_data[raw_data['parch'].notnull()]\n",
"raw_data = raw_data[raw_data['fare'].notnull()]\n",
"raw_data.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 7-7 생존자 예측을 위한 모델 수립"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>sex</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>0</th>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>29.0000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>211.3375</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.9167</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>151.5500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0000</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>151.5500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>30.0000</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>151.5500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>25.0000</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>151.5500</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass sex age sibsp parch fare\n",
"0 1.0 0.0 29.0000 0.0 0.0 211.3375\n",
"1 1.0 1.0 0.9167 1.0 2.0 151.5500\n",
"2 1.0 0.0 2.0000 1.0 2.0 151.5500\n",
"3 1.0 1.0 30.0000 1.0 2.0 151.5500\n",
"4 1.0 0.0 25.0000 1.0 2.0 151.5500"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_pre = raw_data[['pclass','sex','age','sibsp','parch','fare']]\n",
"train_pre.head()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"X_train, X_test, y_train, y_test = train_test_split(train_pre, \n",
" raw_data[['survived']], \n",
" test_size=0.1, \n",
" random_state=13)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 940 entries, 710 to 378\n",
"Data columns (total 6 columns):\n",
"pclass 940 non-null float64\n",
"sex 940 non-null float64\n",
"age 940 non-null float64\n",
"sibsp 940 non-null float64\n",
"parch 940 non-null float64\n",
"fare 940 non-null float64\n",
"dtypes: float64(6)\n",
"memory usage: 51.4 KB\n"
]
}
],
"source": [
"X_train.info()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 105 entries, 699 to 1057\n",
"Data columns (total 6 columns):\n",
"pclass 105 non-null float64\n",
"sex 105 non-null float64\n",
"age 105 non-null float64\n",
"sibsp 105 non-null float64\n",
"parch 105 non-null float64\n",
"fare 105 non-null float64\n",
"dtypes: float64(6)\n",
"memory usage: 5.7 KB\n"
]
}
],
"source": [
"X_test.info()"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 940 entries, 710 to 378\n",
"Data columns (total 1 columns):\n",
"survived 940 non-null float64\n",
"dtypes: float64(1)\n",
"memory usage: 14.7 KB\n"
]
}
],
"source": [
"y_train.info()"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 105 entries, 699 to 1057\n",
"Data columns (total 1 columns):\n",
"survived 105 non-null float64\n",
"dtypes: float64(1)\n",
"memory usage: 1.6 KB\n"
]
}
],
"source": [
"y_test.info()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>pclass</th>\n",
" <th>sex</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>710</th>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>37.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>7.7500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>423</th>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>34.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>13.0000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>646</th>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>38.0</td>\n",
" <td>1.0</td>\n",
" <td>5.0</td>\n",
" <td>31.3875</td>\n",
" </tr>\n",
" <tr>\n",
" <th>596</th>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>31.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>13.0000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>286</th>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>63.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>221.7792</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" pclass sex age sibsp parch fare\n",
"710 3.0 0.0 37.0 0.0 0.0 7.7500\n",
"423 2.0 1.0 34.0 0.0 0.0 13.0000\n",
"646 3.0 0.0 38.0 1.0 5.0 31.3875\n",
"596 2.0 1.0 31.0 0.0 0.0 13.0000\n",
"286 1.0 0.0 63.0 1.0 0.0 221.7792"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train.head()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"X_train = X_train.reset_index()\n",
"X_train = X_train.drop(['index'], axis=1)\n",
"\n",
"X_test = X_test.reset_index()\n",
"X_test = X_test.drop(['index'], axis=1)\n",
"\n",
"y_train = y_train.reset_index()\n",
"y_train = y_train.drop(['index'], axis=1)\n",
"\n",
"y_test = y_test.reset_index()\n",
"y_test = y_test.drop(['index'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Score: 0.8117021276595745\n"
]
}
],
"source": [
"from sklearn.tree import DecisionTreeClassifier\n",
"\n",
"tree_clf = DecisionTreeClassifier(max_depth=3, random_state=13)\n",
"tree_clf.fit(X_train, y_train)\n",
"\n",
"print('Score: {}'.format(tree_clf.score(X_train, y_train)))"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Title: Tree Pages: 1 -->\n",
"<svg width=\"1142pt\" height=\"414pt\"\n",
" viewBox=\"0.00 0.00 1142.10 414.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 410)\">\n",
"<title>Tree</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-410 1138.0996,-410 1138.0996,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<path fill=\"#f7d8c2\" stroke=\"#000000\" d=\"M601.0391,-406C601.0391,-406 491.2812,-406 491.2812,-406 485.2812,-406 479.2812,-400 479.2812,-394 479.2812,-394 479.2812,-340 479.2812,-340 479.2812,-334 485.2812,-328 491.2812,-328 491.2812,-328 601.0391,-328 601.0391,-328 607.0391,-328 613.0391,-334 613.0391,-340 613.0391,-340 613.0391,-394 613.0391,-394 613.0391,-400 607.0391,-406 601.0391,-406\"/>\n",
"<text text-anchor=\"middle\" x=\"546.1602\" y=\"-390.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">sex &lt;= 0.5</text>\n",
"<text text-anchor=\"middle\" x=\"546.1602\" y=\"-376.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.483</text>\n",
"<text text-anchor=\"middle\" x=\"546.1602\" y=\"-362.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 940</text>\n",
"<text text-anchor=\"middle\" x=\"546.1602\" y=\"-348.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [556, 384]</text>\n",
"<text text-anchor=\"middle\" x=\"546.1602\" y=\"-334.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Unsurvived</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<path fill=\"#7dbfee\" stroke=\"#000000\" d=\"M455.0733,-292C455.0733,-292 359.247,-292 359.247,-292 353.247,-292 347.247,-286 347.247,-280 347.247,-280 347.247,-226 347.247,-226 347.247,-220 353.247,-214 359.247,-214 359.247,-214 455.0733,-214 455.0733,-214 461.0733,-214 467.0733,-220 467.0733,-226 467.0733,-226 467.0733,-280 467.0733,-280 467.0733,-286 461.0733,-292 455.0733,-292\"/>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-276.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">pclass &lt;= 2.5</text>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-262.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.381</text>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-248.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 355</text>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-234.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [91, 264]</text>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-220.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Survived</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M498.3242,-327.7677C486.9667,-318.4529 474.7516,-308.4347 463.0696,-298.8538\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"465.0359,-295.9399 455.0842,-292.3046 460.5969,-301.3524 465.0359,-295.9399\"/>\n",
"<text text-anchor=\"middle\" x=\"457.5426\" y=\"-312.9835\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">True</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>8</title>\n",
"<path fill=\"#eca26c\" stroke=\"#000000\" d=\"M746.0391,-292C746.0391,-292 636.2812,-292 636.2812,-292 630.2812,-292 624.2812,-286 624.2812,-280 624.2812,-280 624.2812,-226 624.2812,-226 624.2812,-220 630.2812,-214 636.2812,-214 636.2812,-214 746.0391,-214 746.0391,-214 752.0391,-214 758.0391,-220 758.0391,-226 758.0391,-226 758.0391,-280 758.0391,-280 758.0391,-286 752.0391,-292 746.0391,-292\"/>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-276.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">age &lt;= 9.5</text>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-262.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.326</text>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-248.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 585</text>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-234.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [465, 120]</text>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-220.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Unsurvived</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;8 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>0&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M596.0609,-327.7677C608.0226,-318.3633 620.8962,-308.242 633.1888,-298.5775\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"635.4693,-301.2368 641.1674,-292.3046 631.1429,-295.7338 635.4693,-301.2368\"/>\n",
"<text text-anchor=\"middle\" x=\"638.1963\" y=\"-312.9275\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">False</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<path fill=\"#49a5e7\" stroke=\"#000000\" d=\"M243.0733,-178C243.0733,-178 147.247,-178 147.247,-178 141.247,-178 135.247,-172 135.247,-166 135.247,-166 135.247,-112 135.247,-112 135.247,-106 141.247,-100 147.247,-100 147.247,-100 243.0733,-100 243.0733,-100 249.0733,-100 255.0733,-106 255.0733,-112 255.0733,-112 255.0733,-166 255.0733,-166 255.0733,-172 249.0733,-178 243.0733,-178\"/>\n",
"<text text-anchor=\"middle\" x=\"195.1602\" y=\"-162.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">fare &lt;= 32.09</text>\n",
"<text text-anchor=\"middle\" x=\"195.1602\" y=\"-148.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.139</text>\n",
"<text text-anchor=\"middle\" x=\"195.1602\" y=\"-134.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 213</text>\n",
"<text text-anchor=\"middle\" x=\"195.1602\" y=\"-120.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [16, 197]</text>\n",
"<text text-anchor=\"middle\" x=\"195.1602\" y=\"-106.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Survived</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M346.9765,-220.6371C321.1307,-206.7389 290.7848,-190.4208 264.0453,-176.042\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"265.5921,-172.8999 255.1271,-171.2464 262.2768,-179.065 265.5921,-172.8999\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<path fill=\"#fcf2ea\" stroke=\"#000000\" d=\"M462.0391,-178C462.0391,-178 352.2812,-178 352.2812,-178 346.2812,-178 340.2812,-172 340.2812,-166 340.2812,-166 340.2812,-112 340.2812,-112 340.2812,-106 346.2812,-100 352.2812,-100 352.2812,-100 462.0391,-100 462.0391,-100 468.0391,-100 474.0391,-106 474.0391,-112 474.0391,-112 474.0391,-166 474.0391,-166 474.0391,-172 468.0391,-178 462.0391,-178\"/>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-162.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">fare &lt;= 23.087</text>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-148.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.498</text>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-134.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 142</text>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-120.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [75, 67]</text>\n",
"<text text-anchor=\"middle\" x=\"407.1602\" y=\"-106.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Unsurvived</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M407.1602,-213.7677C407.1602,-205.6172 407.1602,-196.9283 407.1602,-188.4649\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"410.6603,-188.3046 407.1602,-178.3046 403.6603,-188.3047 410.6603,-188.3046\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<path fill=\"#5baee9\" stroke=\"#000000\" d=\"M106.4809,-64C106.4809,-64 11.8394,-64 11.8394,-64 5.8394,-64 -.1606,-58 -.1606,-52 -.1606,-52 -.1606,-12 -.1606,-12 -.1606,-6 5.8394,0 11.8394,0 11.8394,0 106.4809,0 106.4809,0 112.4809,0 118.4809,-6 118.4809,-12 118.4809,-12 118.4809,-52 118.4809,-52 118.4809,-58 112.4809,-64 106.4809,-64\"/>\n",
"<text text-anchor=\"middle\" x=\"59.1602\" y=\"-48.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.249</text>\n",
"<text text-anchor=\"middle\" x=\"59.1602\" y=\"-34.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 89</text>\n",
"<text text-anchor=\"middle\" x=\"59.1602\" y=\"-20.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [13, 76]</text>\n",
"<text text-anchor=\"middle\" x=\"59.1602\" y=\"-6.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Survived</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M145.291,-99.7647C133.2184,-90.2664 120.3232,-80.121 108.2852,-70.6498\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"110.1321,-67.6495 100.1087,-64.2169 105.8037,-73.1509 110.1321,-67.6495\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<path fill=\"#3e9fe6\" stroke=\"#000000\" d=\"M242.4809,-64C242.4809,-64 147.8394,-64 147.8394,-64 141.8394,-64 135.8394,-58 135.8394,-52 135.8394,-52 135.8394,-12 135.8394,-12 135.8394,-6 141.8394,0 147.8394,0 147.8394,0 242.4809,0 242.4809,0 248.4809,0 254.4809,-6 254.4809,-12 254.4809,-12 254.4809,-52 254.4809,-52 254.4809,-58 248.4809,-64 242.4809,-64\"/>\n",
"<text text-anchor=\"middle\" x=\"195.1602\" y=\"-48.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.047</text>\n",
"<text text-anchor=\"middle\" x=\"195.1602\" y=\"-34.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 124</text>\n",
"<text text-anchor=\"middle\" x=\"195.1602\" y=\"-20.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [3, 121]</text>\n",
"<text text-anchor=\"middle\" x=\"195.1602\" y=\"-6.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Survived</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M195.1602,-99.7647C195.1602,-91.4537 195.1602,-82.6472 195.1602,-74.2305\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.6603,-74.2168 195.1602,-64.2169 191.6603,-74.2169 198.6603,-74.2168\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<path fill=\"#e4f1fb\" stroke=\"#000000\" d=\"M378.4809,-64C378.4809,-64 283.8394,-64 283.8394,-64 277.8394,-64 271.8394,-58 271.8394,-52 271.8394,-52 271.8394,-12 271.8394,-12 271.8394,-6 277.8394,0 283.8394,0 283.8394,0 378.4809,0 378.4809,0 384.4809,0 390.4809,-6 390.4809,-12 390.4809,-12 390.4809,-52 390.4809,-52 390.4809,-58 384.4809,-64 378.4809,-64\"/>\n",
"<text text-anchor=\"middle\" x=\"331.1602\" y=\"-48.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.497</text>\n",
"<text text-anchor=\"middle\" x=\"331.1602\" y=\"-34.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 121</text>\n",
"<text text-anchor=\"middle\" x=\"331.1602\" y=\"-20.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [56, 65]</text>\n",
"<text text-anchor=\"middle\" x=\"331.1602\" y=\"-6.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Survived</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M379.2921,-99.7647C372.9997,-90.9057 366.3075,-81.4838 359.977,-72.571\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"362.6874,-70.3429 354.0432,-64.2169 356.9805,-74.3964 362.6874,-70.3429\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n",
"<path fill=\"#e88e4e\" stroke=\"#000000\" d=\"M530.0391,-64C530.0391,-64 420.2812,-64 420.2812,-64 414.2812,-64 408.2812,-58 408.2812,-52 408.2812,-52 408.2812,-12 408.2812,-12 408.2812,-6 414.2812,0 420.2812,0 420.2812,0 530.0391,0 530.0391,0 536.0391,0 542.0391,-6 542.0391,-12 542.0391,-12 542.0391,-52 542.0391,-52 542.0391,-58 536.0391,-64 530.0391,-64\"/>\n",
"<text text-anchor=\"middle\" x=\"475.1602\" y=\"-48.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.172</text>\n",
"<text text-anchor=\"middle\" x=\"475.1602\" y=\"-34.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 21</text>\n",
"<text text-anchor=\"middle\" x=\"475.1602\" y=\"-20.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [19, 2]</text>\n",
"<text text-anchor=\"middle\" x=\"475.1602\" y=\"-6.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Unsurvived</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>5&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M432.0947,-99.7647C437.6667,-90.9971 443.5891,-81.678 449.2014,-72.8469\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"452.2761,-74.534 454.6859,-64.2169 446.3682,-70.7795 452.2761,-74.534\"/>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>9</title>\n",
"<path fill=\"#d9ecfa\" stroke=\"#000000\" d=\"M738.4809,-178C738.4809,-178 643.8394,-178 643.8394,-178 637.8394,-178 631.8394,-172 631.8394,-166 631.8394,-166 631.8394,-112 631.8394,-112 631.8394,-106 637.8394,-100 643.8394,-100 643.8394,-100 738.4809,-100 738.4809,-100 744.4809,-100 750.4809,-106 750.4809,-112 750.4809,-112 750.4809,-166 750.4809,-166 750.4809,-172 744.4809,-178 738.4809,-178\"/>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-162.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">sibsp &lt;= 2.5</text>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-148.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.494</text>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-134.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 38</text>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-120.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [17, 21]</text>\n",
"<text text-anchor=\"middle\" x=\"691.1602\" y=\"-106.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Survived</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;9 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>8&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M691.1602,-213.7677C691.1602,-205.6172 691.1602,-196.9283 691.1602,-188.4649\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"694.6603,-188.3046 691.1602,-178.3046 687.6603,-188.3047 694.6603,-188.3046\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>12</title>\n",
"<path fill=\"#eb9d65\" stroke=\"#000000\" d=\"M970.0391,-178C970.0391,-178 860.2812,-178 860.2812,-178 854.2812,-178 848.2812,-172 848.2812,-166 848.2812,-166 848.2812,-112 848.2812,-112 848.2812,-106 854.2812,-100 860.2812,-100 860.2812,-100 970.0391,-100 970.0391,-100 976.0391,-100 982.0391,-106 982.0391,-112 982.0391,-112 982.0391,-166 982.0391,-166 982.0391,-172 976.0391,-178 970.0391,-178\"/>\n",
"<text text-anchor=\"middle\" x=\"915.1602\" y=\"-162.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">pclass &lt;= 1.5</text>\n",
"<text text-anchor=\"middle\" x=\"915.1602\" y=\"-148.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.296</text>\n",
"<text text-anchor=\"middle\" x=\"915.1602\" y=\"-134.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 547</text>\n",
"<text text-anchor=\"middle\" x=\"915.1602\" y=\"-120.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [448, 99]</text>\n",
"<text text-anchor=\"middle\" x=\"915.1602\" y=\"-106.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Unsurvived</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;12 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>8&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M758.0641,-218.9507C783.5498,-205.9803 812.7754,-191.1065 839.0532,-177.733\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"840.8894,-180.7258 848.2141,-173.0707 837.7144,-174.4872 840.8894,-180.7258\"/>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>10</title>\n",
"<path fill=\"#57ace9\" stroke=\"#000000\" d=\"M666.4809,-64C666.4809,-64 571.8394,-64 571.8394,-64 565.8394,-64 559.8394,-58 559.8394,-52 559.8394,-52 559.8394,-12 559.8394,-12 559.8394,-6 565.8394,0 571.8394,0 571.8394,0 666.4809,0 666.4809,0 672.4809,0 678.4809,-6 678.4809,-12 678.4809,-12 678.4809,-52 678.4809,-52 678.4809,-58 672.4809,-64 666.4809,-64\"/>\n",
"<text text-anchor=\"middle\" x=\"619.1602\" y=\"-48.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.227</text>\n",
"<text text-anchor=\"middle\" x=\"619.1602\" y=\"-34.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 23</text>\n",
"<text text-anchor=\"middle\" x=\"619.1602\" y=\"-20.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [3, 20]</text>\n",
"<text text-anchor=\"middle\" x=\"619.1602\" y=\"-6.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Survived</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;10 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>9&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M664.7589,-99.7647C658.7977,-90.9057 652.4576,-81.4838 646.4603,-72.571\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"649.3254,-70.5595 640.8388,-64.2169 643.5178,-74.4674 649.3254,-70.5595\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>11</title>\n",
"<path fill=\"#e78a47\" stroke=\"#000000\" d=\"M818.0391,-64C818.0391,-64 708.2812,-64 708.2812,-64 702.2812,-64 696.2812,-58 696.2812,-52 696.2812,-52 696.2812,-12 696.2812,-12 696.2812,-6 702.2812,0 708.2812,0 708.2812,0 818.0391,0 818.0391,0 824.0391,0 830.0391,-6 830.0391,-12 830.0391,-12 830.0391,-52 830.0391,-52 830.0391,-58 824.0391,-64 818.0391,-64\"/>\n",
"<text text-anchor=\"middle\" x=\"763.1602\" y=\"-48.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.124</text>\n",
"<text text-anchor=\"middle\" x=\"763.1602\" y=\"-34.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 15</text>\n",
"<text text-anchor=\"middle\" x=\"763.1602\" y=\"-20.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [14, 1]</text>\n",
"<text text-anchor=\"middle\" x=\"763.1602\" y=\"-6.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Unsurvived</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;11 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>9&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M717.5615,-99.7647C723.5227,-90.9057 729.8627,-81.4838 735.86,-72.571\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"738.8025,-74.4674 741.4815,-64.2169 732.9949,-70.5595 738.8025,-74.4674\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>13</title>\n",
"<path fill=\"#f3c3a1\" stroke=\"#000000\" d=\"M970.0391,-64C970.0391,-64 860.2812,-64 860.2812,-64 854.2812,-64 848.2812,-58 848.2812,-52 848.2812,-52 848.2812,-12 848.2812,-12 848.2812,-6 854.2812,0 860.2812,0 860.2812,0 970.0391,0 970.0391,0 976.0391,0 982.0391,-6 982.0391,-12 982.0391,-12 982.0391,-52 982.0391,-52 982.0391,-58 976.0391,-64 970.0391,-64\"/>\n",
"<text text-anchor=\"middle\" x=\"915.1602\" y=\"-48.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.452</text>\n",
"<text text-anchor=\"middle\" x=\"915.1602\" y=\"-34.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 139</text>\n",
"<text text-anchor=\"middle\" x=\"915.1602\" y=\"-20.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [91, 48]</text>\n",
"<text text-anchor=\"middle\" x=\"915.1602\" y=\"-6.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Unsurvived</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;13 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>12&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M915.1602,-99.7647C915.1602,-91.4537 915.1602,-82.6472 915.1602,-74.2305\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"918.6603,-74.2168 915.1602,-64.2169 911.6603,-74.2169 918.6603,-74.2168\"/>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>14</title>\n",
"<path fill=\"#e99355\" stroke=\"#000000\" d=\"M1122.0391,-64C1122.0391,-64 1012.2812,-64 1012.2812,-64 1006.2812,-64 1000.2812,-58 1000.2812,-52 1000.2812,-52 1000.2812,-12 1000.2812,-12 1000.2812,-6 1006.2812,0 1012.2812,0 1012.2812,0 1122.0391,0 1122.0391,0 1128.0391,0 1134.0391,-6 1134.0391,-12 1134.0391,-12 1134.0391,-52 1134.0391,-52 1134.0391,-58 1128.0391,-64 1122.0391,-64\"/>\n",
"<text text-anchor=\"middle\" x=\"1067.1602\" y=\"-48.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">gini = 0.219</text>\n",
"<text text-anchor=\"middle\" x=\"1067.1602\" y=\"-34.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">samples = 408</text>\n",
"<text text-anchor=\"middle\" x=\"1067.1602\" y=\"-20.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">value = [357, 51]</text>\n",
"<text text-anchor=\"middle\" x=\"1067.1602\" y=\"-6.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\" fill=\"#000000\">class = Unsurvived</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;14 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>12&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M970.8962,-99.7647C984.6487,-90.0838 999.3561,-79.7305 1013.0308,-70.1042\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1015.2317,-72.8352 1021.3941,-64.2169 1011.2023,-67.1112 1015.2317,-72.8352\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<graphviz.files.Source at 0x10f93c9e8>"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.tree import export_graphviz\n",
"\n",
"export_graphviz(\n",
" tree_clf,\n",
" out_file=\"titanic.dot\",\n",
" feature_names=['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare'],\n",
" class_names=['Unsurvived','Survived'],\n",
" rounded=True,\n",
" filled=True\n",
" )\n",
"\n",
"import graphviz\n",
"with open(\"titanic.dot\") as f:\n",
" dot_graph = f.read()\n",
"dot = graphviz.Source(dot_graph)\n",
"dot.format = 'png'\n",
"dot.render(filename='titanic_tree', directory='images/decision_trees', cleanup=True)\n",
"dot"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test Accuracy is 84.76190476190476\n"
]
}
],
"source": [
"from sklearn.metrics import accuracy_score\n",
"\n",
"y_pred = tree_clf.predict(X_test)\n",
"print(\"Test Accuracy is \", accuracy_score(y_test, y_pred)*100)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 7-8. 생존자 예측해보기. 디카프리오는 정말 생존할 수 없었을까"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"# pclass, sex, age, sibsp, parch, fare\n",
"dicaprio = [3., 1., 19., 0., 0., 5.]\n",
"winslet = [1., 0., 17., 1., 1., 100.]"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.02419355, 0.97580645]])"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tree_clf.predict_proba([winslet])"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.875, 0.125]])"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tree_clf.predict_proba([dicaprio])"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dicaprio is not survived --> 0.875\n",
"Winslet is survived --> 0.9758064516129032\n"
]
}
],
"source": [
"def isSurvived(name, person):\n",
" isSurvive = 'not survived' if tree_clf.predict([person])[0] == 0 else 'survived'\n",
" print(name, ' is ', isSurvive, \n",
" ' --> ', max(tree_clf.predict_proba([person])[0]))\n",
" \n",
"isSurvived('Dicaprio', dicaprio)\n",
"isSurvived('Winslet', winslet)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment