Skip to content

Instantly share code, notes, and snippets.

@mirrornerror
Last active January 9, 2019 04:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mirrornerror/a214feefc06c885345b02d91bd31c51c to your computer and use it in GitHub Desktop.
Save mirrornerror/a214feefc06c885345b02d91bd31c51c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Kaggle: Titanic: Machine Learning from Disaster \n",
"https://www.kaggle.com/c/titanic"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"np.random.seed(123)\n",
"\n",
"from tensorflow import set_random_seed\n",
"set_random_seed(123)\n",
"\n",
"train = pd.read_csv('titanic/train.csv', index_col=0)\n",
"test = pd.read_csv('titanic/test.csv', index_col=0)"
]
},
{
"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>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Name</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Ticket</th>\n",
" <th>Fare</th>\n",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" </tr>\n",
" <tr>\n",
" <th>PassengerId</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></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>1</th>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>Braund, Mr. Owen Harris</td>\n",
" <td>male</td>\n",
" <td>22.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>A/5 21171</td>\n",
" <td>7.2500</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
" <td>female</td>\n",
" <td>38.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>PC 17599</td>\n",
" <td>71.2833</td>\n",
" <td>C85</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>Heikkinen, Miss. Laina</td>\n",
" <td>female</td>\n",
" <td>26.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>STON/O2. 3101282</td>\n",
" <td>7.9250</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
" <td>female</td>\n",
" <td>35.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>113803</td>\n",
" <td>53.1000</td>\n",
" <td>C123</td>\n",
" <td>S</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>Allen, Mr. William Henry</td>\n",
" <td>male</td>\n",
" <td>35.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>373450</td>\n",
" <td>8.0500</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Survived Pclass \\\n",
"PassengerId \n",
"1 0 3 \n",
"2 1 1 \n",
"3 1 3 \n",
"4 1 1 \n",
"5 0 3 \n",
"\n",
" Name Sex Age \\\n",
"PassengerId \n",
"1 Braund, Mr. Owen Harris male 22.0 \n",
"2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n",
"3 Heikkinen, Miss. Laina female 26.0 \n",
"4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n",
"5 Allen, Mr. William Henry male 35.0 \n",
"\n",
" SibSp Parch Ticket Fare Cabin Embarked \n",
"PassengerId \n",
"1 1 0 A/5 21171 7.2500 NaN S \n",
"2 1 0 PC 17599 71.2833 C85 C \n",
"3 0 0 STON/O2. 3101282 7.9250 NaN S \n",
"4 1 0 113803 53.1000 C123 S \n",
"5 0 0 373450 8.0500 NaN S "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Drop Survived and Ticket, then combine train with test "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 1309 entries, 1 to 1309\n",
"Data columns (total 9 columns):\n",
"Pclass 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",
"Fare 1308 non-null float64\n",
"Cabin 295 non-null object\n",
"Embarked 1307 non-null object\n",
"dtypes: float64(2), int64(3), object(4)\n",
"memory usage: 102.3+ KB\n"
]
}
],
"source": [
"train_tmp = train.drop(['Survived', 'Ticket'], axis=1)\n",
"test_tmp = test.drop(['Ticket'], axis=1)\n",
"df = pd.concat([train_tmp, test_tmp])\n",
"df.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Name --> Title --> Number"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['Mr' 'Mrs' 'Miss' 'Master' 'Don' 'Rev' 'Dr' 'Mme' 'Ms' 'Major' 'Lady'\n",
" 'Sir' 'Mlle' 'Col' 'Capt' 'Countess' 'Jonkheer' 'Dona']\n"
]
}
],
"source": [
"# Name to Title\n",
"df = df.assign(Title=df.Name.str.extract(' ([A-Za-z]+)\\..', expand=True))\n",
"title_list = df.Title.unique()\n",
"print(title_list)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Title</th>\n",
" </tr>\n",
" <tr>\n",
" <th>PassengerId</th>\n",
" <th></th>\n",
" <th></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>1</th>\n",
" <td>3</td>\n",
" <td>male</td>\n",
" <td>22.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>7.2500</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>Mr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>female</td>\n",
" <td>38.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>71.2833</td>\n",
" <td>C85</td>\n",
" <td>C</td>\n",
" <td>Mrs</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>female</td>\n",
" <td>26.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>7.9250</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>Miss</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>female</td>\n",
" <td>35.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>53.1000</td>\n",
" <td>C123</td>\n",
" <td>S</td>\n",
" <td>Mrs</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>3</td>\n",
" <td>male</td>\n",
" <td>35.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>8.0500</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>Mr</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Pclass Sex Age SibSp Parch Fare Cabin Embarked Title\n",
"PassengerId \n",
"1 3 male 22.0 1 0 7.2500 NaN S Mr\n",
"2 1 female 38.0 1 0 71.2833 C85 C Mrs\n",
"3 3 female 26.0 0 0 7.9250 NaN S Miss\n",
"4 1 female 35.0 1 0 53.1000 C123 S Mrs\n",
"5 3 male 35.0 0 0 8.0500 NaN S Mr"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Title to Number(0-17)\n",
"df.Title = df.Title.replace(df.Title.unique(), np.arange(len(df.Title.unique())))\n",
"\n",
"# Drop Name column\n",
"df = df.drop(['Name'], axis=1)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Sex --> male:0, female:1"
]
},
{
"cell_type": "code",
"execution_count": 1501,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"df.Sex = df.Sex.replace({'male': 0, 'female': 1})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Cabin --> Number: nan:0, C:1, E:2, G:3, D:4, A:5, B:6, F:7, T:8"
]
},
{
"cell_type": "code",
"execution_count": 1502,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[nan 'C' 'E' 'G' 'D' 'A' 'B' 'F' 'T']\n",
"[0 1 2 3 4 5 6 7 8]\n"
]
}
],
"source": [
"df = df.assign(Cabin=df.Cabin.str[0])\n",
"cabin_list = df.Cabin.unique()\n",
"\n",
"df.Cabin = df.Cabin.replace(df.Cabin.str[0].unique(), np.arange(len(df.Cabin.str[0].unique())))\n",
"\n",
"print(cabin_list)\n",
"print(df.Cabin.unique())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Embarked --> S:0, C:1, Q:2, nan"
]
},
{
"cell_type": "code",
"execution_count": 1503,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['S', 'C', 'Q', nan], dtype=object)"
]
},
"execution_count": 1503,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.Embarked.unique()"
]
},
{
"cell_type": "code",
"execution_count": 1504,
"metadata": {},
"outputs": [],
"source": [
"df.Embarked = df.Embarked.replace({'S':0, 'C':1, 'Q':2})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## zscore or normalization: \n",
"* Age: including NaN\n",
"* Fare: including NaN \n",
" \n",
"Z = (x - x.mean) / x.std \n",
"N = (x - x.min)/(x.max - x.min) \n",
" \n",
"sklearn.preprocessing.MinMaxScaler causes error with Null data."
]
},
{
"cell_type": "code",
"execution_count": 1505,
"metadata": {},
"outputs": [],
"source": [
"# Normalize Function\n",
"def normalize(df_col):\n",
" df_col = (df_col - df_col.min()) / (df_col.max() - df_col.min())\n",
" return df_col"
]
},
{
"cell_type": "code",
"execution_count": 1506,
"metadata": {},
"outputs": [],
"source": [
"# Standardization(zscore)\n",
"def zscore(df_col):\n",
" df_col = (df_col - df_col.mean()) / df_col.std()\n",
" return df_col"
]
},
{
"cell_type": "code",
"execution_count": 1507,
"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",
" <th>Cabin</th>\n",
" <th>Embarked</th>\n",
" <th>Title_Capt</th>\n",
" <th>Title_Col</th>\n",
" <th>...</th>\n",
" <th>Title_Major</th>\n",
" <th>Title_Master</th>\n",
" <th>Title_Miss</th>\n",
" <th>Title_Mlle</th>\n",
" <th>Title_Mme</th>\n",
" <th>Title_Mr</th>\n",
" <th>Title_Mrs</th>\n",
" <th>Title_Ms</th>\n",
" <th>Title_Rev</th>\n",
" <th>Title_Sir</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>1.046000e+03</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1.308000e+03</td>\n",
" <td>1309.000000</td>\n",
" <td>1307.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>...</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" <td>1309.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>2.294882</td>\n",
" <td>0.355997</td>\n",
" <td>9.488904e-17</td>\n",
" <td>0.498854</td>\n",
" <td>0.385027</td>\n",
" <td>-6.049357e-16</td>\n",
" <td>0.786860</td>\n",
" <td>0.394797</td>\n",
" <td>0.000764</td>\n",
" <td>0.003056</td>\n",
" <td>...</td>\n",
" <td>0.001528</td>\n",
" <td>0.046600</td>\n",
" <td>0.198625</td>\n",
" <td>0.001528</td>\n",
" <td>0.000764</td>\n",
" <td>0.578304</td>\n",
" <td>0.150497</td>\n",
" <td>0.001528</td>\n",
" <td>0.006112</td>\n",
" <td>0.000764</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.837836</td>\n",
" <td>0.478997</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.041658</td>\n",
" <td>0.865560</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.794388</td>\n",
" <td>0.653817</td>\n",
" <td>0.027639</td>\n",
" <td>0.055216</td>\n",
" <td>...</td>\n",
" <td>0.039073</td>\n",
" <td>0.210862</td>\n",
" <td>0.399117</td>\n",
" <td>0.039073</td>\n",
" <td>0.027639</td>\n",
" <td>0.494019</td>\n",
" <td>0.357694</td>\n",
" <td>0.039073</td>\n",
" <td>0.077967</td>\n",
" <td>0.027639</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-2.061342e+00</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-6.432832e-01</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</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>2.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-6.161683e-01</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-4.907329e-01</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>3.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-1.305123e-01</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-3.640217e-01</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>3.000000</td>\n",
" <td>1.000000</td>\n",
" <td>6.326615e-01</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-3.903654e-02</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>1.000000</td>\n",
" <td>3.477218e+00</td>\n",
" <td>8.000000</td>\n",
" <td>9.000000</td>\n",
" <td>9.255140e+00</td>\n",
" <td>8.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>...</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8 rows × 26 columns</p>\n",
"</div>"
],
"text/plain": [
" Pclass Sex Age SibSp Parch \\\n",
"count 1309.000000 1309.000000 1.046000e+03 1309.000000 1309.000000 \n",
"mean 2.294882 0.355997 9.488904e-17 0.498854 0.385027 \n",
"std 0.837836 0.478997 1.000000e+00 1.041658 0.865560 \n",
"min 1.000000 0.000000 -2.061342e+00 0.000000 0.000000 \n",
"25% 2.000000 0.000000 -6.161683e-01 0.000000 0.000000 \n",
"50% 3.000000 0.000000 -1.305123e-01 0.000000 0.000000 \n",
"75% 3.000000 1.000000 6.326615e-01 1.000000 0.000000 \n",
"max 3.000000 1.000000 3.477218e+00 8.000000 9.000000 \n",
"\n",
" Fare Cabin Embarked Title_Capt Title_Col \\\n",
"count 1.308000e+03 1309.000000 1307.000000 1309.000000 1309.000000 \n",
"mean -6.049357e-16 0.786860 0.394797 0.000764 0.003056 \n",
"std 1.000000e+00 1.794388 0.653817 0.027639 0.055216 \n",
"min -6.432832e-01 0.000000 0.000000 0.000000 0.000000 \n",
"25% -4.907329e-01 0.000000 0.000000 0.000000 0.000000 \n",
"50% -3.640217e-01 0.000000 0.000000 0.000000 0.000000 \n",
"75% -3.903654e-02 0.000000 1.000000 0.000000 0.000000 \n",
"max 9.255140e+00 8.000000 2.000000 1.000000 1.000000 \n",
"\n",
" ... Title_Major Title_Master Title_Miss Title_Mlle \\\n",
"count ... 1309.000000 1309.000000 1309.000000 1309.000000 \n",
"mean ... 0.001528 0.046600 0.198625 0.001528 \n",
"std ... 0.039073 0.210862 0.399117 0.039073 \n",
"min ... 0.000000 0.000000 0.000000 0.000000 \n",
"25% ... 0.000000 0.000000 0.000000 0.000000 \n",
"50% ... 0.000000 0.000000 0.000000 0.000000 \n",
"75% ... 0.000000 0.000000 0.000000 0.000000 \n",
"max ... 1.000000 1.000000 1.000000 1.000000 \n",
"\n",
" Title_Mme Title_Mr Title_Mrs Title_Ms Title_Rev \\\n",
"count 1309.000000 1309.000000 1309.000000 1309.000000 1309.000000 \n",
"mean 0.000764 0.578304 0.150497 0.001528 0.006112 \n",
"std 0.027639 0.494019 0.357694 0.039073 0.077967 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"50% 0.000000 1.000000 0.000000 0.000000 0.000000 \n",
"75% 0.000000 1.000000 0.000000 0.000000 0.000000 \n",
"max 1.000000 1.000000 1.000000 1.000000 1.000000 \n",
"\n",
" Title_Sir \n",
"count 1309.000000 \n",
"mean 0.000764 \n",
"std 0.027639 \n",
"min 0.000000 \n",
"25% 0.000000 \n",
"50% 0.000000 \n",
"75% 0.000000 \n",
"max 1.000000 \n",
"\n",
"[8 rows x 26 columns]"
]
},
"execution_count": 1507,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.Age = zscore(df.Age)\n",
"df.Fare = zscore(df.Fare)\n",
"\n",
"# df.Age = normalize(df.Age)\n",
"# df.Fare = normalize(df.Fare)\n",
"\n",
"# for col in df.columns:\n",
"# df[col] = zscore(df[col])\n",
"\n",
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Separate Notnull data from Null data\n",
"\n",
"Make a Copy of df: df0 = df.copy() \n",
"* Age\n",
"* Embarked\n",
"* Fare\n"
]
},
{
"cell_type": "code",
"execution_count": 1508,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 1309 entries, 1 to 1309\n",
"Data columns (total 26 columns):\n",
"Pclass 1309 non-null int64\n",
"Sex 1309 non-null int64\n",
"Age 1046 non-null float64\n",
"SibSp 1309 non-null int64\n",
"Parch 1309 non-null int64\n",
"Fare 1308 non-null float64\n",
"Cabin 1309 non-null int64\n",
"Embarked 1307 non-null float64\n",
"Title_Capt 1309 non-null uint8\n",
"Title_Col 1309 non-null uint8\n",
"Title_Countess 1309 non-null uint8\n",
"Title_Don 1309 non-null uint8\n",
"Title_Dona 1309 non-null uint8\n",
"Title_Dr 1309 non-null uint8\n",
"Title_Jonkheer 1309 non-null uint8\n",
"Title_Lady 1309 non-null uint8\n",
"Title_Major 1309 non-null uint8\n",
"Title_Master 1309 non-null uint8\n",
"Title_Miss 1309 non-null uint8\n",
"Title_Mlle 1309 non-null uint8\n",
"Title_Mme 1309 non-null uint8\n",
"Title_Mr 1309 non-null uint8\n",
"Title_Mrs 1309 non-null uint8\n",
"Title_Ms 1309 non-null uint8\n",
"Title_Rev 1309 non-null uint8\n",
"Title_Sir 1309 non-null uint8\n",
"dtypes: float64(3), int64(5), uint8(18)\n",
"memory usage: 115.0 KB\n"
]
}
],
"source": [
"df0 = df.copy()\n",
"df0.info()"
]
},
{
"cell_type": "code",
"execution_count": 1509,
"metadata": {},
"outputs": [],
"source": [
"Age_null = df[df.Age.isnull()]\n",
"df = df[df.Age.notnull()]\n",
"\n",
"Embarked_null = df[df.Embarked.isnull()]\n",
"df = df[df.Embarked.notnull()]\n",
"\n",
"Fare_null = df[df.Fare.isnull()]\n",
"df = df[df.Fare.notnull()]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Notnull Data: df.shape = (1043, 9)"
]
},
{
"cell_type": "code",
"execution_count": 1510,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(1043, 26)\n",
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 1043 entries, 1 to 1307\n",
"Data columns (total 26 columns):\n",
"Pclass 1043 non-null int64\n",
"Sex 1043 non-null int64\n",
"Age 1043 non-null float64\n",
"SibSp 1043 non-null int64\n",
"Parch 1043 non-null int64\n",
"Fare 1043 non-null float64\n",
"Cabin 1043 non-null int64\n",
"Embarked 1043 non-null float64\n",
"Title_Capt 1043 non-null uint8\n",
"Title_Col 1043 non-null uint8\n",
"Title_Countess 1043 non-null uint8\n",
"Title_Don 1043 non-null uint8\n",
"Title_Dona 1043 non-null uint8\n",
"Title_Dr 1043 non-null uint8\n",
"Title_Jonkheer 1043 non-null uint8\n",
"Title_Lady 1043 non-null uint8\n",
"Title_Major 1043 non-null uint8\n",
"Title_Master 1043 non-null uint8\n",
"Title_Miss 1043 non-null uint8\n",
"Title_Mlle 1043 non-null uint8\n",
"Title_Mme 1043 non-null uint8\n",
"Title_Mr 1043 non-null uint8\n",
"Title_Mrs 1043 non-null uint8\n",
"Title_Ms 1043 non-null uint8\n",
"Title_Rev 1043 non-null uint8\n",
"Title_Sir 1043 non-null uint8\n",
"dtypes: float64(3), int64(5), uint8(18)\n",
"memory usage: 91.7 KB\n"
]
}
],
"source": [
"print(df.shape)\n",
"df.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Model to fill NaN in Fare, Embarked, Age"
]
},
{
"cell_type": "code",
"execution_count": 1511,
"metadata": {},
"outputs": [],
"source": [
"from keras.models import Sequential\n",
"from keras.layers import Flatten, Dense, Dropout, BatchNormalization\n",
"\n",
"# model for Fare, Embarked, Age\n",
"def fill_data(col):\n",
" n_cols = len(df.columns) - 1\n",
" num = len(df[col].unique())\n",
" \n",
" model = Sequential()\n",
" model.add(Dense(64, activation='relu', input_shape=(n_cols,)))\n",
" model.add(Dropout(0.5))\n",
" model.add(Dense(32, activation='relu'))\n",
" model.add(Dropout(0.5))\n",
" \n",
" if col == 'Embarked':\n",
" model.add(Dense(num, activation='softmax'))\n",
" model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['acc'])\n",
" else: # 'Fare', 'Age'\n",
" model.add(Dense(1, activation='linear'))\n",
" model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])\n",
" \n",
" data = df.drop([col], axis=1)\n",
" epochs = 100\n",
" hist = model.fit(data, df[col], epochs=epochs, batch_size=32)\n",
"\n",
" null_data = df0[df0[col].isnull()]\n",
" null_data = null_data.drop([col], axis=1)\n",
" pred = model.predict(null_data)\n",
" \n",
" if col == 'Embarked':\n",
" pred = pred.argmax(axis=1)\n",
" \n",
" plt.plot(hist.history['acc'], 'b-', label='acc' )\n",
" plt.plot(hist.history['loss'], 'r-', label='loss' )\n",
" plt.xlabel('epochs')\n",
" plt.legend()\n",
" plt.show()\n",
" \n",
" pred = pred.reshape(-1, )\n",
" \n",
" idx = df0[df0[col].isnull()].index.values\n",
" \n",
" for n, i in enumerate(idx):\n",
" df0.loc[i, col] = pred[n]\n"
]
},
{
"cell_type": "code",
"execution_count": 1512,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/100\n",
"1043/1043 [==============================] - 3s 3ms/step - loss: 1.0055 - acc: 0.5350\n",
"Epoch 2/100\n",
"1043/1043 [==============================] - 0s 79us/step - loss: 0.7874 - acc: 0.7143\n",
"Epoch 3/100\n",
"1043/1043 [==============================] - 0s 77us/step - loss: 0.7494 - acc: 0.7172\n",
"Epoch 4/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.7250 - acc: 0.7363\n",
"Epoch 5/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.7016 - acc: 0.7498\n",
"Epoch 6/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.7047 - acc: 0.7402\n",
"Epoch 7/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.7115 - acc: 0.7507\n",
"Epoch 8/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.6749 - acc: 0.7536\n",
"Epoch 9/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.6990 - acc: 0.7507\n",
"Epoch 10/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6809 - acc: 0.7498\n",
"Epoch 11/100\n",
"1043/1043 [==============================] - 0s 84us/step - loss: 0.6844 - acc: 0.7488\n",
"Epoch 12/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.6618 - acc: 0.7450\n",
"Epoch 13/100\n",
"1043/1043 [==============================] - 0s 77us/step - loss: 0.6694 - acc: 0.7670\n",
"Epoch 14/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6662 - acc: 0.7565\n",
"Epoch 15/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6535 - acc: 0.7546\n",
"Epoch 16/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6508 - acc: 0.7603\n",
"Epoch 17/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6579 - acc: 0.7565\n",
"Epoch 18/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.6616 - acc: 0.7603\n",
"Epoch 19/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6437 - acc: 0.7546\n",
"Epoch 20/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6559 - acc: 0.7517\n",
"Epoch 21/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.6379 - acc: 0.7526\n",
"Epoch 22/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.6338 - acc: 0.7593\n",
"Epoch 23/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.6266 - acc: 0.7632\n",
"Epoch 24/100\n",
"1043/1043 [==============================] - 0s 79us/step - loss: 0.6426 - acc: 0.7565\n",
"Epoch 25/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6347 - acc: 0.7603\n",
"Epoch 26/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6419 - acc: 0.7622\n",
"Epoch 27/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6307 - acc: 0.7555\n",
"Epoch 28/100\n",
"1043/1043 [==============================] - 0s 80us/step - loss: 0.6284 - acc: 0.7584\n",
"Epoch 29/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6143 - acc: 0.7613\n",
"Epoch 30/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6245 - acc: 0.7536\n",
"Epoch 31/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6222 - acc: 0.7718\n",
"Epoch 32/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6129 - acc: 0.7584\n",
"Epoch 33/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6241 - acc: 0.7555\n",
"Epoch 34/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6147 - acc: 0.7555\n",
"Epoch 35/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6163 - acc: 0.7546\n",
"Epoch 36/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6133 - acc: 0.7584\n",
"Epoch 37/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.6204 - acc: 0.7632\n",
"Epoch 38/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.6229 - acc: 0.7670\n",
"Epoch 39/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6082 - acc: 0.7632\n",
"Epoch 40/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6227 - acc: 0.7728\n",
"Epoch 41/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.6098 - acc: 0.7622\n",
"Epoch 42/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6039 - acc: 0.7728\n",
"Epoch 43/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6030 - acc: 0.7651\n",
"Epoch 44/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5946 - acc: 0.7680\n",
"Epoch 45/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.6139 - acc: 0.7661\n",
"Epoch 46/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5854 - acc: 0.7776\n",
"Epoch 47/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6018 - acc: 0.7651\n",
"Epoch 48/100\n",
"1043/1043 [==============================] - 0s 77us/step - loss: 0.6061 - acc: 0.7661\n",
"Epoch 49/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6083 - acc: 0.7593\n",
"Epoch 50/100\n",
"1043/1043 [==============================] - 0s 80us/step - loss: 0.5996 - acc: 0.7709\n",
"Epoch 51/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5891 - acc: 0.7728\n",
"Epoch 52/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5972 - acc: 0.7689\n",
"Epoch 53/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5938 - acc: 0.7699\n",
"Epoch 54/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.5845 - acc: 0.7632\n",
"Epoch 55/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.5719 - acc: 0.7689\n",
"Epoch 56/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.5995 - acc: 0.7574\n",
"Epoch 57/100\n",
"1043/1043 [==============================] - 0s 85us/step - loss: 0.5924 - acc: 0.7709\n",
"Epoch 58/100\n",
"1043/1043 [==============================] - 0s 81us/step - loss: 0.5937 - acc: 0.7632\n",
"Epoch 59/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5977 - acc: 0.7593\n",
"Epoch 60/100\n",
"1043/1043 [==============================] - 0s 77us/step - loss: 0.5748 - acc: 0.7756\n",
"Epoch 61/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5764 - acc: 0.7632\n",
"Epoch 62/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.5753 - acc: 0.7737\n",
"Epoch 63/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.5815 - acc: 0.7651\n",
"Epoch 64/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5864 - acc: 0.7766\n",
"Epoch 65/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5971 - acc: 0.7603\n",
"Epoch 66/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.5830 - acc: 0.7833\n",
"Epoch 67/100\n",
"1043/1043 [==============================] - 0s 79us/step - loss: 0.5780 - acc: 0.7747\n",
"Epoch 68/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5643 - acc: 0.7804\n",
"Epoch 69/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5781 - acc: 0.7718\n",
"Epoch 70/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.5705 - acc: 0.7718\n",
"Epoch 71/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5851 - acc: 0.7728\n",
"Epoch 72/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.5708 - acc: 0.7680\n",
"Epoch 73/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5827 - acc: 0.7728\n",
"Epoch 74/100\n",
"1043/1043 [==============================] - 0s 80us/step - loss: 0.5755 - acc: 0.7737\n",
"Epoch 75/100\n",
"1043/1043 [==============================] - 0s 84us/step - loss: 0.5739 - acc: 0.7622\n",
"Epoch 76/100\n",
"1043/1043 [==============================] - 0s 79us/step - loss: 0.5762 - acc: 0.7651\n",
"Epoch 77/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.5853 - acc: 0.7689\n",
"Epoch 78/100\n",
"1043/1043 [==============================] - 0s 82us/step - loss: 0.5741 - acc: 0.7747\n",
"Epoch 79/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.5637 - acc: 0.7718\n",
"Epoch 80/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5650 - acc: 0.7814\n",
"Epoch 81/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.5612 - acc: 0.7651\n",
"Epoch 82/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.5682 - acc: 0.7824\n",
"Epoch 83/100\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5617 - acc: 0.7785\n",
"Epoch 84/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5711 - acc: 0.7728\n",
"Epoch 85/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.5623 - acc: 0.7756\n",
"Epoch 86/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5610 - acc: 0.7718\n",
"Epoch 87/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.5796 - acc: 0.7699\n",
"Epoch 88/100\n",
"1043/1043 [==============================] - 0s 77us/step - loss: 0.5669 - acc: 0.7881\n",
"Epoch 89/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5708 - acc: 0.7718\n",
"Epoch 90/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5665 - acc: 0.7747\n",
"Epoch 91/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.5663 - acc: 0.7756\n",
"Epoch 92/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5630 - acc: 0.7785\n",
"Epoch 93/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5667 - acc: 0.7737\n",
"Epoch 94/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5638 - acc: 0.7699\n",
"Epoch 95/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.5723 - acc: 0.7728\n",
"Epoch 96/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.5578 - acc: 0.7776\n",
"Epoch 97/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.5520 - acc: 0.7814\n",
"Epoch 98/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5544 - acc: 0.7728\n",
"Epoch 99/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.5672 - acc: 0.7804\n",
"Epoch 100/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.5574 - acc: 0.7718\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb52de9bd30>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fill_data('Embarked') # id:62,830"
]
},
{
"cell_type": "code",
"execution_count": 1513,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/100\n",
"1043/1043 [==============================] - 3s 3ms/step - loss: 1.4221 - mean_absolute_error: 0.7019\n",
"Epoch 2/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 1.1943 - mean_absolute_error: 0.6114\n",
"Epoch 3/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 1.1357 - mean_absolute_error: 0.5726\n",
"Epoch 4/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 1.0853 - mean_absolute_error: 0.5431\n",
"Epoch 5/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.9761 - mean_absolute_error: 0.5245\n",
"Epoch 6/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.9486 - mean_absolute_error: 0.5070\n",
"Epoch 7/100\n",
"1043/1043 [==============================] - 0s 77us/step - loss: 0.9139 - mean_absolute_error: 0.5001\n",
"Epoch 8/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.9015 - mean_absolute_error: 0.4918\n",
"Epoch 9/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.8877 - mean_absolute_error: 0.4892\n",
"Epoch 10/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.8116 - mean_absolute_error: 0.4611\n",
"Epoch 11/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.8339 - mean_absolute_error: 0.4681\n",
"Epoch 12/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.8145 - mean_absolute_error: 0.4652\n",
"Epoch 13/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.8042 - mean_absolute_error: 0.4531\n",
"Epoch 14/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.8021 - mean_absolute_error: 0.4549\n",
"Epoch 15/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.7902 - mean_absolute_error: 0.4480\n",
"Epoch 16/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.7817 - mean_absolute_error: 0.4453\n",
"Epoch 17/100\n",
"1043/1043 [==============================] - 0s 82us/step - loss: 0.7609 - mean_absolute_error: 0.4425\n",
"Epoch 18/100\n",
"1043/1043 [==============================] - 0s 80us/step - loss: 0.7748 - mean_absolute_error: 0.4440\n",
"Epoch 19/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.7385 - mean_absolute_error: 0.4333\n",
"Epoch 20/100\n",
"1043/1043 [==============================] - 0s 80us/step - loss: 0.7097 - mean_absolute_error: 0.4441\n",
"Epoch 21/100\n",
"1043/1043 [==============================] - 0s 83us/step - loss: 0.7454 - mean_absolute_error: 0.4313\n",
"Epoch 22/100\n",
"1043/1043 [==============================] - 0s 81us/step - loss: 0.7190 - mean_absolute_error: 0.4309\n",
"Epoch 23/100\n",
"1043/1043 [==============================] - 0s 80us/step - loss: 0.7325 - mean_absolute_error: 0.4278\n",
"Epoch 24/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.7364 - mean_absolute_error: 0.4274\n",
"Epoch 25/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.7144 - mean_absolute_error: 0.4173\n",
"Epoch 26/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.6903 - mean_absolute_error: 0.4143\n",
"Epoch 27/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6572 - mean_absolute_error: 0.4158\n",
"Epoch 28/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6872 - mean_absolute_error: 0.4148\n",
"Epoch 29/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.6543 - mean_absolute_error: 0.4117\n",
"Epoch 30/100\n",
"1043/1043 [==============================] - 0s 79us/step - loss: 0.6758 - mean_absolute_error: 0.4124\n",
"Epoch 31/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6529 - mean_absolute_error: 0.3985\n",
"Epoch 32/100\n",
"1043/1043 [==============================] - 0s 77us/step - loss: 0.6759 - mean_absolute_error: 0.4098\n",
"Epoch 33/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.6362 - mean_absolute_error: 0.3984\n",
"Epoch 34/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.6660 - mean_absolute_error: 0.3989\n",
"Epoch 35/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6919 - mean_absolute_error: 0.4103\n",
"Epoch 36/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6787 - mean_absolute_error: 0.4101\n",
"Epoch 37/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6319 - mean_absolute_error: 0.3989\n",
"Epoch 38/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6419 - mean_absolute_error: 0.3884\n",
"Epoch 39/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.6641 - mean_absolute_error: 0.4035\n",
"Epoch 40/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6466 - mean_absolute_error: 0.3998\n",
"Epoch 41/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6470 - mean_absolute_error: 0.3913\n",
"Epoch 42/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6070 - mean_absolute_error: 0.3885\n",
"Epoch 43/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.6797 - mean_absolute_error: 0.3988\n",
"Epoch 44/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6475 - mean_absolute_error: 0.3909\n",
"Epoch 45/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.6224 - mean_absolute_error: 0.3936\n",
"Epoch 46/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.6888 - mean_absolute_error: 0.4032\n",
"Epoch 47/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.5836 - mean_absolute_error: 0.3787\n",
"Epoch 48/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.5982 - mean_absolute_error: 0.3795\n",
"Epoch 49/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.5953 - mean_absolute_error: 0.3827\n",
"Epoch 50/100\n",
"1043/1043 [==============================] - 0s 80us/step - loss: 0.6295 - mean_absolute_error: 0.3795\n",
"Epoch 51/100\n",
"1043/1043 [==============================] - 0s 79us/step - loss: 0.6180 - mean_absolute_error: 0.3689\n",
"Epoch 52/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.6241 - mean_absolute_error: 0.3795\n",
"Epoch 53/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.5616 - mean_absolute_error: 0.3802\n",
"Epoch 54/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.6189 - mean_absolute_error: 0.3962\n",
"Epoch 55/100\n",
"1043/1043 [==============================] - 0s 79us/step - loss: 0.6373 - mean_absolute_error: 0.3841\n",
"Epoch 56/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.6313 - mean_absolute_error: 0.3833\n",
"Epoch 57/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.6143 - mean_absolute_error: 0.3866\n",
"Epoch 58/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.5706 - mean_absolute_error: 0.3596\n",
"Epoch 59/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5931 - mean_absolute_error: 0.3790\n",
"Epoch 60/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6212 - mean_absolute_error: 0.3745\n",
"Epoch 61/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6297 - mean_absolute_error: 0.3908\n",
"Epoch 62/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.5912 - mean_absolute_error: 0.3655\n",
"Epoch 63/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5728 - mean_absolute_error: 0.3689\n",
"Epoch 64/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5721 - mean_absolute_error: 0.3706\n",
"Epoch 65/100\n",
"1043/1043 [==============================] - 0s 87us/step - loss: 0.5948 - mean_absolute_error: 0.3825\n",
"Epoch 66/100\n",
"1043/1043 [==============================] - 0s 64us/step - loss: 0.5912 - mean_absolute_error: 0.3753\n",
"Epoch 67/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5784 - mean_absolute_error: 0.3654\n",
"Epoch 68/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5919 - mean_absolute_error: 0.3583\n",
"Epoch 69/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.5631 - mean_absolute_error: 0.3691\n",
"Epoch 70/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.5422 - mean_absolute_error: 0.3611\n",
"Epoch 71/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5764 - mean_absolute_error: 0.3663\n",
"Epoch 72/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.5817 - mean_absolute_error: 0.3615\n",
"Epoch 73/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.5965 - mean_absolute_error: 0.3790\n",
"Epoch 74/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.5709 - mean_absolute_error: 0.3526\n",
"Epoch 75/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.5948 - mean_absolute_error: 0.3538\n",
"Epoch 76/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.5885 - mean_absolute_error: 0.3698\n",
"Epoch 77/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.5757 - mean_absolute_error: 0.3622\n",
"Epoch 78/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5364 - mean_absolute_error: 0.3449\n",
"Epoch 79/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5897 - mean_absolute_error: 0.3722\n",
"Epoch 80/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.5624 - mean_absolute_error: 0.3596\n",
"Epoch 81/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.5456 - mean_absolute_error: 0.3607\n",
"Epoch 82/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6008 - mean_absolute_error: 0.3706\n",
"Epoch 83/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5185 - mean_absolute_error: 0.3527\n",
"Epoch 84/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.5703 - mean_absolute_error: 0.3559\n",
"Epoch 85/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5632 - mean_absolute_error: 0.3605\n",
"Epoch 86/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5384 - mean_absolute_error: 0.3561\n",
"Epoch 87/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5601 - mean_absolute_error: 0.3659\n",
"Epoch 88/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5636 - mean_absolute_error: 0.3586\n",
"Epoch 89/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.5919 - mean_absolute_error: 0.3663\n",
"Epoch 90/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.5590 - mean_absolute_error: 0.3580\n",
"Epoch 91/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.5652 - mean_absolute_error: 0.3545\n",
"Epoch 92/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.5613 - mean_absolute_error: 0.3595\n",
"Epoch 93/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.4973 - mean_absolute_error: 0.3472\n",
"Epoch 94/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.5177 - mean_absolute_error: 0.3378\n",
"Epoch 95/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5458 - mean_absolute_error: 0.3462\n",
"Epoch 96/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.5295 - mean_absolute_error: 0.3496\n",
"Epoch 97/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5514 - mean_absolute_error: 0.3532\n",
"Epoch 98/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5851 - mean_absolute_error: 0.3604\n",
"Epoch 99/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5378 - mean_absolute_error: 0.3486\n",
"Epoch 100/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.5397 - mean_absolute_error: 0.3539\n"
]
}
],
"source": [
"fill_data('Fare') # id:1044"
]
},
{
"cell_type": "code",
"execution_count": 1514,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/100\n",
"1043/1043 [==============================] - 3s 3ms/step - loss: 1.2363 - mean_absolute_error: 0.8609\n",
"Epoch 2/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 1.0649 - mean_absolute_error: 0.7896\n",
"Epoch 3/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.9711 - mean_absolute_error: 0.7641\n",
"Epoch 4/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.9554 - mean_absolute_error: 0.7523\n",
"Epoch 5/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.9089 - mean_absolute_error: 0.7359\n",
"Epoch 6/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.8579 - mean_absolute_error: 0.7222\n",
"Epoch 7/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.8468 - mean_absolute_error: 0.7151\n",
"Epoch 8/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.8436 - mean_absolute_error: 0.7126\n",
"Epoch 9/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.8104 - mean_absolute_error: 0.7017\n",
"Epoch 10/100\n",
"1043/1043 [==============================] - 0s 79us/step - loss: 0.8224 - mean_absolute_error: 0.7040\n",
"Epoch 11/100\n",
"1043/1043 [==============================] - 0s 79us/step - loss: 0.7763 - mean_absolute_error: 0.6906\n",
"Epoch 12/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.7487 - mean_absolute_error: 0.6867\n",
"Epoch 13/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.7893 - mean_absolute_error: 0.6902\n",
"Epoch 14/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.7305 - mean_absolute_error: 0.6676\n",
"Epoch 15/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.7276 - mean_absolute_error: 0.6674\n",
"Epoch 16/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.7351 - mean_absolute_error: 0.6738\n",
"Epoch 17/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.7433 - mean_absolute_error: 0.6771\n",
"Epoch 18/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.7257 - mean_absolute_error: 0.6712\n",
"Epoch 19/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.6910 - mean_absolute_error: 0.6563\n",
"Epoch 20/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.7006 - mean_absolute_error: 0.6587\n",
"Epoch 21/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.7131 - mean_absolute_error: 0.6643\n",
"Epoch 22/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6795 - mean_absolute_error: 0.6518\n",
"Epoch 23/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.7009 - mean_absolute_error: 0.6589\n",
"Epoch 24/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.7171 - mean_absolute_error: 0.6634\n",
"Epoch 25/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.6655 - mean_absolute_error: 0.6454\n",
"Epoch 26/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6668 - mean_absolute_error: 0.6394\n",
"Epoch 27/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.6807 - mean_absolute_error: 0.6520\n",
"Epoch 28/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.6471 - mean_absolute_error: 0.6286\n",
"Epoch 29/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6829 - mean_absolute_error: 0.6472\n",
"Epoch 30/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.6564 - mean_absolute_error: 0.6366\n",
"Epoch 31/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.6962 - mean_absolute_error: 0.6560\n",
"Epoch 32/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.6751 - mean_absolute_error: 0.6465\n",
"Epoch 33/100\n",
"1043/1043 [==============================] - 0s 77us/step - loss: 0.6519 - mean_absolute_error: 0.6342\n",
"Epoch 34/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.6623 - mean_absolute_error: 0.6395\n",
"Epoch 35/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.6572 - mean_absolute_error: 0.6296\n",
"Epoch 36/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.6631 - mean_absolute_error: 0.6395\n",
"Epoch 37/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.6516 - mean_absolute_error: 0.6363\n",
"Epoch 38/100\n",
"1043/1043 [==============================] - 0s 82us/step - loss: 0.6575 - mean_absolute_error: 0.6341\n",
"Epoch 39/100\n",
"1043/1043 [==============================] - 0s 80us/step - loss: 0.6104 - mean_absolute_error: 0.6123\n",
"Epoch 40/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.6655 - mean_absolute_error: 0.6360\n",
"Epoch 41/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.6445 - mean_absolute_error: 0.6322\n",
"Epoch 42/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6409 - mean_absolute_error: 0.6365\n",
"Epoch 43/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.6692 - mean_absolute_error: 0.6357\n",
"Epoch 44/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.6239 - mean_absolute_error: 0.6194\n",
"Epoch 45/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6576 - mean_absolute_error: 0.6377\n",
"Epoch 46/100\n",
"1043/1043 [==============================] - 0s 75us/step - loss: 0.6083 - mean_absolute_error: 0.6083\n",
"Epoch 47/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6301 - mean_absolute_error: 0.6250\n",
"Epoch 48/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6446 - mean_absolute_error: 0.6327\n",
"Epoch 49/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.6340 - mean_absolute_error: 0.6259\n",
"Epoch 50/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6071 - mean_absolute_error: 0.6070\n",
"Epoch 51/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.6283 - mean_absolute_error: 0.6224\n",
"Epoch 52/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.6469 - mean_absolute_error: 0.6298\n",
"Epoch 53/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.6364 - mean_absolute_error: 0.6231\n",
"Epoch 54/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.6324 - mean_absolute_error: 0.6284\n",
"Epoch 55/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.6039 - mean_absolute_error: 0.6078\n",
"Epoch 56/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.6148 - mean_absolute_error: 0.6135\n",
"Epoch 57/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.6085 - mean_absolute_error: 0.6128\n",
"Epoch 58/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6289 - mean_absolute_error: 0.6224\n",
"Epoch 59/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6131 - mean_absolute_error: 0.6157\n",
"Epoch 60/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6043 - mean_absolute_error: 0.6040\n",
"Epoch 61/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.5838 - mean_absolute_error: 0.5992\n",
"Epoch 62/100\n",
"1043/1043 [==============================] - 0s 65us/step - loss: 0.6040 - mean_absolute_error: 0.6100\n",
"Epoch 63/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.6041 - mean_absolute_error: 0.6097\n",
"Epoch 64/100\n",
"1043/1043 [==============================] - 0s 74us/step - loss: 0.6120 - mean_absolute_error: 0.6113\n",
"Epoch 65/100\n",
"1043/1043 [==============================] - 0s 65us/step - loss: 0.6036 - mean_absolute_error: 0.6084\n",
"Epoch 66/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5903 - mean_absolute_error: 0.6042\n",
"Epoch 67/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.6037 - mean_absolute_error: 0.6058\n",
"Epoch 68/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.6031 - mean_absolute_error: 0.6098\n",
"Epoch 69/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.6220 - mean_absolute_error: 0.6136\n",
"Epoch 70/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.6183 - mean_absolute_error: 0.6165\n",
"Epoch 71/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.5952 - mean_absolute_error: 0.6034\n",
"Epoch 72/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.6159 - mean_absolute_error: 0.6142\n",
"Epoch 73/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6087 - mean_absolute_error: 0.6080\n",
"Epoch 74/100\n",
"1043/1043 [==============================] - 0s 73us/step - loss: 0.5886 - mean_absolute_error: 0.5932\n",
"Epoch 75/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5954 - mean_absolute_error: 0.6029\n",
"Epoch 76/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5933 - mean_absolute_error: 0.6002\n",
"Epoch 77/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.5839 - mean_absolute_error: 0.6022\n",
"Epoch 78/100\n",
"1043/1043 [==============================] - 0s 69us/step - loss: 0.5753 - mean_absolute_error: 0.5890\n",
"Epoch 79/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5737 - mean_absolute_error: 0.5850\n",
"Epoch 80/100\n",
"1043/1043 [==============================] - 0s 67us/step - loss: 0.5820 - mean_absolute_error: 0.5939\n",
"Epoch 81/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.6174 - mean_absolute_error: 0.6145\n",
"Epoch 82/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5758 - mean_absolute_error: 0.5913\n",
"Epoch 83/100\n",
"1043/1043 [==============================] - 0s 65us/step - loss: 0.5679 - mean_absolute_error: 0.5874\n",
"Epoch 84/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5773 - mean_absolute_error: 0.6004\n",
"Epoch 85/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5761 - mean_absolute_error: 0.5887\n",
"Epoch 86/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.6123 - mean_absolute_error: 0.6115\n",
"Epoch 87/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5876 - mean_absolute_error: 0.5959\n",
"Epoch 88/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5828 - mean_absolute_error: 0.5892\n",
"Epoch 89/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5974 - mean_absolute_error: 0.5989\n",
"Epoch 90/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5713 - mean_absolute_error: 0.5944\n",
"Epoch 91/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5969 - mean_absolute_error: 0.5975\n",
"Epoch 92/100\n",
"1043/1043 [==============================] - 0s 78us/step - loss: 0.5962 - mean_absolute_error: 0.6025\n",
"Epoch 93/100\n",
"1043/1043 [==============================] - 0s 72us/step - loss: 0.5904 - mean_absolute_error: 0.6017\n",
"Epoch 94/100\n",
"1043/1043 [==============================] - 0s 70us/step - loss: 0.5861 - mean_absolute_error: 0.5995\n",
"Epoch 95/100\n",
"1043/1043 [==============================] - 0s 65us/step - loss: 0.5957 - mean_absolute_error: 0.6029\n",
"Epoch 96/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5732 - mean_absolute_error: 0.5929\n",
"Epoch 97/100\n",
"1043/1043 [==============================] - 0s 68us/step - loss: 0.5948 - mean_absolute_error: 0.6004\n",
"Epoch 98/100\n",
"1043/1043 [==============================] - 0s 71us/step - loss: 0.5779 - mean_absolute_error: 0.5948\n",
"Epoch 99/100\n",
"1043/1043 [==============================] - 0s 66us/step - loss: 0.5921 - mean_absolute_error: 0.5957\n",
"Epoch 100/100\n",
"1043/1043 [==============================] - 0s 76us/step - loss: 0.5800 - mean_absolute_error: 0.5942\n"
]
}
],
"source": [
"fill_data('Age') # id: 6,18,20,27,29,30"
]
},
{
"cell_type": "code",
"execution_count": 1517,
"metadata": {},
"outputs": [],
"source": [
"train0 = df0[0:891].copy()\n",
"test0 = df0[891:].copy()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Model to estimate Survived for submission"
]
},
{
"cell_type": "code",
"execution_count": 1518,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/300\n",
"891/891 [==============================] - 3s 4ms/step - loss: 0.6436 - acc: 0.6667\n",
"Epoch 2/300\n",
"891/891 [==============================] - 0s 421us/step - loss: 0.5247 - acc: 0.7464\n",
"Epoch 3/300\n",
"891/891 [==============================] - 0s 426us/step - loss: 0.5265 - acc: 0.7576\n",
"Epoch 4/300\n",
"891/891 [==============================] - 0s 417us/step - loss: 0.5045 - acc: 0.7901\n",
"Epoch 5/300\n",
"891/891 [==============================] - 0s 420us/step - loss: 0.4819 - acc: 0.7935\n",
"Epoch 6/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.4564 - acc: 0.8081\n",
"Epoch 7/300\n",
"891/891 [==============================] - 0s 416us/step - loss: 0.4491 - acc: 0.8171\n",
"Epoch 8/300\n",
"891/891 [==============================] - 0s 490us/step - loss: 0.4387 - acc: 0.8215\n",
"Epoch 9/300\n",
"891/891 [==============================] - 0s 491us/step - loss: 0.4468 - acc: 0.8114\n",
"Epoch 10/300\n",
"891/891 [==============================] - 0s 418us/step - loss: 0.4530 - acc: 0.8249\n",
"Epoch 11/300\n",
"891/891 [==============================] - 0s 424us/step - loss: 0.4452 - acc: 0.8092\n",
"Epoch 12/300\n",
"891/891 [==============================] - 0s 414us/step - loss: 0.4237 - acc: 0.8361\n",
"Epoch 13/300\n",
"891/891 [==============================] - 0s 426us/step - loss: 0.4245 - acc: 0.8361\n",
"Epoch 14/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.4375 - acc: 0.8283\n",
"Epoch 15/300\n",
"891/891 [==============================] - 0s 422us/step - loss: 0.4295 - acc: 0.8350\n",
"Epoch 16/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.4209 - acc: 0.8294\n",
"Epoch 17/300\n",
"891/891 [==============================] - 0s 424us/step - loss: 0.4312 - acc: 0.8227\n",
"Epoch 18/300\n",
"891/891 [==============================] - 0s 495us/step - loss: 0.4225 - acc: 0.8283\n",
"Epoch 19/300\n",
"891/891 [==============================] - 0s 471us/step - loss: 0.4214 - acc: 0.8316\n",
"Epoch 20/300\n",
"891/891 [==============================] - 0s 536us/step - loss: 0.4205 - acc: 0.8305\n",
"Epoch 21/300\n",
"891/891 [==============================] - 0s 500us/step - loss: 0.3943 - acc: 0.8462\n",
"Epoch 22/300\n",
"891/891 [==============================] - 0s 498us/step - loss: 0.4137 - acc: 0.8418\n",
"Epoch 23/300\n",
"891/891 [==============================] - 0s 449us/step - loss: 0.3907 - acc: 0.8406\n",
"Epoch 24/300\n",
"891/891 [==============================] - 0s 460us/step - loss: 0.4048 - acc: 0.8361\n",
"Epoch 25/300\n",
"891/891 [==============================] - 0s 435us/step - loss: 0.4029 - acc: 0.8395\n",
"Epoch 26/300\n",
"891/891 [==============================] - 0s 452us/step - loss: 0.4138 - acc: 0.8328\n",
"Epoch 27/300\n",
"891/891 [==============================] - 0s 431us/step - loss: 0.4136 - acc: 0.8283\n",
"Epoch 28/300\n",
"891/891 [==============================] - 0s 452us/step - loss: 0.3948 - acc: 0.8418\n",
"Epoch 29/300\n",
"891/891 [==============================] - 0s 432us/step - loss: 0.4084 - acc: 0.8339\n",
"Epoch 30/300\n",
"891/891 [==============================] - 0s 532us/step - loss: 0.3949 - acc: 0.8440\n",
"Epoch 31/300\n",
"891/891 [==============================] - 0s 514us/step - loss: 0.3842 - acc: 0.8530\n",
"Epoch 32/300\n",
"891/891 [==============================] - 0s 505us/step - loss: 0.4046 - acc: 0.8373\n",
"Epoch 33/300\n",
"891/891 [==============================] - 0s 499us/step - loss: 0.3997 - acc: 0.8406\n",
"Epoch 34/300\n",
"891/891 [==============================] - 0s 501us/step - loss: 0.3888 - acc: 0.8597\n",
"Epoch 35/300\n",
"891/891 [==============================] - 0s 425us/step - loss: 0.3970 - acc: 0.8406\n",
"Epoch 36/300\n",
"891/891 [==============================] - 0s 423us/step - loss: 0.3822 - acc: 0.8418\n",
"Epoch 37/300\n",
"891/891 [==============================] - 0s 420us/step - loss: 0.3816 - acc: 0.8496\n",
"Epoch 38/300\n",
"891/891 [==============================] - 0s 428us/step - loss: 0.3950 - acc: 0.8496\n",
"Epoch 39/300\n",
"891/891 [==============================] - 0s 426us/step - loss: 0.3755 - acc: 0.8485\n",
"Epoch 40/300\n",
"891/891 [==============================] - 0s 432us/step - loss: 0.3896 - acc: 0.8328\n",
"Epoch 41/300\n",
"891/891 [==============================] - 0s 435us/step - loss: 0.3899 - acc: 0.8575\n",
"Epoch 42/300\n",
"891/891 [==============================] - 0s 424us/step - loss: 0.3710 - acc: 0.8519\n",
"Epoch 43/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3841 - acc: 0.8462\n",
"Epoch 44/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.3828 - acc: 0.8418\n",
"Epoch 45/300\n",
"891/891 [==============================] - 0s 435us/step - loss: 0.3807 - acc: 0.8541\n",
"Epoch 46/300\n",
"891/891 [==============================] - 0s 421us/step - loss: 0.3768 - acc: 0.8519\n",
"Epoch 47/300\n",
"891/891 [==============================] - 0s 423us/step - loss: 0.3909 - acc: 0.8541\n",
"Epoch 48/300\n",
"891/891 [==============================] - 0s 437us/step - loss: 0.3795 - acc: 0.8541\n",
"Epoch 49/300\n",
"891/891 [==============================] - 0s 430us/step - loss: 0.3629 - acc: 0.8530\n",
"Epoch 50/300\n",
"891/891 [==============================] - 0s 425us/step - loss: 0.3775 - acc: 0.8485\n",
"Epoch 51/300\n",
"891/891 [==============================] - 0s 439us/step - loss: 0.3706 - acc: 0.8485\n",
"Epoch 52/300\n",
"891/891 [==============================] - 0s 426us/step - loss: 0.3812 - acc: 0.8485\n",
"Epoch 53/300\n",
"891/891 [==============================] - 0s 439us/step - loss: 0.3757 - acc: 0.8541\n",
"Epoch 54/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3697 - acc: 0.8440\n",
"Epoch 55/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.3838 - acc: 0.8519\n",
"Epoch 56/300\n",
"891/891 [==============================] - 0s 435us/step - loss: 0.3723 - acc: 0.8485\n",
"Epoch 57/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.3684 - acc: 0.8429\n",
"Epoch 58/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3633 - acc: 0.8586\n",
"Epoch 59/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3671 - acc: 0.8709\n",
"Epoch 60/300\n",
"891/891 [==============================] - 0s 416us/step - loss: 0.3753 - acc: 0.8462\n",
"Epoch 61/300\n",
"891/891 [==============================] - 0s 524us/step - loss: 0.3659 - acc: 0.8586\n",
"Epoch 62/300\n",
"891/891 [==============================] - 0s 489us/step - loss: 0.3600 - acc: 0.8620\n",
"Epoch 63/300\n",
"891/891 [==============================] - 0s 502us/step - loss: 0.3771 - acc: 0.8474\n",
"Epoch 64/300\n",
"891/891 [==============================] - 0s 469us/step - loss: 0.3642 - acc: 0.8620\n",
"Epoch 65/300\n",
"891/891 [==============================] - 0s 432us/step - loss: 0.3609 - acc: 0.8620\n",
"Epoch 66/300\n",
"891/891 [==============================] - 0s 437us/step - loss: 0.3674 - acc: 0.8586\n",
"Epoch 67/300\n",
"891/891 [==============================] - 0s 428us/step - loss: 0.3679 - acc: 0.8496\n",
"Epoch 68/300\n",
"891/891 [==============================] - 0s 440us/step - loss: 0.3458 - acc: 0.8620\n",
"Epoch 69/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3678 - acc: 0.8631\n",
"Epoch 70/300\n",
"891/891 [==============================] - 0s 430us/step - loss: 0.3675 - acc: 0.8642\n",
"Epoch 71/300\n",
"891/891 [==============================] - 0s 437us/step - loss: 0.3448 - acc: 0.8687\n",
"Epoch 72/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.3574 - acc: 0.8530\n",
"Epoch 73/300\n",
"891/891 [==============================] - 0s 444us/step - loss: 0.3837 - acc: 0.8418\n",
"Epoch 74/300\n",
"891/891 [==============================] - 0s 429us/step - loss: 0.3468 - acc: 0.8575\n",
"Epoch 75/300\n",
"891/891 [==============================] - 0s 428us/step - loss: 0.3501 - acc: 0.8687\n",
"Epoch 76/300\n",
"891/891 [==============================] - 0s 441us/step - loss: 0.3681 - acc: 0.8507\n",
"Epoch 77/300\n",
"891/891 [==============================] - 0s 429us/step - loss: 0.3574 - acc: 0.8642\n",
"Epoch 78/300\n",
"891/891 [==============================] - 0s 429us/step - loss: 0.3550 - acc: 0.8440\n",
"Epoch 79/300\n",
"891/891 [==============================] - 0s 435us/step - loss: 0.3595 - acc: 0.8485\n",
"Epoch 80/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.3530 - acc: 0.8664\n",
"Epoch 81/300\n",
"891/891 [==============================] - 0s 439us/step - loss: 0.3593 - acc: 0.8631\n",
"Epoch 82/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3634 - acc: 0.8608\n",
"Epoch 83/300\n",
"891/891 [==============================] - 0s 417us/step - loss: 0.3663 - acc: 0.8608\n",
"Epoch 84/300\n",
"891/891 [==============================] - 0s 412us/step - loss: 0.3556 - acc: 0.8530\n",
"Epoch 85/300\n",
"891/891 [==============================] - 0s 412us/step - loss: 0.3609 - acc: 0.8664\n",
"Epoch 86/300\n",
"891/891 [==============================] - 0s 401us/step - loss: 0.3446 - acc: 0.8575\n",
"Epoch 87/300\n",
"891/891 [==============================] - 0s 416us/step - loss: 0.3534 - acc: 0.8653\n",
"Epoch 88/300\n",
"891/891 [==============================] - 0s 403us/step - loss: 0.3654 - acc: 0.8653\n",
"Epoch 89/300\n",
"891/891 [==============================] - 0s 414us/step - loss: 0.3544 - acc: 0.8507\n",
"Epoch 90/300\n",
"891/891 [==============================] - 0s 415us/step - loss: 0.3628 - acc: 0.8597\n",
"Epoch 91/300\n",
"891/891 [==============================] - 0s 497us/step - loss: 0.3518 - acc: 0.8709\n",
"Epoch 92/300\n",
"891/891 [==============================] - 0s 531us/step - loss: 0.3498 - acc: 0.8507\n",
"Epoch 93/300\n",
"891/891 [==============================] - 0s 472us/step - loss: 0.3486 - acc: 0.8676\n",
"Epoch 94/300\n",
"891/891 [==============================] - 0s 465us/step - loss: 0.3629 - acc: 0.8698\n",
"Epoch 95/300\n",
"891/891 [==============================] - 0s 446us/step - loss: 0.3485 - acc: 0.8608\n",
"Epoch 96/300\n",
"891/891 [==============================] - 0s 454us/step - loss: 0.3397 - acc: 0.8620\n",
"Epoch 97/300\n",
"891/891 [==============================] - 0s 470us/step - loss: 0.3582 - acc: 0.8586\n",
"Epoch 98/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.3405 - acc: 0.8687\n",
"Epoch 99/300\n",
"891/891 [==============================] - 0s 471us/step - loss: 0.3577 - acc: 0.8631\n",
"Epoch 100/300\n",
"891/891 [==============================] - 0s 460us/step - loss: 0.3600 - acc: 0.8575\n",
"Epoch 101/300\n",
"891/891 [==============================] - 0s 440us/step - loss: 0.3347 - acc: 0.8687\n",
"Epoch 102/300\n",
"891/891 [==============================] - 0s 417us/step - loss: 0.3495 - acc: 0.8620\n",
"Epoch 103/300\n",
"891/891 [==============================] - 0s 431us/step - loss: 0.3431 - acc: 0.8620\n",
"Epoch 104/300\n",
"891/891 [==============================] - 0s 437us/step - loss: 0.3571 - acc: 0.8552\n",
"Epoch 105/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3522 - acc: 0.8541\n",
"Epoch 106/300\n",
"891/891 [==============================] - 0s 463us/step - loss: 0.3393 - acc: 0.8631\n",
"Epoch 107/300\n",
"891/891 [==============================] - 0s 463us/step - loss: 0.3375 - acc: 0.8664\n",
"Epoch 108/300\n",
"891/891 [==============================] - 0s 428us/step - loss: 0.3444 - acc: 0.8563\n",
"Epoch 109/300\n",
"891/891 [==============================] - 0s 436us/step - loss: 0.3557 - acc: 0.8642\n",
"Epoch 110/300\n",
"891/891 [==============================] - 0s 426us/step - loss: 0.3549 - acc: 0.8620\n",
"Epoch 111/300\n",
"891/891 [==============================] - 0s 425us/step - loss: 0.3390 - acc: 0.8608\n",
"Epoch 112/300\n",
"891/891 [==============================] - 0s 425us/step - loss: 0.3396 - acc: 0.8698\n",
"Epoch 113/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.3393 - acc: 0.8721\n",
"Epoch 114/300\n",
"891/891 [==============================] - 0s 436us/step - loss: 0.3435 - acc: 0.8732\n",
"Epoch 115/300\n",
"891/891 [==============================] - 0s 424us/step - loss: 0.3298 - acc: 0.8631\n",
"Epoch 116/300\n",
"891/891 [==============================] - 0s 425us/step - loss: 0.3393 - acc: 0.8608\n",
"Epoch 117/300\n",
"891/891 [==============================] - 0s 440us/step - loss: 0.3420 - acc: 0.8687\n",
"Epoch 118/300\n",
"891/891 [==============================] - 0s 429us/step - loss: 0.3459 - acc: 0.8552\n",
"Epoch 119/300\n",
"891/891 [==============================] - 0s 426us/step - loss: 0.3405 - acc: 0.8597\n",
"Epoch 120/300\n",
"891/891 [==============================] - 0s 440us/step - loss: 0.3313 - acc: 0.8653\n",
"Epoch 121/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3372 - acc: 0.8631\n",
"Epoch 122/300\n",
"891/891 [==============================] - 0s 436us/step - loss: 0.3351 - acc: 0.8664\n",
"Epoch 123/300\n",
"891/891 [==============================] - 0s 427us/step - loss: 0.3336 - acc: 0.8687\n",
"Epoch 124/300\n",
"891/891 [==============================] - 0s 494us/step - loss: 0.3475 - acc: 0.8608\n",
"Epoch 125/300\n",
"891/891 [==============================] - 0s 460us/step - loss: 0.3655 - acc: 0.8496\n",
"Epoch 126/300\n",
"891/891 [==============================] - 0s 445us/step - loss: 0.3315 - acc: 0.8631\n",
"Epoch 127/300\n",
"891/891 [==============================] - 0s 452us/step - loss: 0.3505 - acc: 0.8485\n",
"Epoch 128/300\n",
"891/891 [==============================] - 0s 472us/step - loss: 0.3415 - acc: 0.8676\n",
"Epoch 129/300\n",
"891/891 [==============================] - 0s 480us/step - loss: 0.3377 - acc: 0.8676\n",
"Epoch 130/300\n",
"891/891 [==============================] - 0s 456us/step - loss: 0.3396 - acc: 0.8709\n",
"Epoch 131/300\n",
"891/891 [==============================] - 0s 449us/step - loss: 0.3314 - acc: 0.8664\n",
"Epoch 132/300\n",
"891/891 [==============================] - 0s 501us/step - loss: 0.3402 - acc: 0.8676\n",
"Epoch 133/300\n",
"891/891 [==============================] - 0s 456us/step - loss: 0.3510 - acc: 0.8642\n",
"Epoch 134/300\n",
"891/891 [==============================] - 0s 441us/step - loss: 0.3251 - acc: 0.8687\n",
"Epoch 135/300\n",
"891/891 [==============================] - 0s 457us/step - loss: 0.3336 - acc: 0.8709\n",
"Epoch 136/300\n",
"891/891 [==============================] - 0s 447us/step - loss: 0.3341 - acc: 0.8698\n",
"Epoch 137/300\n",
"891/891 [==============================] - 0s 489us/step - loss: 0.3486 - acc: 0.8676\n",
"Epoch 138/300\n",
"891/891 [==============================] - 0s 469us/step - loss: 0.3343 - acc: 0.8676\n",
"Epoch 139/300\n",
"891/891 [==============================] - 0s 446us/step - loss: 0.3579 - acc: 0.8519\n",
"Epoch 140/300\n",
"891/891 [==============================] - 0s 450us/step - loss: 0.3465 - acc: 0.8597\n",
"Epoch 141/300\n",
"891/891 [==============================] - 0s 441us/step - loss: 0.3474 - acc: 0.8597\n",
"Epoch 142/300\n",
"891/891 [==============================] - 0s 442us/step - loss: 0.3450 - acc: 0.8620\n",
"Epoch 143/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3365 - acc: 0.8642\n",
"Epoch 144/300\n",
"891/891 [==============================] - 0s 443us/step - loss: 0.3432 - acc: 0.8541\n",
"Epoch 145/300\n",
"891/891 [==============================] - 0s 431us/step - loss: 0.3443 - acc: 0.8608\n",
"Epoch 146/300\n",
"891/891 [==============================] - 0s 432us/step - loss: 0.3475 - acc: 0.8608\n",
"Epoch 147/300\n",
"891/891 [==============================] - 0s 440us/step - loss: 0.3450 - acc: 0.8496\n",
"Epoch 148/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3211 - acc: 0.8754\n",
"Epoch 149/300\n",
"891/891 [==============================] - 0s 442us/step - loss: 0.3265 - acc: 0.8631\n",
"Epoch 150/300\n",
"891/891 [==============================] - 0s 444us/step - loss: 0.3364 - acc: 0.8676\n",
"Epoch 151/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3282 - acc: 0.8709\n",
"Epoch 152/300\n",
"891/891 [==============================] - 0s 442us/step - loss: 0.3392 - acc: 0.8608\n",
"Epoch 153/300\n",
"891/891 [==============================] - 0s 508us/step - loss: 0.3366 - acc: 0.8664\n",
"Epoch 154/300\n",
"891/891 [==============================] - 0s 475us/step - loss: 0.3372 - acc: 0.8664\n",
"Epoch 155/300\n",
"891/891 [==============================] - 0s 460us/step - loss: 0.3360 - acc: 0.8642\n",
"Epoch 156/300\n",
"891/891 [==============================] - 0s 437us/step - loss: 0.3407 - acc: 0.8620\n",
"Epoch 157/300\n",
"891/891 [==============================] - 0s 478us/step - loss: 0.3259 - acc: 0.8597\n",
"Epoch 158/300\n",
"891/891 [==============================] - 0s 485us/step - loss: 0.3415 - acc: 0.8586\n",
"Epoch 159/300\n",
"891/891 [==============================] - 0s 477us/step - loss: 0.3234 - acc: 0.8777\n",
"Epoch 160/300\n",
"891/891 [==============================] - 0s 444us/step - loss: 0.3458 - acc: 0.8653\n",
"Epoch 161/300\n",
"891/891 [==============================] - 0s 458us/step - loss: 0.3378 - acc: 0.8664\n",
"Epoch 162/300\n",
"891/891 [==============================] - 0s 459us/step - loss: 0.3352 - acc: 0.8687\n",
"Epoch 163/300\n",
"891/891 [==============================] - 0s 436us/step - loss: 0.3363 - acc: 0.8563\n",
"Epoch 164/300\n",
"891/891 [==============================] - 0s 476us/step - loss: 0.3364 - acc: 0.8721\n",
"Epoch 165/300\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"891/891 [==============================] - 0s 471us/step - loss: 0.3443 - acc: 0.8597\n",
"Epoch 166/300\n",
"891/891 [==============================] - 0s 448us/step - loss: 0.3240 - acc: 0.8721\n",
"Epoch 167/300\n",
"891/891 [==============================] - 0s 462us/step - loss: 0.3314 - acc: 0.8608\n",
"Epoch 168/300\n",
"891/891 [==============================] - 0s 456us/step - loss: 0.3423 - acc: 0.8586\n",
"Epoch 169/300\n",
"891/891 [==============================] - 0s 465us/step - loss: 0.3447 - acc: 0.8597\n",
"Epoch 170/300\n",
"891/891 [==============================] - 0s 458us/step - loss: 0.3500 - acc: 0.8698\n",
"Epoch 171/300\n",
"891/891 [==============================] - 0s 464us/step - loss: 0.3368 - acc: 0.8530\n",
"Epoch 172/300\n",
"891/891 [==============================] - 0s 419us/step - loss: 0.3378 - acc: 0.8563\n",
"Epoch 173/300\n",
"891/891 [==============================] - 0s 455us/step - loss: 0.3408 - acc: 0.8631\n",
"Epoch 174/300\n",
"891/891 [==============================] - 0s 429us/step - loss: 0.3328 - acc: 0.8676\n",
"Epoch 175/300\n",
"891/891 [==============================] - 0s 467us/step - loss: 0.3388 - acc: 0.8754\n",
"Epoch 176/300\n",
"891/891 [==============================] - 0s 446us/step - loss: 0.3400 - acc: 0.8687\n",
"Epoch 177/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3329 - acc: 0.8642\n",
"Epoch 178/300\n",
"891/891 [==============================] - 0s 461us/step - loss: 0.3285 - acc: 0.8754\n",
"Epoch 179/300\n",
"891/891 [==============================] - 0s 465us/step - loss: 0.3381 - acc: 0.8620\n",
"Epoch 180/300\n",
"891/891 [==============================] - 0s 447us/step - loss: 0.3270 - acc: 0.8664\n",
"Epoch 181/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3294 - acc: 0.8687\n",
"Epoch 182/300\n",
"891/891 [==============================] - 0s 426us/step - loss: 0.3376 - acc: 0.8586\n",
"Epoch 183/300\n",
"891/891 [==============================] - 0s 423us/step - loss: 0.3236 - acc: 0.8664\n",
"Epoch 184/300\n",
"891/891 [==============================] - 0s 475us/step - loss: 0.3342 - acc: 0.8687\n",
"Epoch 185/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3374 - acc: 0.8687\n",
"Epoch 186/300\n",
"891/891 [==============================] - 0s 482us/step - loss: 0.3404 - acc: 0.8631\n",
"Epoch 187/300\n",
"891/891 [==============================] - 0s 459us/step - loss: 0.3302 - acc: 0.8642\n",
"Epoch 188/300\n",
"891/891 [==============================] - 0s 436us/step - loss: 0.3205 - acc: 0.8732\n",
"Epoch 189/300\n",
"891/891 [==============================] - 0s 469us/step - loss: 0.3344 - acc: 0.8642\n",
"Epoch 190/300\n",
"891/891 [==============================] - 0s 443us/step - loss: 0.3246 - acc: 0.8765\n",
"Epoch 191/300\n",
"891/891 [==============================] - 0s 457us/step - loss: 0.3321 - acc: 0.8597\n",
"Epoch 192/300\n",
"891/891 [==============================] - 0s 465us/step - loss: 0.3268 - acc: 0.8496\n",
"Epoch 193/300\n",
"891/891 [==============================] - 0s 463us/step - loss: 0.3245 - acc: 0.8687\n",
"Epoch 194/300\n",
"891/891 [==============================] - 0s 474us/step - loss: 0.3178 - acc: 0.8732\n",
"Epoch 195/300\n",
"891/891 [==============================] - 0s 459us/step - loss: 0.3221 - acc: 0.8721\n",
"Epoch 196/300\n",
"891/891 [==============================] - 0s 470us/step - loss: 0.3183 - acc: 0.8754\n",
"Epoch 197/300\n",
"891/891 [==============================] - 0s 438us/step - loss: 0.3198 - acc: 0.8732\n",
"Epoch 198/300\n",
"891/891 [==============================] - 0s 481us/step - loss: 0.3371 - acc: 0.8530\n",
"Epoch 199/300\n",
"891/891 [==============================] - 0s 472us/step - loss: 0.3303 - acc: 0.8687\n",
"Epoch 200/300\n",
"891/891 [==============================] - 0s 431us/step - loss: 0.3264 - acc: 0.8754\n",
"Epoch 201/300\n",
"891/891 [==============================] - 0s 485us/step - loss: 0.3396 - acc: 0.8586\n",
"Epoch 202/300\n",
"891/891 [==============================] - 0s 459us/step - loss: 0.3085 - acc: 0.8799\n",
"Epoch 203/300\n",
"891/891 [==============================] - 0s 448us/step - loss: 0.3243 - acc: 0.8597\n",
"Epoch 204/300\n",
"891/891 [==============================] - 0s 464us/step - loss: 0.3154 - acc: 0.8687\n",
"Epoch 205/300\n",
"891/891 [==============================] - 0s 478us/step - loss: 0.3088 - acc: 0.8743\n",
"Epoch 206/300\n",
"891/891 [==============================] - 0s 474us/step - loss: 0.3352 - acc: 0.8541\n",
"Epoch 207/300\n",
"891/891 [==============================] - 0s 430us/step - loss: 0.3234 - acc: 0.8732\n",
"Epoch 208/300\n",
"891/891 [==============================] - 0s 474us/step - loss: 0.3375 - acc: 0.8676\n",
"Epoch 209/300\n",
"891/891 [==============================] - 0s 459us/step - loss: 0.3294 - acc: 0.8552\n",
"Epoch 210/300\n",
"891/891 [==============================] - 0s 465us/step - loss: 0.3402 - acc: 0.8597\n",
"Epoch 211/300\n",
"891/891 [==============================] - 0s 460us/step - loss: 0.3208 - acc: 0.8709\n",
"Epoch 212/300\n",
"891/891 [==============================] - 0s 481us/step - loss: 0.3168 - acc: 0.8676\n",
"Epoch 213/300\n",
"891/891 [==============================] - 0s 483us/step - loss: 0.3257 - acc: 0.8620\n",
"Epoch 214/300\n",
"891/891 [==============================] - 0s 452us/step - loss: 0.3171 - acc: 0.8687\n",
"Epoch 215/300\n",
"891/891 [==============================] - 0s 484us/step - loss: 0.3194 - acc: 0.8664\n",
"Epoch 216/300\n",
"891/891 [==============================] - 0s 465us/step - loss: 0.3239 - acc: 0.8676\n",
"Epoch 217/300\n",
"891/891 [==============================] - 0s 441us/step - loss: 0.3311 - acc: 0.8642\n",
"Epoch 218/300\n",
"891/891 [==============================] - 0s 469us/step - loss: 0.3095 - acc: 0.8765\n",
"Epoch 219/300\n",
"891/891 [==============================] - 0s 438us/step - loss: 0.3136 - acc: 0.8721\n",
"Epoch 220/300\n",
"891/891 [==============================] - 0s 476us/step - loss: 0.3162 - acc: 0.8799\n",
"Epoch 221/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3337 - acc: 0.8552\n",
"Epoch 222/300\n",
"891/891 [==============================] - 0s 480us/step - loss: 0.3153 - acc: 0.8799\n",
"Epoch 223/300\n",
"891/891 [==============================] - 0s 469us/step - loss: 0.3255 - acc: 0.8721\n",
"Epoch 224/300\n",
"891/891 [==============================] - 0s 473us/step - loss: 0.3099 - acc: 0.8754\n",
"Epoch 225/300\n",
"891/891 [==============================] - 0s 473us/step - loss: 0.3230 - acc: 0.8732\n",
"Epoch 226/300\n",
"891/891 [==============================] - 0s 460us/step - loss: 0.3162 - acc: 0.8754\n",
"Epoch 227/300\n",
"891/891 [==============================] - 0s 460us/step - loss: 0.3282 - acc: 0.8664\n",
"Epoch 228/300\n",
"891/891 [==============================] - 0s 473us/step - loss: 0.3278 - acc: 0.8676\n",
"Epoch 229/300\n",
"891/891 [==============================] - 0s 435us/step - loss: 0.3270 - acc: 0.8732\n",
"Epoch 230/300\n",
"891/891 [==============================] - 0s 471us/step - loss: 0.3320 - acc: 0.8664\n",
"Epoch 231/300\n",
"891/891 [==============================] - 0s 473us/step - loss: 0.3233 - acc: 0.8642\n",
"Epoch 232/300\n",
"891/891 [==============================] - 0s 472us/step - loss: 0.3389 - acc: 0.8608\n",
"Epoch 233/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3121 - acc: 0.8822\n",
"Epoch 234/300\n",
"891/891 [==============================] - 0s 470us/step - loss: 0.3227 - acc: 0.8754\n",
"Epoch 235/300\n",
"891/891 [==============================] - 0s 487us/step - loss: 0.3332 - acc: 0.8620\n",
"Epoch 236/300\n",
"891/891 [==============================] - 0s 436us/step - loss: 0.3363 - acc: 0.8698\n",
"Epoch 237/300\n",
"891/891 [==============================] - 0s 473us/step - loss: 0.3169 - acc: 0.8687\n",
"Epoch 238/300\n",
"891/891 [==============================] - 0s 473us/step - loss: 0.3261 - acc: 0.8721\n",
"Epoch 239/300\n",
"891/891 [==============================] - 0s 464us/step - loss: 0.3182 - acc: 0.8709\n",
"Epoch 240/300\n",
"891/891 [==============================] - 0s 472us/step - loss: 0.3122 - acc: 0.8765\n",
"Epoch 241/300\n",
"891/891 [==============================] - 0s 462us/step - loss: 0.3290 - acc: 0.8597\n",
"Epoch 242/300\n",
"891/891 [==============================] - 0s 479us/step - loss: 0.3188 - acc: 0.8653\n",
"Epoch 243/300\n",
"891/891 [==============================] - 0s 465us/step - loss: 0.3368 - acc: 0.8664\n",
"Epoch 244/300\n",
"891/891 [==============================] - 0s 435us/step - loss: 0.3117 - acc: 0.8866\n",
"Epoch 245/300\n",
"891/891 [==============================] - 0s 435us/step - loss: 0.3180 - acc: 0.8743\n",
"Epoch 246/300\n",
"891/891 [==============================] - 0s 430us/step - loss: 0.3187 - acc: 0.8687\n",
"Epoch 247/300\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"891/891 [==============================] - 0s 425us/step - loss: 0.3135 - acc: 0.8765\n",
"Epoch 248/300\n",
"891/891 [==============================] - 0s 407us/step - loss: 0.3281 - acc: 0.8642\n",
"Epoch 249/300\n",
"891/891 [==============================] - 0s 411us/step - loss: 0.3199 - acc: 0.8732\n",
"Epoch 250/300\n",
"891/891 [==============================] - 0s 417us/step - loss: 0.3251 - acc: 0.8575\n",
"Epoch 251/300\n",
"891/891 [==============================] - 0s 408us/step - loss: 0.3311 - acc: 0.8620\n",
"Epoch 252/300\n",
"891/891 [==============================] - 0s 416us/step - loss: 0.3257 - acc: 0.8709\n",
"Epoch 253/300\n",
"891/891 [==============================] - 0s 425us/step - loss: 0.3301 - acc: 0.8631\n",
"Epoch 254/300\n",
"891/891 [==============================] - 0s 404us/step - loss: 0.3456 - acc: 0.8586\n",
"Epoch 255/300\n",
"891/891 [==============================] - 0s 418us/step - loss: 0.3187 - acc: 0.8698\n",
"Epoch 256/300\n",
"891/891 [==============================] - 0s 494us/step - loss: 0.3101 - acc: 0.8754\n",
"Epoch 257/300\n",
"891/891 [==============================] - 0s 462us/step - loss: 0.3315 - acc: 0.8575\n",
"Epoch 258/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3082 - acc: 0.8777\n",
"Epoch 259/300\n",
"891/891 [==============================] - 0s 459us/step - loss: 0.3153 - acc: 0.8664\n",
"Epoch 260/300\n",
"891/891 [==============================] - 0s 472us/step - loss: 0.3260 - acc: 0.8653\n",
"Epoch 261/300\n",
"891/891 [==============================] - 0s 428us/step - loss: 0.3165 - acc: 0.8698\n",
"Epoch 262/300\n",
"891/891 [==============================] - 0s 490us/step - loss: 0.3186 - acc: 0.8653\n",
"Epoch 263/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3210 - acc: 0.8687\n",
"Epoch 264/300\n",
"891/891 [==============================] - 0s 481us/step - loss: 0.3164 - acc: 0.8732\n",
"Epoch 265/300\n",
"891/891 [==============================] - 0s 441us/step - loss: 0.3193 - acc: 0.8631\n",
"Epoch 266/300\n",
"891/891 [==============================] - 0s 478us/step - loss: 0.3302 - acc: 0.8552\n",
"Epoch 267/300\n",
"891/891 [==============================] - 0s 462us/step - loss: 0.3163 - acc: 0.8765\n",
"Epoch 268/300\n",
"891/891 [==============================] - 0s 470us/step - loss: 0.3207 - acc: 0.8822\n",
"Epoch 269/300\n",
"891/891 [==============================] - 0s 460us/step - loss: 0.3256 - acc: 0.8687\n",
"Epoch 270/300\n",
"891/891 [==============================] - 0s 462us/step - loss: 0.3140 - acc: 0.8754\n",
"Epoch 271/300\n",
"891/891 [==============================] - 0s 430us/step - loss: 0.3178 - acc: 0.8754\n",
"Epoch 272/300\n",
"891/891 [==============================] - 0s 501us/step - loss: 0.3304 - acc: 0.8664\n",
"Epoch 273/300\n",
"891/891 [==============================] - 0s 463us/step - loss: 0.3251 - acc: 0.8777\n",
"Epoch 274/300\n",
"891/891 [==============================] - 0s 458us/step - loss: 0.3159 - acc: 0.8743\n",
"Epoch 275/300\n",
"891/891 [==============================] - 0s 470us/step - loss: 0.3095 - acc: 0.8810\n",
"Epoch 276/300\n",
"891/891 [==============================] - 0s 471us/step - loss: 0.3104 - acc: 0.8732\n",
"Epoch 277/300\n",
"891/891 [==============================] - 0s 490us/step - loss: 0.3298 - acc: 0.8698\n",
"Epoch 278/300\n",
"891/891 [==============================] - 0s 446us/step - loss: 0.3264 - acc: 0.8754\n",
"Epoch 279/300\n",
"891/891 [==============================] - 0s 487us/step - loss: 0.3139 - acc: 0.8799\n",
"Epoch 280/300\n",
"891/891 [==============================] - 0s 470us/step - loss: 0.3140 - acc: 0.8765\n",
"Epoch 281/300\n",
"891/891 [==============================] - 0s 485us/step - loss: 0.3164 - acc: 0.8743\n",
"Epoch 282/300\n",
"891/891 [==============================] - 0s 481us/step - loss: 0.3134 - acc: 0.8754\n",
"Epoch 283/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3225 - acc: 0.8777\n",
"Epoch 284/300\n",
"891/891 [==============================] - 0s 434us/step - loss: 0.3098 - acc: 0.8732\n",
"Epoch 285/300\n",
"891/891 [==============================] - 0s 431us/step - loss: 0.3222 - acc: 0.8698\n",
"Epoch 286/300\n",
"891/891 [==============================] - 0s 433us/step - loss: 0.3269 - acc: 0.8676\n",
"Epoch 287/300\n",
"891/891 [==============================] - 0s 443us/step - loss: 0.3188 - acc: 0.8664\n",
"Epoch 288/300\n",
"891/891 [==============================] - 0s 482us/step - loss: 0.3190 - acc: 0.8754\n",
"Epoch 289/300\n",
"891/891 [==============================] - 0s 472us/step - loss: 0.3009 - acc: 0.8777\n",
"Epoch 290/300\n",
"891/891 [==============================] - 0s 458us/step - loss: 0.3266 - acc: 0.8698\n",
"Epoch 291/300\n",
"891/891 [==============================] - 0s 459us/step - loss: 0.3266 - acc: 0.8721\n",
"Epoch 292/300\n",
"891/891 [==============================] - 0s 455us/step - loss: 0.3143 - acc: 0.8698\n",
"Epoch 293/300\n",
"891/891 [==============================] - 0s 475us/step - loss: 0.3299 - acc: 0.8653\n",
"Epoch 294/300\n",
"891/891 [==============================] - 0s 460us/step - loss: 0.3165 - acc: 0.8698\n",
"Epoch 295/300\n",
"891/891 [==============================] - 0s 482us/step - loss: 0.3148 - acc: 0.8765\n",
"Epoch 296/300\n",
"891/891 [==============================] - 0s 436us/step - loss: 0.3335 - acc: 0.8620\n",
"Epoch 297/300\n",
"891/891 [==============================] - 0s 482us/step - loss: 0.3139 - acc: 0.8732\n",
"Epoch 298/300\n",
"891/891 [==============================] - 0s 458us/step - loss: 0.3345 - acc: 0.8709\n",
"Epoch 299/300\n",
"891/891 [==============================] - 0s 458us/step - loss: 0.3225 - acc: 0.8687\n",
"Epoch 300/300\n",
"891/891 [==============================] - 0s 465us/step - loss: 0.3049 - acc: 0.8822\n"
]
}
],
"source": [
"df0_cols = len(df0.columns)\n",
"\n",
"model = Sequential()\n",
"model.add(Dense(64, activation='relu', input_shape=(df0_cols,)))\n",
"model.add(Dropout(0.5))\n",
"model.add(Dense(32, activation='relu'))\n",
"model.add(Dropout(0.5))\n",
"\n",
"model.add(Dense(2, activation='softmax'))\n",
"model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['acc'])\n",
"\n",
"epochs=300\n",
"hist = model.fit(train0, train.Survived, epochs=epochs, batch_size=5)\n",
"\n",
"pred = model.predict(test0)"
]
},
{
"cell_type": "code",
"execution_count": 1519,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb5327bc710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# print(model.metrics_names)\n",
"plt.plot(hist.history['acc'], 'b-', label='acc' )\n",
"plt.plot(hist.history['loss'], 'r-', label='loss' )\n",
"plt.xlabel('epochs')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"result = pred.argmax(axis=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Submission file:"
]
},
{
"cell_type": "code",
"execution_count": 1523,
"metadata": {},
"outputs": [],
"source": [
"submission = pd.DataFrame({'PassengerId': test.index, 'Survived': result})\n",
"submission.to_csv('titanic/submission.csv', index=False)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "py36",
"language": "python",
"name": "py36"
},
"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