{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "xRlGzpOI8eO0" }, "source": [ "\n", "[![AnalyticsDojo](https://github.com/rpi-techfundamentals/spring2019-materials/blob/master/fig/final-logo.png?raw=1)](http://rpi.analyticsdojo.com)\n", "

Titanic PCA

\n", "

introml.analyticsdojo.com

\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "-XovA71E3XFM" }, "source": [ "# Titanic PCA" ] }, { "cell_type": "markdown", "metadata": { "id": "7pW1UhJT8ePk" }, "source": [ "As an example of how to work with both categorical and numerical data, we will perform survival predicition for the passengers of the HMS Titanic.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "bvj3Wids8ePm", "outputId": "3c075657-ff1a-424c-9757-3eb6ef1c2b18" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',\n", " 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],\n", " dtype='object') Index(['PassengerId', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch',\n", " 'Ticket', 'Fare', 'Cabin', 'Embarked'],\n", " dtype='object')\n" ] } ], "source": [ "import os\n", "import pandas as pd\n", "train = pd.read_csv('https://raw.githubusercontent.com/rpi-techfundamentals/spring2019-materials/master/input/train.csv')\n", "test = pd.read_csv('https://raw.githubusercontent.com/rpi-techfundamentals/spring2019-materials/master/input/test.csv')\n", "\n", "print(train.columns, test.columns)" ] }, { "cell_type": "markdown", "metadata": { "id": "0xqjk2-P8ePp" }, "source": [ "Here is a broad description of the keys and what they mean:\n", "\n", "```\n", "pclass Passenger Class\n", " (1 = 1st; 2 = 2nd; 3 = 3rd)\n", "survival Survival\n", " (0 = No; 1 = Yes)\n", "name Name\n", "sex Sex\n", "age Age\n", "sibsp Number of Siblings/Spouses Aboard\n", "parch Number of Parents/Children Aboard\n", "ticket Ticket Number\n", "fare Passenger Fare\n", "cabin Cabin\n", "embarked Port of Embarkation\n", " (C = Cherbourg; Q = Queenstown; S = Southampton)\n", "boat Lifeboat\n", "body Body Identification Number\n", "home.dest Home/Destination\n", "```\n", "\n", "In general, it looks like `name`, `sex`, `cabin`, `embarked`, `boat`, `body`, and `homedest` may be candidates for categorical features, while the rest appear to be numerical features. We can also look at the first couple of rows in the dataset to get a better understanding:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 548 }, "id": "bqmMR9G78ePr", "outputId": "b8b2ab48-ac65-48a9-f7ff-4575b1d63f8d" }, "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": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train.head()" ] }, { "cell_type": "markdown", "metadata": { "id": "54WY6zD78ePv" }, "source": [ "### Preprocessing function\n", "\n", "We want to create a preprocessing function that can address transformation of our train and test set. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "FKX26KU34Ti6", "outputId": "a9bd50ee-68c8-4ffb-f077-77c700aecbed" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total missing values before processing: 179\n", "Total missing values after processing: 0\n", "Total missing values before processing: 87\n", "Total missing values after processing: 0\n" ] } ], "source": [ "from sklearn.impute import SimpleImputer\n", "import numpy as np\n", "\n", "cat_features = ['Pclass', 'Sex', 'Embarked']\n", "num_features = [ 'Age', 'SibSp', 'Parch', 'Fare' ]\n", "\n", "\n", "def preprocess(df, num_features, cat_features, dv):\n", " features = cat_features + num_features\n", " if dv in df.columns:\n", " y = df[dv]\n", " else:\n", " y=None \n", " #Address missing variables\n", " print(\"Total missing values before processing:\", df[features].isna().sum().sum() )\n", " \n", " imp_mode = SimpleImputer(missing_values=np.nan, strategy='most_frequent')\n", " df[cat_features]=imp_mode.fit_transform(df[cat_features] )\n", " imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean')\n", " df[num_features]=imp_mean.fit_transform(df[num_features])\n", " print(\"Total missing values after processing:\", df[features].isna().sum().sum() )\n", " \n", " X = pd.get_dummies(df[features], columns=cat_features, drop_first=True)\n", " return y,X\n", "\n", "y, X = preprocess(train, num_features, cat_features, 'Survived')\n", "test_y, test_X = preprocess(test, num_features, cat_features, 'Survived')" ] }, { "cell_type": "markdown", "metadata": { "id": "yIEMMxHGwEXG" }, "source": [ "# PCA Analysis\n", "\n", "See [Documentation](https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html). \n", "\n", "You can incorporate PCA based on number of components or the variance explained. ![image.png](data:image/png;base64,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IAESqHMEOCBS57KUCSIBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEvAJcEDEJ8LfJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACdY4AB0TqXJYyQSRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAj4BDoj4RPibBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEigzhHggEidy1ImiARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIwCfAARGfCH+TAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAnUOQIcEKlzWcoEkQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJ+AQ4IOIT4W8SIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIIE6R4ADInUuS5kgEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABnwAHRHwi/E0CJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJFDnCHBApM5lKRNEAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiTgE+CAiE+Ev0mABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABOocAQ6I1LksZYJIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgAR8AhwQ8YnwNwmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQJ0jwAGROpelTBAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkIBPgAMiPhH+JgESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESqHMEOCBS57KUCSIBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEvAJcEDEJ8LfJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACdY4AB0TqXJYyQSRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAj4BDoj4RPibBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEigzhHggEidy1ImiARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIwCfAARGfCH+TAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAnUOQL/D5Y0skGBKZN4AAAAAElFTkSuQmCC)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "id": "pRaYU2YCvyNw" }, "outputs": [], "source": [ "from sklearn.decomposition import PCA\n", "pca = PCA(n_components=5)\n", "pca.fit(X)\n", "X2=pca.transform(X)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Q_NMT2q9v5e2", "outputId": "ddfa29b0-f907-4fc8-ca84-a30731610608" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2.47107661e+03 1.67651481e+02 1.25165106e+00 4.73653673e-01\n", " 3.18808533e-01]\n" ] } ], "source": [ "#This indicates the amount of variance explained by each of the principal components.\n", "print(pca.explained_variance_)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "id": "6P5EwsE5wROv" }, "outputs": [], "source": [ "from sklearn.decomposition import PCA\n", "pca2 = PCA(n_components=0.97)\n", "pca2.fit(X)\n", "X3=pca2.transform(X)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "o7jTEHLBzIzw", "outputId": "b29c6774-34c8-4a44-f03f-21824a1d319a" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2471.07660618 167.65148116]\n" ] } ], "source": [ "print(pca2.explained_variance_)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "YUBZDEqxv8s1", "outputId": "7d115fee-2c83-4b9e-cac0-fd3e8f31e6d5" }, "outputs": [ { "data": { "text/plain": [ "array([[1.00000000e+00, 1.90521771e-16],\n", " [1.90521771e-16, 1.00000000e+00]])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cov_data = np.corrcoef(X3.T)\n", "cov_data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Elbow Plot and Kaisers Rule Cutoff\n", "\n", "[Here](https://docs.displayr.com/wiki/Kaiser_Rule) is a link to documentation of Kaisers Rule. \n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data passed Bartlett’s test for sphericity.\n", "Performing PCA using rotation: quartimax factors: 4 and standardization: False\n" ] }, { "data": { "image/png": "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1FFcd911BfaeABMmTOCQQw4hPT2dE088kVWrwuKLo0eP5vjjj6ddu3Z06dKFH3/8EQg9MeXKlWPKlCm7vM+e/tmqi15ERPZYeno6r7766i77Bg8eHFE0BWPcuHHcdtttnHnmmTv2Zay4urdfnHr06MF9993H/fffz+DBgzn77LO59957ee+996hYsSKLFi1i8+bNALzxxhtceOGFvPLKK7Rp0ybfn6kWfHaGDYO6dSElJfwcNizqiERECs6mTfDll+FnAUpLSwPg888/Jy0tjTPOOIOuXbsyYcIE3J2///3vdOjQgZNOOomlS5cCcPjhh9O7d2+OOuooXnjhBTZv3sxxxx234z179erFggUL+M9//sMJJ5zAMcccw7vvvrvL506YMIFrr70WgG+++YY+ffoAMH78eP70pz/Rtm1bhg8fDsAtt9xCmzZtaNeuHVOnTt3xHl9//TWDBw/mtttu4+mnn6ZPnz5cfPHFdOzYkVWrVnHuueeSnp7OqaeeyurVq1m0aBFt2rThnHPOoUmTJowaNYqzzjqL5s2bM3fu3Bx/R0cccQRLly5lxIgR9O/fn4oVKwKhjku9evUAeP311xk4cCBffPEFe7OkuxJ8ZsOGQb9+8MMP4B5+9uunJC8ixYPZ7reyZaFZs/Azt/NyMXHixB1d9I899tgux2655RZefPFFXn/9dX799VcAxo4dS+XKlfnwww+59957uffeewFYvnw5gwYNYvLkyTzxxBOUKVOGxo0bM2fOHDZu3Mjy5cupX78+l156KR988AFvv/02d999925/Ddu3b+eOO+7g/fff56OPPuLJJ59k27ZtvP3220yePJlJkybRsmXLHec3adKEPn36cM8999C3b18gfGF5//33mTBhArVr12bixIn06NGDRx99FIBff/2Vl19+mUcffZSBAwfy6quvcuedd/LCCy/kGNfkyZNp1KgRP/30EzVq1MhyfO3atbg7lStX5rjjjuPTTz/d7bXmRF30md18M2zYsOu+DRvC/t69o4lJRKSIya6LPsOKFSs47LDDADjmmGOA0EIePXo0kyZNwt055JBDADj00EOpVKkSsLM7vEePHrz88ssceeSRnHbaaQAMGzaM559/npSUFJYvX77L58V3n2e8x6pVq5g/fz4nn3zyjucrV67krrvu4qKLLqJUqVLcfvvtVK9ePcdrPPbYYwFYsGDBjsetWrXivffeA6Bp06akpqZSs2ZNjjjiCFJSUqhZs+aOLzXxXn75ZaZPn06dOnW48cYbeeCBB3bcc4/3xhtv8O2339KpUyfWr1/Phg0baNWqVY4x5kYt+MwWL855/150lYiIFAr33Lc//oBGjaB8+fDzjz9yPjefDjroIObPn4+789lnnwHQuHFjunfvzoQJE5g4cSLPPvsskP297RNOOIEPP/yQV155he7duwNw33338eGHH2b7paJy5cosWbIEgJkzZwJQtWpVDj/8cN59910mTJjArFmzqF69Ou3atePpp58mPT2dIUOG5HodKSkhRTZo0IDp06cDMG3aNBo2bJgl9uy+ZMTr0aMHEydO5Pnnn6dChQp0796dwYMHs3btWgAWL17MokWLGDlyJB9++CHjx49n8uTJO35/+aEWfGa1a4du+czc4aij4JJL4NxzYd99Cz82EZG9tc8+MHs2zJ8PDRuG5/mQ0UUP0KJFCx566KEdx+644w569epF9erV2XfffSldujSnn346H3zwAR06dADgvPPO29EVnlmpUqVo1qwZ8+bN29HS79ChA3/6059o1arVjhZ/hmbNmvHHH3/QsWNHGjRoAITkfPPNN9OxY0dSUlKoVq0aI0aMoFu3bmzcuJFNmzbx1FNP5elau3XrxqhRo2jXrh0VKlRg2LBhrFmzZk9+XVk0atSI66+/nk6dOpGamsp+++3HY489xrJly6hSpcqO8+rXr8/06dN39CDsCdubG/hFTVpamu/1YjMZ9+Dju+lLlYJy5SD2TYtKleCCC+Dii6FJk737PBGRArJy5UqqVct2YbFCtWXLFkqXLs327ds54YQTGD58OAcffHDUYSWFzH/GZjbT3dOyO1dd9Jn17g1DhkCdOmGQSZ06MHQorFwZkv9xx8GaNfDYY9C0KXToAK+8Alu2RB25iEiRMG3aNNLT02nVqhUdO3ZUco+IWvD58cUXMGgQvPACrF8f9h18MPztb2GrVSvxMYiIZFJUWvCSOGrBJ1rz5iHBL1sWWvJNmsBPP8Edd4R582efDe+9p0F5IiISGSX4vVGpElx6aSgYMWECdO8euvVHjYKTToLGjeGhhyCbKRMiIiKJpARfEMwgPR1efjlMp7vzztBN/+23cNVVULMm/PWvsBfTHURERPaEEnxBO/hguOUW+P57GD06tOQ3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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from factor_analyzer import FactorAnalyzer\n", "from factor_analyzer.factor_analyzer import calculate_bartlett_sphericity\n", "from sklearn.decomposition import PCA\n", "import matplotlib.pyplot as plt\n", "import matplotlib\n", "def scree_plot(eigvals):\n", " fig = plt.figure(figsize=(8,5))\n", " sing_vals = np.arange(len(eigvals)) + 1\n", " plt.plot(sing_vals, eigvals, 'ro-', linewidth=2)\n", " #####horizontal line\n", " horiz_line_data = np.array([1 for i in range(len(sing_vals))])\n", " plt.plot(sing_vals, horiz_line_data, 'r--')\n", " plt.title('Scree Plot for PCA')\n", " plt.xlabel('Principal Component')\n", " plt.ylabel('Eigenvalue')\n", " #I don't like the default legend so I typically make mine like below, e.g.\n", " #with smaller fonts and a bit transparent so I do not cover up data, and make\n", " #it moveable by the viewer in case upper-right is a bad place for it\n", " leg = plt.legend(['Eigenvalues from PCA', 'Kaisers Rule Cutoff'], loc='best', borderpad=0.3,\n", " shadow=False, prop=matplotlib.font_manager.FontProperties(size='small'),\n", " markerscale=0.4)\n", " leg.get_frame().set_alpha(0.4)\n", "\n", " #plt.savefig(os.path.join(save_dir / (name +'.jpg')))\n", " return plt\n", "\n", "def pca_workflow(X, factors=-1, standardize=False, rotation='quartimax'):\n", " \"\"\"\n", " This will perform factor analysis, calculating the number of factors.\n", " Printing scree plots, etc.\n", " \"\"\"\n", "\n", " chi_square_value,p_value=calculate_bartlett_sphericity(X)\n", "\n", " if round(p_value,2)<=0.05:\n", " print(\"Data passed Bartlett’s test for sphericity.\")\n", " else:\n", " print(\"Data failed Bartlett’s test for sphericity, use PCA with caution.\")\n", " \n", " #This is used to calculate\n", " if factors ==-1:\n", " fa = FactorAnalyzer(n_factors=X.shape[1], rotation=None, method='ml')\n", " fa.fit_transform(X)\n", " # Check Eigenvalues\n", " ev, v = fa.get_eigenvalues()\n", " #set the number of factors as where Eigenvalue > 1.0\n", " factors = np.sum(ev>1.0)\n", " print (\"Performing PCA using rotation:\", rotation, \" factors: \", factors, \"and standardization: \", standardize)\n", " loading_cols=['F'+str(x+1) for x in range(factors)]\n", " plot=scree_plot(ev)\n", "\n", " if standardize:\n", " X = StandardScaler().fit_transform(X)\n", "\n", " fa = FactorAnalyzer(n_factors=factors, method='principal', rotation=rotation)\n", " fa.fit(X)\n", "\n", " #Change it back to a dataframe.\n", " results=pd.DataFrame(fa.transform(X),columns=loading_cols)\n", " \n", " return results\n", "\n", "X4= pca_workflow(X)" ] }, { "cell_type": "code", "execution_count": 26, "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", " \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", " \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", "
AgeSibSpParchFarePclass_2Pclass_3Sex_maleEmbarked_QEmbarked_SF1F2F3F4
Age1.000000-0.232625-0.1791910.0915660.006589-0.2810040.084153-0.013855-0.019336-5.866885e-013.811172e-02-3.979659e-024.697929e-01
SibSp-0.2326251.0000000.4148380.159651-0.0559320.092548-0.114631-0.0263540.0687347.266238e-011.159037e-011.523544e-019.665757e-02
Parch-0.1791910.4148381.0000000.216225-0.0007340.015790-0.245489-0.0812280.0608147.530177e-019.012244e-021.703344e-022.089974e-01
Fare0.0915660.1596510.2162251.000000-0.118557-0.413333-0.182333-0.117216-0.1621841.894779e-01-3.740721e-021.871599e-028.756367e-01
Pclass_20.006589-0.055932-0.000734-0.1185571.000000-0.565210-0.064746-0.1273010.1899804.552872e-041.211537e-01-9.175741e-01-1.588046e-01
Pclass_3-0.2810040.0925480.015790-0.413333-0.5652101.0000000.1371430.237449-0.0151041.356613e-01-8.931807e-027.454824e-01-5.398062e-01
Sex_male0.084153-0.114631-0.245489-0.182333-0.0647460.1371431.000000-0.0741150.119224-4.686491e-013.593321e-013.241968e-01-1.889437e-01
Embarked_Q-0.013855-0.026354-0.081228-0.117216-0.1273010.237449-0.0741151.000000-0.499421-3.289038e-02-8.285253e-011.156588e-01-2.081933e-01
Embarked_S-0.0193360.0687340.060814-0.1621840.189980-0.0151040.119224-0.4994211.0000006.820785e-028.340531e-01-1.170429e-01-2.047724e-01
F1-0.5866880.7266240.7530180.1894780.0004550.135661-0.468649-0.0328900.0682081.000000e+00-8.423241e-16-1.197446e-164.285137e-16
F20.0381120.1159040.090122-0.0374070.121154-0.0893180.359332-0.8285250.834053-8.423241e-161.000000e+00-1.106983e-154.455845e-16
F3-0.0397970.1523540.0170330.018716-0.9175740.7454820.3241970.115659-0.117043-1.197446e-16-1.106983e-151.000000e+00-8.211414e-16
F40.4697930.0966580.2089970.875637-0.158805-0.539806-0.188944-0.208193-0.2047724.285137e-164.455845e-16-8.211414e-161.000000e+00
\n", "
" ], "text/plain": [ " Age SibSp Parch Fare Pclass_2 Pclass_3 \\\n", "Age 1.000000 -0.232625 -0.179191 0.091566 0.006589 -0.281004 \n", "SibSp -0.232625 1.000000 0.414838 0.159651 -0.055932 0.092548 \n", "Parch -0.179191 0.414838 1.000000 0.216225 -0.000734 0.015790 \n", "Fare 0.091566 0.159651 0.216225 1.000000 -0.118557 -0.413333 \n", "Pclass_2 0.006589 -0.055932 -0.000734 -0.118557 1.000000 -0.565210 \n", "Pclass_3 -0.281004 0.092548 0.015790 -0.413333 -0.565210 1.000000 \n", "Sex_male 0.084153 -0.114631 -0.245489 -0.182333 -0.064746 0.137143 \n", "Embarked_Q -0.013855 -0.026354 -0.081228 -0.117216 -0.127301 0.237449 \n", "Embarked_S -0.019336 0.068734 0.060814 -0.162184 0.189980 -0.015104 \n", "F1 -0.586688 0.726624 0.753018 0.189478 0.000455 0.135661 \n", "F2 0.038112 0.115904 0.090122 -0.037407 0.121154 -0.089318 \n", "F3 -0.039797 0.152354 0.017033 0.018716 -0.917574 0.745482 \n", "F4 0.469793 0.096658 0.208997 0.875637 -0.158805 -0.539806 \n", "\n", " Sex_male Embarked_Q Embarked_S F1 F2 \\\n", "Age 0.084153 -0.013855 -0.019336 -5.866885e-01 3.811172e-02 \n", "SibSp -0.114631 -0.026354 0.068734 7.266238e-01 1.159037e-01 \n", "Parch -0.245489 -0.081228 0.060814 7.530177e-01 9.012244e-02 \n", "Fare -0.182333 -0.117216 -0.162184 1.894779e-01 -3.740721e-02 \n", "Pclass_2 -0.064746 -0.127301 0.189980 4.552872e-04 1.211537e-01 \n", "Pclass_3 0.137143 0.237449 -0.015104 1.356613e-01 -8.931807e-02 \n", "Sex_male 1.000000 -0.074115 0.119224 -4.686491e-01 3.593321e-01 \n", "Embarked_Q -0.074115 1.000000 -0.499421 -3.289038e-02 -8.285253e-01 \n", "Embarked_S 0.119224 -0.499421 1.000000 6.820785e-02 8.340531e-01 \n", "F1 -0.468649 -0.032890 0.068208 1.000000e+00 -8.423241e-16 \n", "F2 0.359332 -0.828525 0.834053 -8.423241e-16 1.000000e+00 \n", "F3 0.324197 0.115659 -0.117043 -1.197446e-16 -1.106983e-15 \n", "F4 -0.188944 -0.208193 -0.204772 4.285137e-16 4.455845e-16 \n", "\n", " F3 F4 \n", "Age -3.979659e-02 4.697929e-01 \n", "SibSp 1.523544e-01 9.665757e-02 \n", "Parch 1.703344e-02 2.089974e-01 \n", "Fare 1.871599e-02 8.756367e-01 \n", "Pclass_2 -9.175741e-01 -1.588046e-01 \n", "Pclass_3 7.454824e-01 -5.398062e-01 \n", "Sex_male 3.241968e-01 -1.889437e-01 \n", "Embarked_Q 1.156588e-01 -2.081933e-01 \n", "Embarked_S -1.170429e-01 -2.047724e-01 \n", "F1 -1.197446e-16 4.285137e-16 \n", "F2 -1.106983e-15 4.455845e-16 \n", "F3 1.000000e+00 -8.211414e-16 \n", "F4 -8.211414e-16 1.000000e+00 " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X4ALL = pd.concat([X,X4], axis =1) \n", "\n", "import seaborn as sb\n", "corr = X4ALL.corr()\n", "sb.heatmap(corr, cmap=\"Reds\")\n", "corr" ] }, { "cell_type": "markdown", "metadata": { "id": "bV5s-bSMJPne" }, "source": [ "### Train Test Split\n", "\n", "Now we are ready to model. We are going to separate our Kaggle given data into a \"Train\" and a \"Validation\" set. \n", "\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "id": "icKFkwZQpvCs" }, "outputs": [], "source": [ "#Import Module\n", "from sklearn.model_selection import train_test_split\n", "train_X, val_X, train_y, val_y = train_test_split(X, y, train_size=0.7, test_size=0.3, random_state=122,stratify=y)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "id": "jGoUxc7brPIg" }, "outputs": [], "source": [ "from sklearn.neural_network import MLPClassifier\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.svm import SVC\n", "from sklearn.gaussian_process import GaussianProcessClassifier\n", "from sklearn.gaussian_process.kernels import RBF\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier\n", "from sklearn.naive_bayes import GaussianNB\n", "from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis\n", "from sklearn import metrics" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6kHwslmYrcRw", "outputId": "77bc3c4f-c5ec-4240-9faf-1905c8d0d129" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Metrics score train: 0.7929373996789727\n", "Metrics score validation: 0.8134328358208955\n" ] } ], "source": [ "from sklearn import tree\n", "classifier = tree.DecisionTreeClassifier(max_depth=3)\n", "#This fits the model object to the data.\n", "classifier.fit(train_X[['Age','Sex_male']], train_y)\n", "#This creates the prediction. \n", "train_y_pred = classifier.predict(train_X[['Age','Sex_male']])\n", "val_y_pred = classifier.predict(val_X[['Age','Sex_male']])\n", "test['Survived'] = classifier.predict(test_X[['Age','Sex_male']])\n", "print(\"Metrics score train: \", metrics.accuracy_score(train_y, train_y_pred) )\n", "print(\"Metrics score validation: \", metrics.accuracy_score(val_y, val_y_pred) )" ] } ], "metadata": { "colab": { "collapsed_sections": [], "provenance": [] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 1 }