Programming Assignment Help

Programming – Jupyter Notebook Task

{
 "cells": [
 {
 "cell_type": "code",
 "execution_count": 1,
 "metadata": {},
 "outputs": [],
 "source": [
 "# Loading the required packages\n",
 "import numpy as np\n",
 "import pandas as pd\n",
 "from sklearn.ensemble import RandomForestClassifier\n",
 "from sklearn.metrics import classification_report, confusion_matrix, accuracy_score\n",
 "from sklearn.model_selection import train_test_split\n",
 "import matplotlib.pyplot as plt\n",
 "from sklearn.tree import DecisionTreeClassifier\n",
 "from sklearn import neighbors"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 2,
 "metadata": {},
 "outputs": [],
 "source": [
 "# Loading the data\n",
 "train = pd.read_csv('train.csv')"
 ]
 },
 {
 "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>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": 3,
 "metadata": {},
 "output_type": "execute_result"
 }
 ],
 "source": [
 "# Glimpse of the dataset\n",
 "train.head()"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 4,
 "metadata": {},
 "outputs": [
 {
 "name": "stdout",
 "output_type": "stream",
 "text": [
 "<class 'pandas.core.frame.DataFrame'>\n",
 "RangeIndex: 891 entries, 0 to 890\n",
 "Data columns (total 12 columns):\n",
 "PassengerId 891 non-null int64\n",
 "Survived 891 non-null int64\n",
 "Pclass 891 non-null int64\n",
 "Name 891 non-null object\n",
 "Sex 891 non-null object\n",
 "Age 714 non-null float64\n",
 "SibSp 891 non-null int64\n",
 "Parch 891 non-null int64\n",
 "Ticket 891 non-null object\n",
 "Fare 891 non-null float64\n",
 "Cabin 204 non-null object\n",
 "Embarked 889 non-null object\n",
 "dtypes: float64(2), int64(5), object(5)\n",
 "memory usage: 83.6+ KB\n"
 ]
 }
 ],
 "source": [
 "# Dataset Information in brief\n",
 "train.info()"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 5,
 "metadata": {},
 "outputs": [],
 "source": [
 "# Feature selection: remove variables no longer containing relevant information and drop missing values\n",
 "drop_elements = ['PassengerId', 'Name', 'Ticket', 'Cabin']\n",
 "train = train.drop(drop_elements, axis = 1)\n",
 "\n",
 "train.dropna(inplace=True)"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 6,
 "metadata": {},
 "outputs": [],
 "source": [
 "# Mapping categorical features to numbers\n",
 "train['Sex'] = train['Sex'].map( {'female': 0, 'male': 1} ).astype(int)\n",
 "train['Embarked'] = train['Embarked'].map( {'S': 0, 'C': 1, 'Q': 2} ).astype(int)"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 7,
 "metadata": {},
 "outputs": [],
 "source": [
 "# Train test split\n",
 "X = train.drop('Survived', axis=1)\n",
 "y = train['Survived']\n",
 "\n",
 "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 8,
 "metadata": {},
 "outputs": [
 {
 "data": {
 "text/plain": [
 "RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,\n",
 " criterion='gini', max_depth=None, max_features='auto',\n",
 " max_leaf_nodes=None, max_samples=None,\n",
 " min_impurity_decrease=0.0, min_impurity_split=None,\n",
 " min_samples_leaf=1, min_samples_split=2,\n",
 " min_weight_fraction_leaf=0.0, n_estimators=100,\n",
 " n_jobs=None, oob_score=False, random_state=1, verbose=0,\n",
 " warm_start=False)"
 ]
 },
 "execution_count": 8,
 "metadata": {},
 "output_type": "execute_result"
 }
 ],
 "source": [
 "# Fitting the Random Forest Model\n",
 "model = RandomForestClassifier(random_state=1)\n",
 "model.fit(X_train, y_train)"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 9,
 "metadata": {},
 "outputs": [],
 "source": [
 "preds = model.predict(X_test)"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 10,
 "metadata": {},
 "outputs": [
 {
 "name": "stdout",
 "output_type": "stream",
 "text": [
 "Accuracy : 0.8111888111888111\n",
 "[[69 9]\n",
 " [18 47]]\n",
 " precision recall f1-score support\n",
 "\n",
 " 0 0.79 0.88 0.84 78\n",
 " 1 0.84 0.72 0.78 65\n",
 "\n",
 " accuracy 0.81 143\n",
 " macro avg 0.82 0.80 0.81 143\n",
 "weighted avg 0.81 0.81 0.81 143\n",
 "\n"
 ]
 }
 ],
 "source": [
 "# Accuracy, confusion matrix and classification report\n",
 "print(\"Accuracy : \", accuracy_score(y_test, preds))\n",
 "print(confusion_matrix(y_test, preds))\n",
 "print(classification_report(y_test, preds))"
 ]
 },
 {
 "cell_type": "markdown",
 "metadata": {},
 "source": [
 "The report shows the main classification metrics precision, recall and f1-score on a per-class basis. The metrics are calculated by using true and false positives, true and false negatives. Positive and negative in this case are generic names for the predicted classes. There are four ways to check if the predictions are right or wrong:\n",
 "\n",
 "* TN / True Negative: when a case was negative and predicted negative\n",
 "* TP / True Positive: when a case was positive and predicted positive\n",
 "* FN / False Negative: when a case was positive but predicted negative\n",
 "* FP / False Positive: when a case was negative but predicted positive"
 ]
 },
 {
 "cell_type": "markdown",
 "metadata": {},
 "source": [
 "Precision – What percent of your predictions were correct?\n",
 "Precision is the ability of a classifier not to label an instance positive that is actually negative. For each class it is defined as the ratio of true positives to the sum of true and false positives.\n",
 "\n",
 "* Precision = TP/(TP + FP)"
 ]
 },
 {
 "cell_type": "markdown",
 "metadata": {},
 "source": [
 "Recall – What percent of the positive cases did you catch? \n",
 "Recall is the ability of a classifier to find all positive instances. For each class it is defined as the ratio of true positives to the sum of true positives and false negatives.\n",
 "\n",
 "* Recall = TP/(TP+FN)"
 ]
 },
 {
 "cell_type": "markdown",
 "metadata": {},
 "source": [
 "F1 score – What percent of positive predictions were correct? \n",
 "The F1 score is a weighted harmonic mean of precision and recall such that the best score is 1.0 and the worst is 0.0. Generally speaking, F1 scores are lower than accuracy measures as they embed precision and recall into their computation. As a rule of thumb, the weighted average of F1 should be used to compare classifier models, not global accuracy.\n",
 "\n",
 "* F1 Score = 2*(Recall * Precision) / (Recall + Precision)"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 11,
 "metadata": {},
 "outputs": [
 {
 "name": "stdout",
 "output_type": "stream",
 "text": [
 " 1) Age 0.281820\n",
 " 2) Fare 0.258279\n",
 " 3) Sex 0.243350\n",
 " 4) Pclass 0.091592\n",
 " 5) SibSp 0.053021\n",
 " 6) Parch 0.043027\n",
 " 7) Embarked 0.028911\n"
 ]
 }
 ],
 "source": [
 "# Assessing feature importance\n",
 "feat_labels = X_train.columns\n",
 "importances = model.feature_importances_\n",
 "\n",
 "indices = np.argsort(importances)[::-1] #[::-1] reverse the array\n",
 "for f in range(X_train.shape[1]):\n",
 " print(\"%2d) %-*s %f\" % (f + 1, 30, \n",
 " feat_labels[indices[f]], \n",
 " importances[indices[f]])) "
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 12,
 "metadata": {},
 "outputs": [
 {
 "data": {
 "image/png": "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\n",
 "text/plain": [
 "<Figure size 432x288 with 1 Axes>"
 ]
 },
 "metadata": {
 "needs_background": "light"
 },
 "output_type": "display_data"
 }
 ],
 "source": [
 "# Feature importance plot\n",
 "plt.title('Feature Importance')\n",
 "plt.bar(range(X_train.shape[1]), \n",
 " importances[indices],\n",
 " align='center')\n",
 "\n",
 "plt.xticks(range(X_train.shape[1]), \n",
 " feat_labels[indices], rotation=90)\n",
 "plt.xlim([-1, X_train.shape[1]])\n",
 "plt.tight_layout()\n",
 "plt.show()"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 15,
 "metadata": {
 "scrolled": true
 },
 "outputs": [],
 "source": [
 "from pydotplus import graph_from_dot_data\n",
 "from sklearn.tree import export_graphviz\n",
 "\n",
 "forest_small = RandomForestClassifier(criterion='gini',\n",
 " n_estimators=10, \n",
 " max_depth = 3, random_state=1,\n",
 " n_jobs=2)\n",
 "forest_small.fit(X_train, y_train)\n",
 "# Pull out one tree from the forest\n",
 "tree = forest_small.estimators_[5]\n",
 "\n",
 "# Export the image to a dot data\n",
 "feature_list = list(X_train.columns)\n",
 "dot_data = export_graphviz(tree, out_file = None, \n",
 " feature_names = feature_list, \n",
 " rounded = True, precision = 1)\n",
 "# Use dot data to create a graph\n",
 "graph = graph_from_dot_data(dot_data)"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 16,
 "metadata": {},
 "outputs": [
 {
 "data": {
 "image/png": "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\n",
 "text/plain": [
 "<IPython.core.display.Image object>"
 ]
 },
 "execution_count": 16,
 "metadata": {},
 "output_type": "execute_result"
 }
 ],
 "source": [
 "from IPython.display import Image \n",
 "Image(graph.create_png())"
 ]
 },
 {
 "cell_type": "markdown",
 "metadata": {},
 "source": [
 "Decision tree analysis using top 5 features"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 34,
 "metadata": {},
 "outputs": [],
 "source": [
 "# Top 5 features\n",
 "top5 = ['Age', 'Fare', 'Sex', 'Pclass', 'SibSp']"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 43,
 "metadata": {},
 "outputs": [],
 "source": [
 "X_train = X_train[top5]\n",
 "X_test = X_test[top5]"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 44,
 "metadata": {},
 "outputs": [
 {
 "name": "stdout",
 "output_type": "stream",
 "text": [
 "Accuracy Score on the test data: 0.8251748251748252\n",
 "[[75 12]\n",
 " [13 43]]\n",
 " precision recall f1-score support\n",
 "\n",
 " 0 0.85 0.86 0.86 87\n",
 " 1 0.78 0.77 0.77 56\n",
 "\n",
 " accuracy 0.83 143\n",
 " macro avg 0.82 0.81 0.82 143\n",
 "weighted avg 0.82 0.83 0.82 143\n",
 "\n"
 ]
 }
 ],
 "source": [
 "# Decision tree classifier\n",
 "model = DecisionTreeClassifier(criterion='gini', \n",
 " max_depth=4, \n",
 " random_state=1)\n",
 "\n",
 "# Fitting the model\n",
 "model.fit(X_train, y_train)\n",
 "\n",
 "# Prediction on test set and Classification report\n",
 "print('Accuracy Score on the test data: ', accuracy_score(y_true=y_test, y_pred=model.predict(X_test)))\n",
 "print(confusion_matrix(y_test, model.predict(X_test)))\n",
 "print(classification_report(y_test, model.predict(X_test)))\n"
 ]
 },
 {
 "cell_type": "markdown",
 "metadata": {},
 "source": [
 "Analysis using KNN"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 45,
 "metadata": {},
 "outputs": [],
 "source": [
 "# Train test split\n",
 "X = train.drop('Survived', axis=1)\n",
 "y = train['Survived']\n",
 "\n",
 "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 46,
 "metadata": {},
 "outputs": [],
 "source": [
 "# Fitting KNN model\n",
 "knn = neighbors.KNeighborsClassifier()\n",
 "knn.fit(X_train, y_train)\n",
 "y_pred = knn.predict(X_test)"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": 47,
 "metadata": {},
 "outputs": [
 {
 "name": "stdout",
 "output_type": "stream",
 "text": [
 "Accuracy : 0.4825174825174825\n",
 "[[62 21]\n",
 " [25 35]]\n",
 " precision recall f1-score support\n",
 "\n",
 " 0 0.71 0.75 0.73 83\n",
 " 1 0.62 0.58 0.60 60\n",
 "\n",
 " accuracy 0.68 143\n",
 " macro avg 0.67 0.67 0.67 143\n",
 "weighted avg 0.68 0.68 0.68 143\n",
 "\n"
 ]
 }
 ],
 "source": [
 "# Accuracy, confusion matrix and classification report\n",
 "print(\"Accuracy : \", accuracy_score(y_test, preds))\n",
 "print(confusion_matrix(y_test, y_pred))\n",
 "print(classification_report(y_test, y_pred))"
 ]
 },
 {
 "cell_type": "markdown",
 "metadata": {},
 "source": [
 "Comparing the Random Forrest model and the KNN model, We can see that the precision, recall and f1-score of the Random forest model is higher than the KNN model. Hence we can sat that Random Forest model has advantage over KNN model on the predictions"
 ]
 },
 {
 "cell_type": "code",
 "execution_count": null,
 "metadata": {},
 "outputs": [],
 "source": []
 }
 ],
 "metadata": {
 "kernelspec": {
 "display_name": "Python 3",
 "language": "python",
 "name": "python3"
 },
 "language_info": {
 "codemirror_mode": {
 "name": "ipython",
 "version": 3
 },
 "file_extension": ".py",
 "mimetype": "text/x-python",
 "name": "python",
 "nbconvert_exporter": "python",
 "pygments_lexer": "ipython3",
 "version": "3.7.3"
 }
 },
 "nbformat": 4,
 "nbformat_minor": 2
 }