Skip to content

Instantly share code, notes, and snippets.

@fhiyo
Last active February 16, 2018 09:56
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 fhiyo/618c58615e664442075d396e32dcc39b to your computer and use it in GitHub Desktop.
Save fhiyo/618c58615e664442075d396e32dcc39b to your computer and use it in GitHub Desktop.
KaggleのTitanicチュートリアルを試してみた結果のjupyter notebook (feature engineering行った)
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# titanicのチュートリアル問題\n",
"\n",
"18/01/28\n",
"feature engineeringをやっていく."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- [Titanic Top 4% with ensemble modeling | Kaggle](https://www.kaggle.com/yassineghouzam/titanic-top-4-with-ensemble-modeling)\n",
"\n",
"を参考にしながら書いている."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import math\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import numpy as np\n",
"# from sklearn.model_selection import KFold\n",
"from sklearn.metrics import accuracy_score\n",
"\n",
"from collections import Counter\n",
"\n",
"sns.set(style='white', context='notebook', palette='deep')\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
" \"This module will be removed in 0.20.\", DeprecationWarning)\n"
]
}
],
"source": [
"# modeling用の関数をimport\n",
"\n",
"import xgboost as xgb\n",
"\n",
"from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier, GradientBoostingClassifier, ExtraTreesClassifier, VotingClassifier\n",
"from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n",
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.neural_network import MLPClassifier\n",
"from sklearn.svm import SVC\n",
"from sklearn.model_selection import GridSearchCV, cross_val_score, StratifiedKFold, learning_curve"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Load training and test data\n",
"train_df = pd.read_csv('../input/train.csv', header=0)\n",
"test_df = pd.read_csv('../input/test.csv', header=0)\n",
"test_df_ids = test_df.PassengerId\n",
"\n",
"# 前処理を一気に行えるようにデータセットを結合しておき,訓練・テスト前に分ける\n",
"train_count = len(train_df)\n",
"dataset_df = pd.concat(objs=[train_df, test_df], axis=0).reset_index(drop=True)"
]
},
{
"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>Age</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Fare</th>\n",
" <th>Name</th>\n",
" <th>Parch</th>\n",
" <th>PassengerId</th>\n",
" <th>Pclass</th>\n",
" <th>Sex</th>\n",
" <th>SibSp</th>\n",
" <th>Survived</th>\n",
" <th>Ticket</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>22.0</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>7.2500</td>\n",
" <td>Braund, Mr. Owen Harris</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>male</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>A/5 21171</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>38.0</td>\n",
" <td>C85</td>\n",
" <td>C</td>\n",
" <td>71.2833</td>\n",
" <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>female</td>\n",
" <td>1</td>\n",
" <td>1.0</td>\n",
" <td>PC 17599</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>26.0</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>7.9250</td>\n",
" <td>Heikkinen, Miss. Laina</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>female</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>STON/O2. 3101282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>35.0</td>\n",
" <td>C123</td>\n",
" <td>S</td>\n",
" <td>53.1000</td>\n",
" <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>female</td>\n",
" <td>1</td>\n",
" <td>1.0</td>\n",
" <td>113803</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>35.0</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>8.0500</td>\n",
" <td>Allen, Mr. William Henry</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>male</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>373450</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Age Cabin Embarked Fare \\\n",
"0 22.0 NaN S 7.2500 \n",
"1 38.0 C85 C 71.2833 \n",
"2 26.0 NaN S 7.9250 \n",
"3 35.0 C123 S 53.1000 \n",
"4 35.0 NaN S 8.0500 \n",
"\n",
" Name Parch PassengerId \\\n",
"0 Braund, Mr. Owen Harris 0 1 \n",
"1 Cumings, Mrs. John Bradley (Florence Briggs Th... 0 2 \n",
"2 Heikkinen, Miss. Laina 0 3 \n",
"3 Futrelle, Mrs. Jacques Heath (Lily May Peel) 0 4 \n",
"4 Allen, Mr. William Henry 0 5 \n",
"\n",
" Pclass Sex SibSp Survived Ticket \n",
"0 3 male 1 0.0 A/5 21171 \n",
"1 1 female 1 1.0 PC 17599 \n",
"2 3 female 0 1.0 STON/O2. 3101282 \n",
"3 1 female 1 1.0 113803 \n",
"4 3 male 0 0.0 373450 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# outlier detection\n",
"# 欠損値が入っていなくても,何らかの理由で妙なデータが含まれていることがあるので,\n",
"# 実際に確認して何かあれば取り除くなり欠損値として扱うなりをする\n",
"\n",
"def detect_outliers(df, n, features):\n",
" \"\"\"\n",
" Takes a dataframe df of features and returns a list of the indices\n",
" corresponding to the observations containing more than n outliers according\n",
" to the Tukey method.\n",
" \"\"\"\n",
" outlier_indices = []\n",
" \n",
" # iterate over features(columns)\n",
" for col in features:\n",
" # 1st quartile (25%)\n",
" Q1 = np.nanpercentile(df[col], 25)\n",
" # 3rd quartile (75%)\n",
" Q3 = np.nanpercentile(df[col], 75)\n",
" # Interquartile range (IQR)\n",
" IQR = Q3 - Q1\n",
" # outlier step\n",
" outlier_step = 1.5 * IQR\n",
" \n",
" # Determine a list of indices of outliers for feature col\n",
" outlier_list_col = df[(df[col] < Q1 - outlier_step)|(df[col] > Q3 + outlier_step)].index\n",
" \n",
" # append the found outlier indices for col to the list of outlier indices \n",
" outlier_indices.extend(outlier_list_col)\n",
" \n",
" # select observations containing more than 2 outliers\n",
" counts_outlier_indices = Counter(outlier_indices) \n",
" multiple_outliers = [k for k, v in counts_outlier_indices.items() if v > n]\n",
" \n",
" return multiple_outliers "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"# detect outliers from Age, SibSp, Parch and Fare\n",
"Outliers_to_drop = detect_outliers(train_df, 2, ['Age', 'SibSp', 'Parch', 'Fare'])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"percentile: nan\n",
"nanpercentile: 20.125\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/site-packages/numpy/lib/function_base.py:4274: RuntimeWarning: Invalid value encountered in percentile\n",
" interpolation=interpolation)\n"
]
}
],
"source": [
"# tmp\n",
"print('percentile: {}'.format(np.percentile(train_df['Age'], 25)))\n",
"print('nanpercentile: {}'.format(np.nanpercentile(train_df['Age'], 25)))\n",
"# np.percentile()はnanを無限大の値として扱う?nanを無視してpercentileを表示するにはnp.nanpercentile()を使うようだ."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"outliers count: 11\n"
]
},
{
"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>Age</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Fare</th>\n",
" <th>Name</th>\n",
" <th>Parch</th>\n",
" <th>PassengerId</th>\n",
" <th>Pclass</th>\n",
" <th>Sex</th>\n",
" <th>SibSp</th>\n",
" <th>Survived</th>\n",
" <th>Ticket</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>745</th>\n",
" <td>70.0</td>\n",
" <td>B22</td>\n",
" <td>S</td>\n",
" <td>71.00</td>\n",
" <td>Crosby, Capt. Edward Gifford</td>\n",
" <td>1</td>\n",
" <td>746</td>\n",
" <td>1</td>\n",
" <td>male</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>WE/P 5735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>19.0</td>\n",
" <td>C23 C25 C27</td>\n",
" <td>S</td>\n",
" <td>263.00</td>\n",
" <td>Fortune, Mr. Charles Alexander</td>\n",
" <td>2</td>\n",
" <td>28</td>\n",
" <td>1</td>\n",
" <td>male</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>19950</td>\n",
" </tr>\n",
" <tr>\n",
" <th>88</th>\n",
" <td>23.0</td>\n",
" <td>C23 C25 C27</td>\n",
" <td>S</td>\n",
" <td>263.00</td>\n",
" <td>Fortune, Miss. Mabel Helen</td>\n",
" <td>2</td>\n",
" <td>89</td>\n",
" <td>1</td>\n",
" <td>female</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>19950</td>\n",
" </tr>\n",
" <tr>\n",
" <th>159</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>69.55</td>\n",
" <td>Sage, Master. Thomas Henry</td>\n",
" <td>2</td>\n",
" <td>160</td>\n",
" <td>3</td>\n",
" <td>male</td>\n",
" <td>8</td>\n",
" <td>0.0</td>\n",
" <td>CA. 2343</td>\n",
" </tr>\n",
" <tr>\n",
" <th>180</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>69.55</td>\n",
" <td>Sage, Miss. Constance Gladys</td>\n",
" <td>2</td>\n",
" <td>181</td>\n",
" <td>3</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>0.0</td>\n",
" <td>CA. 2343</td>\n",
" </tr>\n",
" <tr>\n",
" <th>201</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>69.55</td>\n",
" <td>Sage, Mr. Frederick</td>\n",
" <td>2</td>\n",
" <td>202</td>\n",
" <td>3</td>\n",
" <td>male</td>\n",
" <td>8</td>\n",
" <td>0.0</td>\n",
" <td>CA. 2343</td>\n",
" </tr>\n",
" <tr>\n",
" <th>324</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>69.55</td>\n",
" <td>Sage, Mr. George John Jr</td>\n",
" <td>2</td>\n",
" <td>325</td>\n",
" <td>3</td>\n",
" <td>male</td>\n",
" <td>8</td>\n",
" <td>0.0</td>\n",
" <td>CA. 2343</td>\n",
" </tr>\n",
" <tr>\n",
" <th>341</th>\n",
" <td>24.0</td>\n",
" <td>C23 C25 C27</td>\n",
" <td>S</td>\n",
" <td>263.00</td>\n",
" <td>Fortune, Miss. Alice Elizabeth</td>\n",
" <td>2</td>\n",
" <td>342</td>\n",
" <td>1</td>\n",
" <td>female</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>19950</td>\n",
" </tr>\n",
" <tr>\n",
" <th>792</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>69.55</td>\n",
" <td>Sage, Miss. Stella Anna</td>\n",
" <td>2</td>\n",
" <td>793</td>\n",
" <td>3</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>0.0</td>\n",
" <td>CA. 2343</td>\n",
" </tr>\n",
" <tr>\n",
" <th>846</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>69.55</td>\n",
" <td>Sage, Mr. Douglas Bullen</td>\n",
" <td>2</td>\n",
" <td>847</td>\n",
" <td>3</td>\n",
" <td>male</td>\n",
" <td>8</td>\n",
" <td>0.0</td>\n",
" <td>CA. 2343</td>\n",
" </tr>\n",
" <tr>\n",
" <th>863</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>69.55</td>\n",
" <td>Sage, Miss. Dorothy Edith \"Dolly\"</td>\n",
" <td>2</td>\n",
" <td>864</td>\n",
" <td>3</td>\n",
" <td>female</td>\n",
" <td>8</td>\n",
" <td>0.0</td>\n",
" <td>CA. 2343</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Age Cabin Embarked Fare Name \\\n",
"745 70.0 B22 S 71.00 Crosby, Capt. Edward Gifford \n",
"27 19.0 C23 C25 C27 S 263.00 Fortune, Mr. Charles Alexander \n",
"88 23.0 C23 C25 C27 S 263.00 Fortune, Miss. Mabel Helen \n",
"159 NaN NaN S 69.55 Sage, Master. Thomas Henry \n",
"180 NaN NaN S 69.55 Sage, Miss. Constance Gladys \n",
"201 NaN NaN S 69.55 Sage, Mr. Frederick \n",
"324 NaN NaN S 69.55 Sage, Mr. George John Jr \n",
"341 24.0 C23 C25 C27 S 263.00 Fortune, Miss. Alice Elizabeth \n",
"792 NaN NaN S 69.55 Sage, Miss. Stella Anna \n",
"846 NaN NaN S 69.55 Sage, Mr. Douglas Bullen \n",
"863 NaN NaN S 69.55 Sage, Miss. Dorothy Edith \"Dolly\" \n",
"\n",
" Parch PassengerId Pclass Sex SibSp Survived Ticket \n",
"745 1 746 1 male 1 0.0 WE/P 5735 \n",
"27 2 28 1 male 3 0.0 19950 \n",
"88 2 89 1 female 3 1.0 19950 \n",
"159 2 160 3 male 8 0.0 CA. 2343 \n",
"180 2 181 3 female 8 0.0 CA. 2343 \n",
"201 2 202 3 male 8 0.0 CA. 2343 \n",
"324 2 325 3 male 8 0.0 CA. 2343 \n",
"341 2 342 1 female 3 1.0 19950 \n",
"792 2 793 3 female 8 0.0 CA. 2343 \n",
"846 2 847 3 male 8 0.0 CA. 2343 \n",
"863 2 864 3 female 8 0.0 CA. 2343 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print('outliers count: %d' % len(Outliers_to_drop))\n",
"dataset_df.loc[Outliers_to_drop] # Show the outliers rows"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"上の結果を見ると,Ageが欠損していないやつはFareの値が大きいのが問題になっていそう. \n",
"でも見た感じ,明らかに変な値は入っていなさそうだから,今回は対応しなくてもよいかな? (dataset_df.describe()の情報も参考にしている)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PassengerId 0\n",
"Survived 0\n",
"Pclass 0\n",
"Name 0\n",
"Sex 0\n",
"Age 177\n",
"SibSp 0\n",
"Parch 0\n",
"Ticket 0\n",
"Fare 0\n",
"Cabin 687\n",
"Embarked 2\n",
"dtype: int64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 欠損値が各属性にどれだけあるかを見る.\n",
"# Survivedが欠損しているのはtest_df由来のデータ.\n",
"train_df.isnull().sum()"
]
},
{
"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>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": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"### Summarize data\n",
"# Summary and statistics\n",
"train_df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### feature analysis"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x105696cc0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Correlation matrix between numerical values (SibSp Parch Age and Fare values) and Survived \n",
"g = sns.heatmap(dataset_df[['Survived', 'SibSp', 'Parch', 'Age', 'Fare']].corr(), annot=True, fmt='.2f', cmap='coolwarm')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> Only Fare feature seems to have a significative correlation with the survival probability.\n",
"> \n",
"It doesn't mean that the other features are not usefull. Subpopulations in these features can be correlated with the survival. To determine this, we need to explore in detail these features\n",
"\n",
"参考にしたカーネルには上のように書いてあるが,なぜ細かく見ると参考になる特徴も相関係数を計算すると無相関に見えるのだろう?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### SibSP"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x10bcb4e48>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10bd4c630>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Explore SibSp feature vs Survived\n",
"g = sns.factorplot(x='SibSp', y='Survived', data=train_df, kind='bar', size=6, palette = 'muted')\n",
"g.despine(left=True)\n",
"g.set_ylabels('survival probability')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> It seems that passengers having a lot of siblings/spouses have less chance to survive\n",
"> \n",
"> Single passengers (0 SibSP) or with two other persons (SibSP 1 or 2) have more chance to survive\n",
"> \n",
"> This observation is quite interesting, we can consider a new feature describing these categories (See feature engineering)\n",
"\n",
"兄弟・姉妹,配偶者の数は1, 2人はいたほうが生存率が高かったようだ."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Parch"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x10bd94b70>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10bd94da0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Explore Parch feature vs Survived\n",
"g = sns.factorplot(x='Parch', y='Survived', data=train_df, kind='bar', size=6, palette='muted')\n",
"g.despine(left=True)\n",
"g.set_ylabels('survival probability')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> Small families have more chance to survive, more than single (Parch 0), medium (Parch 3,4) and large families (Parch 5,6 ).\n",
"> \n",
"> Be carefull there is an important standard deviation in the survival of passengers with 3 parents/children\n",
"\n",
"家族は少しだけいたほうが生存率が高かった."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Age"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x10be22668>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10be0fd30>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Explore Age vs Survived\n",
"g = sns.FacetGrid(train_df, col='Survived')\n",
"g.map(sns.distplot, 'Age')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x10bf73550>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10bf73a20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Explore Age distibution \n",
"g = sns.kdeplot(train_df.Age[(train_df.Survived == 0) & (train_df.Age.notnull())], color='Red', shade=True)\n",
"g = sns.kdeplot(train_df.Age[(train_df.Survived == 1) & (train_df.Age.notnull())], color='Blue', shade=True, ax=g)\n",
"g.set_xlabel('Age')\n",
"g.set_ylabel('Frequency')\n",
"g.legend(['Not Survived','Survived'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> When we superimpose the two densities , we cleary see a peak correponsing (between 0 and 5) to babies and very young childrens."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x10bf66208>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEFCAYAAAAYKqc0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3XmcnFWd7/HPU1VdXb2ns3Y6ISbg5QgKCcN+WYTLRDOIy/WCrBkBARkQcRgHMiIICoMMggxwWYKDyjpABC/isA2gYQmgLE4yhhM6BrI0WTu9pNdanvvHU9Xp9JKupKvT3ef5vl+vftldp6r6PG341q9+dZ7zeL7vIyIibomM9ARERKTwFO4iIg5SuIuIOEjhLiLioNhITwDAGFMMHAp8DKRHeDoiImNBFJgK/MFa29l7cFSEO0GwvzLSkxARGYOOAV7tfeNoCfePAR566CFqampGei4iIqPe+vXrOfPMMyGbn72NlnBPA9TU1DB9+vSRnouIyFjSbytbH6iKiDhI4S4i4iCFu4iIgxTuIiIOUriLiDhI4S4i4qDRshRyj0k1pYhWRPEi3khPRWRUql9YX9Dnq72gtqDPJ/kJVeWe2pZiyV5LWHn5ypGeioj0sHDhQs4++2zOOuss5s+fz7JlywCYP38+K1eOvf9eM5kM5513Ho888kifsbq6Ok4//XROO+00FixYQCqVYvny5cyfP7/764ADDmDx4sVDmkOoKvfUlhTpljRt77eN9FREJKuuro6XXnqJRx55BM/zWL58OVdccQVPPfXUSE9tt9166600Nzf3O3bLLbdw2WWXceihh7JgwQJefvll5s6dywMPPADAM888w+TJkzn22GOHNIdQVe6ZzgwAqYbUCM9ERHIqKiqor69n0aJFbNiwgf32249FixbtcJ+XXnqJ+fPn09zcjLW2u8K95JJLaGlp4eKLL2bp0qUAzJs3j+effx6Ac889lw0bNvC5z32OBQsWcOqpp3LRRReRTqdJJpN873vf48wzz+T000/nzTffBOCnP/0pp512GieffDILFy4Egq1RTjnlFE499VSuu+46AJYsWcIdd9zR53ieffZZPM/jmGOO6fd4b7/9dg499FC6urrYtGkT5eXl3WNtbW3cfvvtXHnllUP8q4Y13Lcq3EVGiylTpnDXXXfxzjvvcOqppzJv3jxefvnl7vEXXniBhx56iHvuuYfKykquuuoqfvCDH/DAAw9w7LHH8rOf/Yy5c+eyePFi1qxZQzwe5/XXX6elpYXOzk6mTJnCmjVruPTSS3n00UdpaGhg6dKlPP7441RXV/PQQw9x55138sMf/hCA3/zmN/zkJz/h4YcfprKyEoAnnniCq666ikcffZS9996bVCrFkUceybe+9a0djmXFihU8/fTTXHrppQMebzQaZd26dZx00kls3bqVT33qU91jixYtYt68eYwfP37If9dQtWVy4Z7cmhzhmYhIzkcffUR5eTk33HADAEuXLuX888/n8MMPB4IKedu2bcRiQVytXLmSa6+9FoBkMsnMmTM599xzueiii6iurub888/n5z//OYsXL+b4448HoLq6mqlTpwIwdepUOjs7WbFiBW+//Tb/9V//BUAqlaKhoYGbbrqJm2++mc2bN3dX3zfccAP33Xcf//Iv/8KcOXMY6NrTv/71r9mwYQNf//rXWbduHUVFRUybNq1Pi2XatGk8//zzPP744/z4xz/mxhtvBIIXlttuu60gf9dQhbvfGfwfktqawvd9PE8rZkRGmrWWRx99lLvuuot4PM6sWbOorKwkGo0CcPXVV/PUU09x22238d3vfpdZs2Zx4403Ultby9tvv82mTZuoqqoikUjwzDPPcPvtt/Pcc89x//33c9NNNwH0+9/63nvvTU1NDRdeeCEdHR3cddddlJeX8+yzz3LLLbcAcOKJJ/KFL3yBxx57jGuvvZbi4mK+8Y1v8O6773LYYYf1ec7LL7+8+/vbb7+diRMn9gn2Cy+8kAULFjBz5kzKysqIRIIGSktLC11dXd0vQkMVqnDPdAWVu9/lk2nPEC2NjvCMREafPb108XOf+xwrV67k5JNPprS0FN/3ufzyy6moqOi+z8UXX8wpp5zCcccdxzXXXMMVV1xBKpXC8zyuv/56AE444QSeeOIJxo0bx9FHH83DDz/MjBkzBvy9p512Gt///vc566yz2LZtG2eccQbxeJyqqiq+9rWvkUgkOOqoo6itrcUYwxlnnEFZWRlTpkxh9uzZLFmyhLfffrtPa6Y/dXV1PPjgg1xzzTVccMEFLFiwgKKiIkpKSrp7+KtWrWLatGlD/Gtu5w309mJPMsbMBFa9+OKLw7rl75Znt7D0b4IPXY5YcwSJ6Ylh+10i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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10bef2208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Explore Fare distribution\n",
"g = sns.distplot(dataset_df.Fare.dropna(), color='m', label='Skewness: %.2f' % (dataset_df.Fare.skew()))\n",
"g.legend(loc='best')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> As we can see, Fare distribution is very skewed. This can lead to overweigth very high values in the model, even if it is scaled.\n",
"> \n",
"> In this case, it is better to transform it with the log function to reduce this skew.\n",
"\n",
"データの偏りが大きい分布だと,値が突出しているときに他と属性と比べて効きすぎてしまうことがある? \n",
"そのため,logにするなどして値の偏りを無くす方向に持っていく."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x10bcb4908>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAEFCAYAAAD+A2xwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xl4lNXd//H3JARQEjYVwiIF1B5cWLTIDq5QRKTqo2WvC0IpaLFWgfq49tHHuqEVC9W68JNFEUXFDRXQIpvyBFtBw0EQUKwgCrLJluX3xzcDIWSZJDOZuZPP67rmmkzuyT1flnzmzLnPEsrNzUVERIIrKd4FiIhI+SjIRUQCTkEuIhJwCnIRkYCrVpEv5pyrAZwNfAtkV+Rri4gEWDLQCFjuvd9f8GCFBjkW4h9W8GuKiFQW3YFFBb9Z0UH+LcD06dNJT0+v4JcWEQmmzZs3M3jwYMjL0IIqOsizAdLT02natGkFv7SISOAV2iWti50iIgGnIBcRCTgFuYhIwCnIRUQCTkEuIhJwCnIRkYCr6OGHIpIgnnwyuucbMSK655PIqUUuIhXmySef5Oqrr2bIkCEMHTqUVatWATB06FDWrVsX5+pKLycnh+uuu47nn3/+qGNr165l4MCBDBgwgPHjx5OVlUVmZiZDhw49dGvdujULFy4sdx1qkUvMRNriU0uuali7di0LFizg+eefJxQKkZmZybhx45gzZ068SyuzRx99lJ07dxZ6bMKECdx0002cffbZjB8/nvfff5+ePXsydepUAN5++20aNGhAjx49yl2HWuQiUiHS0tL4z3/+w0svvcSWLVs49dRTeemll454zoIFCxg6dCg7d+7Ee3+o5XrDDTewa9cuRo8ezcqVKwHo3bs37777LgDXXnstW7ZsoVevXowfP57+/fszatQosrOzOXjwILfeeiuDBw9m4MCBfPTRRwA88sgjDBgwgCuuuIIn81od06dP58orr6R///7cc889ACxdupTHH3/8qD/P3LlzCYVCdO/evdA/78SJEzn77LM5cOAAW7duJTU19dCxn376iYkTJ/Lf//3f5fxbNQpyEakQDRs2ZPLkyaxYsYL+/fvTu3dv3n///UPH33vvPaZPn84TTzxB7dq1uf3227nzzjuZOnUqPXr04KmnnqJnz54sXLiQr7/+murVq7NkyRJ27drF/v37adiwIV9//TVjxoxh5syZbNu2jZUrVzJr1izq1avH9OnTmTRpEn/+858BeP3113nooYeYMWMGtWvXBmD27NncfvvtzJw5k5YtW5KVlUXnzp25/vrrj/izrFmzhjfeeIMxY8YU+edNTk7mm2++oW/fvmzfvp1WrVodOvbSSy/Ru3dv6tevH5W/W3WtiEiF2LhxI6mpqdx3330ArFy5kuHDh9OxY0fAWr67d++mWjWLpXXr1nH33XcDcPDgQZo3b861117LqFGjqFevHsOHD+fZZ59l4cKFnHfeeQDUq1ePRo0aAdCoUSP279/PmjVryMjI4NNPPwUgKyuLbdu28eCDD/Lwww/z/fffH2pV33fffTzzzDM88MADtGvXjqL2NH711VfZsmULV111Fd988w0pKSk0adLkqG6SJk2a8O677zJr1iz+8pe/cP/99wP2JvLYY49F7e9WQS4iFcJ7z8yZM5k8eTLVq1enRYsW1K5dm+TkZADuuOMO5syZw2OPPcbNN99MixYtuP/++2ncuDEZGRls3bqVOnXqULNmTd5++20mTpzIO++8w3PPPceDDz4IQCgUOup1W7ZsSXp6OiNHjmTfvn1MnjyZ1NRU5s6dy4QJEwDo06cPF198MS+++CJ33303NWrUYNiwYXzyySd06NDhqHOOHTv20NcTJ07k+OOPPyrER44cyfjx42nevDm1atUiKck6QHbt2sWBAwcOveFEg4JcpIqq6IvMvXr1Yt26dVxxxRUce+yx5ObmMnbsWNLS0g49Z/To0Vx55ZWce+653HXXXYwbN46srCxCoRD33nsvABdccAGzZ8+mbt26dOvWjRkzZtCsWbMiX3fAgAHcdtttDBkyhN27dzNo0CCqV69OnTp1+PWvf03NmjXp2rUrjRs3xjnHoEGDqFWrFg0bNqRt27YsXbqUjIyMo7pXCrN27VqmTZvGXXfdxYgRIxg/fjwpKSkcc8wxh/rc169fT5MmTcr5t3mkUFEfHWLBOdccWD9//nwtY1sFaNSKSHRs2rSJCy64AKCF935DweO62CkiEnAKchGRgFOQi4gEnIJcRCTgIgpy51xH59wHhXz/EufccufcUufc8KhXJyIiJSoxyJ1zY4GngJoFvp8CPAL0As4BRjjnGsaiSBERKVokLfJ1wOWFfP9UYK33frv3/gCwCCj/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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10bcb4940>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g = sns.distplot(dataset_df.Fare.map(lambda i: np.log(i) if i > 0 else 0), color='b', label='Skewness: %.2f' % (dataset_df.Fare.skew()))\n",
"g.legend(loc='best')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Categorical values"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Sex"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0,0.5,'Survived Probability')"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10bf03550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Sex vs Survived\n",
"g = sns.barplot(x='Sex', y='Survived', data=train_df)\n",
"g.set_ylabel('Survived Probability')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"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",
" </tr>\n",
" <tr>\n",
" <th>Sex</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>female</th>\n",
" <td>0.742038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>male</th>\n",
" <td>0.188908</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Survived\n",
"Sex \n",
"female 0.742038\n",
"male 0.188908"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_df[['Sex', 'Survived']].groupby('Sex').mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> It is clearly obvious that Male have less chance to survive than Female.\n",
"> \n",
"> So Sex, might play an important role in the prediction of the survival.\n",
"> \n",
"> For those who have seen the Titanic movie (1997), I am sure, we all remember this sentence during the evacuation : \"Women and children first\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### PClass"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x10c0f7240>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c09a710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Explore Pclass vs Survived\n",
"g = sns.factorplot(x='Pclass', y='Survived', data=train_df, kind='bar', size=6, palette='muted')\n",
"g.despine(left=True)\n",
"g.set_ylabels('Survived Probability')"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x10bfec278>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c120898>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Explore Pclass vs Survived vs Sex\n",
"g = sns.factorplot(x='Pclass', y='Survived', hue='Sex', data=train_df, kind='bar', size=6, palette='muted')\n",
"g.despine(left=True)\n",
"g.set_ylabels('Survived Probability')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> The passenger survival is not the same in the 3 classes. First class passengers have more chance to survive than second class and third class passengers.\n",
"> \n",
"> This trend is conserved when we look at both male and female passengers."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Embarked"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x10c120198>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10be09978>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g = sns.factorplot(x='Embarked', y='Survived', data=train_df, size=6, kind='bar', palette='muted')\n",
"g.despine(left=True).set_ylabels('Survived Probability')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> It seems that passenger coming from Cherbourg (C) have more chance to survive.\n",
"> \n",
"> My hypothesis is that the proportion of first class passengers is higher for those who came from Cherbourg than Queenstown (Q), Southampton (S).\n",
"> \n",
"> Let's see the Pclass distribution vs Embarked"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x10c0f3860>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c3a1e80>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Explore Embarked vs Pclass\n",
"g = sns.factorplot('Pclass', col='Embarked', data=train_df, size=6, kind='count', palette='muted')\n",
"g.despine(left=True).set_ylabels('Count')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"> Indeed, the third class is the most frequent for passenger coming from Southampton (S) and Queenstown (Q), whereas Cherbourg passengers are mostly in first class which have the highest survival rate.\n",
"> \n",
"> At this point, i can't explain why first class has an higher survival rate. My hypothesis is that first class passengers were prioritised during the evacuation due to their influence."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Filling missing values"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Fare"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset_df.Fare.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"# Fill Fare missing values with the median value\n",
"# テストデータを使って中央値を計算しないように注意.\n",
"dataset_df.Fare = dataset_df.Fare.fillna(train_df.Fare.median())"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"# Apply log to Fare to reduce skewness distribution\n",
"# 場所がわかりにくいので位置を変えたほうがいいか?でも欠損値を先に埋めないとこの処理によって欠損値の部分に0が入ってしまう.\n",
"dataset_df.Fare = dataset_df.Fare.map(lambda i: np.log(i) if i > 0 else 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Embarked"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"# help(train_df.groupby('Embarked').size())"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Embarked\n",
"C 168\n",
"Q 77\n",
"S 644\n",
"dtype: int64"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# train_df.groupby('Embarked').size().idxmax() でデータ数が一番多いindexを取得できる.今回の場合は'S'\n",
"train_df.groupby('Embarked').size()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset_df.Embarked.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"# 欠損値の数が少ないので,一番カテゴリ数が多い値で欠損値を埋めておく (今回のケースでは'S')\n",
"dataset_df.Embarked.fillna(train_df.groupby('Embarked').size().idxmax(), inplace=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Age "
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"# 前回同様,敬称からAgeの欠損値を予測してみる\n",
"# Nameから敬称を抽出する.データを見る限り,'名字 敬称 名前'の順になっていたのでそのルールに沿って敬称を取得する\n",
"dataset_df_title = [i.split(',')[1].split('.')[0].strip() for i in dataset_df.Name]\n",
"dataset_df['Title'] = pd.Series(dataset_df_title)\n",
"# dataset_df.columns"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10bca3470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 敬称の頻度分布を可視化\n",
"g = sns.countplot(x='Title', data=dataset_df)\n",
"g = plt.setp(g.get_xticklabels(), rotation=45) \n",
"# dataset_df.Title"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"# 敬称をカテゴリデータに変換する.本当はonehot-vectorの形にしたほうがよさそう\n",
"dataset_df.Title = dataset_df.Title.replace(['Lady', 'the Countess', 'Countess', 'Capt', 'Col', 'Don', 'Dr', 'Major', 'Rev', 'Sir', 'Jonkheer', 'Dona'], 'Rare')\n",
"dataset_df.Title = dataset_df.Title.map({'Master': 0, 'Miss': 1, 'Mme': 1, 'Mlle': 1, 'Ms' : 2, 'Mrs': 2, 'Mr': 3, 'Rare': 4})\n",
"dataset_df.Title = dataset_df.Title.astype(int)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c1ba2b0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g = sns.countplot(dataset_df.Title)\n",
"g = g.set_xticklabels(['Master', 'Miss/Mme/Mlle', 'Ms/Mrs', 'Mr', 'Rare'])"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAARgAAAEYCAYAAACHjumMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAFMpJREFUeJzt3X+UHWV9x/H37iYxKSEiYsVfKD3qtz8UVFCCBQUWi6RqqKetCmpNC4iKWLFVazkSVKhHS7VrpdhiwVarRZGSUItVfhsaSsUf0MAXo0JFwIoICCxZkt3+MbN6s+zenezus3fv5f06Jyd3Zu6P7yR3P/vMzDPP0zc2NoYkldDf6QIk9S4DRlIxBoykYgwYScUs6nQBTUTEIuDJwK2ZubXT9UhqpisChipcvn/xxRd3ug5Jk+ubbKWHSJKKMWAkFWPASCrGgJFUjAEjqRgDRlIxBoykYgwYScUYMJKKMWAkFWPAaN4NDQ0xODjI0NBQp0tRYQaM5tXw8DDr1q0DYP369QwPD3e4IpVkwGhejYyMMD5M6+joKCMjIx2uSCUZMJKKMWAkFWPASCrGgJFUjAEjqRgDRlIxBoykYgwYScUYMJKKMWAkFWPASCrGgJFUTLGZHSOiHzgD2BvYAhydmZtbtr8DOBIYBU7LzPNL1SKpM0q2YI4Almbm/sC7gdPHN0TELsDbgP2B3wI+WrAOSR1SMmAOAC4CyMyNwL4t2+4HbgF2qv+MFqxDUoeUDJgVwD0ty9siovWQ7AfAJuBawKHNpB5U7BwMcC+wc8tyf2ZurR8fDjwB2LNe/nJEbMjM/ypYj2bpS69fM+v3GN62bbvlr775rSwbGJjx+636x7NnW5IKKtmC2QCsAoiIlcB1Ldt+CgwDWzLzQeBuYJeCtUjqgJItmPOBl0TEVUAfsCYiTgQ2Z+a6iDgU2BgRo8DXgK8UrEVSBxQLmMwcBY6bsPrGlu0nAyeX+nxJnWdHO0nFGDCSijFgupgTmGmhM2C6lBOYqRsYMF3KCczUDQwYScUYMJKKMWAkFWPASCrGgJFUjAEjqRgDRlIxBoykYh7xAWN3e6mcR3TA2N1eKusRHTB2t59/A319P3/cN2FZvecRHTCaf0v6+3nOTssB2Hun5Szp9yvYy0oOmSlNanCXXRncZddOl6F54K8PScUYMJKK8RCpA95w9ttm/R7btmzdbvn4z76HgUfN/L/znDV/PduSpIexBSOpGANGUjEGjKRiDBhJxRgwkooxYCQVY8BIKsaAkVSMASOpGANGUjEGjKRiDBhJxRgwkooxYCQVY8BIKsaAkVSMAdOl+vpbRuPvm7AsLRAGTJfqXzzA8mdWA2cvf8au9C8e6HBF0sNNO8ZiROyemXfMRzHaMY95wRN5zAue2OkypCk1GcT1ioj4DnAO8K+Z+VDZkiT1imkPkTLzmcAHgcOAjIi/iYh9i1cmqes1OgeTmVcCxwNrgdXAFyPi6xGxsmBtkrrctAETEYdGxKeA7wIHAq/KzD2ANwBfKFuepG7W5BzMe4F/AN6UmQ+Mr8zM6yLiL6d6UUT0A2cAewNbgKMzc3PL9sOBk6nmQP868JbMHJvRXkhakJocIv17Zp7TGi4RcRpAZn60zeuOAJZm5v7Au4HTW16/M/Bh4GWZuR9wM7DbjpcvaSGbsgUTER8Efhl4RUQ8o2XTYmA/4D3TvPcBwEUAmblxwonhFwLXAadHxK8AZ2Xmj2dQv6QFrF0L5jzgcuD++u/xPxcBv93gvVcA97Qsb4uI8UDbDTgYeBdwOPDHEfHMHStd0kI3ZQsmM68BromI8zPz3hm8973Azi3L/Zk5PqHyT4BrxjvwRcQVwHOAm2bwOZIWqHaHSNdm5vOAuyOi9eRrHzCWmdP1Td8AvBw4t76cfV3LtmuBZ0XEbsDdwErg72eyA5IWrnYtmOfVf8/0fqXzgZdExFVUobQmIk4ENmfmuoj4M+DL9XPPzczrZ/g5khaodi2Y97Z7YWa+b5rto8BxE1bf2LL9c8DnGtQoqUu16wfj/f+SZqXdIdIp81nITBz5zs/M6vWjWx/cbvmNp3yB/kVLZ/We//yho2b1eqmXTHuSNyJGgZmc5JX0CFfyJK+kBWBoaIgLLriA1atXc8IJJ8zrZzcZcGox1cnag4CHgK8A/+B9Q9LCNzw8zLp16wBYv349xxxzDMuWLZu3z29ys+PHqXrlnkN1ePQHwF7A28qVJWkujIyMMDZWtQVGR0cZGRlZcAGzMjP3Gl+IiAuBb5UrSVKvaHJ+5Yf1DYnjngjcXqgeST2k3VWkS6muHj0O+FZ9v9A2qruk7XUraVrtDpHWTrH+9CnWS9J22l2mvnz8cUQ8F1hOdZJ3ANiTaugGSZpSk8vUn6IaIGpX4AaqYRU2UA2jKUlTanKS90XArwOfB46lGs1uScmiJPWGJgFzWz3Z2g3AXpn5P2w/kJQkTapJP5gf1mO3fBX4UERAdT5Gktpq0oL5I+D79RCa5wGvAd5UtCpJPaHJ1LE/Ay6JiJcDm4E1mXlp8cokdb0mMzv+HvBNqnuQjgW+GREvLV2YpO7X5BzMScA+mXk7QEQ8FVhHPeeRJE2lyTmYh4A7xhcy8xZg69RPl6RKu3uRXl8//D6wvu5wt5XqJK93U0uaVrtDpIPrv++r/6yql+8vWpGkntHuXqQ144/rUe2ifv71LTM0StKUmlxF2gf4DvAp4GzgfyNiv9KFSep+Ta4iDQGvysyrAeppYD8GvKBkYZK6X5OrSMvHwwUgMzcCs5s8SNIjQpOAuSsiVo8vRMQRwE/KlSSpVzQ5RDoW+HREfJJqwKnvAq8tWpWkntAkYAYzc7+I2Anor+9NkqRpNQmY44EzM9P+L5J2SJOA+UFEXAJcDQyPr8zM9xWrSlJPaBIwG1se95UqRFLvaRswEbEbcCFwQ2Y+MD8lSeoVU16mrseBuRn4N+DmiHjxfBUlqTe06wdzEvD8zNwdeB1wyvyUJKlXtAuYscy8ASAzvww8dn5KktQr2gXM6ITlh0oWIqn3tDvJu3NEHMgvrhwtb13OzCtKFyepu7ULmFuB1r4uP2xZHgMOKVWUpN7QbsCpg6faJklNNLmbunf1DbQuTFiWNFuP6IDpH1jMssf9GgDLHver9A8s7nBFUm9pcqtAT1uxx/6s2GP/Tpch9aR205acTXUyd1KZ+YdFKpLUM9q1YC6bzRtHRD9wBrA3sAU4OjM3T/KcfwMuyMwzZ/N5khaedleRPjX+OCJ2BXai6gMzAOzZ4L2PAJZm5v71QOGnA6snPOcDwGN2tGhJ3aHJtCWnUc3umMDXgM3AXzR47wOo56+uBwrfd8L7/i5Vb2HnuJZ6VJOrSK8BngL8C9Vsj4cCP27wuhXAPS3L2yJiEUBEPAs4EnjvDlUrqas0CZjbM/Ne4Hpg78y8FHh8g9fdC+zc+lktM0K+HngScAnwBuDEiHhp46oldYUml6nviYjXAV8H3hoRt9HsvMkG4OXAufU5mOvGN2TmO8cfR8Ra4I7M9FBJ6jFNWjB/BPxyZl5GNQDVJ6jGipnO+cCDEXEV8BHg7RFxYkS8Yoa1SuoyTVowvw98GiAz39H0jTNzFDhuwuobJ3ne2qbvKam7NAmYJwEbIyKpguaLjs8rqYlpD5Ey808zc0/gVGAl8M2I+KfilUnqeo1udoyIPmAxsISq78qWkkVJ6g3THiJFxMeoeuV+A/gMcEJmPli6MEndr8k5mJuA52Vmk851kvRz7e6mPjYz/w7YFXhTRGy33aljJU2nXQumb4rHktRIu7upP1E/vAf4bGb+aH5KktQr7AcjLWBXXLh2Vq9/YHj76cz+8z8+xC8tm93QsC962drGz7UfjKRi7AcjqZim/WBWA9+kOkSyH4ykRpqcg/kRsI/9YCTtqCaHSEcZLpJmokkLZlNEvBe4GhgeX5mZVxSrSlJPaBIwu1KNxds6V/UYcEiRiiT1jGkDJjMPnu45kjSZJleRLmWSGR4z0xaMpLaaHCKtbXm8mOqS9U+LVCOppzQ5RLp8wqqvRsTVOKeRpGk0OUTao2WxD/gN4LHFKpLUM5ocIl1OdQ6mr/77x8BbSxYlqTc0OURqMtG9JD1M24CJiJcBmzLzexFxBNUkbNcC72+ZBlaSJjXlrQIR8SfAycDSiNiLasDvC6jmm/7L+SlPUjdrdy/S64AXZ+Ym4EhgXWaeBbwDOGw+ipPU3doFzFjLyHUHAxcBZObDOt1J0mTanYPZGhG7AMuB5wL/ARARTwU8/yJpWu1aMB+kGmRqI3BWZt4eEb8PXAx8aD6Kk9Td2s0q8IWIuArYLTO/Xa++Dzg6My+bj+Ikdbe2l6kz8zbgtpblLxWvSFLPaDTotyTNhAEjqRgDRlIxBoykYgwYScUYMJKKMWAkFWPASCrGgJFUjAEjqRgDRlIxBoykYgwYScU0mbZkRiKiHzgD2BvYQjXMw+aW7W8HXl0vfikzTylVi6TOKNmCOQJYmpn7A+8GTh/fEBG/AhwFvBBYCfxWPbC4pB5SMmAO4Bfj+G4E9m3Z9gPgpZm5rR7jdzHwYMFaJHVAsUMkYAVwT8vytohYlJlbM/Mh4M6I6AM+DHwjM28qWIukDijZgrmXag6ln39W62RtEbGUaq6lnYE3F6xDmhNDQ0MMDg4yNDTU6VK6RsmA2QCsAoiIlcB14xvqlssFwLcy842Zua1gHdKsDQ8Ps27dOgDWr1/P8PBwhyvqDiUPkc4HXlIPHN4HrImIE4HNwADwYuBREXF4/fw/y8z/LFiPNGMjIyOMjVVTgo2OjjIyMsKyZcs6XNXCVyxgMnMUOG7C6htbHi8t9dmSFgY72kkqxoCRVIwBI/WwRQO/+BHv69t+eT4YMFIPW7JkgOfv/QQA9t3rCSxZMjCvn1/yKpKkBWDVIU9n1SFP78hn24KRVIwtGD0inPbnn5/V6x96aPtb5T566joWL55dT4v3nPp7s3p9N7AFI6kYA0ZSMQaMpGIMGEnFGDCSijFgJBVjwEgqxoCRGujrb+1i3zdhWVMxYKQGFg0s5smP/w0Anvz4X2fRwOIOV9Qd7MkrNRR7HkjseWCny+gqtmAkFWPASCrGgJFUjAEjqRgDRlIxBoykYgwYScUYMJKKMWAkFWPASCrGgJFUjAEjqRgDRlIxBoykYgwYScUYMJKKMWAkFWPASCrGgJFUjAEjqRgDRlIxBoykYgwYScUYMJKKMWAkFWPASCrGgJFUTLG5qSOiHzgD2BvYAhydmZtbth8DvBHYCnwgMy8sVYukzijZgjkCWJqZ+wPvBk4f3xARuwMnAL8JHAb8RUQ8qmAtkjqgWAsGOAC4CCAzN0bEvi3bXgBsyMwtwJaI2AzsBVwzxXsNANxxxx3brdzywN1zXfOs3XrrrdM+58G7H5iHSnZMk7rv2vLgPFSyY5rUDXDf/T8tXMmOa1L7nXfdNw+V7JjJ6h4cHHwacGtmbm1dXzJgVgD3tCxvi4hFdQETt/0MeHSb93oCwFFHHTXnRc61wa8MdbqEGRk8c7DTJczI+we7s26A8/799OmftBCdun6ytd8H9gRubl1ZMmDuBXZuWe5vSbeJ23YG2jVHrgEOBG4Hts1lkZLmzMOaNiUDZgPwcuDciFgJXNey7b+AUyNiKfAo4NeA66d6o/pQ6msFa5VUQN/Y2FiRN265irQX0AesAVYBmzNzXX0V6ViqE82nZeZ5RQqR1DHFAkaS7GgnqRgDRlIxBoykYkpeRZp3EXEQcCnwmsz8XMv6bwPXZuYbduC9js/Mv5nzIpt//kG02RdgRWa+skPlTWsu/y86pRv2oa7xXGATMEbVx+x7wFGZOdLB0oDebMHcCLx6fCEing3sNIP3OWnOKpq5KfdlIYdLi7n6v+ikbtiHSzLzoMw8ODP3AR4CXtHpoqDHWjC1bwEREY/OzHuA1wKfAfaIiOOBV1J9Qe4Efgd4GnA21U2X/cCRwOuBXSPiDOBtwJnAM+rtJ2XmZRFxPXATMJKZr6aMdvtyR2buHhFvBv4AGAWuycwTIuKVwLuovmi3Aa/OzNFCNc60/luofng3AVcukHon02gfMvPtnSxyXEQsoer5/tOIOAt4Sr28LjNPiohzgMfWf34beCdVJ9YB4K8y8/NzWU8vtmAAzgNeGRF9VPc9XUW1r48FDs3M/ajC9fnAS6g6/h0KnAw8OjNPBe7KzDcDRwN3ZuaLgNXAx+vPWA68v2C4tNuXVmuA4+ubSm+IiEXAa4APZ+YBwIVUzeZOmar+pwBH1j+YC6neyTTZh046JCIui4hNVIfP5wPfBTZm5mFUNR/X8vxLMvOFwEpgz/rf/WDgzyNil7ksrFcD5p+pmrUvovrtCNVv+BHgsxHxSeDJwGLgk1S3KVwEHE/Vkmn1bGBVRFxG9UVbFBG71duy4D6Mm2xfWq0B3hIRlwNPperUeCLVl+5y4IVU+94pU9V/Z2b+pH68kOqdTJN96KRLMvMgqpbICNV9QXcBz4+IzwAfoeoxP278e/tsYJ/6u30R1c/D0+aysJ4MmMz8HtVh0AnAp+vVK4AjMvNVwFup9r2PqlVyZWYOAp+naqpTb4OqCfzZ+j/w8Po5d9Xbiv8gTLEvrY4BjsvMFwPPpfoBPRZYW6/rozoU7Ig29bf+2y2YeifTcB86rg671wJnAW8H7s7Mo6iGSvmlugUGv6j7RuDS+rt9CNXJ4u/OZU09GTC1fwGekpk31ctbgfsjYgPwFaobJ58I/Dfwvoi4hKoZ+bH6+Zsi4tPAJ4BfrX+7XgXc0oHzAxP3pdV1wJV1/f8HXE11yHdhRFwM7E512NFJ7eqHhVfvZKbbhwUhMzcBQ8CzgJdGxBXA3wLfofq+t1oP3BcRVwJfB8Yy82dzWY+3CkgqppdbMJI6zICRVIwBI6kYA0ZSMQaMpGJ68VYBdVBEfJxqOpolwNOpbgWA6nL/WGaeGRFnU/V7uSUibgYOysybO1CuCjNgNKcy8y0AEfE04LLMfM4kTzsYOGU+61JnGDCaFxGxtn74IFWHry9FxIEt2weADwMHUd14d05mfmSey9Qc8xyM5lVmfpDqjulVE+7jOabe/jyqm/NWtwaQupMtGC0UhwLPiYhD6uXlVDfjTXaDp7qEAaOFYgB4Z2Z+EaC+Y/3+zpak2fIQSZ2wlYf/crsEOCYiFkfEcqqJ9vab98o0p2zBqBMupDrJe1jLuvFRA79B9b08OzMv60BtmkPeTS2pGA+RJBVjwEgqxoCRVIwBI6kYA0ZSMQaMpGIMGEnF/D/NLSBfTzGtnQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cbfa630>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g = sns.factorplot(x='Title', y='Survived', data=dataset_df, kind='bar')\n",
"g = g.set_xticklabels(['Master', 'Miss', 'Mrs', 'Mr', 'Rare'])\n",
"g = g.set_ylabels('Survival Probability')"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"# Nameの属性を削除\n",
"dataset_df.drop(labels=['Name'], axis=1, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"# fillnaで各行のTitleなどの属性によって補完値を変えるやり方がわからなかったので,forで回す\n",
"# 注意: trainingの欠損値を埋めるのに,testデータの値を使ってはいけない!\n",
"# オンラインの想定でないことを考えると,testデータの穴を埋めるときはtrainingとtestの両方を見てよいはず.\n",
"# FIXME: trainingの欠損値を埋めるときにtestデータを使わないように改良する\n",
"for i, dataset in dataset_df.iterrows():\n",
" if math.isnan(dataset.Age):\n",
" if math.isnan(dataset.Title):\n",
" dataset_df.at[i, 'Age'] = dataset_df[dataset_df.Title==dataset.Title].Age.dropna().mean()\n",
" else:\n",
" dataset_df.at[i, 'Age'] = dataset_df.Age.dropna().mean()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Age 0\n",
"Cabin 1014\n",
"Embarked 0\n",
"Fare 0\n",
"Parch 0\n",
"PassengerId 0\n",
"Pclass 0\n",
"Sex 0\n",
"SibSp 0\n",
"Survived 418\n",
"Ticket 0\n",
"Title 0\n",
"dtype: int64"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset_df.isnull().sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Feature engineering"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"# Convert 'Sex' to be a dummy variable (female = 0, Male = 1)\n",
"dataset_df['Sex'] = dataset_df['Sex'].map({'female': 0, 'male': 1}).astype(int)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cbe2e48>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g = sns.heatmap(dataset_df[['Age', 'Sex', 'SibSp', 'Parch', 'Pclass']].corr(), cmap='BrBG', annot=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Family size"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x10c97d438>"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cd8e390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# SibSpとParchのSurvivedとの関係から,乗船している家族の人数が多いと生存確率が下がるのでは,という当たりをつけてみる.\n",
"train_df['FamilySize'] = train_df['SibSp'] + train_df['Parch'] + 1\n",
"g = sns.factorplot(x='FamilySize', y='Survived', data=train_df, kind='bar', size=6, palette='muted')\n",
"g.set_ylabels('Survived Probability')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"リンク元では家族の人数によって乗客を4つのカテゴリに分類していたが,自分はとりあえず分類はせずこのまま行こう.\n",
"余裕があれば分類したバージョンでも精度を計算してどちらのほうが良さそうか比べてみる."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"dataset_df['FamilySize'] = dataset_df['SibSp'] + dataset_df['Parch'] + 1\n",
"dataset_df.drop(['SibSp', 'Parch'], axis=1, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"# convert to indicator values Title and Embarked \n",
"dataset_df = pd.get_dummies(dataset_df, columns=[\"Title\"])\n",
"dataset_df = pd.get_dummies(dataset_df, columns=[\"Embarked\"], prefix=\"Em\")"
]
},
{
"cell_type": "code",
"execution_count": 44,
"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>Age</th>\n",
" <th>Cabin</th>\n",
" <th>Fare</th>\n",
" <th>PassengerId</th>\n",
" <th>Pclass</th>\n",
" <th>Sex</th>\n",
" <th>Survived</th>\n",
" <th>Ticket</th>\n",
" <th>FamilySize</th>\n",
" <th>Title_0</th>\n",
" <th>Title_1</th>\n",
" <th>Title_2</th>\n",
" <th>Title_3</th>\n",
" <th>Title_4</th>\n",
" <th>Em_C</th>\n",
" <th>Em_Q</th>\n",
" <th>Em_S</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>22.0</td>\n",
" <td>NaN</td>\n",
" <td>1.981001</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>A/5 21171</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>38.0</td>\n",
" <td>C85</td>\n",
" <td>4.266662</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>PC 17599</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>26.0</td>\n",
" <td>NaN</td>\n",
" <td>2.070022</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>STON/O2. 3101282</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>35.0</td>\n",
" <td>C123</td>\n",
" <td>3.972177</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>113803</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>35.0</td>\n",
" <td>NaN</td>\n",
" <td>2.085672</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>373450</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Age Cabin Fare PassengerId Pclass Sex Survived Ticket \\\n",
"0 22.0 NaN 1.981001 1 3 1 0.0 A/5 21171 \n",
"1 38.0 C85 4.266662 2 1 0 1.0 PC 17599 \n",
"2 26.0 NaN 2.070022 3 3 0 1.0 STON/O2. 3101282 \n",
"3 35.0 C123 3.972177 4 1 0 1.0 113803 \n",
"4 35.0 NaN 2.085672 5 3 1 0.0 373450 \n",
"\n",
" FamilySize Title_0 Title_1 Title_2 Title_3 Title_4 Em_C Em_Q Em_S \n",
"0 2 0 0 0 1 0 0 0 1 \n",
"1 2 0 0 1 0 0 1 0 0 \n",
"2 1 0 1 0 0 0 0 0 1 \n",
"3 2 0 0 1 0 0 0 0 1 \n",
"4 1 0 0 0 1 0 0 0 1 "
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Cabin"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"891"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_df['Cabin'].isnull().count()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Cabinは欠損値がやたら多い.客室がない人たち?長旅でそんなのあるのだろうか? \n",
"Cabinの値を見ると,アルファベット一文字に番号が続く形式の文字列になっていることが分かる. \n",
"おそらくアルファベットが船の区画を表していると思われるので,アルファベットだけは情報として持っておき,数字は捨てることにする. \n",
"欠損値には'X'の文字を入れておく."
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"# XXX: 本当はdataset_dfじゃなくてtrain_dfで見ないとダメでは?\n",
"dataset_df['Cabin'] = [cabin[0] if not pd.isnull(cabin) else 'X' for cabin in dataset_df['Cabin']]"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cabin\n",
"A 22\n",
"B 65\n",
"C 94\n",
"D 46\n",
"E 41\n",
"F 21\n",
"G 5\n",
"T 1\n",
"X 1014\n",
"Name: Cabin, dtype: int64\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cf485f8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(dataset_df.groupby('Cabin').Cabin.count())\n",
"g = sns.countplot(dataset_df.Cabin, order=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'T', 'X'])"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x10d12ce80>"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10d15ea58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g = sns.factorplot(x='Cabin', y='Survived', data=dataset_df, kind='bar', size=6, palette='muted', order=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'T', 'X'])\n",
"g.set_ylabels('Survived Probability')"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"# 単純にget_dummies()すると属性の数が大分増えてしまう..生存率が高そうなやつ,低そうなやつ,欠損値の3種類くらいに分けたほうがよいのかも.\n",
"# もしくは欠損とそれ以外の2種類.←こっちにしてみよう.欠損値があるデータは明らか生存率低いし.\n",
"# dataset_df = pd.get_dummies(dataset_df, columns=[\"Cabin\"], prefix=\"Cabin\")\n",
"dataset_df['Cabin'] = [0 if cabin == 'X' else 1 for cabin in dataset_df['Cabin']]"
]
},
{
"cell_type": "code",
"execution_count": 50,
"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>Age</th>\n",
" <th>Cabin</th>\n",
" <th>Fare</th>\n",
" <th>PassengerId</th>\n",
" <th>Pclass</th>\n",
" <th>Sex</th>\n",
" <th>Survived</th>\n",
" <th>Ticket</th>\n",
" <th>FamilySize</th>\n",
" <th>Title_0</th>\n",
" <th>Title_1</th>\n",
" <th>Title_2</th>\n",
" <th>Title_3</th>\n",
" <th>Title_4</th>\n",
" <th>Em_C</th>\n",
" <th>Em_Q</th>\n",
" <th>Em_S</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>22.0</td>\n",
" <td>0</td>\n",
" <td>1.981001</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>A/5 21171</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>38.0</td>\n",
" <td>1</td>\n",
" <td>4.266662</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>PC 17599</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>26.0</td>\n",
" <td>0</td>\n",
" <td>2.070022</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>STON/O2. 3101282</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>35.0</td>\n",
" <td>1</td>\n",
" <td>3.972177</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>113803</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>35.0</td>\n",
" <td>0</td>\n",
" <td>2.085672</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>373450</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Age Cabin Fare PassengerId Pclass Sex Survived \\\n",
"0 22.0 0 1.981001 1 3 1 0.0 \n",
"1 38.0 1 4.266662 2 1 0 1.0 \n",
"2 26.0 0 2.070022 3 3 0 1.0 \n",
"3 35.0 1 3.972177 4 1 0 1.0 \n",
"4 35.0 0 2.085672 5 3 1 0.0 \n",
"\n",
" Ticket FamilySize Title_0 Title_1 Title_2 Title_3 Title_4 \\\n",
"0 A/5 21171 2 0 0 0 1 0 \n",
"1 PC 17599 2 0 0 1 0 0 \n",
"2 STON/O2. 3101282 1 0 1 0 0 0 \n",
"3 113803 2 0 0 1 0 0 \n",
"4 373450 1 0 0 0 1 0 \n",
"\n",
" Em_C Em_Q Em_S \n",
"0 0 0 1 \n",
"1 1 0 0 \n",
"2 0 0 1 \n",
"3 0 0 1 \n",
"4 0 0 1 "
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Ticket"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 A/5 21171\n",
"1 PC 17599\n",
"2 STON/O2. 3101282\n",
"3 113803\n",
"4 373450\n",
"5 330877\n",
"6 17463\n",
"7 349909\n",
"8 347742\n",
"9 237736\n",
"10 PP 9549\n",
"11 113783\n",
"12 A/5. 2151\n",
"13 347082\n",
"14 350406\n",
"15 248706\n",
"16 382652\n",
"17 244373\n",
"18 345763\n",
"19 2649\n",
"20 239865\n",
"21 248698\n",
"22 330923\n",
"23 113788\n",
"24 349909\n",
"25 347077\n",
"26 2631\n",
"27 19950\n",
"28 330959\n",
"29 349216\n",
" ... \n",
"1279 364858\n",
"1280 349909\n",
"1281 12749\n",
"1282 PC 17592\n",
"1283 C.A. 2673\n",
"1284 C.A. 30769\n",
"1285 315153\n",
"1286 13695\n",
"1287 371109\n",
"1288 13567\n",
"1289 347065\n",
"1290 21332\n",
"1291 36928\n",
"1292 28664\n",
"1293 112378\n",
"1294 113059\n",
"1295 17765\n",
"1296 SC/PARIS 2166\n",
"1297 28666\n",
"1298 113503\n",
"1299 334915\n",
"1300 SOTON/O.Q. 3101315\n",
"1301 365237\n",
"1302 19928\n",
"1303 347086\n",
"1304 A.5. 3236\n",
"1305 PC 17758\n",
"1306 SOTON/O.Q. 3101262\n",
"1307 359309\n",
"1308 2668\n",
"Name: Ticket, Length: 1309, dtype: object"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset_df.Ticket"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"数字の前にSOTONとかC.A.とかついてるが,これらは何を指しているのだろう?\n",
"SC/PARISの文字から,購入先の都市?\n",
"Categorical Dataにしてわざわざ属性を増やすほどでもない気がするので,単純に削除することにする."
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
"dataset_df.drop(['Ticket'], axis=1, inplace=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Pclass"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
"# Create categorical data for Pclass\n",
"dataset_df.Pclass = dataset_df.Pclass.astype('category')\n",
"dataset_df = pd.get_dummies(dataset_df, columns=['Pclass'], prefix='pc')"
]
},
{
"cell_type": "code",
"execution_count": 54,
"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>Age</th>\n",
" <th>Cabin</th>\n",
" <th>Fare</th>\n",
" <th>PassengerId</th>\n",
" <th>Sex</th>\n",
" <th>Survived</th>\n",
" <th>FamilySize</th>\n",
" <th>Title_0</th>\n",
" <th>Title_1</th>\n",
" <th>Title_2</th>\n",
" <th>Title_3</th>\n",
" <th>Title_4</th>\n",
" <th>Em_C</th>\n",
" <th>Em_Q</th>\n",
" <th>Em_S</th>\n",
" <th>pc_1</th>\n",
" <th>pc_2</th>\n",
" <th>pc_3</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>22.0</td>\n",
" <td>0</td>\n",
" <td>1.981001</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>38.0</td>\n",
" <td>1</td>\n",
" <td>4.266662</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>26.0</td>\n",
" <td>0</td>\n",
" <td>2.070022</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>35.0</td>\n",
" <td>1</td>\n",
" <td>3.972177</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>35.0</td>\n",
" <td>0</td>\n",
" <td>2.085672</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Age Cabin Fare PassengerId Sex Survived FamilySize Title_0 \\\n",
"0 22.0 0 1.981001 1 1 0.0 2 0 \n",
"1 38.0 1 4.266662 2 0 1.0 2 0 \n",
"2 26.0 0 2.070022 3 0 1.0 1 0 \n",
"3 35.0 1 3.972177 4 0 1.0 2 0 \n",
"4 35.0 0 2.085672 5 1 0.0 1 0 \n",
"\n",
" Title_1 Title_2 Title_3 Title_4 Em_C Em_Q Em_S pc_1 pc_2 pc_3 \n",
"0 0 0 1 0 0 0 1 0 0 1 \n",
"1 0 1 0 0 1 0 0 1 0 0 \n",
"2 1 0 0 0 0 0 1 0 0 1 \n",
"3 0 1 0 0 0 0 1 1 0 0 \n",
"4 0 0 1 0 0 0 1 0 0 1 "
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"# Prepare data\n",
"X_train = dataset_df[:train_count].drop(['PassengerId', 'Survived'], axis=1)\n",
"y_train = dataset_df[:train_count].Survived\n",
"X_test = dataset_df[train_count:].drop(['PassengerId', 'Survived'], axis=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"様々なアルゴリズムで学習をさせてみる.\n",
"\n",
"[Titanic Top 4% with ensemble modeling | Kaggle](https://www.kaggle.com/yassineghouzam/titanic-top-4-with-ensemble-modeling)を参考に,以下のアルゴリズムで学習を行う.\n",
"\n",
"- SVC\n",
"- Decision Tree\n",
"- AdaBoost\n",
"- Random Forest\n",
"- Extra Trees\n",
"- Gradient Boosting\n",
"- Multiple layer perceprton (neural network)\n",
"- KNN\n",
"- Logistic regression\n",
"- Linear Discriminant Analysis\n",
"- xgboost"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/site-packages/sklearn/discriminant_analysis.py:388: UserWarning: Variables are collinear.\n",
" warnings.warn(\"Variables are collinear.\")\n",
"/usr/local/lib/python3.6/site-packages/sklearn/discriminant_analysis.py:388: UserWarning: Variables are collinear.\n",
" warnings.warn(\"Variables are collinear.\")\n",
"/usr/local/lib/python3.6/site-packages/sklearn/discriminant_analysis.py:388: UserWarning: Variables are collinear.\n",
" warnings.warn(\"Variables are collinear.\")\n",
"/usr/local/lib/python3.6/site-packages/sklearn/discriminant_analysis.py:388: UserWarning: Variables are collinear.\n",
" warnings.warn(\"Variables are collinear.\")\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10d188240>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Modeling step Test differents algorithms\n",
"N_SPLITS = 4\n",
"kfold = StratifiedKFold(n_splits=N_SPLITS)\n",
"\n",
"random_state = 42 # 乱数のseed\n",
"\n",
"classifiers = []\n",
"classifiers.append(SVC(random_state=random_state))\n",
"classifiers.append(DecisionTreeClassifier(random_state=random_state))\n",
"classifiers.append(AdaBoostClassifier(DecisionTreeClassifier(\n",
" random_state=random_state), random_state=random_state, learning_rate=0.1))\n",
"classifiers.append(RandomForestClassifier(random_state=random_state))\n",
"classifiers.append(ExtraTreesClassifier(random_state=random_state))\n",
"classifiers.append(GradientBoostingClassifier(random_state=random_state))\n",
"classifiers.append(MLPClassifier(random_state=random_state))\n",
"classifiers.append(KNeighborsClassifier())\n",
"classifiers.append(LogisticRegression(random_state=random_state))\n",
"classifiers.append(LinearDiscriminantAnalysis())\n",
"classifiers.append(xgb.XGBClassifier(seed=random_state))\n",
"\n",
"cv_results = []\n",
"for classifier in classifiers:\n",
" cv_results.append(cross_val_score(classifier, X_train,\n",
" y=y_train, scoring='accuracy', cv=kfold, n_jobs=4))\n",
"\n",
"cv_means = []\n",
"cv_std = []\n",
"for cv_result in cv_results:\n",
" cv_means.append(cv_result.mean())\n",
" cv_std.append(cv_result.std())\n",
"\n",
"cv_res = pd.DataFrame({'CrossValMeans': cv_means, 'CrossValerrors': cv_std, 'Algorithm': ['SVC', 'DecisionTree', 'AdaBoost',\n",
" 'RandomForest', 'ExtraTrees', 'GradientBoosting', 'MultipleLayerPerceptron', 'KNeighboors', 'LogisticRegression', 'LinearDiscriminantAnalysis', 'XGBClassifier']})\n",
"\n",
"g = sns.barplot('CrossValMeans', 'Algorithm', data=cv_res,\n",
" palette='Set3', orient='h', **{'xerr': cv_std})\n",
"g.set_xlabel('Mean Accuracy')\n",
"g = g.set_title('Cross validation scores')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"hyper parameter tuningを行う.この辺りは中のアルゴリズムを知ってないと少し難しそう \n",
"> grid search optimization for AdaBoost, ExtraTrees , RandomForest, GradientBoosting and SVC classifiers "
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 4 folds for each of 112 candidates, totalling 448 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[Parallel(n_jobs=4)]: Done 348 tasks | elapsed: 1.8s\n",
"[Parallel(n_jobs=4)]: Done 448 out of 448 | elapsed: 2.5s finished\n"
]
},
{
"data": {
"text/plain": [
"0.80471380471380471"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Adaboost\n",
"DTC = DecisionTreeClassifier()\n",
"\n",
"adaDTC = AdaBoostClassifier(DTC, random_state=7)\n",
"\n",
"ada_param_grid = {'base_estimator__criterion' : ['gini', 'entropy'],\n",
" 'base_estimator__splitter' : ['best', 'random'],\n",
" 'algorithm' : ['SAMME','SAMME.R'],\n",
" 'n_estimators' :[1, 2],\n",
" 'learning_rate': [0.0001, 0.001, 0.01, 0.1, 0.2, 0.3, 1.5]}\n",
"\n",
"gsadaDTC = GridSearchCV(adaDTC, param_grid=ada_param_grid, cv=kfold, scoring='accuracy', n_jobs=4, verbose=1)\n",
"\n",
"gsadaDTC.fit(X_train, y_train)\n",
"\n",
"ada_best = gsadaDTC.best_estimator_\n",
"gsadaDTC.best_score_"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 4 folds for each of 54 candidates, totalling 216 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[Parallel(n_jobs=4)]: Done 42 tasks | elapsed: 11.7s\n",
"[Parallel(n_jobs=4)]: Done 192 tasks | elapsed: 52.3s\n",
"[Parallel(n_jobs=4)]: Done 216 out of 216 | elapsed: 58.0s finished\n"
]
},
{
"data": {
"text/plain": [
"0.83052749719416386"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# ExtraTrees \n",
"ExtC = ExtraTreesClassifier()\n",
"\n",
"# Search grid for optimal parameters\n",
"ex_param_grid = {'max_depth': [None],\n",
" 'max_features': [1, 3, 10],\n",
" 'min_samples_split': [2, 3, 10],\n",
" 'min_samples_leaf': [1, 3, 10],\n",
" 'bootstrap': [False],\n",
" 'n_estimators' :[100, 300],\n",
" 'criterion': ['gini']}\n",
"\n",
"\n",
"gsExtC = GridSearchCV(ExtC, param_grid=ex_param_grid, cv=kfold, scoring='accuracy', n_jobs=4, verbose=1)\n",
"\n",
"gsExtC.fit(X_train,y_train)\n",
"\n",
"ExtC_best = gsExtC.best_estimator_\n",
"\n",
"# Best score\n",
"gsExtC.best_score_"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 4 folds for each of 54 candidates, totalling 216 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[Parallel(n_jobs=4)]: Done 42 tasks | elapsed: 8.7s\n",
"[Parallel(n_jobs=4)]: Done 192 tasks | elapsed: 34.2s\n",
"[Parallel(n_jobs=4)]: Done 216 out of 216 | elapsed: 40.5s finished\n"
]
},
{
"data": {
"text/plain": [
"0.83726150392817056"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# RFC Parameters tunning \n",
"RFC = RandomForestClassifier()\n",
"\n",
"# Search grid for optimal parameters\n",
"rf_param_grid = {'max_depth': [None],\n",
" 'max_features': [1, 3, 10],\n",
" 'min_samples_split': [2, 3, 10],\n",
" 'min_samples_leaf': [1, 3, 10],\n",
" 'bootstrap': [False],\n",
" 'n_estimators' :[100, 300],\n",
" 'criterion': ['gini']}\n",
"\n",
"gsRFC = GridSearchCV(RFC, param_grid=rf_param_grid, cv=kfold, scoring='accuracy', n_jobs=4, verbose=1)\n",
"\n",
"gsRFC.fit(X_train,y_train)\n",
"\n",
"RFC_best = gsRFC.best_estimator_\n",
"\n",
"# Best score\n",
"gsRFC.best_score_"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 4 folds for each of 72 candidates, totalling 288 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[Parallel(n_jobs=4)]: Done 76 tasks | elapsed: 3.3s\n",
"[Parallel(n_jobs=4)]: Done 288 out of 288 | elapsed: 10.2s finished\n"
]
},
{
"data": {
"text/plain": [
"0.82603815937149272"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Gradient boosting tunning\n",
"\n",
"GBC = GradientBoostingClassifier()\n",
"gb_param_grid = {'loss' : ['deviance'],\n",
" 'n_estimators' : [100, 200, 300],\n",
" 'learning_rate': [0.1, 0.05, 0.01],\n",
" 'max_depth': [4, 8],\n",
" 'min_samples_leaf': [100, 150],\n",
" 'max_features': [0.3, 0.1]}\n",
"\n",
"gsGBC = GridSearchCV(GBC, param_grid=gb_param_grid, cv=kfold, scoring='accuracy', n_jobs=4, verbose=1)\n",
"\n",
"gsGBC.fit(X_train, y_train)\n",
"\n",
"GBC_best = gsGBC.best_estimator_\n",
"\n",
"# Best score\n",
"gsGBC.best_score_"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 4 folds for each of 28 candidates, totalling 112 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[Parallel(n_jobs=4)]: Done 76 tasks | elapsed: 3.7s\n",
"[Parallel(n_jobs=4)]: Done 112 out of 112 | elapsed: 7.7s finished\n"
]
},
{
"data": {
"text/plain": [
"0.8271604938271605"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# SVC classifier\n",
"SVMC = SVC(probability=True)\n",
"svc_param_grid = {'kernel': ['rbf'], \n",
" 'gamma': [0.001, 0.01, 0.1, 1],\n",
" 'C': [1, 10, 50, 100,200, 300, 1000]}\n",
"\n",
"gsSVMC = GridSearchCV(SVMC, param_grid=svc_param_grid, cv=kfold, scoring='accuracy', n_jobs=4, verbose=1)\n",
"\n",
"gsSVMC.fit(X_train, y_train)\n",
"\n",
"SVMC_best = gsSVMC.best_estimator_\n",
"\n",
"# Best score\n",
"gsSVMC.best_score_"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 4 folds for each of 6 candidates, totalling 24 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[Parallel(n_jobs=4)]: Done 24 out of 24 | elapsed: 1.4s finished\n"
]
},
{
"data": {
"text/plain": [
"0.87314094273545273"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# xgboost ref: https://www.kaggle.com/phunter/xgboost-with-gridsearchcv\n",
"# xgboostは欠損値があっても上手く動作するので,前処理の方法を他の手法と変えてみてもいいのかもしれない\n",
"XgbC = xgb.XGBClassifier()\n",
"\n",
"xgb_param_grid = {'learning_rate': [0.1, 0.05, 0.01], #so called `eta` value\n",
" 'max_depth': [4, 8],\n",
" 'min_child_weight': [11],\n",
" 'silent': [1],\n",
" 'subsample': [0.8],\n",
" 'colsample_bytree': [0.7],\n",
" 'n_estimators': [100], #number of trees, change it to 1000 for better results\n",
" 'seed': [random_state]}\n",
"\n",
"gsXgbC = GridSearchCV(XgbC, xgb_param_grid, n_jobs=4, cv=kfold, scoring='roc_auc', verbose=1, refit=True)\n",
"gsXgbC.fit(X_train, y_train)\n",
"\n",
"Xgb_best = gsXgbC.best_estimator_\n",
"\n",
"# Best score\n",
"gsXgbC.best_score_"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cc15eb8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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bdvG+eefDxEbGku2i0IYYMCAAQwePDgtGaiqqkrbszubXClLrpQDpCyZSK6UI0KLbndxNAuCIAhRRBQEQRCEKCIKgiAIQhQRBUEQBCGKiIIgCIIQRURBEARBiCKiIAiCIETp3qLQ0ABWWystCkKOsnAhjBsHXq95XbjwgG535513Mm3aNL7xjW9w4oknMm3aNK666qqkrv3000+59957W01/6623ePLJJw8of0LyZPvktQOjthb8fvD5oKAAioshTxaEEnKchQvh3HOb9leubNo/55z9uuX1118PwDPPPMPatWuZPXt20tcefvjhHH744a2mn3DCCfuVJ2H/6N6iAKamZFlQXw9794LbbQSiqMi8upJdGlgQMoRrr4Wnnmo9fcuWxMcvvBAixr0FZ50Fv/tdh7PywQcf8Pvf/568vDyOPvpoqqurefzxxwmFQrhcLu69914+//xzFi5cyB//+EdOPfVUJkyYwJdffkmfPn2YM2cOixcvZu3atZxzzjlcc801DBgwgI0bN3LEEUfwy1/+kl27djF79mwCgQDDhw9nyZIlvPrqq9E8+P1+rr76avbt20dDQwP/7//9P44//nieeuopFixYgGVZfO1rX+Oqq67i2Wef5ZFHHsHn8zFs2DB+9atf8dxzz/H0009jWRZXXXUVH330EXfddRdut5vy8vIOCWA20L27j+LxeIwI+P2wcyds2gTV1UYspJtJyBWCwY4dP0D8fj9PPPEEU6ZMYd26dTzwwAMsWLCAESNG8M47zWKxsXHjRq6++mqefPJJdu3axcqVK5ulr1u3jttuu42nnnqKt956i+rqau677z6+/vWv89hjj/GNb3yDcLh55IYNGzZQU1PDfffdx9133004HGbnzp08+OCDPPHEEyxatIhAIMDmzZuZM2cOjzzyCAsWLKC0tDTabdWjRw8WLFjA4YcfztNPP83DDz/MggULqKqq4t133yWXkJZCa7gjehkMQiAAu3dDfn5TN5NXPjohQ/nd79qu1Y8bZ7qMEh3/5JNOz87w4cOj7/v06cN1111HcXExa9eu5cgjj2x2bq9evRg4cCAAAwcOxO9vvpTz0KFDKSkpAaBfv374/X6++OILvvOd7wAwceLEFs8fOXIkZ599NrNmzSIUCjFt2jQ2btzIyJEjKSgoAGD27NlUVFQwYsSI6P0nTZrEO++8w/jx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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cc15be0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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2s6Ma7NhwwZGjx5NXMB1PW7cONatWwfAyJEjAcjPzw8mK7SJRhbcSy65BCBiWXC1ZWFz1llKGHbtgnffbRgFNXo0vPYaPPCAEog774QTToAvv+z8OZ1OVWRpxw5tZWi6lZuPDG9dTzui41lnjznmGD799FM2b94MKBfR9OnTWbt2LdCQtTUzM5Pdu3ezc+dOQGV2HTRoEF999RW5ubnMnDmTyy+/nIceeihstthx48Yxe/ZsZs+ezdFHH82gQYOwLItnn32WSZMmASqAffXVV/O3v/2NESNGtBhkHzp0aDBbrV03Y9euXS1mxm3azpAhQygsLMTn82FZFt98803wJt5a9txoZMGdOXNmRLPgasuiPTgc8Kc/wYQJMH06vPQSnH46/P73cOutkJvbubbtIktpacrS0Gi6GDuIff9n97O6eDX75+zPtCOmdTi4DZCSksL06dP561//imVZVFdXc8wxx/DHP/6Rr7/+OrifYRjcc889XHXVVRiGQXp6Ovfffz+GYTBlyhTmzp2Lz+fjyiuvDJstNhxnnHEG//znPznkkEMAOOWUU5g8eTJpaWnk5+dTXl4e9rjLL7+c66+/njfffDOYiDQlJSVsZlxQ4jJ16lQOC8Q0hRBMmDCBs88+G9M0GTt2LMceeyw//PBD2PPZRCML7rnnnovf749YFlyddbYp7ck6u2yZqldcWAipqapk5fnnN3JNFRYWMmrUqD07t2Wp8/bp0/kRWBGip2fSDEVfS+zRW64Dev61tJV1VruhOsKYMfD66yrG4XTCbbfBb38LIU9LHcIuslRUpIssaTSamEKLRUdxOlUx+08+UbO/16yB006Da65RWWg7g11kaft2laBQo9FouhktFp0lOxsefFDlkioogIUL4aijyH711c4Fre1g2M6dKm2ItjI0Gk03ErUAtxDCATwBjAY8wEVSyvUh268D/giYwH1SykVCiJuA3wZ2yQDypZT5QohrgYsA+5H9UimljFbfO8S4cfDmmzB7NjzwAP2ffFJZHffdp7Z1FF1kSaPRxADRtCxOBRKklIcCNwH/sDcIITKAycChwPHAIwBSyulSyqOllEcDW4HzAoeMBc6zt8WcUNg4nfDnP8Mnn1B23HHw/fdqCO5110FpacfbNQy1FBerdrSVodFouphoDp09AngbQEr5pRAi9PG6GvgJSA4sZuiBQojf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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cc47a90>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c96c668>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cd18898>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot learning curve\n",
"def plot_learning_curve(estimator, title, X, y, ylim=None, cv=None,\n",
" n_jobs=-1, train_sizes=np.linspace(.1, 1.0, 5)):\n",
" \"\"\"Generate a simple plot of the test and training learning curve.\"\"\"\n",
" plt.figure()\n",
" plt.title(title)\n",
" if ylim is not None:\n",
" plt.ylim(*ylim)\n",
" plt.xlabel('Training examples')\n",
" plt.ylabel('Score')\n",
" train_sizes, train_scores, test_scores = learning_curve(\n",
" estimator, X, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes)\n",
" train_scores_mean = np.mean(train_scores, axis=1)\n",
" train_scores_std = np.std(train_scores, axis=1)\n",
" test_scores_mean = np.mean(test_scores, axis=1)\n",
" test_scores_std = np.std(test_scores, axis=1)\n",
" plt.grid()\n",
"\n",
" plt.fill_between(train_sizes, train_scores_mean - train_scores_std,\n",
" train_scores_mean + train_scores_std, alpha=0.1,\n",
" color='r')\n",
" plt.fill_between(train_sizes, test_scores_mean - test_scores_std,\n",
" test_scores_mean + test_scores_std, alpha=0.1, color='g')\n",
" plt.plot(train_sizes, train_scores_mean, 'o-', color='r',\n",
" label='Training score')\n",
" plt.plot(train_sizes, test_scores_mean, 'o-', color='g',\n",
" label='Cross-validation score')\n",
"\n",
" plt.legend(loc='best')\n",
" return plt\n",
"\n",
"g = plot_learning_curve(gsRFC.best_estimator_, 'RF mearning curves', X_train, y_train, cv=kfold)\n",
"g = plot_learning_curve(gsExtC.best_estimator_, 'ExtraTrees learning curves', X_train, y_train, cv=kfold)\n",
"g = plot_learning_curve(gsSVMC.best_estimator_, 'SVC learning curves', X_train, y_train, cv=kfold)\n",
"g = plot_learning_curve(gsadaDTC.best_estimator_, 'AdaBoost learning curves', X_train, y_train, cv=kfold)\n",
"g = plot_learning_curve(gsGBC.best_estimator_, 'GradientBoosting learning curves', X_train, y_train, cv=kfold)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10d345da0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nrows = ncols = 2\n",
"fig, axes = plt.subplots(nrows = nrows, ncols = ncols, sharex='all', figsize=(15, 15))\n",
"\n",
"names_classifiers = [('AdaBoosting', ada_best), ('ExtraTrees', ExtC_best), ('RandomForest', RFC_best), ('GradientBoosting', GBC_best)]\n",
"\n",
"nclassifier = 0\n",
"for row in range(nrows):\n",
" for col in range(ncols):\n",
" name = names_classifiers[nclassifier][0]\n",
" classifier = names_classifiers[nclassifier][1]\n",
" indices = np.argsort(classifier.feature_importances_)[::-1][:40]\n",
" g = sns.barplot(y=X_train.columns[indices][:40], x = classifier.feature_importances_[indices][:40] , orient='h',ax=axes[row][col])\n",
" g.set_xlabel('Relative importance', fontsize=12)\n",
" g.set_ylabel('Features', fontsize=12)\n",
" g.tick_params(labelsize=9)\n",
" g.set_title(name + ' feature importance')\n",
" nclassifier += 1"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10db282e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"test_Survived_RFC = pd.Series(RFC_best.predict(X_test), name='RFC')\n",
"test_Survived_ExtC = pd.Series(ExtC_best.predict(X_test), name='ExtC')\n",
"test_Survived_SVMC = pd.Series(SVMC_best.predict(X_test), name='SVC')\n",
"test_Survived_AdaC = pd.Series(ada_best.predict(X_test), name='Ada')\n",
"test_Survived_GBC = pd.Series(GBC_best.predict(X_test), name='GBC')\n",
"test_Survived_XgbC = pd.Series(Xgb_best.predict(X_test), name='Xgb')\n",
"\n",
"# Concatenate all classifier results\n",
"ensemble_results = pd.concat([test_Survived_RFC, test_Survived_ExtC, test_Survived_AdaC, test_Survived_GBC, test_Survived_SVMC, test_Survived_XgbC], axis=1)\n",
"\n",
"g = sns.heatmap(ensemble_results.corr(),annot=True)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"# ensamble modeling\n",
"# votingC = VotingClassifier(estimators=[('rfc', RFC_best), ('extc', ExtC_best),\n",
"# ('svc', SVMC_best), ('adac',ada_best),('gbc',GBC_best), ('xgb', Xgb_best)], voting='soft', n_jobs=4)\n",
"votingC = VotingClassifier(estimators=[('rfc', RFC_best), ('extc', ExtC_best),\n",
" ('svc', SVMC_best), ('adac',ada_best),('gbc',GBC_best)], voting='soft', n_jobs=4)\n",
"# votingC = VotingClassifier(estimators=[('gbc',GBC_best), ('xgb', Xgb_best)], weights=[1, 1], voting='soft', n_jobs=4)\n",
"votingC = votingC.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
"# ref: https://www.kaggle.com/valerioorfano/voting-classifier/code#L64\n",
"## # Train Model\n",
"# classifier from xgboost\n",
"clf1 = AdaBoostClassifier(n_estimators=500)\n",
"clf2 = ExtraTreesClassifier(n_estimators=500, n_jobs=-1, criterion='gini',max_depth=5)\n",
"clf3 = xgb.XGBClassifier(n_estimators=500, nthread=-1, max_depth = 5, seed=1729)\n",
"clf4 = GradientBoostingClassifier(n_estimators=500)\n",
"eclf = VotingClassifier(estimators=[('ab', clf1), ('etc', clf2), ('xgb', clf3),('gbc', clf4)], weights=[1,1,1,1], voting='soft')\n",
"eclf = eclf.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"# Prediction\n",
"y_pred = pd.Series(votingC.predict(X_test), name='Survived').astype(int)\n",
"\n",
"submission = pd.DataFrame({\n",
" 'PassengerId': test_df['PassengerId'],\n",
" 'Survived': y_pred\n",
" })\n",
"submission.to_csv('../output/submission.csv', index=False)"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"# 結果 score: 0.78 (xgboostをvotingClassifierで未使用の場合)"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [],
"source": [
"xgb = Xgb_best.fit(X_train, y_train)\n",
"# Prediction\n",
"y_pred = pd.Series(xgb.predict(X_test), name='Survived').astype(int)\n",
"\n",
"submission = pd.DataFrame({\n",
" 'PassengerId': test_df['PassengerId'],\n",
" 'Survived': y_pred\n",
" })\n",
"submission.to_csv('../output/xgboost_result.csv', index=False)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
"# 結果 score: 0.77 (xgboostのみ)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"メモ: たとえ相関がある/ないの状態でも,因果関係がある/ないとは限らないので細かくデータを見ていかなくてはならないようだ.\n",
"(年齢と生存率は単純な相関を見ると無相関だが,実は関係が深いっぽい?もっとデータを見ていかないと分からないが.) \n",
"期待したよりも結果が出ない.なぜだろう? \n",
"次はdnnClassifierとかを試す?ensembleの組み合わせの方法をもう少し考える?"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment