{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Introducing Data Science Workflows"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "train = pd.read_csv(\"train.csv\")\n",
    "holdout = pd.read_csv(\"test.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C85</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>C123</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  \\\n",
       "0            1         0       3   \n",
       "1            2         1       1   \n",
       "2            3         1       3   \n",
       "3            4         1       1   \n",
       "4            5         0       3   \n",
       "\n",
       "                                                Name     Sex   Age  SibSp  \\\n",
       "0                            Braund, Mr. Owen Harris    male  22.0      1   \n",
       "1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   \n",
       "2                             Heikkinen, Miss. Laina  female  26.0      0   \n",
       "3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
       "4                           Allen, Mr. William Henry    male  35.0      0   \n",
       "\n",
       "   Parch            Ticket     Fare Cabin Embarked  \n",
       "0      0         A/5 21171   7.2500   NaN        S  \n",
       "1      0          PC 17599  71.2833   C85        C  \n",
       "2      0  STON/O2. 3101282   7.9250   NaN        S  \n",
       "3      0            113803  53.1000  C123        S  \n",
       "4      0            373450   8.0500   NaN        S  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Preprocessing the Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# %load functions.py\n",
    "def process_missing(df):\n",
    "    \"\"\"Handle various missing values from the data set\n",
    "\n",
    "    Usage\n",
    "    ------\n",
    "\n",
    "    holdout = process_missing(holdout)\n",
    "    \"\"\"\n",
    "    df[\"Fare\"] = df[\"Fare\"].fillna(train[\"Fare\"].mean())\n",
    "    df[\"Embarked\"] = df[\"Embarked\"].fillna(\"S\")\n",
    "    return df\n",
    "\n",
    "def process_age(df):\n",
    "    \"\"\"Process the Age column into pre-defined 'bins' \n",
    "\n",
    "    Usage\n",
    "    ------\n",
    "\n",
    "    train = process_age(train)\n",
    "    \"\"\"\n",
    "    df[\"Age\"] = df[\"Age\"].fillna(-0.5)\n",
    "    cut_points = [-1,0,5,12,18,35,60,100]\n",
    "    label_names = [\"Missing\",\"Infant\",\"Child\",\"Teenager\",\"Young Adult\",\"Adult\",\"Senior\"]\n",
    "    df[\"Age_categories\"] = pd.cut(df[\"Age\"],cut_points,labels=label_names)\n",
    "    return df\n",
    "\n",
    "def process_fare(df):\n",
    "    \"\"\"Process the Fare column into pre-defined 'bins' \n",
    "\n",
    "    Usage\n",
    "    ------\n",
    "\n",
    "    train = process_fare(train)\n",
    "    \"\"\"\n",
    "    cut_points = [-1,12,50,100,1000]\n",
    "    label_names = [\"0-12\",\"12-50\",\"50-100\",\"100+\"]\n",
    "    df[\"Fare_categories\"] = pd.cut(df[\"Fare\"],cut_points,labels=label_names)\n",
    "    return df\n",
    "\n",
    "def process_cabin(df):\n",
    "    \"\"\"Process the Cabin column into pre-defined 'bins' \n",
    "\n",
    "    Usage\n",
    "    ------\n",
    "\n",
    "    train process_cabin(train)\n",
    "    \"\"\"\n",
    "    df[\"Cabin_type\"] = df[\"Cabin\"].str[0]\n",
    "    df[\"Cabin_type\"] = df[\"Cabin_type\"].fillna(\"Unknown\")\n",
    "    df = df.drop('Cabin',axis=1)\n",
    "    return df\n",
    "\n",
    "def process_titles(df):\n",
    "    \"\"\"Extract and categorize the title from the name column \n",
    "\n",
    "    Usage\n",
    "    ------\n",
    "\n",
    "    train = process_titles(train)\n",
    "    \"\"\"\n",
    "    titles = {\n",
    "        \"Mr\" :         \"Mr\",\n",
    "        \"Mme\":         \"Mrs\",\n",
    "        \"Ms\":          \"Mrs\",\n",
    "        \"Mrs\" :        \"Mrs\",\n",
    "        \"Master\" :     \"Master\",\n",
    "        \"Mlle\":        \"Miss\",\n",
    "        \"Miss\" :       \"Miss\",\n",
    "        \"Capt\":        \"Officer\",\n",
    "        \"Col\":         \"Officer\",\n",
    "        \"Major\":       \"Officer\",\n",
    "        \"Dr\":          \"Officer\",\n",
    "        \"Rev\":         \"Officer\",\n",
    "        \"Jonkheer\":    \"Royalty\",\n",
    "        \"Don\":         \"Royalty\",\n",
    "        \"Sir\" :        \"Royalty\",\n",
    "        \"Countess\":    \"Royalty\",\n",
    "        \"Dona\":        \"Royalty\",\n",
    "        \"Lady\" :       \"Royalty\"\n",
    "    }\n",
    "    extracted_titles = df[\"Name\"].str.extract(' ([A-Za-z]+)\\.',expand=False)\n",
    "    df[\"Title\"] = extracted_titles.map(titles)\n",
    "    return df\n",
    "\n",
    "def create_dummies(df,column_name):\n",
    "    \"\"\"Create Dummy Columns (One Hot Encoding) from a single Column\n",
    "\n",
    "    Usage\n",
    "    ------\n",
    "\n",
    "    train = create_dummies(train,\"Age\")\n",
    "    \"\"\"\n",
    "    dummies = pd.get_dummies(df[column_name],prefix=column_name)\n",
    "    df = pd.concat([df,dummies],axis=1)\n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def pre_process(df):\n",
    "    df = process_missing(df)\n",
    "    df = process_age(df)\n",
    "    df = process_fare(df)\n",
    "    df = process_titles(df)\n",
    "    df = process_cabin(df)\n",
    "\n",
    "    for col in [\"Age_categories\",\"Fare_categories\",\n",
    "                \"Title\",\"Cabin_type\",\"Sex\"]:\n",
    "        df = create_dummies(df,col)\n",
    "    \n",
    "    return df\n",
    "\n",
    "train = pre_process(train)\n",
    "holdout = pre_process(holdout)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exploring the Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 891 entries, 0 to 890\n",
      "Data columns (total 3 columns):\n",
      "SibSp       891 non-null int64\n",
      "Parch       891 non-null int64\n",
      "Survived    891 non-null int64\n",
      "dtypes: int64(3)\n",
      "memory usage: 21.0 KB\n"
     ]
    }
   ],
   "source": [
    "explore_cols = [\"SibSp\",\"Parch\",\"Survived\"]\n",
    "explore = train[explore_cols].copy()\n",
    "explore.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108c34b38>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "explore.drop(\"Survived\",axis=1).plot.hist(alpha=0.5,bins=8)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nW9IhFPJSw6ZwmBfy8giHwzGFkZUrV7J27VqeeOIJhg8fvh8q3LPDDjuMwsJCmjZtWi/H69+/P4WF\nhTRr1qxejudDow8j4YULwdM/xliUlZXAhu/4/vvvfZciIkmuQyhE59at/RVQWBjzS3NzcwG83Xm4\nvoNBQw4ioAmsDAQuMkuax/nO6FBcwrZt23z/6EREvBg+fDinnXYaZsbFF19MSkoKAwYM4LPPPuOq\nq66ie/futGzZks6dO3P11VezZcuWKq8fO3YsKSkpfPnll1x22WW0bduWjIwMxowZA8DatWs577zz\naNOmDZ07d2bixIlVXv/111+TkpLC3/72tz3WeNppp3H88cfXuK1nz56ceeaZFc///ve/07t3b9q0\naUNaWhrHHnssjzzySMX2+fPnk5KSwn/+8x8AnnrqKVJSUmp8DBgwoMqxZs6cSe/evQmFQrRv356s\nrCzWrVtXh59y/Wr0IyMdWrbk4AMO8F1GnRUW7fRdgoiIV9dffz2HHHII48eP58Ybb+SEE06gY8eO\nvPHGG6xZs4YRI0bQqVMnPv/8c6ZPn87SpUtZuHBhxet3zb+45JJLOProo3nwwQf5xz/+wf3330/b\ntm157LHHGDx4MA899BDPPPMMN998MyeccAKnnHJKnWu88sorGTlyJEuXLuWoo46qaP/www/56quv\nuPvuuwF44403uOyyy/j5z3/OhAkTAFi2bBnvvfce//u//7tbzRCctpk5c2aV461Zs4a77rqLjh07\nVrSNHz+e3//+91x66aVce+21bNq0iUceeYT+/fvz8ccf06ZNmzq/n/2t0YcRERFJLn379mXnzp2M\nHz+efv36ceGFFwJwyimn8H//93+79b3ssstYsGABJ598cpVtJ510ElOnTgXg2muvpWvXrtx66608\n+OCD3HzzzQBceumlHHTQQTz55JNRhZEhQ4Zwww03MHPmTO6///6K9pkzZ9KqVSsuuOACAObOnUta\nWhqvv/56nffdtWtXunbtWvG8qKiIk08+mYMPPpjJkycDwejO2LFjuf/++7ntttsq+l544YUcf/zx\nTJ06ldtvv73Ox9zfGv1pGhERaRiaN29e8d9FRUVs3ryZvn374pwjJyenSl8z4+qrr654npKSQu/e\nvQEYMWJERXtaWho9e/Zk1apVUdXSpk0bzjvvPLKzsyvaysvLmTVrFhdccAEtW7YEoG3btuzYsSOq\n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\nzhUAH/DDzfp6E4Sqyn2WA2vZ/YZ+IiIikmBivZrmBGCUc86ZWeX29UC0p2l2jbQsBFoQjLb80jm3\n0sxOIlh2PrfaS3IJQgpAR6A4ElL21EdEREQSVKxhpARoVUN7DyAvhv19ARwHpAEXA383s/4x1iYi\nIiJJJNYw8gowxswuiTx3ZnYw8ADwQrQ7c86VAqsiTz82sz7AKII1S4xg9KPy6EhH4OPIf28EmplZ\nm2qjIx0j22qVvXIlodSqP4a+GRmcmKGLcURERLKzs8nOzq7Slp+fH9djxBpGfksQOjYCLQmugDkI\n+BC4o5bX1VUK0MQ5t9rMNgIDgU8huIqHYHLro5G+i4HSSJ8XI316Al344SZ+e5TVvTtdW7eOQ8ki\nIiINT1ZWFllZWVXacnJyyMzMjNsxYl30bCtweuRUynEEp2xygNedcy6afZnZ/cA8ggmnrYHLCSbB\n3hfpMongCpsVwBpgHLAOmBOppcDMngAeNrOtwDaCFWIX6EoaERGRxBd1GDGzpsCrwOjIpbTz97GG\nDOApgomv+QQjIIOdc28DOOcmmFkImE5wt+B3gDOdc8WV9nETUAbMJrgS5zXg1/tYl4iIiNSDqMOI\nc67EzDIJrnLZZ865a+rQZywwtpbtRcANkYeIiIgkkVjXGXkGGB7PQkRERKRxinUCqwNGm9kg4COC\nJdp/2OjcrftamIiIiDQOsYaRTCJXtwDHVtsWl9M3IiIi0jhEFUbMrBuw2jnXbz/VIyIiIo1MtHNG\nvgI67HpiZv/PzDrGtyQRERFpTKINI1bt+VnAAXGqRURERBqhWK+mEREREYmLaMOIY/cJqpqwKiIi\nIjGL9moaA2aYWVHkeQvgMTOrfmnvhfEoTkRERBq+aMPIU9Wez4xXISIiItI4RRVGnHNadVVERETi\nShNYRURExCuFEREREfFKYURERES8UhgRERERrxRGRERExCuFEREREfFKYURERES8UhgRERERrxRG\nRERExCuFEREREfFKYURERES8UhgRERERrxRGRERExCuFEREREfFKYURERES8UhgRERERrxRGRERE\nxCuFEREREfFKYURERES8UhgRERERrxRGRERExCuFEREREfHKexgxs9+Z2SIzKzCzXDN70cx+VEO/\ne83sWzMLm9kbZtaj2vbmZvaomeWZ2TYzm21mGfX3TkRERCQWqb4LAPoBfwI+IqjnD8A/zexI51wh\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108d57438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "explore[\"familysize\"] = explore[[\"SibSp\",\"Parch\"]].sum(axis=1)\n",
    "explore.drop(\"Survived\",axis=1).plot.hist(alpha=0.5,bins=10)\n",
    "plt.xticks(range(11))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108de4128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1092f06d8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1092ec710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "for col in explore.columns.drop(\"Survived\"):\n",
    "    pivot = explore.pivot_table(index=col,values=\"Survived\")\n",
    "    plt.axhspan(.3, .6, alpha=0.2, color='red')\n",
    "    pivot.plot.bar(ylim=(0,1),yticks=np.arange(0,1,.1))\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `SibSp` column shows the number of siblings and/or spouses each passenger had on board, while the `Parch` columns shows the number of parents or children each passenger had onboard. Neither column has any missing values.\n",
    "\n",
    "The distribution of values in both columns is skewed right, with the majority of values being zero.\n",
    "\n",
    "You can sum these two columns to explore the total number of family members each passenger had onboard.  The shape of the distribution of values in this case is similar, however there are less values at zero, and the quantity tapers off less rapidly as the values increase.\n",
    "\n",
    "Looking at the survival rates of the the combined family members, you can see that few of the over 500 passengers with no family members survived, while greater numbers of passengers with family members survived."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Engineering New Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def process_isalone(df):\n",
    "    df[\"familysize\"] = df[[\"SibSp\",\"Parch\"]].sum(axis=1)\n",
    "    df[\"isalone\"] = 0\n",
    "    df.loc[(df[\"familysize\"] == 0),\"isalone\"] = 1\n",
    "    df = df.drop(\"familysize\",axis=1)\n",
    "    return df\n",
    "\n",
    "train = process_isalone(train)\n",
    "holdout = process_isalone(holdout)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Selecting the Best-Performing Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best Columns \n",
      "------------\n",
      "['Pclass', 'Age', 'SibSp', 'Parch', 'Fare', 'Age_categories_Missing', 'Age_categories_Infant', 'Age_categories_Young Adult', 'Fare_categories_12-50', 'Title_Miss', 'Title_Mr', 'Title_Mrs', 'Cabin_type_D', 'Cabin_type_E', 'Cabin_type_Unknown', 'Sex_female', 'Sex_male', 'isalone']\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.feature_selection import RFECV\n",
    "\n",
    "def select_features(df):\n",
    "    # Remove non-numeric columns, columns that have null values\n",
    "    df = df.select_dtypes([np.number]).dropna(axis=1)\n",
    "    all_X = df.drop([\"Survived\",\"PassengerId\"],axis=1)\n",
    "    all_y = df[\"Survived\"]\n",
    "    \n",
    "    clf = RandomForestClassifier(random_state=1)\n",
    "    selector = RFECV(clf,cv=10)\n",
    "    selector.fit(all_X,all_y)\n",
    "    \n",
    "    best_columns = list(all_X.columns[selector.support_])\n",
    "    print(\"Best Columns \\n\"+\"-\"*12+\"\\n{}\\n\".format(best_columns))\n",
    "    \n",
    "    return best_columns\n",
    "\n",
    "cols = select_features(train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Selecting and Tuning Different Algorithms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LogisticRegression\n",
      "------------------\n",
      "Best Score: 0.8204264870931538\n",
      "Best Parameters: {'solver': 'liblinear'}\n",
      "\n",
      "KNeighborsClassifier\n",
      "--------------------\n",
      "Best Score: 0.7755331088664422\n",
      "Best Parameters: {'weights': 'uniform', 'p': 1, 'algorithm': 'brute', 'n_neighbors': 5}\n",
      "\n",
      "RandomForestClassifier\n",
      "----------------------\n",
      "Best Score: 0.8294051627384961\n",
      "Best Parameters: {'max_features': 'log2', 'max_depth': 5, 'min_samples_split': 5, 'criterion': 'entropy', 'n_estimators': 4, 'min_samples_leaf': 1}\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "def select_model(df,features):\n",
    "    \n",
    "    all_X = df[features]\n",
    "    all_y = df[\"Survived\"]\n",
    "\n",
    "    # List of dictionaries, each containing a model name,\n",
    "    # it's estimator and a dict of hyperparameters\n",
    "    models = [\n",
    "        {\n",
    "            \"name\": \"LogisticRegression\",\n",
    "            \"estimator\": LogisticRegression(),\n",
    "            \"hyperparameters\":\n",
    "                {\n",
    "                    \"solver\": [\"newton-cg\", \"lbfgs\", \"liblinear\"]\n",
    "                }\n",
    "        },\n",
    "        {\n",
    "            \"name\": \"KNeighborsClassifier\",\n",
    "            \"estimator\": KNeighborsClassifier(),\n",
    "            \"hyperparameters\":\n",
    "                {\n",
    "                    \"n_neighbors\": range(1,20,2),\n",
    "                    \"weights\": [\"distance\", \"uniform\"],\n",
    "                    \"algorithm\": [\"ball_tree\", \"kd_tree\", \"brute\"],\n",
    "                    \"p\": [1,2]\n",
    "                }\n",
    "        },\n",
    "        {\n",
    "            \"name\": \"RandomForestClassifier\",\n",
    "            \"estimator\": RandomForestClassifier(random_state=1),\n",
    "            \"hyperparameters\":\n",
    "                {\n",
    "                    \"n_estimators\": [4, 6, 9],\n",
    "                    \"criterion\": [\"entropy\", \"gini\"],\n",
    "                    \"max_depth\": [2, 5, 10],\n",
    "                    \"max_features\": [\"log2\", \"sqrt\"],\n",
    "                    \"min_samples_leaf\": [1, 5, 8],\n",
    "                    \"min_samples_split\": [2, 3, 5]\n",
    "\n",
    "                }\n",
    "        }\n",
    "    ]\n",
    "\n",
    "    for model in models:\n",
    "        print(model['name'])\n",
    "        print('-'*len(model['name']))\n",
    "\n",
    "        grid = GridSearchCV(model[\"estimator\"],\n",
    "                            param_grid=model[\"hyperparameters\"],\n",
    "                            cv=10)\n",
    "        grid.fit(all_X,all_y)\n",
    "        model[\"best_params\"] = grid.best_params_\n",
    "        model[\"best_score\"] = grid.best_score_\n",
    "        model[\"best_model\"] = grid.best_estimator_\n",
    "\n",
    "        print(\"Best Score: {}\".format(model[\"best_score\"]))\n",
    "        print(\"Best Parameters: {}\\n\".format(model[\"best_params\"]))\n",
    "\n",
    "    return models\n",
    "\n",
    "result = select_model(train,cols)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Making a Submission to Kaggle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def save_submission_file(model,cols,filename=\"submission.csv\"):\n",
    "    holdout_data = holdout[cols]\n",
    "    predictions = model.predict(holdout_data)\n",
    "    \n",
    "    holdout_ids = holdout[\"PassengerId\"]\n",
    "    submission_df = {\"PassengerId\": holdout_ids,\n",
    "                 \"Survived\": predictions}\n",
    "    submission = pd.DataFrame(submission_df)\n",
    "\n",
    "    submission.to_csv(filename,index=False)\n",
    "\n",
    "best_rf_model = result[2][\"best_model\"]\n",
    "save_submission_file(best_rf_model,cols)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "dscontent",
   "language": "python",
   "name": "dscontent"
  },
  "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.4.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
