{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Introducing Data Science Workflows" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", "
" ], "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": {}, "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": {}, "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": [ "\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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\n", "text/plain": [ "" ] }, "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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EpE6kZeTV6thqqez/USd7FkPLVu25Omnn+a2227jwIED3HTTTQwaNOiU2+nRowcvvPACRUVF/O1vf6Nt27ZMnTqVzp07nzXPk6i3jy+9/uFoH1+65cMlPHn/gwwYMCDSOkSioMeXpjc9vlRERFJCISEiIqEUEiIiEkohISIioRQSIiISSiEhIiKhFBIiIhJKISEiIqEUEiLS4GzYsCH+DIjf/OY3dbbdGTNm0L9///h8RkYGn3322Wlvr7y8nMzMzLS+MFG35RCROvHk+PFUlSXv8aXZeXkUTUrs8aVTpkyhb9++rFq1qk5rGDZsGMOGDYvPn+mtOdq3b8/u3bvPtKykqrch8fX8+ZHuP2P7Vnbu3BlpDSLppKqsjAlJfNb8hJKShJctLS3lBz/4QdJqOSqdjwDqSr3tbhrZvHmkP10OHmLfvn1RfwwicpzvfOc7vPfee9x7771kZmby9NNP0717d7KyssjPzz/mOc+lpaVkZGTw4osvkpeXR+vWrXn22WdZsWIFV1xxBeeffz733XdffPnp06fTu3fvE/a5YsUK2rZte0xozJ49O/4wo+XLl9OjRw+ysrJo164d//Iv/3LM/o8cOcKHH37IeeedR2ZmJpmZmZxzzjlccsklQCyMHn/8cTp16sSFF17I0KFDqaqqSsrnd7x6GxLNGjWK9Cfj7LgBpEi988c//pHevXvzzDPPsHv3bq688kpefvlldu3axfz583n22WeZN2/eMessX76cTz/9lJkzZ1JUVMSjjz7K4sWLWb16NbNmzWLp0qXxZU/WxXT11VfTunXrY249/sorrzBixAgAioqKKCoqYteuXWzatIkhQ4acsL1evXqxZ88edu/ezY4dO7jmmmviXVtPP/008+bNY+nSpWzevJlWrVoxevToOvvMTqXehoSIyKkc/a3+uuuu4/LLLwfgG9/4BkOHDmXJkiXx5cyM8ePH07RpU7773e/SsmVL7rjjDi644AIuuugievfundC5jeHDh/Pyyy8DsGPHDt555534l3zTpk359NNP+fLLL2nRogU9e/Y85bbuu+8+MjMzeeSRRwCYNm0ajz76KO3ataNJkyaMHz+eN954gyNHjtT+g6klhYSINGjLli2jb9++tGnThuzsbKZNm8YXX3xxzDJt2rSJT59zzjknzCfyWNI777yT//zP/2T//v3MmjWL6667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\n", "text/plain": [ "" ] }, "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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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "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", " pivot.plot.bar(ylim=(0,1),yticks=np.arange(0,1,.1))\n", " plt.axhspan(.3, .6, alpha=0.2, color='red')\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": {}, "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" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/joshuadevlin/.virtualenvs/dscontent/lib/python3.4/site-packages/sklearn/utils/__init__.py:54: FutureWarning: Conversion of the second argument of issubdtype from `int` to `np.signedinteger` is deprecated. In future, it will be treated as `np.int64 == np.dtype(int).type`.\n", " if np.issubdtype(mask.dtype, np.int):\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, 'n_neighbors': 5, 'algorithm': 'brute'}\n", "\n", "RandomForestClassifier\n", "----------------------\n", "Best Score: 0.8294051627384961\n", "Best Parameters: {'max_features': 'log2', 'criterion': 'entropy', 'n_estimators': 4, 'min_samples_leaf': 1, 'min_samples_split': 5, 'max_depth': 5}\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": {}, "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 }