diff --git a/README.md b/README.md
index 295a252..dc8fbad 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+[](https://classroom.github.com/a/yYhm1UCY)
# Introduction to Data Processing
## Introduction
diff --git a/titanic.csv b/titanic.csv
new file mode 100644
index 0000000..00dd924
--- /dev/null
+++ b/titanic.csv
@@ -0,0 +1,419 @@
+PassengerId,Survived
+892,0.0
+893,0.0
+894,0.0
+895,0.0
+896,0.0
+897,1.0
+898,0.0
+899,0.0
+900,1.0
+901,0.0
+902,0.0
+903,0.0
+904,0.0
+905,0.0
+906,1.0
+907,0.0
+908,1.0
+909,0.0
+910,0.0
+911,0.0
+912,0.0
+913,1.0
+914,0.0
+915,1.0
+916,1.0
+917,1.0
+918,1.0
+919,0.0
+920,1.0
+921,0.0
+922,0.0
+923,0.0
+924,0.0
+925,0.0
+926,0.0
+927,0.0
+928,0.0
+929,1.0
+930,0.0
+931,0.0
+932,0.0
+933,0.0
+934,0.0
+935,1.0
+936,0.0
+937,1.0
+938,0.0
+939,0.0
+940,1.0
+941,1.0
+942,0.0
+943,1.0
+944,1.0
+945,0.0
+946,0.0
+947,0.0
+948,0.0
+949,0.0
+950,0.0
+951,0.0
+952,0.0
+953,0.0
+954,0.0
+955,0.0
+956,1.0
+957,0.0
+958,1.0
+959,0.0
+960,0.0
+961,0.0
+962,0.0
+963,0.0
+964,1.0
+965,0.0
+966,0.0
+967,0.0
+968,0.0
+969,1.0
+970,0.0
+971,0.0
+972,0.0
+973,1.0
+974,0.0
+975,1.0
+976,1.0
+977,0.0
+978,0.0
+979,0.0
+980,0.0
+981,1.0
+982,0.0
+983,1.0
+984,0.0
+985,0.0
+986,1.0
+987,1.0
+988,0.0
+989,0.0
+990,0.0
+991,0.0
+992,0.0
+993,0.0
+994,0.0
+995,0.0
+996,0.0
+997,1.0
+998,1.0
+999,0.0
+1000,0.0
+1001,0.0
+1002,0.0
+1003,0.0
+1004,1.0
+1005,1.0
+1006,0.0
+1007,0.0
+1008,0.0
+1009,1.0
+1010,0.0
+1011,0.0
+1012,0.0
+1013,0.0
+1014,0.0
+1015,0.0
+1016,0.0
+1017,0.0
+1018,0.0
+1019,0.0
+1020,0.0
+1021,0.0
+1022,0.0
+1023,0.0
+1024,1.0
+1025,1.0
+1026,0.0
+1027,0.0
+1028,0.0
+1029,0.0
+1030,1.0
+1031,0.0
+1032,0.0
+1033,1.0
+1034,1.0
+1035,0.0
+1036,0.0
+1037,0.0
+1038,0.0
+1039,1.0
+1040,0.0
+1041,1.0
+1042,1.0
+1043,0.0
+1044,0.0
+1045,0.0
+1046,0.0
+1047,0.0
+1048,0.0
+1049,0.0
+1050,0.0
+1051,0.0
+1052,0.0
+1053,0.0
+1054,1.0
+1055,0.0
+1056,0.0
+1057,0.0
+1058,0.0
+1059,0.0
+1060,0.0
+1061,0.0
+1062,0.0
+1063,0.0
+1064,1.0
+1065,0.0
+1066,0.0
+1067,0.0
+1068,1.0
+1069,1.0
+1070,0.0
+1071,0.0
+1072,0.0
+1073,0.0
+1074,0.0
+1075,0.0
+1076,0.0
+1077,1.0
+1078,0.0
+1079,1.0
+1080,0.0
+1081,1.0
+1082,0.0
+1083,0.0
+1084,0.0
+1085,1.0
+1086,0.0
+1087,1.0
+1088,1.0
+1089,1.0
+1090,1.0
+1091,0.0
+1092,1.0
+1093,1.0
+1094,1.0
+1095,0.0
+1096,0.0
+1097,0.0
+1098,0.0
+1099,1.0
+1100,0.0
+1101,1.0
+1102,0.0
+1103,1.0
+1104,0.0
+1105,0.0
+1106,0.0
+1107,0.0
+1108,0.0
+1109,1.0
+1110,0.0
+1111,0.0
+1112,1.0
+1113,1.0
+1114,0.0
+1115,1.0
+1116,0.0
+1117,0.0
+1118,1.0
+1119,0.0
+1120,0.0
+1121,0.0
+1122,0.0
+1123,0.0
+1124,0.0
+1125,0.0
+1126,1.0
+1127,0.0
+1128,0.0
+1129,0.0
+1130,0.0
+1131,0.0
+1132,1.0
+1133,1.0
+1134,1.0
+1135,0.0
+1136,1.0
+1137,0.0
+1138,1.0
+1139,0.0
+1140,0.0
+1141,0.0
+1142,0.0
+1143,0.0
+1144,1.0
+1145,0.0
+1146,0.0
+1147,0.0
+1148,0.0
+1149,0.0
+1150,0.0
+1151,1.0
+1152,0.0
+1153,0.0
+1154,0.0
+1155,1.0
+1156,0.0
+1157,0.0
+1158,0.0
+1159,0.0
+1160,1.0
+1161,0.0
+1162,1.0
+1163,0.0
+1164,0.0
+1165,0.0
+1166,0.0
+1167,1.0
+1168,0.0
+1169,0.0
+1170,0.0
+1171,0.0
+1172,0.0
+1173,0.0
+1174,0.0
+1175,0.0
+1176,0.0
+1177,0.0
+1178,0.0
+1179,0.0
+1180,0.0
+1181,1.0
+1182,0.0
+1183,0.0
+1184,1.0
+1185,1.0
+1186,1.0
+1187,0.0
+1188,0.0
+1189,
+1190,
+1191,
+1192,
+1193,
+1194,
+1195,
+1196,
+1197,
+1198,
+1199,
+1200,
+1201,
+1202,
+1203,
+1204,
+1205,
+1206,
+1207,
+1208,
+1209,
+1210,
+1211,
+1212,
+1213,
+1214,
+1215,
+1216,
+1217,
+1218,
+1219,
+1220,
+1221,
+1222,
+1223,
+1224,
+1225,
+1226,
+1227,
+1228,
+1229,
+1230,
+1231,
+1232,
+1233,
+1234,
+1235,
+1236,
+1237,
+1238,
+1239,
+1240,
+1241,
+1242,
+1243,
+1244,
+1245,
+1246,
+1247,
+1248,
+1249,
+1250,
+1251,
+1252,
+1253,
+1254,
+1255,
+1256,
+1257,
+1258,
+1259,
+1260,
+1261,
+1262,
+1263,
+1264,
+1265,
+1266,
+1267,
+1268,
+1269,
+1270,
+1271,
+1272,
+1273,
+1274,
+1275,
+1276,
+1277,
+1278,
+1279,
+1280,
+1281,
+1282,
+1283,
+1284,
+1285,
+1286,
+1287,
+1288,
+1289,
+1290,
+1291,
+1292,
+1293,
+1294,
+1295,
+1296,
+1297,
+1298,
+1299,
+1300,
+1301,
+1302,
+1303,
+1304,
+1305,
+1306,
+1307,
+1308,
+1309,
diff --git a/titanic.ipynb b/titanic.ipynb
index cde5079..d90c3a9 100644
--- a/titanic.ipynb
+++ b/titanic.ipynb
@@ -1 +1,4113 @@
-{"cells":[{"cell_type":"markdown","metadata":{},"source":["
\n","# Ignore this"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["import numpy as np # linear algebra\n","import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n","import matplotlib.pyplot as plt\n","plt.style.use(\"seaborn-v0_8-whitegrid\")\n","\n","import seaborn as sns\n","\n","from collections import Counter\n","\n","import warnings\n","warnings.filterwarnings(\"ignore\")"]},{"cell_type":"markdown","metadata":{},"source":["
\n","# Load and Check Data"]},{"cell_type":"markdown","metadata":{},"source":["DataFrames hold the dataset in a tabular format for easy manipulation and analysis.
\n","CSV data is read into 'df' using Pandas' read_csv() function."]},{"cell_type":"code","execution_count":null,"metadata":{"_kg_hide-input":true,"execution":{"iopub.execute_input":"2024-04-01T06:45:27.416192Z","iopub.status.busy":"2024-04-01T06:45:27.415763Z","iopub.status.idle":"2024-04-01T06:45:27.433162Z","shell.execute_reply":"2024-04-01T06:45:27.431944Z","shell.execute_reply.started":"2024-04-01T06:45:27.416105Z"},"trusted":true},"outputs":[],"source":["train_df = pd.read_csv(\"./data/train.csv\")"]},{"cell_type":"markdown","metadata":{},"source":["### 1. Try to read the test .csv file into test_df"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:45:27.436611Z","iopub.status.busy":"2024-04-01T06:45:27.435916Z","iopub.status.idle":"2024-04-01T06:45:27.449974Z","shell.execute_reply":"2024-04-01T06:45:27.448230Z","shell.execute_reply.started":"2024-04-01T06:45:27.436517Z"},"trusted":true},"outputs":[],"source":["test_df = pd.read_csv(\"./data/test.csv\")\n","test_PassengerId = test_df[\"PassengerId\"]"]},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","execution":{"iopub.execute_input":"2024-04-01T06:45:27.452397Z","iopub.status.busy":"2024-04-01T06:45:27.451949Z","iopub.status.idle":"2024-04-01T06:45:27.462622Z","shell.execute_reply":"2024-04-01T06:45:27.461859Z","shell.execute_reply.started":"2024-04-01T06:45:27.452348Z"},"trusted":true},"outputs":[],"source":["print(\"The Columns of train_df are: \")\n","train_df.columns"]},{"cell_type":"markdown","metadata":{},"source":["### We can use head() to see the first few rows in the dataframe"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:45:27.464289Z","iopub.status.busy":"2024-04-01T06:45:27.463866Z","iopub.status.idle":"2024-04-01T06:45:27.491984Z","shell.execute_reply":"2024-04-01T06:45:27.491110Z","shell.execute_reply.started":"2024-04-01T06:45:27.464242Z"},"trusted":true},"outputs":[],"source":["train_df.head()"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:45:27.494326Z","iopub.status.busy":"2024-04-01T06:45:27.493637Z","iopub.status.idle":"2024-04-01T06:45:27.541999Z","shell.execute_reply":"2024-04-01T06:45:27.541210Z","shell.execute_reply.started":"2024-04-01T06:45:27.494251Z"},"jupyter":{"source_hidden":true},"trusted":true},"outputs":[],"source":["train_df.describe()"]},{"cell_type":"markdown","metadata":{},"source":["### 2. Without looking above, try checking the first few rows of test_df"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":[]},{"cell_type":"markdown","metadata":{},"source":["### 3. Now try checking for a description of test_df's data"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":[]},{"cell_type":"markdown","metadata":{},"source":["# Variable Description\n","
\n"," PassengerId: unique id number to each passenger \n"," Survived: passenger survive(1) or died(0) \n"," Pclass: passenger class \n"," Name: name \n"," Sex: gender of passenger \n"," Age: age of passenger \n"," SibSp: number of siblings/spouses \n"," Parch: number of parents/children \n"," Ticket: ticket number \n"," Fare: amount of money spent on ticket \n"," Cabin: cabin category \n"," Embarked: port where passenger embarked ( C = Cherbourg, Q = Queenstown, S = Southampton ) \n","
\n"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:45:27.544377Z","iopub.status.busy":"2024-04-01T06:45:27.543901Z","iopub.status.idle":"2024-04-01T06:45:27.557229Z","shell.execute_reply":"2024-04-01T06:45:27.555972Z","shell.execute_reply.started":"2024-04-01T06:45:27.544320Z"},"trusted":true},"outputs":[],"source":["train_df.info()"]},{"cell_type":"markdown","metadata":{},"source":["### Slice Rows and Columsn of DF (Assigmennt)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:53:12.214069Z","iopub.status.busy":"2024-04-01T06:53:12.213708Z","iopub.status.idle":"2024-04-01T06:53:12.223150Z","shell.execute_reply":"2024-04-01T06:53:12.222195Z","shell.execute_reply.started":"2024-04-01T06:53:12.214014Z"},"trusted":true},"outputs":[],"source":["# Printing the Second Row\n","train_df.iloc[2]"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["# Print the 5th Row"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:54:14.398373Z","iopub.status.busy":"2024-04-01T06:54:14.398006Z","iopub.status.idle":"2024-04-01T06:54:14.407886Z","shell.execute_reply":"2024-04-01T06:54:14.406590Z","shell.execute_reply.started":"2024-04-01T06:54:14.398326Z"},"trusted":true},"outputs":[],"source":["# Print the Sex Column\n","train_df['Sex']"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:54:24.550687Z","iopub.status.busy":"2024-04-01T06:54:24.550286Z","iopub.status.idle":"2024-04-01T06:54:24.555255Z","shell.execute_reply":"2024-04-01T06:54:24.553923Z","shell.execute_reply.started":"2024-04-01T06:54:24.550616Z"},"trusted":true},"outputs":[],"source":["# Print the Name Column"]},{"cell_type":"markdown","metadata":{},"source":["## Visualization (Assignment)"]},{"cell_type":"markdown","metadata":{},"source":["### Age -- Survived"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T07:13:34.450088Z","iopub.status.busy":"2024-04-01T07:13:34.449302Z","iopub.status.idle":"2024-04-01T07:13:34.932717Z","shell.execute_reply":"2024-04-01T07:13:34.930449Z","shell.execute_reply.started":"2024-04-01T07:13:34.450021Z"},"trusted":true},"outputs":[],"source":["plt.figure(figsize=(8, 6))\n","# Plot 1: Survivors vs Non Survivors\n","\n","# Creating a plot for the Survived Column\n","sns.countplot(x='Survived', data=train_df)\n","\n","plt.title('Survivors vs Non Survivors')\n","plt.xlabel('Survived')\n","plt.ylabel('Count')\n","plt.xticks([0, 1], ['No', 'Yes']) # Setting custom tick labels\n","plt.show()"]},{"cell_type":"markdown","metadata":{},"source":["### Try Plotting Passenger Class"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T07:14:31.768779Z","iopub.status.busy":"2024-04-01T07:14:31.768341Z","iopub.status.idle":"2024-04-01T07:14:32.062495Z","shell.execute_reply":"2024-04-01T07:14:32.060660Z","shell.execute_reply.started":"2024-04-01T07:14:31.768690Z"},"trusted":true},"outputs":[],"source":["plt.figure(figsize=(8, 6))\n","\n","# Make the plot for Pclass here:\n","\n","\n","plt.title('Count of Passengers In each Passenger Class')\n","plt.xlabel('Passenger Class')\n","plt.ylabel('Count')\n","plt.xticks([0, 1, 2], ['1st', '2nd', '3rd']) # Setting custom tick labels\n","plt.show()"]},{"cell_type":"markdown","metadata":{},"source":["### Try it for \"Embarked\""]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":[]},{"cell_type":"markdown","metadata":{},"source":["### Try Making a histogram for \"Fare\""]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":[]},{"cell_type":"markdown","metadata":{},"source":["### Here is the distplot for \"Fare\", refer to it after you tried it yourself:"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T07:18:24.402882Z","iopub.status.busy":"2024-04-01T07:18:24.402274Z","iopub.status.idle":"2024-04-01T07:18:24.798062Z","shell.execute_reply":"2024-04-01T07:18:24.796669Z","shell.execute_reply.started":"2024-04-01T07:18:24.402828Z"},"trusted":true},"outputs":[],"source":["sns.histplot(train_df['Fare'], bins=20, color='orange')\n","plt.title('Distribution of Passenger Fares')\n","plt.xlabel('Fare')\n","plt.ylabel('Frequency')\n","plt.show()"]},{"cell_type":"markdown","metadata":{},"source":["### Make a histogram for \"Age\" (Assignment)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T07:19:53.874413Z","iopub.status.busy":"2024-04-01T07:19:53.873686Z","iopub.status.idle":"2024-04-01T07:19:54.244996Z","shell.execute_reply":"2024-04-01T07:19:54.243521Z","shell.execute_reply.started":"2024-04-01T07:19:53.874351Z"},"trusted":true},"outputs":[],"source":["# Create the plot below"]},{"cell_type":"markdown","metadata":{},"source":["
\n","## Fill Missing: Age Feature"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:50.370496Z","iopub.status.busy":"2024-04-01T06:27:50.369419Z","iopub.status.idle":"2024-04-01T06:27:50.427731Z","shell.execute_reply":"2024-04-01T06:27:50.426655Z","shell.execute_reply.started":"2024-04-01T06:27:50.370387Z"},"trusted":true},"outputs":[],"source":["train_df[train_df[\"Age\"].isnull()]"]},{"cell_type":"markdown","metadata":{},"source":["### Try Checking for Null Values in Test Df"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["test_df.isnull().sum()"]},{"cell_type":"markdown","metadata":{},"source":["Run this to fix the Null Values"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T07:21:48.194895Z","iopub.status.busy":"2024-04-01T07:21:48.194020Z","iopub.status.idle":"2024-04-01T07:21:49.449282Z","shell.execute_reply":"2024-04-01T07:21:49.447918Z","shell.execute_reply.started":"2024-04-01T07:21:48.194825Z"},"trusted":true},"outputs":[],"source":["index_nan_age = list(train_df[\"Age\"][train_df[\"Age\"].isnull()].index)\n","for i in index_nan_age:\n"," age_pred = train_df[\"Age\"][((train_df[\"SibSp\"] == train_df.iloc[i][\"SibSp\"]) &(train_df[\"Parch\"] == train_df.iloc[i][\"Parch\"])& (train_df[\"Pclass\"] == train_df.iloc[i][\"Pclass\"]))].median()\n"," age_med = train_df[\"Age\"].median()\n"," if not np.isnan(age_pred):\n"," train_df[\"Age\"].iloc[i] = age_pred\n"," else:\n"," train_df[\"Age\"].iloc[i] = age_med\n","\n","index_nan_age = list(test_df[\"Age\"][test_df[\"Age\"].isnull()].index)\n","for i in index_nan_age:\n"," age_pred = test_df[\"Age\"][((test_df[\"SibSp\"] == test_df.iloc[i][\"SibSp\"]) &(test_df[\"Parch\"] == test_df.iloc[i][\"Parch\"])& (test_df[\"Pclass\"] == test_df.iloc[i][\"Pclass\"]))].median()\n"," age_med = test_df[\"Age\"].median()\n"," if not np.isnan(age_pred):\n"," test_df[\"Age\"].iloc[i] = age_pred\n"," else:\n"," test_df[\"Age\"].iloc[i] = age_med"]},{"cell_type":"markdown","metadata":{},"source":["## Analysing the correlation between the different columns"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T07:24:33.644174Z","iopub.status.busy":"2024-04-01T07:24:33.643621Z","iopub.status.idle":"2024-04-01T07:24:34.404306Z","shell.execute_reply":"2024-04-01T07:24:34.402938Z","shell.execute_reply.started":"2024-04-01T07:24:33.643935Z"},"trusted":true},"outputs":[],"source":["numerical_columns = train_df.select_dtypes(include=[np.number]).columns\n","sns.heatmap(train_df[numerical_columns].corr(), annot=True)"]},{"cell_type":"markdown","metadata":{},"source":["We see that Fare and Parch are positively correlated with Survived. Similarly, Fare and Class are negatively correlated, in the sense that the higher the higher the Fare, the lower the Class number (Remember that Class 1 < Class 2 < Class 3 in face value)."]},{"cell_type":"markdown","metadata":{},"source":["## Embarked"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:55.378151Z","iopub.status.busy":"2024-04-01T06:27:55.377756Z","iopub.status.idle":"2024-04-01T06:27:55.384785Z","shell.execute_reply":"2024-04-01T06:27:55.384101Z","shell.execute_reply.started":"2024-04-01T06:27:55.378107Z"},"trusted":true},"outputs":[],"source":["train_df[\"Embarked\"].head()"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:55.386265Z","iopub.status.busy":"2024-04-01T06:27:55.385875Z","iopub.status.idle":"2024-04-01T06:27:55.635178Z","shell.execute_reply":"2024-04-01T06:27:55.633609Z","shell.execute_reply.started":"2024-04-01T06:27:55.386223Z"},"trusted":true},"outputs":[],"source":["sns.countplot(x = \"Embarked\", data = train_df)\n","plt.show()"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:55.638242Z","iopub.status.busy":"2024-04-01T06:27:55.637447Z","iopub.status.idle":"2024-04-01T06:27:55.699106Z","shell.execute_reply":"2024-04-01T06:27:55.698208Z","shell.execute_reply.started":"2024-04-01T06:27:55.638150Z"},"trusted":true},"outputs":[],"source":["train_df = pd.get_dummies(train_df, columns=[\"Embarked\"])\n","train_df.head()"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["test_df = pd.get_dummies(test_df, columns=[\"Embarked\"])\n","test_df.head()"]},{"cell_type":"markdown","metadata":{},"source":["## Ticket (Assignment)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:55.700760Z","iopub.status.busy":"2024-04-01T06:27:55.700330Z","iopub.status.idle":"2024-04-01T06:27:55.708542Z","shell.execute_reply":"2024-04-01T06:27:55.707466Z","shell.execute_reply.started":"2024-04-01T06:27:55.700715Z"},"trusted":true},"outputs":[],"source":["train_df[\"Ticket\"].head(20)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:55.710291Z","iopub.status.busy":"2024-04-01T06:27:55.709980Z","iopub.status.idle":"2024-04-01T06:27:55.722810Z","shell.execute_reply":"2024-04-01T06:27:55.721839Z","shell.execute_reply.started":"2024-04-01T06:27:55.710231Z"},"trusted":true},"outputs":[],"source":["example_ticket = \"A/5. 2151\"\n","example_ticket.replace(\".\",\"\").replace(\"/\",\"\").strip().split(\" \")[0]"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:55.726116Z","iopub.status.busy":"2024-04-01T06:27:55.725689Z","iopub.status.idle":"2024-04-01T06:27:55.738095Z","shell.execute_reply":"2024-04-01T06:27:55.737043Z","shell.execute_reply.started":"2024-04-01T06:27:55.726039Z"},"trusted":true},"outputs":[],"source":["tickets = []\n","for i in list(train_df.Ticket):\n"," if not i.isdigit():\n"," tickets.append(i.replace(\".\",\"\").replace(\"/\",\"\").strip().split(\" \")[0])\n"," else:\n"," tickets.append(\"x\")\n","train_df[\"Ticket\"] = tickets\n","\n","# Do the same for the test set"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:55.740389Z","iopub.status.busy":"2024-04-01T06:27:55.739797Z","iopub.status.idle":"2024-04-01T06:27:55.755416Z","shell.execute_reply":"2024-04-01T06:27:55.754317Z","shell.execute_reply.started":"2024-04-01T06:27:55.740333Z"},"trusted":true},"outputs":[],"source":["train_df[\"Ticket\"].head(20)"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["test_df[\"Ticket\"].head(20)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:55.790832Z","iopub.status.busy":"2024-04-01T06:27:55.790500Z","iopub.status.idle":"2024-04-01T06:27:55.841011Z","shell.execute_reply":"2024-04-01T06:27:55.839862Z","shell.execute_reply.started":"2024-04-01T06:27:55.790770Z"},"trusted":true},"outputs":[],"source":["train_df = pd.get_dummies(train_df, columns= [\"Ticket\"], prefix = \"TcktName\")\n","train_df.head(10)"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["test_df = pd.get_dummies(test_df, columns= [\"Ticket\"], prefix = \"TcktName\")\n","test_df.head(10)"]},{"cell_type":"markdown","metadata":{},"source":["
\n","## Pclass"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:55.843395Z","iopub.status.busy":"2024-04-01T06:27:55.842833Z","iopub.status.idle":"2024-04-01T06:27:56.089225Z","shell.execute_reply":"2024-04-01T06:27:56.087578Z","shell.execute_reply.started":"2024-04-01T06:27:55.843168Z"},"trusted":true},"outputs":[],"source":["sns.countplot(x = \"Pclass\", data = train_df)\n","plt.show()"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.092270Z","iopub.status.busy":"2024-04-01T06:27:56.091722Z","iopub.status.idle":"2024-04-01T06:27:56.162888Z","shell.execute_reply":"2024-04-01T06:27:56.161841Z","shell.execute_reply.started":"2024-04-01T06:27:56.092186Z"},"trusted":true},"outputs":[],"source":["train_df[\"Pclass\"] = train_df[\"Pclass\"].astype(\"category\")\n","train_df = pd.get_dummies(train_df, columns= [\"Pclass\"])\n","train_df.head()"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["test_df[\"Pclass\"] = test_df[\"Pclass\"].astype(\"category\")\n","test_df = pd.get_dummies(test_df, columns= [\"Pclass\"])\n","test_df.head()"]},{"cell_type":"markdown","metadata":{},"source":["
\n","## Sex"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.164709Z","iopub.status.busy":"2024-04-01T06:27:56.164391Z","iopub.status.idle":"2024-04-01T06:27:56.205775Z","shell.execute_reply":"2024-04-01T06:27:56.204761Z","shell.execute_reply.started":"2024-04-01T06:27:56.164639Z"},"trusted":true},"outputs":[],"source":["train_df[\"Sex\"] = train_df[\"Sex\"].astype(\"category\")\n","train_df = pd.get_dummies(train_df, columns=[\"Sex\"])\n","train_df.head()"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["test_df[\"Sex\"] = test_df[\"Sex\"].astype(\"category\")\n","test_df = pd.get_dummies(test_df, columns=[\"Sex\"])\n","test_df.head()"]},{"cell_type":"markdown","metadata":{},"source":["## Drop Passenger ID and Cabin (Assignment)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.207602Z","iopub.status.busy":"2024-04-01T06:27:56.207299Z","iopub.status.idle":"2024-04-01T06:27:56.215886Z","shell.execute_reply":"2024-04-01T06:27:56.214401Z","shell.execute_reply.started":"2024-04-01T06:27:56.207550Z"},"trusted":true},"outputs":[],"source":["train_df.drop(labels = [\"PassengerId\", \"Cabin\"], axis = 1, inplace = True)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.217917Z","iopub.status.busy":"2024-04-01T06:27:56.217536Z","iopub.status.idle":"2024-04-01T06:27:56.228150Z","shell.execute_reply":"2024-04-01T06:27:56.227230Z","shell.execute_reply.started":"2024-04-01T06:27:56.217854Z"},"trusted":true},"outputs":[],"source":["train_df.columns"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["# Drop the PassengerId and Cabin columns from the test set"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["# Print the columns of the test set"]},{"cell_type":"markdown","metadata":{},"source":["
\n","# Modeling"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.230086Z","iopub.status.busy":"2024-04-01T06:27:56.229809Z","iopub.status.idle":"2024-04-01T06:27:56.238557Z","shell.execute_reply":"2024-04-01T06:27:56.237679Z","shell.execute_reply.started":"2024-04-01T06:27:56.230040Z"},"trusted":true},"outputs":[],"source":["from sklearn.model_selection import train_test_split, StratifiedKFold, GridSearchCV\n","from sklearn.linear_model import LogisticRegression\n","from sklearn.svm import SVC\n","from sklearn.ensemble import RandomForestClassifier, VotingClassifier\n","from sklearn.neighbors import KNeighborsClassifier\n","from sklearn.tree import DecisionTreeClassifier\n","from sklearn.metrics import accuracy_score"]},{"cell_type":"markdown","metadata":{},"source":["## Train - Test Split (Assignment)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.240103Z","iopub.status.busy":"2024-04-01T06:27:56.239830Z","iopub.status.idle":"2024-04-01T06:27:56.256809Z","shell.execute_reply":"2024-04-01T06:27:56.255463Z","shell.execute_reply.started":"2024-04-01T06:27:56.240056Z"},"trusted":true},"outputs":[],"source":["train_df_len = len(train_df)\n","train_df_len"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.314730Z","iopub.status.busy":"2024-04-01T06:27:56.313986Z","iopub.status.idle":"2024-04-01T06:27:56.333564Z","shell.execute_reply":"2024-04-01T06:27:56.332507Z","shell.execute_reply.started":"2024-04-01T06:27:56.314635Z"},"trusted":true},"outputs":[],"source":["\n","train = train_df[:train_df_len]\n","test = test_df\n","\n","# Select all numerical values from train and test\n","numeric_train = train.select_dtypes(include=[np.number])\n","numeric_test = test.select_dtypes(include=[np.number]) \n","\n","\n","X_train = numeric_train.drop(labels=[\"Survived\",], axis=1)\n","y_train = numeric_train[\"Survived\"]\n","\n","# Split the train data into train and test sets with a 1/3 ratio\n","X_train, X_test, y_train, y_test = # Use the train_test_split function here\n","\n","\n","print(\"X_train\", len(X_train))\n","print(\"X_test\", len(X_test))\n","print(\"y_train\", len(y_train))\n","print(\"y_test\", len(y_test))\n","print(\"test\", len(numeric_test))"]},{"cell_type":"markdown","metadata":{},"source":["## Simple Logistic Regression (Assignment)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.335970Z","iopub.status.busy":"2024-04-01T06:27:56.335281Z","iopub.status.idle":"2024-04-01T06:27:56.368083Z","shell.execute_reply":"2024-04-01T06:27:56.366489Z","shell.execute_reply.started":"2024-04-01T06:27:56.335561Z"},"trusted":true},"outputs":[],"source":["logreg = LogisticRegression()\n","logreg.fit(X_train, y_train)\n","acc_log_train = round(logreg.score(X_train, y_train)*100,2) \n","acc_log_test = round(logreg.score(X_test,y_test)*100,2)\n","# Print the accuracy on the training and test set"]},{"cell_type":"markdown","metadata":{},"source":["
\n","## Hyperparameter Tuning -- Grid Search -- Cross Validation\n","We will compare 5 ml classifier and evaluate mean accuracy of each of them by stratified cross validation.\n","\n","* Decision Tree\n","* SVM\n","* Random Forest\n","* KNN\n","* Logistic Regression"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.371066Z","iopub.status.busy":"2024-04-01T06:27:56.370400Z","iopub.status.idle":"2024-04-01T06:27:56.401742Z","shell.execute_reply":"2024-04-01T06:27:56.396867Z","shell.execute_reply.started":"2024-04-01T06:27:56.370802Z"},"trusted":true},"outputs":[],"source":["random_state = 42\n","classifier = [DecisionTreeClassifier(random_state = random_state),\n"," SVC(random_state = random_state),\n"," RandomForestClassifier(random_state = random_state),\n"," LogisticRegression(random_state = random_state),\n"," KNeighborsClassifier()]\n","\n","dt_param_grid = {\"min_samples_split\" : range(10,500,20),\n"," \"max_depth\": range(1,20,2)}\n","\n","svc_param_grid = {\"kernel\" : [\"rbf\"],\n"," \"gamma\": [0.001, 0.01, 0.1, 1],\n"," \"C\": [1,10,50,100,200,300,1000]}\n","\n","rf_param_grid = {\"max_features\": [1,3,10],\n"," \"min_samples_split\":[2,3,10],\n"," \"min_samples_leaf\":[1,3,10],\n"," \"bootstrap\":[False],\n"," \"n_estimators\":[100,300],\n"," \"criterion\":[\"gini\"]}\n","\n","logreg_param_grid = {\"C\":np.logspace(-3,3,7),\n"," \"penalty\": [\"l1\",\"l2\"]}\n","\n","knn_param_grid = {\"n_neighbors\": np.linspace(1,19,10, dtype = int).tolist(),\n"," \"weights\": [\"uniform\",\"distance\"],\n"," \"metric\":[\"euclidean\",\"manhattan\"]}\n","classifier_param = [dt_param_grid,\n"," svc_param_grid,\n"," rf_param_grid,\n"," logreg_param_grid,\n"," knn_param_grid]"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:27:56.413811Z","iopub.status.busy":"2024-04-01T06:27:56.404322Z","iopub.status.idle":"2024-04-01T06:29:38.718970Z","shell.execute_reply":"2024-04-01T06:29:38.717807Z","shell.execute_reply.started":"2024-04-01T06:27:56.413658Z"},"trusted":true},"outputs":[],"source":["cv_result = []\n","best_estimators = []\n","for i in range(len(classifier)):\n"," clf = GridSearchCV(classifier[i], param_grid=classifier_param[i], cv = StratifiedKFold(n_splits = 10), scoring = \"accuracy\", n_jobs = -1,verbose = 1)\n"," clf.fit(X_train,y_train)\n"," cv_result.append(clf.best_score_)\n"," best_estimators.append(clf.best_estimator_)\n"," print(cv_result[i])"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:29:38.722928Z","iopub.status.busy":"2024-04-01T06:29:38.722207Z","iopub.status.idle":"2024-04-01T06:29:39.075423Z","shell.execute_reply":"2024-04-01T06:29:39.073987Z","shell.execute_reply.started":"2024-04-01T06:29:38.722582Z"},"trusted":true},"outputs":[],"source":["cv_results = pd.DataFrame({\"Cross Validation Means\":cv_result, \"ML Models\":[\"DecisionTreeClassifier\", \"SVM\",\"RandomForestClassifier\",\n"," \"LogisticRegression\",\n"," \"KNeighborsClassifier\"]})\n","\n","g = sns.barplot(x=\"Cross Validation Means\",y= \"ML Models\", data=cv_results)\n","g.set_xlabel(\"Mean Accuracy\")\n","g.set_title(\"Cross Validation Scores\")"]},{"cell_type":"markdown","metadata":{},"source":["## Ensemble Modeling (Assignment)"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:29:39.078654Z","iopub.status.busy":"2024-04-01T06:29:39.077840Z","iopub.status.idle":"2024-04-01T06:29:39.862871Z","shell.execute_reply":"2024-04-01T06:29:39.860937Z","shell.execute_reply.started":"2024-04-01T06:29:39.078554Z"},"trusted":true},"outputs":[],"source":["votingC = VotingClassifier(estimators = [(\"dt\",best_estimators[0]),\n"," (\"rfc\",best_estimators[2]),\n"," (\"lr\",best_estimators[3])],\n"," voting = \"soft\", n_jobs = -1)\n","votingC = votingC.fit(X_train, y_train)\n","\n","# Print the accuracy score of the voting classifier"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["# Drop the null values which are going to cause you an error in the next cell"]},{"cell_type":"markdown","metadata":{},"source":["
\n","## Prediction and Submission"]},{"cell_type":"code","execution_count":null,"metadata":{"execution":{"iopub.execute_input":"2024-04-01T06:29:39.865981Z","iopub.status.busy":"2024-04-01T06:29:39.865330Z","iopub.status.idle":"2024-04-01T06:29:39.977357Z","shell.execute_reply":"2024-04-01T06:29:39.973301Z","shell.execute_reply.started":"2024-04-01T06:29:39.865906Z"},"trusted":true},"outputs":[],"source":["test_survived = pd.Series(votingC.predict(numeric_test), name=\"Survived\").astype(int)\n","results = pd.concat([test_PassengerId, test_survived], axis=1)\n","results.to_csv(\"titanic.csv\", index=False)\n","print(results)"]},{"cell_type":"markdown","metadata":{},"source":["# Congratulations on finishing the assignment!!\n","\n","### The submission is the titanic.csv which was just created, and this file which you have modified."]}],"metadata":{"kaggle":{"accelerator":"none","dataSources":[{"databundleVersionId":26502,"sourceId":3136,"sourceType":"competition"}],"dockerImageVersionId":29852,"isGpuEnabled":false,"isInternetEnabled":false,"language":"python","sourceType":"notebook"},"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.11.7"}},"nbformat":4,"nbformat_minor":4}
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "# Ignore this"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np # linear algebra\n",
+ "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.style.use(\"seaborn-v0_8-whitegrid\")\n",
+ "\n",
+ "import seaborn as sns\n",
+ "\n",
+ "from collections import Counter\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings(\"ignore\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "# Load and Check Data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "DataFrames hold the dataset in a tabular format for easy manipulation and analysis.
\n",
+ "CSV data is read into 'df' using Pandas' read_csv() function."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "_kg_hide-input": true
+ },
+ "outputs": [],
+ "source": [
+ "train_df = pd.read_csv(\"/Downloads/train.csv\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 1. Try to read the test .csv file into test_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "test_df = pd.read_csv(\"/Downloads/test.csv\")\n",
+ "test_PassengerId = test_df[\"PassengerId\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0",
+ "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Columns of train_df are: \n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',\n",
+ " 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "print(\"The Columns of train_df are: \")\n",
+ "train_df.columns"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### We can use head() to see the first few rows in the dataframe"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Ticket | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " male | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " A/5 21171 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " female | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " PC 17599 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " female | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " STON/O2. 3101282 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " female | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 113803 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 5 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " male | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 373450 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ "
\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": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Pclass | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Fare | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | count | \n",
+ " 891.000000 | \n",
+ " 891.000000 | \n",
+ " 891.000000 | \n",
+ " 714.000000 | \n",
+ " 891.000000 | \n",
+ " 891.000000 | \n",
+ " 891.000000 | \n",
+ "
\n",
+ " \n",
+ " | mean | \n",
+ " 446.000000 | \n",
+ " 0.383838 | \n",
+ " 2.308642 | \n",
+ " 29.699118 | \n",
+ " 0.523008 | \n",
+ " 0.381594 | \n",
+ " 32.204208 | \n",
+ "
\n",
+ " \n",
+ " | std | \n",
+ " 257.353842 | \n",
+ " 0.486592 | \n",
+ " 0.836071 | \n",
+ " 14.526497 | \n",
+ " 1.102743 | \n",
+ " 0.806057 | \n",
+ " 49.693429 | \n",
+ "
\n",
+ " \n",
+ " | min | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 0.420000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ "
\n",
+ " \n",
+ " | 25% | \n",
+ " 223.500000 | \n",
+ " 0.000000 | \n",
+ " 2.000000 | \n",
+ " 20.125000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 7.910400 | \n",
+ "
\n",
+ " \n",
+ " | 50% | \n",
+ " 446.000000 | \n",
+ " 0.000000 | \n",
+ " 3.000000 | \n",
+ " 28.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 14.454200 | \n",
+ "
\n",
+ " \n",
+ " | 75% | \n",
+ " 668.500000 | \n",
+ " 1.000000 | \n",
+ " 3.000000 | \n",
+ " 38.000000 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 31.000000 | \n",
+ "
\n",
+ " \n",
+ " | max | \n",
+ " 891.000000 | \n",
+ " 1.000000 | \n",
+ " 3.000000 | \n",
+ " 80.000000 | \n",
+ " 8.000000 | \n",
+ " 6.000000 | \n",
+ " 512.329200 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Survived Pclass Age SibSp \\\n",
+ "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n",
+ "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n",
+ "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n",
+ "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n",
+ "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n",
+ "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n",
+ "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n",
+ "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n",
+ "\n",
+ " Parch Fare \n",
+ "count 891.000000 891.000000 \n",
+ "mean 0.381594 32.204208 \n",
+ "std 0.806057 49.693429 \n",
+ "min 0.000000 0.000000 \n",
+ "25% 0.000000 7.910400 \n",
+ "50% 0.000000 14.454200 \n",
+ "75% 0.000000 31.000000 \n",
+ "max 6.000000 512.329200 "
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df.describe()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 2. Without looking above, try checking the first few rows of test_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Ticket | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 892 | \n",
+ " 3 | \n",
+ " Kelly, Mr. James | \n",
+ " male | \n",
+ " 34.5 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 330911 | \n",
+ " 7.8292 | \n",
+ " NaN | \n",
+ " Q | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 893 | \n",
+ " 3 | \n",
+ " Wilkes, Mrs. James (Ellen Needs) | \n",
+ " female | \n",
+ " 47.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 363272 | \n",
+ " 7.0000 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 894 | \n",
+ " 2 | \n",
+ " Myles, Mr. Thomas Francis | \n",
+ " male | \n",
+ " 62.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 240276 | \n",
+ " 9.6875 | \n",
+ " NaN | \n",
+ " Q | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 895 | \n",
+ " 3 | \n",
+ " Wirz, Mr. Albert | \n",
+ " male | \n",
+ " 27.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 315154 | \n",
+ " 8.6625 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 896 | \n",
+ " 3 | \n",
+ " Hirvonen, Mrs. Alexander (Helga E Lindqvist) | \n",
+ " female | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 3101298 | \n",
+ " 12.2875 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Pclass Name Sex \\\n",
+ "0 892 3 Kelly, Mr. James male \n",
+ "1 893 3 Wilkes, Mrs. James (Ellen Needs) female \n",
+ "2 894 2 Myles, Mr. Thomas Francis male \n",
+ "3 895 3 Wirz, Mr. Albert male \n",
+ "4 896 3 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female \n",
+ "\n",
+ " Age SibSp Parch Ticket Fare Cabin Embarked \n",
+ "0 34.5 0 0 330911 7.8292 NaN Q \n",
+ "1 47.0 1 0 363272 7.0000 NaN S \n",
+ "2 62.0 0 0 240276 9.6875 NaN Q \n",
+ "3 27.0 0 0 315154 8.6625 NaN S \n",
+ "4 22.0 1 1 3101298 12.2875 NaN S "
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 3. Now try checking for a description of test_df's data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Pclass | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Fare | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | count | \n",
+ " 418.000000 | \n",
+ " 418.000000 | \n",
+ " 332.000000 | \n",
+ " 418.000000 | \n",
+ " 418.000000 | \n",
+ " 417.000000 | \n",
+ "
\n",
+ " \n",
+ " | mean | \n",
+ " 1100.500000 | \n",
+ " 2.265550 | \n",
+ " 30.272590 | \n",
+ " 0.447368 | \n",
+ " 0.392344 | \n",
+ " 35.627188 | \n",
+ "
\n",
+ " \n",
+ " | std | \n",
+ " 120.810458 | \n",
+ " 0.841838 | \n",
+ " 14.181209 | \n",
+ " 0.896760 | \n",
+ " 0.981429 | \n",
+ " 55.907576 | \n",
+ "
\n",
+ " \n",
+ " | min | \n",
+ " 892.000000 | \n",
+ " 1.000000 | \n",
+ " 0.170000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ "
\n",
+ " \n",
+ " | 25% | \n",
+ " 996.250000 | \n",
+ " 1.000000 | \n",
+ " 21.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 7.895800 | \n",
+ "
\n",
+ " \n",
+ " | 50% | \n",
+ " 1100.500000 | \n",
+ " 3.000000 | \n",
+ " 27.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 14.454200 | \n",
+ "
\n",
+ " \n",
+ " | 75% | \n",
+ " 1204.750000 | \n",
+ " 3.000000 | \n",
+ " 39.000000 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 31.500000 | \n",
+ "
\n",
+ " \n",
+ " | max | \n",
+ " 1309.000000 | \n",
+ " 3.000000 | \n",
+ " 76.000000 | \n",
+ " 8.000000 | \n",
+ " 9.000000 | \n",
+ " 512.329200 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Pclass Age SibSp Parch Fare\n",
+ "count 418.000000 418.000000 332.000000 418.000000 418.000000 417.000000\n",
+ "mean 1100.500000 2.265550 30.272590 0.447368 0.392344 35.627188\n",
+ "std 120.810458 0.841838 14.181209 0.896760 0.981429 55.907576\n",
+ "min 892.000000 1.000000 0.170000 0.000000 0.000000 0.000000\n",
+ "25% 996.250000 1.000000 21.000000 0.000000 0.000000 7.895800\n",
+ "50% 1100.500000 3.000000 27.000000 0.000000 0.000000 14.454200\n",
+ "75% 1204.750000 3.000000 39.000000 1.000000 0.000000 31.500000\n",
+ "max 1309.000000 3.000000 76.000000 8.000000 9.000000 512.329200"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df.describe()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Variable Description\n",
+ "\n",
+ " PassengerId: unique id number to each passenger \n",
+ " Survived: passenger survive(1) or died(0) \n",
+ " Pclass: passenger class \n",
+ " Name: name \n",
+ " Sex: gender of passenger \n",
+ " Age: age of passenger \n",
+ " SibSp: number of siblings/spouses \n",
+ " Parch: number of parents/children \n",
+ " Ticket: ticket number \n",
+ " Fare: amount of money spent on ticket \n",
+ " Cabin: cabin category \n",
+ " Embarked: port where passenger embarked ( C = Cherbourg, Q = Queenstown, S = Southampton ) \n",
+ "
\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "RangeIndex: 891 entries, 0 to 890\n",
+ "Data columns (total 12 columns):\n",
+ " # Column Non-Null Count Dtype \n",
+ "--- ------ -------------- ----- \n",
+ " 0 PassengerId 891 non-null int64 \n",
+ " 1 Survived 891 non-null int64 \n",
+ " 2 Pclass 891 non-null int64 \n",
+ " 3 Name 891 non-null object \n",
+ " 4 Sex 891 non-null object \n",
+ " 5 Age 714 non-null float64\n",
+ " 6 SibSp 891 non-null int64 \n",
+ " 7 Parch 891 non-null int64 \n",
+ " 8 Ticket 891 non-null object \n",
+ " 9 Fare 891 non-null float64\n",
+ " 10 Cabin 204 non-null object \n",
+ " 11 Embarked 889 non-null object \n",
+ "dtypes: float64(2), int64(5), object(5)\n",
+ "memory usage: 83.7+ KB\n"
+ ]
+ }
+ ],
+ "source": [
+ "train_df.info()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Slice Rows and Columsn of DF (Assigmennt)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "PassengerId 3\n",
+ "Survived 1\n",
+ "Pclass 3\n",
+ "Name Heikkinen, Miss. Laina\n",
+ "Sex female\n",
+ "Age 26.0\n",
+ "SibSp 0\n",
+ "Parch 0\n",
+ "Ticket STON/O2. 3101282\n",
+ "Fare 7.925\n",
+ "Cabin NaN\n",
+ "Embarked S\n",
+ "Name: 2, dtype: object"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Printing the Second Row\n",
+ "train_df.iloc[2]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "PassengerId 6\n",
+ "Survived 0\n",
+ "Pclass 3\n",
+ "Name Moran, Mr. James\n",
+ "Sex male\n",
+ "Age NaN\n",
+ "SibSp 0\n",
+ "Parch 0\n",
+ "Ticket 330877\n",
+ "Fare 8.4583\n",
+ "Cabin NaN\n",
+ "Embarked Q\n",
+ "Name: 5, dtype: object"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Print the 5th Row\n",
+ "train_df.iloc[5]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 male\n",
+ "1 female\n",
+ "2 female\n",
+ "3 female\n",
+ "4 male\n",
+ " ... \n",
+ "886 male\n",
+ "887 female\n",
+ "888 female\n",
+ "889 male\n",
+ "890 male\n",
+ "Name: Sex, Length: 891, dtype: object"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Print the Sex Column\n",
+ "train_df['Sex']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 Braund, Mr. Owen Harris\n",
+ "1 Cumings, Mrs. John Bradley (Florence Briggs Th...\n",
+ "2 Heikkinen, Miss. Laina\n",
+ "3 Futrelle, Mrs. Jacques Heath (Lily May Peel)\n",
+ "4 Allen, Mr. William Henry\n",
+ " ... \n",
+ "886 Montvila, Rev. Juozas\n",
+ "887 Graham, Miss. Margaret Edith\n",
+ "888 Johnston, Miss. Catherine Helen \"Carrie\"\n",
+ "889 Behr, Mr. Karl Howell\n",
+ "890 Dooley, Mr. Patrick\n",
+ "Name: Name, Length: 891, dtype: object"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Print the Name Column\n",
+ "train_df['Name']"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Visualization (Assignment)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Age -- Survived"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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eueddzR//nx9+umnmjNnjg1mCwClOTg4aNKkSfr444+VnJys5cuXa/LkyXJyctLo0aPl4eGh999/XzNnztTGjRsttxisWrVKX375pVasWKH169frwoULmjFjho2PBrcS4hWopMtXLeLi4kqN7dy5UydOnNDcuXPl4+Ojrl27atKkSXrvvfd04cIFG8wWAEq766671L9/fz399NMKCwtT9+7dtXv3bmVmZmratGlq0aKFOnfurAkTJmjlypWSpIyMDDk5Ocnb21stW7bUrFmzNGLECBsfCW4lxn5JAWBr9vb2mjJlih599FElJydbjR05ckTNmze3+paQjh07qrCwUD/++KN8fX2re7oAcEUjR47Uhx9+qJiYGEm/nL/OnDmjoKAgyzrFxcW6ePGiTp8+rYceekhJSUkKCQlRcHCwevfurejoaFtNH7cg4hX4HTp27KiBAwcqLi5Ow4cPtyx3cnIqte7l+8Uu/xcAbgSXz1eX/1tYWKgWLVpo0aJFpdatU6eO6tevr3/+85/69NNP9emnn+q1117Tpk2btGrVKj6hANWC2waA3+m5555Tbm6u1Zu37rjjDh09elRnzpyxLEtNTZWDg4Nuv/12G8wSACrmjjvuUGZmptzd3dWsWTM1a9ZMGRkZev3112VnZ6cPPvhA27dvV0REhGbPnq1ly5YpJSVF//vf/2w9ddwiiFfgd6pfv76ee+45HT9+3LKsW7duatq0qZ5//nl9++232r17t6ZNm6bIyEi5ubnZcLYAUL6QkBB5e3tr/Pjx+vbbb/XVV1/p5ZdflrOzs+zt7fXzzz8rLi5OX3zxhdLT07Vx40Y1btxY9evXt/XUcYvgtgGgCgwaNEiJiYk6efKkpF/uh120aJGmTZumBx98ULVr11b//v317LPP2nimAFA+e3t7vfHGG5bzl4uLi8LDwzVhwgRJ0uDBg5WVlaXx48fr7Nmzat++vd544w3Z29vbeOa4VdiV8P1vAAAAMAS3DQAAAMAYxCsAAACMQbwCAADAGMQrAAAAjEG8AgAAwBjEKwAAAIxBvAIAAMAYxCsAAACMQbwCQBW7dOmSFixYoHvuuUft27dXz549NXPmTJ0/f77K97VgwQINGTKkyrcrST4+PtqzZ8912TYAVBZfDwsAVezVV1/V559/runTp6tp06ZKT09XXFycjh07psWLF1fpvh5//PHrFq8AcCMiXgGgir3//vuaMWOGunbtKklq0qSJpkyZosGDB+vkyZNq2LBhle2rdu3aVbYtADABtw0AQBWzs7PT7t27VVxcbFkWGBiopKQk1a9fX7169dKGDRssY3v27JGPj48kKSMjQz4+PoqPj9ddd92l2NhY+fn5affu3Zb1z58/Lz8/P3311VeW2waKi4vVvXt3JSYmWtYrKSlRjx499I9//EOS9NVXXyk6OlodOnRQ//79tXXrVqt5L1y4UF27dlXnzp21bt266/LcAMDvxZVXAKhiQ4cO1euvv67k5GSFhobq7rvvVkhIiFq1alXhbezbt0+JiYkqLi7W2bNntW3bNnXp0kWS9Omnn8rd3V1BQUH64osvJEk1atRQeHi4tm3bpoEDB0qSUlNTdebMGd1zzz3Kzs7WU089pXHjxql79+5KTU3VCy+8IA8PD3Xq1Elr1qzRypUrNXv2bDVu3FivvPJK1T8xAFAFuPIKAFUsJiZGc+fOVePGjbV27VqNHTu21FXRqxk2bJhuv/12NW/eXP369dO2bdtUUlIiSdq6dasiIiJkZ2dn9Zh+/fpp165dljeGbd26VaGhoXJ1ddWqVat09913649//KOaNWumqKgoPfTQQ3r77bclSWvXrtWwYcMUFhYmX19fTZ8+vYqeDQCoWsQrAFwHAwYM0OrVq/X555/r1VdfVevWrTVx4kQdOHCgQo/39va2/H9YWJjOnTuntLQ05eXlaefOnerbt2+pxwQEBKhBgwbasWOHJOnjjz+2rPf9999r+/btCgwMtPxJSEjQ0aNHJUlHjhyRr6+vZVutWrWSi4tLZQ8fAK4bbhsAgCr0zTff6IMPPtALL7wgSapfv7769++vPn366L777rO6d/WyoqKiUsucnJws/+/i4qKwsDBt3bpVJ06ckKenpzp06HDF/fft21dbt25Vs2bNdPr0afXs2VOSVFhYqP79+2vkyJFW6zs4/N9fA5ev7F5pDABuFFx5BYAqVFRUpLfeeksHDx60Wu7o6KhatWrJ3d1dNWvW1IULFyxj6enpV91uv379tGPHDiUnJ1/xquuv19u1a5e2bt2qXr16ydnZWZJ0xx136NixY2rWrJnlzyeffKKNGzdKklq3bq3//Oc/lu1kZGTo3Llz13TsAFAdiFcAqELt2rVTz549NWrUKG3cuFEZGRlKTU3V5MmTVVBQoPvuu09+fn5av369Dh06pD179mjFihVX3W6PHj108uTJq8arr6+vGjZsqISEBEVERFiWP/roozpw4IDmzZuno0ePauPGjXrttdfk5eUlSfrjH/+olStXauvWrTp06JAmTpyoGjX4KwLAjYczEwBUsfnz5ysqKkoLFy5URESEnnrqKZ0/f14JCQlydXXVM888Izc3N0VHRysuLk5PP/30Vbfp6Oio3r17q3HjxrrzzjvLXbdv376yt7dXjx49LMu8vb21ePFi7dy5U5GRkZo/f75eeOEFDRgwQJIUFRWlsWPHatq0aXr00UfVrVs3ubm5/b4nAgCuA7uS397kBAAAANyguPIKAAAAYxCvAAAAMAbxCgAAAGMQrwAAADAG8QoAAABjEK8AAAAwBvEKAAAAYxCvAAAAMAbxCgAAAGMQrwAAADAG8QoAAABj/D8DOAcAMdIsWgAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(8, 6))\n",
+ "# Plot 1: Survivors vs Non Survivors\n",
+ "\n",
+ "# Creating a plot for the Survived Column\n",
+ "sns.countplot(x='Survived', data=train_df)\n",
+ "\n",
+ "plt.title('Survivors vs Non Survivors')\n",
+ "plt.xlabel('Survived')\n",
+ "plt.ylabel('Count')\n",
+ "plt.xticks([0, 1], ['No', 'Yes']) # Setting custom tick labels\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Try Plotting Passenger Class"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAq8AAAIcCAYAAADYP0dGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABIrUlEQVR4nO3deXwN9/7H8fcRTawhYinS0iKEREQioXbaWqrlWooqtbRBgqtqC62d2KlI7FrKrS2oqm66uFVqSSuu7VpLUMROE1nn94drfo6gQTimXs/HI49HznznzHxmTubkfb7nOzM2wzAMAQAAABaQzdEFAAAAAJlFeAUAAIBlEF4BAABgGYRXAAAAWAbhFQAAAJZBeAUAAIBlEF4BAABgGYRXAAAAWAbhFbAY7isCAHiSZXd0AcDj6D//+Y8WLlyobdu26fz58ypcuLCqVaum4OBgPfPMMw6rKyoqSs7Oznr77bcfaDmpqal6//339fXXX8tmsykqKkpVq1a1m2fLli3q0KGD3TSbzaZcuXLJ09NTwcHBqlev3gPVAXsDBw7U1q1b9f333zu6lEyrV6+eAgMDNXbs2Ht+3okTJ+ymOTs76+mnn1bDhg3Vo0cPubi4ZGWpT4TMvneVLVtWPXr0UM+ePR1YLXB/CK/ALRYvXqwxY8YoKChI7733ngoXLqyjR49q3rx5+uabb7RgwQKVK1fOIbV9+OGH6tGjxwMv56efftKqVasUEhKiF154QeXLl7/jvEOGDFGFChUkXe/1vXTpkubPn6+QkBDNmjVLtWvXfuB68GSqXbu2QkJCzMdJSUnasmWLoqKidOLECU2ePNmB1VnP4/zeBWQlwitwk5iYGI0ePVrt2rXT4MGDzelBQUF68cUX1axZMw0aNEgrV650YJUP7uLFi5Kk5s2b/2VPcunSpVWpUiW7aQEBAapTp44WLlxIeMV9K1CgQIa/raCgIJ06dUorV67UwIEDVbhwYccUZzFPynsXIDHmFbAzb9485c2bV3369MnQVqBAAQ0cOFD169dXQkKCJCktLU2LFy/Wq6++qooVK6pOnTqaOHGikpKSzOe1b99e7du3t1vWli1bVLZsWW3ZskWStHLlSpUvX16xsbFq3bq1fHx8VLduXc2bN898TtmyZSVJ06dPN3+/nb+qaeDAgRo4cKAk6cUXX8xQW2bkyZNHzz33nE6ePGlO27dvn3r06KGqVauqQoUKqlmzpkaNGqVr166Z8/z88896/fXX5efnpypVqqh79+46dOiQ2X7s2DF169ZNQUFB8vX1VevWrbVhwwa7de/fv19du3ZV5cqVVblyZYWGhiouLi7Dvt28ebM6d+4sX19fVa9eXRMmTFBaWpo539WrVzVkyBBVq1ZNfn5+evfdd/Xxxx9n2Lfr169X8+bN5ePjo+rVq2vUqFHm6y9JEREReumllzR9+nQFBgaqRo0aunTpknbt2qW33npL/v7+8vPzU8eOHbVjx4572s83lv3jjz/q1Vdflbe3txo0aKDVq1f/5XO3b9+uN998U76+vgoMDNSAAQN0/vx5u3m2bdumLl26qEqVKvL29la9evUUERGh9PR0u/00cuRI1axZU5UqVVKLFi30448/2i0nJSVF48ePV/Xq1VWpUiV17txZR48evadtvZm3t7cMw9Aff/whSbp27ZomTZqkl19+Wd7e3qpcubI6deqkvXv3ms85f/683nvvPVWvXl0+Pj5q2rSp3X5KT0/XlClTVK9ePXNbJ02apJSUFHOepKQkjR8/XrVr15a3t7deffVVrVu3zq62evXqadq0aRo3bpxeeOEFVaxYUV26dNHvv/9uN9+qVavUuHFj+fj46LXXXtPmzZtVvnx5u/B48uRJ9enTR4GBgfL19dVbb72lPXv2mO3Hjx9X2bJl9dFHH6lhw4by9fVVdHT0bffZvb533epRHb9AViC8Av9jGIY2btyoatWqKWfOnLedp3HjxgoNDVWuXLkkXf9KPTw8XC+++KJmzJihdu3aadGiRQoJCbnnE6vS09PVu3dvNW7cWLNnz1blypU1fvx4/fTTT5KkpUuXSpJatmxp/n47f1VTSEiIunfvLul6EB46dOg91SlJycnJOn78uJ599llJ0pkzZ9SuXTslJiZq7NixmjNnjl555RV98sknWrhwoSQpLi5OISEh8vb21owZMzR69GgdOXJEwcHBSk9PV3p6urp27arExESNHz9eUVFRyp8/v7p3724GoSNHjqhNmzY6d+6cxo0bp9GjRysuLk5t27bVuXPn7Grs27ev/P39NXPmTDVp0kRz587V8uXLzfaQkBB9+eWX6tmzp6ZMmaI///xTkyZNslvG559/rtDQUD3//POKjIxUjx49tGbNmgyv78mTJ7VhwwZNmTJF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eKIMGjRIjRs3liSlpqbql19+0eDBg5U/f341a9bMscU5UHh4uFavXq2+ffsqMDBQFy9e1Icffqg333xTy5cvV4ECBRxdIgBIYtgAgCdM3rx5VahQIRUqVEhFixbVP/7xD1WrVk3ffPONo0tzmO3bt2vBggWKjIxUq1atVKJECfn6+ioyMlKpqalasGCBo0sEABPhFcATL3v27HrqqackSVevXlVYWJiqVasmb29vNWzYUOvXrzfnXbdunRo0aCAfHx81btzYrm3hwoWqW7eufHx81Lx5c23fvt1s279/v9q3b6+KFSuqQYMGWrx4sdkWERGh9957T0OHDlXlypVVrVo1zZkzx2xPT0/XxIkTFRQUpKCgIEVFRemll17Sli1bJEmXL19Wv379VLlyZdWoUUMjR47UtWvXJElbtmxRvXr1NHToUPn7+2v27NkZtn/16tWqWLGiAgIC7KbnzJlTM2bMULt27TI8xzAMzZw5U/Xq1ZO3t7dq1Kih6dOnm+379u1TmzZt5Ovrq5o1a9q1bd68WU2bNpWPj4/q16+vJUuW/MUrBAD/j/AK4ImVkpKib775Rj///LPq168vSRo9erSOHDmi+fPna+3atQoICNDgwYOVnJysc+fOqX///uratau++uortWjRQn369NHFixe1Z88ejR8/XkOHDtWXX36pgIAA9e7dW+np6bp27Zreeecd+fv7a82aNRowYICioqK0evVqs5avv/5aLi4uWrVqlbp06aKJEyfqyJEjkqRZs2Zp9erVmjRpkj766CP9+OOPiouLM587ePBgXblyRZ9++qmioqL0n//8RyNGjDDbT5w4oeTkZK1cuVJNmjTJsB/27dsnHx+f2+6j8uXLq3Dhwhmmr169WgsWLNDo0aP11VdfKTQ0VBEREdq9e7ckqX///vLy8tLatWs1evRozZ07Vxs2bFBaWpp69+6thg0b6ssvv9Q///lPDR8+XAcPHrz3FxDAE4kxrwCeKEOHDtXIkSMlSdeuXVOOHDn01ltv6bXXXpMkValSRZ06dZKnp6ckqXPnzlq+fLnOnTunCxcuKCUlRU8//bSKFy+uzp07q2zZsnJxcdGJEydks9lUrFgxeXh4qHfv3qpbt67S09P1+eefy93dXb1795YklSxZUidOnNDChQvNcbb58+fXgAED5OTkpLfffltz5szRrl279Nxzz+lf//qXevfurRo1aki6fsJUo0aNJEnHjh3T+vXrtXXrVuXNm1eSNHLkSDVr1kxhYWHmdr/99tsqUaLEbffJlStXlCdPnnvaj0WLFlV4eLiqVasmSWrbtq0iIyN14MABVahQQSdOnFD9+vVVvHhxPfPMM/roo4/k4eGhK1eu6OLFiypYsKA8PDzk4eGhwoULq1ChQve0fgBPLsIrgCdKr1699PLLL0uSXFxcVKhQITk5OZntzZo10/r167Vs2TIdPnzY7ElMS0uTl5eX6tSpo06dOum5555T/fr11apVK+XMmVM1atSQp6enXn31VZUvX95sy549uw4fPqx9+/bJz8/PXE9aWprdej08POwe586dW6mpqTp//rzOnDlj1zP6/PPPK1++fJKkQ4cOKT09XbVq1bLbzvT0dB09etRu+XeSP39+Xb58+Z72Y9WqVRUbG6tJkybp0KFD2rt3r+Lj45Weni5J6tq1qyZPnqylS5eqTp06atq0qRlQ27Ztq/fff19RUVGqW7euWrRoYW4PAPwVwiuAJ4q7u/sdeyCl6193//bbb2ratKnatm2rQoUKqXXr1pIkm82mWbNmaefOnfruu+/07bff6l//+pf+9a9/ycvLS8uXL9fWrVv1ww8/aOXKlfr000+1cuVKpaamqlq1ahoyZMgd13tjzO3NDMNQ9uzZzd9vbZOuh+C8efMqOjo6w/OLFCmi2NhYSdeD+p1UqFBBu3btum3bggULdPbsWb333nt205cvX64xY8aoVatWevnllzVgwAB16NDBbA8ODlajRo20fv16ff/993rrrbc0cuRItWrVSsOGDVO7du20fv16rV+/XkuXLlVUVJRq1659xxoB4AbGvALA/1y9elVr167VlClT1KtXL7300ku6dOmSpOth8dChQxo3bpwqVqyod999V1988YWKFi2qn376Sb/99ptmzZqlqlWrKiwsTF999ZWSkpIUExOj5557TkeOHJGHh4dKlCihEiVKaMeOHfrkk0/+siZXV1cVLlzY7AGWpLi4OLOn9LnnntOVK1dks9nMZV+7dk3jx49XcnJyprb71Vdf1c6dOxUTE2M3/c8//9SCBQuUlpaW4TmffvqpQkNDNWjQIDVr1kxubm46d+6cDMNQUlKSRo0aJWdnZ3Xq1EmffPKJXn/9dX399deKj4/X8OHDVaJECXXv3l3R0dGqWrWqvv/++0zVCgCEVwD4H2dnZ+XMmVPffPONjh8/rp9++sk88Sk5OVmurq7mSVFxcXH68ccfdeLECZUvX145cuRQZGSkli9fruPHj+uLL75QQkKCypYtq9dee03Xrl3TkCFDdOjQIW3YsEGjR4+Wu7t7pupq3769pk2bps2bN2vfvn3mWFabzaZSpUqpZs2a6tu3r3bu3Kndu3crLCxMCQkJcnV1zdTy/fz81KpVK4WEhGjFihU6duyYtm7dqnfeeUfZsmXTO++8k+E5bm5u2rx5s44cOaJdu3bp3XffVUpKipKTk+Xi4qJff/1VI0eO1OHDh/Wf//xH27dvV/ny5ZUvXz59++23GjNmjI4dO6Zt27Zp3759Kl++fCZfJQBPOoYNAMD/ODs7a8KECRo3bpw++eQTeXh4qHv37po6dar27t2rJk2aKCIiQhMnTtTMmTPl7u6uPn36mCdSjR49WlFRURoxYoSKFSumCRMmqFSpUpKkOXPmaMyYMWrWrJny58+vdu3aqWvXrpmqq3Pnzjpz5ox69uwpJycnBQcHa/v27eZQg/Hjx2vUqFHq2LGjsmfPrpo1a+r999+/p20fPny4SpUqpQULFmjUqFFydXVV9erVNWXKFLm5uWWYf9CgQRo0aJCaNm0qd3d3NWrUSDlz5tTevXslSVOmTNGIESPUsmVLZc+eXQ0bNlRISIicnZ0VFRWlMWPG6LXXXlPu3LnVsmVLtWrV6p7qBfDkshm3DqQCADxW/v3vf8vb29u8y9X58+dVrVo1fffdd3c9EQsA/o4IrwDwmAsNDVVaWpr69u0rm82mDz/8UCdPntSKFSscXRoAPHKMeQWAx9yQIUOULVs2tWnTRq+//rrS09MVGRnp6LIAwCHoeQUAAIBl0PMKAAAAyyC8AgAAwDIIrwAAALAMwisAAAAsg/AKAAAAyyC8AgAAwDIIrwAAALAMwisAAAAs4/8Ans4Xp6g2MpYAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(8, 6))\n",
+ "\n",
+ "# Make the plot for Pclass here:\n",
+ "sns.countplot(x='Pclass', data=train_df)\n",
+ "\n",
+ "plt.title('Count of Passengers In each Passenger Class')\n",
+ "plt.xlabel('Passenger Class')\n",
+ "plt.ylabel('Count')\n",
+ "plt.xticks([0, 1, 2], ['1st', '2nd', '3rd']) # Setting custom tick labels\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Try it for \"Embarked\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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S5boqaee0tNPP6369etr27Zteuutt/TEE0+oSpUqatKkifr166c33nhD+fn58vb21scff6wffvjhho77z7Rv314TJkzQtGnTdO+99yozM1OzZs2Sl5eXWrZsKUlydXXVvn37tGPHDrVp00YjRozQl19+qYiICA0dOlRVqlTRkiVLlJqaqvnz50v67WxufHy8IiMj9c9//lOurq5auHChzp49W+TMcknatGmj2bNnKz4+Xv7+/vrpp580b9485eXlXdP/FwBuPcQrgEohLS1N/fr1K3V81apVJX5I6lp07dpVnp6eGjNmjPLz89W5c2dFR0dbr6N89dVX9fLLL+vll1+WJHl5eWnSpElavXq19cNUZdWyZUtFRERo4cKF6t27t+666y4tXbpUr732mmbMmKFffvlFDRo00HPPPaeBAwdanzdhwgS5u7tryZIlunDhgjp27Kinn35ab7755g0d+9U8+uijunTpkpYtW6b33ntPVatW1d/+9jeNGTPG+u1mAwcO1CuvvKJBgwZp4cKFCgoK0nvvvafXX39dUVFRslgsatOmjRYtWmS9Ttje3l5vv/22pk6dqokTJ8re3l4PPvigatasqR9//PGqcxo2bJjOnz+vRYsWKS4uTvXr19dDDz0ki8WiefPmKTMzU66urhX2mgCovCyFf/wUAgAA5SAlJUVHjhxRt27dity5oG/fvqpXr16pXwcMAFfDmVcAQIXIysrSP//5Tz322GO6//77VVBQoPXr12vPnj1F7ukKANeCM68AgAqzYcMGvf322zp8+LAKCwvVqlUrPfPMM+rQoYOtpwbAUMQrAAAAjMGtsgAAAGAM4hUAAADGIF4BAABgjL/E3Qby8/N14cIFOTo6FvuWGAAAANje5cuXlZubqxo1asjevvRE/UvE64ULF0r8fm0AAABULl5eXnJzcyt1/C8Rr1e+PcfLy+uGv14SAAAA5S87O1tHjx61dltp/hLxeuVSAScnJzk7O9t4NgAAACjNn13iyQWgAAAAMAbxCgAAAGMQrwAAADAG8QoAAABjEK8AAAAwBvEKAAAAYxCvAAAAMAbxCgAAAGMQrwAAADAG8QoAAABjEK8AAAAwBvEKAAAAYxCvAAAAMAbxCgAAAGMQrwAAADAG8QoAAABjEK8AAAAwBvEKAAAAYxCvAAAAMIa9rSdgqsAxi2w9BaCYxBkR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qfv55ZdfbsrdFgBAIl4BoEwOHDigV1991fq4Vq1a6t27txYvXqx69erpm2++KfF5ISEh2r59uzIzM4vEo8Vi0bx587Ry5Up1795dX3zxhf7xj39o//79xbbh4+Mji8VSYiBnZWXpqaee0oEDB0rd/8aNG3X27Fnt2rVLPXv2lCR5eHjov//9r+bMmaPmzZvr7bff1iOPPKLs7Oxi22jTpo1SUlKUm5tbbCw/P1/ff/+9WrduXeL+AaC8Ea8AUAYFBQVauHCh9u3bV2S5g4ODqlatqtq1a5f4vKZNm6pp06ZatmyZjh49ar1TweHDhzVt2jS1adNGzz77rNatW6f69etry5YtxbZRu3Zt3XPPPXr33Xf1xxvEJCQkaOfOnapfv36J++/evbt++OEHrVy5Ur6+vmrQoIEk6X//+59WrlypTp06adKkSfr444919OhRHTx4sNg2evXqpby8PC1ZssS6rH///vr3v/+txYsX69dff9VDDz10lVcPAMoPX1IAAGXg4+OjTp06afjw4XruuecUEBCg9PR0ffTRR8rLy1O3bt1Kfe4DDzygOXPm6N5777W+ve7q6qr3339f1atXV+/evXXo0CEdP35crVq1KnEbUVFRCg8P1z//+U8NHjxY1atX1xdffKE333xTzz33nGrUqFHi82rXrq127dpp3rx5+te//mVdfvnyZU2fPl0eHh7y9vbWunXr5OTkJC8vr2LbcHd318SJExUdHa3s7GyFhISof//+GjdunC5evKjhw4erbt26ZX8xAeAGcJ9XACij7OxszZ07Vxs2bNCJEyfk7OysDh066LnnnpOnp2epzzt27Jj+/ve/64033rBeNiBJW7ZsUWxsrH788Ue5ublpwIABevLJJ0vdTkpKimbOnKnExERdvHhRd9xxh5566in17t37qvP+8MMPFR0drc2bNxe5F+2CBQu0ZMkSpaWl6Y477tDzzz+vu+++u9TtbN++XfPmzdPu3btVWFgoHx8ftWzZUgkJCRo8eLCeeeaZq84DAMoD8QoAuCGHDx9WcnKyQkNDbT0VAH8BxCsAAACMwQe2AAAAYAziFQAAAMYgXgEAAGAM4hUAAADGIF4BAABgDOIVAAAAxiBeAQAAYAziFQAAAMYgXgEAAGAM4hUAAADG+P8AsFmn5He3azgAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(8, 6))\n",
+ "\n",
+ "sns.countplot(x='Embarked', data=train_df)\n",
+ "\n",
+ "plt.title('Embarked Histogram')\n",
+ "plt.xlabel('S vs C vs Q')\n",
+ "plt.ylabel('Count')\n",
+ "plt.xticks([0, 1, 2], ['S', 'C', 'Q']) \n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Try Making a histogram for \"Fare\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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ggJJUqNGjRQaGqo9e/ZU2Oenn366aD3p6el68803NX78eN1xxx2qV6+epAuvMAG4dHyaCYB2796to0ePasiQIWrdurVq1TrzV8N///tfSWdWHCoTExOj2rVr69ChQ4qOjnb++Pr6asaMGc5PEbnb448/rpSUFElSvXr11KdPH40YMUJlZWXO1aCz53HWb37zG61cudL5iSfpzKe4Pv30U0VHR8vPz08JCQnat2+fsrOznfuUlJToq6++umhNGRkZat26tQYOHOgMMocOHVJOTs4Fewjg0rAyA0DXX3+9goKC9Nprr8nX11e+vr5asWKFlixZIkkqLi6u9L2NGjXSsGHD9Oqrr+rkyZPq1KmTDh06pFdffVU2m01t2rTxSM2dO3fWiy++qKlTp+rWW2/V8ePHNWfOHIWHhzuPWb9+fW3btk0bN25Uhw4dNHLkSP33v//VkCFDlJycrNq1a2vRokXKy8vTggULJJ1Z7UlPT1dKSopGjx6t+vXr64033tBPP/3kvOxWmQ4dOmju3LlKT09XbGysfvzxR82fP192u/2CPQRwaQgzAFSvXj3NnTtX06ZN0+jRo1W3bl21bdtWixYt0h//+Ed98803Ls9Y+aXHH39cISEhevfdd7VgwQI1aNBAN998s5544gnnCoW7/f73v9fp06f1/vvv691331VAQIBuvvlmPf3006pdu7YkaejQoZo0aZL+8Ic/6I033lDHjh317rvvasaMGUpNTZXNZlOHDh309ttvOz+d5evrq9dff10TJ07UuHHj5Ovrq9/+9rdq2LChfvjhhwvWNHz4cP388896++23lZaWpmbNmmnAgAGy2WyaP3++jh8/7rwsB8B9bBbfwgYATjt37tTu3bt1xx13uHwyatCgQbrmmmsq/VoIAN7DygwAnKOoqEijR4/W/fffr9tvv10Oh0OfffaZtm7d6vJMGQA1ByszAPALy5cv1+uvv65du3bJsiy1a9dOf/rTn9S1a1dvlwbgPAgzAADAaHw0GwAAGI0wAwAAjEaYAQAARrsqPs1UVlamY8eOyd/fv8ITQQEAQM1UXl6u0tJSNWjQwOVLWH/pqggzx44dO+93rQAAgJovPDz8vF/2etZVEWbOfmNteHi4AgMD3Tavw+FQTk6OIiIi5OPj47Z5cQb99Sz661n017Por2fVlP4WFxdrz5495/3m+XNd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NMIMAAAwGmEGAAAYjTADAACMRpgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkAAGA0wgwAADAaYQYAABitWmFm/fr1sizL3bUAAAD8ar7VedPo0aNVu3Zt9e7dW4mJiYqNjXVzWQAAAFVTrTCzdu1arV27VsuXL1dycrKCgoLUp08f9evXT+3atXN3jQAAAJWqVpjx9fVV9+7d1b17d5WVlWndunX6z3/+o/vvv1+hoaHq37+/kpKSFBYW5u56AQAAXFzSDcB2u12rV6/Wp59+qs8//1yNGjVSz549tWfPHvXr10+LFi1yV50AAADnVa2VmS+//FLLly/XqlWrVLt2bd15551KS0tTx44dnfu88847mjFjhgYPHuy2YgEAAH6pWmHm2WefVa9evTRjxgx16dJFPj4+FfZp3769HnnkkUsuEAAA4EKqFWbWrVunkydP6vjx484g89lnn+k3v/mNQkJCJEkxMTGKiYlxX6UAAADnUa17ZjZv3qzbb79dH3/8sXPs7bffVt++fZWRkeG24gAAAC6mWmFm6tSpevTRRzVq1Cjn2Pvvv69hw4Zp0qRJbisOAADgYqoVZvbs2aPevXtXGO/Tp49yc3MvuSgAAICqqlaYueGGG/T5559XGP/Pf/6j66677pKLAgAAqKpq3QD8+OOPa8SIEVq7dq2ioqIkSTt27NA333yj2bNnu7VAAACAC6nWysytt96qZcuWqV27dtq9e7f27t2rNm3a6NNPP1X37t3dXSMAAEClqrUyI0k33nijxowZ485aAAAAfrVqhZnjx49r4cKFysrKUllZmSzLctn+9ttvu6U4AACAi6lWmHnmmWeUlZWl/v37KygoyN01AQAAVFm1nwC8aNEidejQwd31AAAA/CrVugE4NDRUtWpd0hduAwAAuEW1LzONGzdOo0aNUsuWLVW7dm2X7WFhYW4pDgAA4GKqFWYee+wxSVJycrIkyWazSZIsy5LNZlN2drabygMAALiwaoWZf//73+6uAwAAoFqqdeNL8+bN1bx5cxUVFWnbtm1q1KiRysvLFRYWpubNm1d5nh9//FF/+MMfFBcXp9tuu00LFixwbsvLy9PDDz+s2NhY9e3bV2vWrHF577p165SYmKiYmBgNGTJEeXl51TkVAABguGqFmWPHjunhhx/WgAEDNHr0aP3000+aOHGiEhMTtX///irNUV5eruTkZDVq1EjLli3T+PHjNW/ePH388ceyLEspKSlq0qSJli5dqgEDBmjkyJHKz8+XJOXn5yslJUVJSUlasmSJGjdurBEjRlR43g0AALjyVSvMvPzyywoMDNT69evl7+8vSZo0aZKuueYavfzyy1Wao7CwUG3bttW4ceMUHh6u7t276+abb1ZGRobWr1+vvLw8TZgwQa1atdLw4cMVGxurpUuXSpIWL16s9u3ba+jQobrxxhs1efJk7d+/Xxs3bqzO6QAAAINVK8x89dVXeuKJJ1S/fn3nWOPGjZWamqpNmzZVaY6mTZtq1qxZCgoKkmVZysjI0KZNm5SQkKDMzEy1a9dOderUce4fHx+vLVu2SJIyMzPVsWNH57bAwEBFRUU5twMAgKtHtb+bqbS0tMLYkSNH5Ov766fs2bOn8vPz1aNHD915552aNGmSmjZt6rJPcHCwDh48KEkqKCi44PbKOBwOORyOX11fZcrLy52/u/sS19n53F2zSc6e99V6/p5Gfz2L/noW/fWsmtLfqh6/WmEmMTFREydO1IQJE2Sz2VRUVKT169frxRdfVN++fX/1fH/9619VWFiocePGafLkySouLpafn5/LPn5+frLb7ZJ00e2VycnJ+dW1XUhubq6zHttJm1vnLi4ulnSm5qv9AYVZWVneLuGKRn89i/56Fv31LFP6W+2H5s2YMUNJSUk6ffq0BgwYIB8fH91999165plnfvV80dHRks6s9jz11FMaOHCg8x/zs+x2uwICAiRJ/v7+FYKL3W53uex1PhERES6Xri5VWVmZpDOXudz9HVVW4JmVmYiICMXGxrp1blM4HA5lZWUpOjpaPj4+3i7nikN/PYv+ehb99aya0t+ioqIqLURUK8z4+flpzJgxevzxx5WXlyeHw6Frr71WdevWrfIchYWF2rJli3r16uUca926tU6fPq2QkBDt3r27wv5nLy2FhoaqsLCwwva2bdte8Jg+Pj5u/UM5d8Xk7IMD3eXsfO6u2UT0wLPor2fRX8+iv57l7f5W9djVun6xadMmbdq0SVlZWTp69KhOnDihbdu2OcerYt++fRo5cqQOHTrkHNu6dasaN26s+Ph4ff/99yopKXFuy8jIUExMjCQpJiZGGRkZzm3FxcXatm2bczsAALh6VGtl5sEHHzzvuJ+fn0JCQqr0hODo6GhFRUXpueeeU2pqqvbv36/p06fr0UcfVUJCgpo1a6bU1FSNGDFCK1eu1HfffafJkydLkgYOHKjXX39d6enp6tGjh9LS0tSiRQt16tSpOqcDAAAMVq0ws337dpfXDodDe/fu1UsvvaT+/ftXaQ4fHx/NnTtXL730ku69914FBgbqwQcf1JAhQ2Sz2TR37lyNHTtWSUlJatmypdLS0pxfYNmiRQvNnj1bkyZNUlpamuLi4pSWlub2Sz0AAKDmq/ZHs8/l4+Oj66+/XmPGjFFycrJ+97vfVel9oaGhmjNnznm3tWzZUosWLar0vd27d1f37t2rVS8AALhyuPUzvz/99JOOHz/uzikBAAAuqForM6mpqRXGTp06pXXr1ql3796XXBQAAEBVueUykyQ1bNhQzz77rAYMGOCuKQEAAC6qWmHm7KeKAAAAvK1aYaaym3bPZ+TIkdU5BAAAQJVUK8z8+OOPWr58uRo2bKj27dvLz89P27dv1969exUbG+v8skk+Kg0AADyt2l9n0L9/f40fP161a9d2jk+dOlXHjh3TpEmT3FYgAADAhVTro9mfffaZhg0b5hJkJOmee+7RZ5995pbCAAAAqqJaYSY0NFRfffVVhfEVK1bo2muvveSiAAAAqqpal5mefPJJPf7441q1apXatGkjScrKytK2bdv02muvubVAAACAC6nWysztt9+uf/7zn4qIiNCuXbu0f/9+JSQkaMWKFUpISHB3jQAAAJWq9kPzIiMjlZqaqmPHjikoKEi1atXi00sAAOCyq9bKjGVZmjdvnjp16qSbb75Z+fn5evrpp/XCCy/Ibre7u0YAAIBKVSvMpKWl6aOPPtKUKVPk5+cnSfrd736ntWvXatq0aW4tEAAA4EKqFWaWLVumCRMmqEePHs5LS126dNHUqVP1+eefu7VAAACAC6lWmPnpp5/UtGnTCuP169dXUVHRJRcFAABQVdUKM507d9brr7/uMnby5EnNmDFDnTp1ckthAAAAVVGtMDNu3Dht27ZNXbp0UWlpqUaMGKHu3btr//79ev75591dIwAAQKWq9dHs+vXra8mSJfr666+1e/dulZWV6frrr1fXrl1Vq1a18hEAAEC1VCvMJCYmas6cObr55pt18803u7smAACAKqvWMkqtWrV0+vRpd9cCAADwq1VrZea2227TI488oh49eqh58+bOZ82cNXLkSLcU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3F+jLzN5S2VPH87MzPTYQ5SuNBs3blSnTp30wQcfuIxnZmaqXbt2qlPn/x5LHx8f77zROzMzUx07dnRuCwwMVFRUlMuN4Fe7kJAQLViwQE2aNHEZP3nyJP11g6ZNm2rWrFkKCgqSZVnKyMjQpk2blJCQQH/daOrUqRowYIBat27tHMvMzFR8fLxsNpskyWaz6aabbqq0v82aNVNYWJgyMzMva+013a5duxQeHl5h3OT+Emaq4WJPH8bF3X///XruuecUGBjoMl5QUKCmTZu6jAUHB+vgwYNV2g6pfv366tatm/N1eXm5Fi1apM6dO9NfN+vZs6fuv/9+xcXF6c4776S/bvL111/rm2++0YgRI1zGL9a/w4cP09+LsCxLP/zwg9asWaM777xTvXr10iuvvCK73W50f419zow3FRcXV3jE89nXv3yQH36dynp7tq8X246Kpk+frm3btmnJkiV688036a8b/fWvf1VhYaHGjRunyZMn879fNygtLdWLL76oF154ocIDUC/Wv5KSEvp7Efn5+c4+zpo1S/v27dPLL7+skpISo/tLmKmGX/P0Yfw6/v7+FVa37Ha7s6+V9f6XD0rEGdOnT9dbb72lmTNnKiIigv66WXR0tKQz/wA/9dRTGjhwoIqLi132ob+/zpw5c9S+fXuX1cWzKuvfxfr7yxXgq1nz5s21YcMGNWjQQDabTW3btlV5ebmefvppJSQkGNtfwkw1/JqnD+PXCQ0NVW5urstYYWGhc2kzNDS0wtfXFxYWqm3btpetRlO89NJLeu+99zR9+nTdeeedkuivOxQWFmrLli3q1auXc6x169Y6ffq0QkJCtHv37gr709+q+/TTT1VYWOi8J/HsP54rVqxQYmLieft3sf6GhIRchsrN0bBhQ5fXrVq1UmlpqUJCQoztL/fMVANPH/acmJgYff/9985vSpXO9DYmJsa5PSMjw7mtuLhY27Ztc27HGXPmzNH777+vGTNmqF+/fs5x+nvp9u3bp5EjR7p8Y/nWrVvVuHFjxcfH099L9Pe//10ff/yxPvzwQ3344Yfq2bOnevbsqQ8//FAxMTH69ttvZf3v9yNblqXNmzdX2t8DBw7owIED9PccX331lTp16uSygpidna2GDRsqPj7e3P5686NUJvt//+//Wf369bMyMzOtL774wrrpppusFStWeLssI5370eyysjKrb9++1uOPP27l5ORY8+fPt2JjY53P6cjLy7Oio6Ot+fPnO5/T0b9/f57TcY7c3Fyrbdu21syZM12eI3H48GH66wZlZWVWUlKSNXToUGvnzp3WqlWrrFtuucV688036a8HPPvss86PA584ccLq3Lmz9dJLL1k7d+60XnrpJatLly7Oj8Jv3rzZioqKsv7xj384n4MyfPhwb5Zf45w4ccLq1q2b9cQTT1i7du2yVq1aZXXt2tVKT083ur+EmWoqKiqynnnmGSs2Ntbq2rWr9cYbb3i7JGOdG2Ysy7L27NljPfDAA1b79u2tfv36WWvXrnXZf9WqVdYdd9xhdejQwXrooYdqxDMOapL58+dbERER5/2xLPrrDgcPHrRSUlKsm266yerSpYs1b948ZyChv+51bpixrDMPbrvrrrus6Ohoa9CgQdb333/vsv/SpUut7t27W7GxsVZKSop15MiRy11yjZeTk2M9/PDDVmxsrNWlSxdr9uzZzv/9mtpfm2X973oSAACAgbjBAwAAGI0wAwAAjEaYAQAARiPMAAAAoxFmAACA0QgzAADAaIQZAABgNL6bCUCN0rNnT+3fv7/C+E033aT33nvPCxUBqOkIMwBqnOeee059+/Z1Gatdu7aXqgFQ0xFmANQ49erVqxHfxAvADNwzA8AYJ0+eVGpqqm6++Wa1b99evXv31pdffuncHhkZqVdffVWdOnXSo48+Kkn65ptvlJSUpA4dOqh///5asWKFt8oH4CGszAAwxsSJE/XDDz9o4cKFCgwM1IIFCzR27Fjdeuut8vPzkyStXLlS7733nsrLy1VQUKDhw4frz3/+s7p166YtW7ZozJgxCg4OVseOHb18NgDchS+aBFCj9OzZUwUFBfL1df3/WmvXrtXy5cvVvn17RURESJJ2796tPn36aNWqVWrWrJkiIyM1btw43XfffZKkWbNmadeuXZo9e7ZznilTpmj//v0uYwDMxsoMgBpn1KhRuuOOO1zGAgMDddddd+nLL7/UP/7xD+3evVvff/+9JMnhcDj3a968ufP33bt3a+XKlYqLi3OOnT59Wtdff72HzwDA5USYAVDjBAcHq2XLlhXGn376aX377bcaMGCA7rvvPoWEhOjee+912cff39/5e1lZmfr37++8f+asX676ADAb/0UDMMLJkyf1ySef6B//+Ic6dOggSVq9erUkqbKr5ddff72+/fZbl2C0cOFC2e32CgEHgLn4NBMAI/j5+SkwMFD/+te/tG/fPn311VeaMGGCJMlut5/3Pffff7+2bt2qmTNnas+ePfr44481Y8YMhYWFXc7SAXgYYQaAEfz8/DR9+nStWLFC/fr105QpU/SnP/1JISEhys7OPu97mjdvrtdee01fffWVEhMTNWvWLI0ZM0a//e1vL3P1ADyJTzMBAACjsTIDAACMRpgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkAAGA0wgwAADAaYQYAABiNMAMAAIxGmAEAAEYjzAAAAKMRZgAAgNH+P2vynmAQu/HgAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.histplot(train_df['Fare'], bins=20, color='green')\n",
+ "\n",
+ "plt.title('Fare Histogram')\n",
+ "plt.xlabel('Fare')\n",
+ "plt.ylabel('Frequency')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Here is the distplot for \"Fare\", refer to it after you tried it yourself:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHACAYAAABXvOnoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABBkklEQVR4nO3deVhUdf//8deIsUluiORSWiquCLjgHmpWppiFWmlm5t2tBma7Sna7pbmmlmLueZt+09Lb7szKVs3dokRMStFM3CF3QZCZ8/vDH+duwgVxxuHk83FdXlfzOYfPeZ/3WLz6nDNnbIZhGAIAALCoYp4uAAAA4HoQZgAAgKURZgAAgKURZgAAgKURZgAAgKURZgAAgKURZgAAgKURZgAAgKURZgA3KQrPoywKNQCAuxX3dAGAJzzxxBPaunWr+dpms8nPz0933nmnHnroIfXo0UPFi//vX4+2bdsqMjJS48aNK9D8X3/9tVavXq0JEyZccb8hQ4Zo69at+uabbwp1nMs5ffq0Ro8erW7duqlx48aSLp6zJL333nvXNber5Obm6rXXXtPq1atls9k0Y8YMNW3a1GmfLVu2qFevXk5jNptN/v7+CgkJUd++fdW2bdsbWbbl1axZ87Lb/P399dNPP93AagDXIMzgplWnTh0NHz5ckmS323Xq1Cl99913Gjt2rH744QdNnTpVxYpdXLycPn26AgICCjz3ggULCrRfbGxsvl/WrpCSkqL//ve/6tKlizmWd65Fxbp167RixQrFxsaqefPmqlOnzmX3HTZsmOrWrSvp4mrTqVOnNH/+fMXGxmrWrFmKioq6UWX/LXTt2lXdunXLN5739x2wGsIMbloBAQEKDw93Gmvbtq3uuusujRkzRp988okefPBBSbriL9rrcccdd7hl3kupXr36DTtWQZw8eVKSFBMTo9tvv/2K+1avXj3fe9WoUSO1bt1aCxcuJMxco9tuuy1fPwErI4YDf9GzZ08FBwdryZIl5ljbtm01ZMgQ83Ve0Klfv76aNm2ql19+WUePHpX0v0tYW7duVc2aNbVlyxZt2bJFNWvW1JIlS9SmTRs1aNBAGzZs0JAhQ/JdJrlw4YJGjx6txo0bq1GjRho8eLCOHz9ubn/iiSfMS0Z58ubPO1beak+vXr3Mff/6c9nZ2UpISFD79u0VGhqq++67T7Nnz5bD4XA61tChQzV79my1bt1aoaGheuyxx7R9+/Yr9tBut2vx4sXq1KmT6tevr9atW2vSpEnKzs6WdPHyWl4/27Vrl+98CiIgIEB33nmnDh06ZI798ssvGjBggJo2baq6deuqVatWGj16tM6fP2/us2HDBj3yyCOKiIhQ48aN9cwzz2jPnj3m9v3796t///5q0qSJwsLC9Oijj2rt2rVOx961a5f69eunBg0aqEGDBoqLi1NaWpq5Pe/92LRpk/r06aOwsDC1aNFCEydOlN1uN/c7e/ashg0bpmbNmikiIkIvvPCCFixYkO9S0FdffaWYmBiFhoaqRYsWGj16tDIzM83t06ZN07333qvp06crMjJSLVu21KlTp665p3924MABDRo0SC1btlTdunXVrFkzDRo0SCdOnDD3adu2rd544w09+eSTql+/voYOHSrpYlAdNmyYmjdvrtDQUD3yyCPatGmT0/xXex+Aa0GYAf6iWLFiatasmbZv367c3Nx82xMTEzVo0CDdd999mjNnjuLj47V582a99NJLki5ezqlTp47q1KmjpUuXmpdHpIuXqwYPHqxhw4YpIiLiksf/7LPP9PPPP2vcuHEaPHiw1qxZo3/+859OvwSvpG7duho2bJiki5dnLnV5yTAM9e/fX3PnzlW3bt00c+ZMtW/fXlOnTs23/+rVq/X111/rtdde0+TJk5WRkaFnn332ivUMGzZMY8eOVbt27fTOO+/o8ccf16JFixQbGyvDMBQbG6tnnnnG7ElhLoHl5OTowIED5urWsWPH9PjjjysrK0vjxo3TnDlz1LFjR7333ntauHChJCktLU2xsbGqV6+e3nnnHY0ZM0a//fab+vbtK4fDIYfDoX79+ikrK0sTJkzQjBkzVLp0aT3zzDP6/fffJUm//fabHnvsMf3xxx8aP368xowZo7S0NHXv3l1//PGHU40vv/yyGjZsqJkzZyo6Olpz587Vhx9+aG6PjY3VZ599pmeffVZTpkzRuXPn9OabbzrNsXLlSsXFxemuu+5SQkKCBgwYoI8//tjsZZ5Dhw5p7dq1mjJliuLj41WqVKnL9s7hcCg3NzffnzxZWVnq1auX9uzZo+HDh2vevHnq1auXVq1apSlTpjjNtXjxYoWGhmrGjBnq2rWrsrOz9eSTT+rrr7/WCy+8oOnTp+u2227T008/bQaaq70PwLXiMhNwCeXKldOFCxd08uRJlStXzmlbYmKifH191bdvX3l7e0uSSpcureTkZBmGoerVq5v31/x1Kb9Hjx5q3779FY9dpkwZzZs3T/7+/ubruLg4fffdd2rTps1Vaw8ICDAvKVWvXv2Sl5e+++47bdy4UZMnT1bHjh0lSS1atJCvr6/eeust9erVSzVq1JB08UbdefPmmed07tw5DR48WCkpKapXr16+uVNTU7Vs2TK99NJL6tu3rzl3+fLlNWjQIH333XeKiooyQ0jt2rVVuXLlK55T3i/fvHoOHjyoGTNm6Pjx43r88cclXVwtqV27tt566y2z1ubNm2vDhg3asmWL+vbtq+3bt+v8+fPq16+fgoODJV285PL1118rMzNTWVlZ2rt3r2JjY81LV/Xr19f06dOVk5Mj6WL48vPz04IFC8zjNGvWTO3atdPcuXM1ePBgs+5u3bopLi7O3Oerr77SmjVr9Nhjj2nTpk3asmWLpk2bpvvuu0+SdPfddys6OtpcoTAMQ5MmTVKrVq00adIkc96qVauqd+/eWrt2rVq3bm32ZfDgwWrUqNEVeylJM2bM0IwZM/KNr1+/XkFBQdq3b59uu+02jR8/3rwE2LRpUyUlJTndOC9JFStW1Msvv2y+/uCDD/TLL7/ogw8+UFhYmHleTzzxhCZNmqTly5df9X24lvvTAIkwA1xS3v/x2my2fNsaN26sKVOmKDo6Wvfff7+ioqLUsmXLAt23Ubt27avuExUVZQYZ6eJSfvHixfX9998XKMwUxNatW1W8ePF8werBBx/UW2+9pa1bt5ph5s/hTJL5yycrK+uyc0syQ1Kejh07Kj4+Xlu2bLnme1x69+6dbywwMFCvvfaa7r77bklSy5Yt1bJlS124cEGpqan6/ffftWvXLh0/flylS5eWJIWFhcnHx0ddu3ZV+/btdffdd6tJkyaqX7++JKlEiRKqXr26/vWvf2n9+vVq2bKl7r77bsXHx5vH3bx5syIjI+Xr62sGrICAADVq1EgbN250qvGvq2+33XabeXlo8+bNuuWWW9SuXTtze7FixdShQwdNmzZNkrR3714dOXJE/fr1c1o5ady4sQICArRhwwYzzEgF+/slSY888ogeeeSRfONlypQx5/m///s/ORwO7du3T7///rtSU1O1d+/efKuVfz3mpk2bFBQUpLp16zrt26ZNG02YMEGnTp266vsAXCvCDHAJR48ela+vr/lL8M8iIiI0e/ZsLViwQO+++65mz56tcuXKqX///le99+PPIeVygoKCnF4XK1ZMZcqU0enTp6/pHK7k1KlTKlOmjLy8vC557DNnzphjfn5++eqRdNnLAXn3avz1PIoXL64yZco4zV1QI0eONC/XeXl5qVSpUqpYsaJT2HQ4HJo8ebIWL16szMxMVahQQfXr15ePj4+5T+XKlbVo0SLNnj1by5Yt08KFC1WyZEn16NFDzz//vGw2m+bPn6933nlHX375pT766CMzcIwcOVKlSpXSyZMn9emnn+rTTz/NV2fZsmWdXvv6+jq9LlasmBmUT5w4odKlS+f7BFFgYKD5z3k3SY8cOVIjR47Md7xjx445vS5RosRle/hn5cuXV2ho6BX3effddzVz5kxzdbJevXry8/PL9/799e/0yZMnlZ6e7nR59c/S09NVvXr1q74PwLUgzAB/kZubqy1btqhBgwb5ftnnadWqlVq1aqWsrCxt3rxZCxcu1OjRoxUWFnbd/3eZ9wssj91u14kTJ5x+yf31fpU/3wxaEKVKldKJEydkt9udzjHvl2Pe/6EXRt69Gunp6apUqZI5fuHCBZ04caJQc995551X/eWbFzBHjhyp++67T7feequkix9D/rM/XzZKTEzU0qVLNXPmTNWqVUsPPPCAgoODNWLECA0fPly//PKLPv/8c82ZM0dlypTR8OHDdeutt6p58+Z66qmn8tXw52cTXU1wcLBOnDghh8PhFGj+fN9NyZIlJUmDBg1SZGRkvjmudF/M9Vi5cqXGjRunV155RTExMWZIe+6555ScnHzFn7311ltVtWpVp8tif5Z3SfFq7wNwLbgBGPiLpUuXKj09Xd27d7/k9vHjx6tLly4yDEN+fn5q06aNeZ9E3idrrud5HRs2bHBanl+9erVyc3PVpEkTSRcvaRw5csTpZxITE51eXy6E5YmMjFRubq4+//xzp/GPP/5YktSwYcNC15/3S3fVqlVO46tWrZLdbr+uua8kMTFR1atXV5cuXcwgc/ToUe3atctcRVqwYIHatGmjnJwceXt7q1mzZnr99dclXXzvfvrpJzVv3lzbt2+XzWZT7dq19cILLygkJMR8byMjI5WamqratWsrNDRUoaGhqlevnhYsWKAvv/yywPXmvQd5D0yULl7e/Oqrr8zXd911lwIDA3XgwAHzWKGhoQoODtabb76pnTt3XnffLiUxMVElS5bU008/bQaZc+fOKTEx8ao36EZGRurw4cMKDAx0qnnDhg2aO3euvLy8rvo+ANeKlRnctM6ePatt27ZJuniJ4sSJE1q/fr2WLl2qBx980Lwp86+aNm2qd999V0OGDNGDDz6oCxcuaO7cuSpdurT5BNuSJUvqp59+0qZNm675GTXp6el69tln9cQTT2jfvn2aPHmyWrRooWbNmkm6eO/BN998o7Fjx6pt27b64Ycf9NFHHznNkffLfM2aNSpVqpRq1arltD3vHoXXXntNR48eVa1atbR161bNmTNHDz/88HU9k6Z69ep6+OGH9fbbbysrK0uNGzdWSkqKpk+friZNmqhVq1aFnvtK6tevrxkzZmj27NkKDw/X77//rlmzZiknJ8e8v6dp06aaNGmS4uLi1LNnT3l5eWnJkiXy9vZWmzZtVKlSJfn6+mrQoEF69tlnVa5cOW3cuFEpKSnmx91jY2P12GOPqV+/furevbt8fHy0dOlSffXVV3r77bcLXG/jxo3VokULDR06VBkZGapYsaKWLVumX3/91bzM4uXlpRdeeEHDhg2Tl5eX2rRpo9OnT2vGjBk6evToZS/lXK/69evr/fff17hx49SmTRsdO3ZM8+bNU0ZGxlVXg2JiYrRo0SI99dRT6t+/vypUqKCNGzdqzpw56tmzp2655Zarvg/AtSLM4Ka1c+dOPfroo5Iu3uhbokQJhYSEaMSIEZd8OmqeqKgoTZo0SfPnz9eAAQNks9nUsGFDLVy40LzH5vHHH9eOHTv0z3/+U2PHjlX58uULXFePHj105swZxcXFydvbW506ddIrr7xi/oLr0qWL9u/frxUrVmjJkiVq3Lix3n77baeVpBo1aig6OlqLFy/WunXr9Mknnzgdw2azadasWXr77be1YMECHT9+XJUrV9aLL754ycsn12rMmDGqUqWKli9frjlz5qh8+fLq1auXYmNj3faU2X79+unEiRNauHChEhISVKFCBXXu3Nk819OnT6tWrVqaOXOmEhIS9OKLL8put6tevXqaP3++7rrrLknS/Pnz9eabb2rMmDE6ffq0qlatqlGjRikmJkaSVKtWLS1evFhTpkzRoEGDZBiGQkJClJCQoHvuueeaap4yZYrGjRunN998U7m5ubrnnnvU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AABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaUUmzPTt21dDhgwxX+/cuVPdunVTWFiYunTpoh07djjt/8knn6hdu3YKCwtTXFycjh8/fqNLBgAARUCRCDOrVq3S2rVrzdeZmZnq27evGjVqpP/85z+KiIhQv379lJmZKUnavn27hg4dqgEDBmjp0qU6ffq04uPjPVU+AADwII+HmZMnT2rChAkKDQ01xz799FP5+Pho0KBBqlatmoYOHaoSJUro888/lyQtWrRIDzzwgB566CHVqlVLEyZM0Nq1a5WWluap0wAAAB7i8TAzfvx4de7cWdWrVzfHkpKS1LBhQ9lsNkmSzWZTgwYNtG3bNnN7o0aNzP0rVKigihUrKikp6YbWDgAAPK+4Jw++adMm/fDDD1q5cqVGjBhhjqenpzuFG0kKDAzU7t27JUnHjh1T+fLl820/cuTIFY9nt9tlt9tdU7wkh8MhSTIMyZDhsnml/83n6pqtJO+8b9bzdzf66170173or3sVlf4W9PgeCzPZ2dkaPny4hg0bJl9fX6dtWVlZ8vb2dhrz9vZWTk6OJOn8+fNX3H45u3btckHl/5OamipJysrM0tkzNpfOnXkuS9LFmosV8/gCmkclJyd7uoS/NfrrXvTXveive1mlvx4LM9OnT1e9evXUqlWrfNt8fHzyBZOcnBwz9Fxuu5+f3xWPGRISIn9//+us/H9yc3MlSX7+fgq4NcBl80qSf4mLKzMhISEKDw936dxWYbfblZycrNDQUHl5eXm6nL8d+ute9Ne96K97FZX+ZmZmFmghwmNhZtWqVcrIyFBERIQkmeFk9erVio6OVkZGhtP+GRkZ5qWl4ODgS24PCgq64jG9vLxc+qbkrZjYbJJNrl2ZyZvP1TVbET1wL/rrXvTXveive3m6vwU9tsfCzHvvvWeubEjSpEmTJEkvv/yyvv/+e82ZM0eGYchms8kwDP3444/q37+/JCksLEyJiYmKiYmRJB0+fFiHDx9WWFjYjT8RAADgUR4LM5UqVXJ6XaJECUlSlSpVFBgYqDfffFNjxozRY489piVLligrK0sPPPCAJKl79+564oknFB4ertDQUI0ZM0atW7fW7bfffsPPAwAAeFaRvLM0ICBAs2bNMldfkpKSNHv2bPN+l4iICI0aNUoJCQnq3r27SpUqpbFjx3q4agAA4Ake/Wj2n40bN87pdf369bVixYrL7h8TE2NeZgIAADevIrkyAwAAUFCEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmEGQAAYGmFCjObN2+WYRiurgUAAOCaFS/MDz333HO65ZZb1L59e0VHRys8PNzFZQEAABRMocLMhg0btGHDBn3++efq27evAgIC9MADD6hjx46qU6eOq2sEAAC4rEKFmeLFiysqKkpRUVHKzc3Vxo0b9c0336hHjx4KDg5Wp06dFBMTo4oVK7q6XgAAACfXdQNwTk6O1q5dq1WrVumzzz5TmTJl1LZtW+3bt08dO3bUokWLXFUnAADAJRVqZearr77S559/rjVr1uiWW27R/fffr4SEBDVq1MjcZ/HixZo8ebJ69uzpsmIBAAD+qlBhZvDgwWrXrp0mT56sFi1ayMvLK98+9erV01NPPXXdBQIAAFxJocLMxo0bdfbsWZ0+fdoMMp9++qkaN26soKAgSVJYWJjCwsJcVykAAMAlFOqemR9//FH33nuvVq5caY4tXLhQHTp0UGJiosuKAwAAuJpChZnx48erf//+GjhwoDm2ZMkSPf3003rjjTdcVhwAAMDVFCrM7Nu3T+3bt883/sADDyg1NfW6iwIAACioQoWZu+66S5999lm+8W+++UZ33HHHdRcFAABQUIW6Afj5559XbGysNmzYoLp160qSfv31V/3www+aNm2aSwsEAAC4kkKtzNx9991asWKF6tSpo71792r//v2qVauWVq1apaioKFfXCAAAcFmFWpmRpBo1amjIkCGurAUAAOCaFSrMnD59WvPnz1dycrJyc3NlGIbT9oULF7qkOAAAgKspVJgZNGiQkpOT1alTJwUEBLi6JgAAgAIr9BOAFy1apPr167u6HgAAgGtSqBuAg4ODVazYdX3hNgAAgEsU+jLTiBEjNHDgQFWpUkW33HKL0/aKFSu6pDgAAICrKVSYefbZZyVJffv2lSTZbDZJkmEYstlsSklJcVF5AAAAV1aoMPP111+7ug4AAIBCKdSNL5UqVVKlSpWUmZmpnTt3qkyZMnI4HKpYsaIqVapU4Hl+//13/eMf/1BERIRat26tuXPnmtvS0tLUu3dvhYeHq0OHDlq/fr3Tz27cuFHR0dEKCwtTr169lJaWVphTAQAAFleoMHPq1Cn17t1bnTt31nPPPac//vhDY8aMUXR0tA4ePFigORwOh/r27asyZcpoxYoVGjlypN555x2tXLlShmEoLi5O5cqV0/Lly9W5c2cNGDBAhw4dkiQdOnRIcXFxiomJ0bJly1S2bFnFxsbme94NAAD4+ytUmBk9erT8/Py0efNm+fj4SJLeeOMN3XbbbRo9enSB5sjIyFDt2rU1YsQIVa1aVVFRUWrWrJkSExO1efNmpaWladSoUapWrZr69eun8PBwLV++XJL04Ycfql69eurTp49q1KihsWPH6uDBg9q6dWthTgcAAFhYocLMunXr9OKLL6pkyZLmWNmyZRUfH6/vv/++QHOUL19eU6dOVUBAgAzDUGJior7//ntFRkYqKSlJderUkb+/v7l/w4YNtW3bNklSUlKSGjVqZG7z8/NT3bp1ze0AAODmUejvZsrOzs43dvz4cRUvfu1Ttm3bVocOHVKbNm10//3364033lD58uWd9gkMDNSRI0ckSenp6Vfcfjl2u112u/2a67sch8MhSTIMyZBrL3Hlzefqmq0k77xv1vN3N/rrXvTXveivexWV/hb0+IUKM9HR0RozZoxGjRolm82mzMxMbd68WcOHD1eHDh2ueb63335bGRkZGjFihMaOHausrCx5e3s77ePt7a2cnBxJuur2y9m1a9c113YlqampF+vJzNLZMzaXzp15LkvSxZpv9gcUJicne7qEvzX66170173or3tZpb+Ffmje5MmTFRMTowsXLqhz587y8vJSt27dNGjQoGueLzQ0VNLF1Z6XX35ZXbp0UVZWltM+OTk58vX1lST5+PjkCy45OTlOl70uJSQkxOnS1fXKzc2VJPn5+yngVtd+R5V/iYsrMyEhIQoPD3fp3FZht9uVnJys0NBQeXl5ebqcvx366170173or3sVlf5mZmYWaCGiUGHG29tbQ4YM0fPPP6+0tDTZ7XbdfvvtKlGiRIHnyMjI0LZt29SuXTtzrHr16rpw4YKCgoK0d+/efPvnXVoKDg5WRkZGvu21a9e+4jG9vLxc+qbkrZjYbJJNrl2ZyZvP1TVbET1wL/rrXvTXveive3m6vwU9dqGuX3z//ff6/vvvlZycrJMnT+rMmTPauXOnOV4QBw4c0IABA3T06FFzbMeOHSpbtqwaNmyon3/+WefPnze3JSYmKiwsTJIUFhamxMREc1tWVpZ27txpbgcAADePQq3MPPHEE5cc9/b2VlBQUIGeEBwaGqq6devq1VdfVXx8vA4ePKiJEyeqf//+ioyMVIUKFRQfH6/Y2Fh9++232r59u8aOHStJ6tKli+bNm6fZs2erTZs2SkhIUOXKldWkSZPCnA4AALCwQoWZX375xem13W7X/v379frrr6tTp04FmsPLy0szZszQ66+/rkcffVR+fn564okn1KtXL9lsNs2YMUNDhw5VTEyMqlSpooSEBPMLLCtXrqxp06bpjTfeUEJCgiIiIpSQkGB+RxQAALh5FPqj2X/m5eWlO++8U0OGDFHfvn318MMPF+jngoODNX369Etuq1KlihYtWnTZn42KilJUVFSh6gUAAH8fLv3M7x9//KHTp0+7ckoAAIArKtTKTHx8fL6xc+fOaePGjWrfvv11FwUAAFBQLrnMJEmlS5fW4MGD1blzZ1dNCQAAcFWFCjN5nyoCAADwtEKFmcvdtHspAwYMKMwhAAAACqRQYeb333/X559/rtKlS6tevXry9vbWL7/8ov379ys8PNz8skk+Kg0AANyt0F9n0KlTJ40cOVK33HKLOT5+/HidOnVKb7zxhssKBAAAuJJCfTT7008/1dNPP+0UZCTpkUce0aeffuqSwgAAAAqiUGEmODhY69atyze+evVq3X777dddFAAAQEEV6jLTSy+9pOeff15r1qxR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/hYIM0XUybO5chjSnOerqkFIoMvmTdmfqZ7jUpSRkUGYAQD8LRBmirialf3UoMatni4DAIAiixuAAQCApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRWJMJOTk6Po6Ght2bLFHEtLS1Pv3r0VHh6uDh06aP369U4/s3HjRkVHRyssLEy9evVSWlrajS4bAAAUAR4PM9nZ2XrxxRe1e/duc8wwDMXFxalcuXJavny5OnfurAEDBujQoUOSpEOHDikuLk4xMTFatmyZypYtq9jYWBmG4anTAAAAHuLRMJOamqpHHnlE+/fvdxrfvHmz0tLSNGrUKFWrVk39+vVTeHi4li9fLkn68MMPVa9ePfXp00c1atTQ2LFjdfDgQW3dutUTpwEAADzIo2Fm69atatKkiZYuXeo0npSUpDp16sjf398ca9iwobZt22Zub9SokbnNz89PdevWNbcDAICbR3FPHrxHjx6XHE9PT1f58uWdxgIDA3XkyJECbb8cu90uu91+HRU7czgckiTDkAy5+hKX4Za58+ZydS/cIa++ol6nVdFf96K/7kV/3auo9Legx/domLmcrKwseXt7O415e3srJyenQNsvZ9euXS6tMzU19WI9mVk6e8bm0rmzss5Lks6fz9LZM2ddNm/muSxJF3tRrJjHb5kqkOTkZE+X8LdGf92L/roX/XUvq/S3SIYZHx8fnTx50mksJydHvr6+5va/BpecnByVLFnyivOGhIQ4Xbq6Xrm5uZIkP38/Bdwa4LJ5JcnP75wkydfXtXP7l7i4MhMSEqLw8HCXzesOdrtdycnJCg0NlZeXl6fL+duhv+5Ff92L/rpXUelvZmZmgRYiimSYCQ4ONlc98mRkZJiXloKDg5WRkZFve+3ata84r5eXl0vflLyVDZtNssm1KzP6//O5eu68uVzdC3eyUq1WRH/di/66F/11L0/3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uDY+Pj75VrdycnLMvl6u9399UCIumjhxov79739rypQpCgkJob8uFhoaKuniL+CXX35ZXbp0UVZWltM+9PfaTJ8+XfXq1XNaXcxzuf5drb9/XQG+mVWqVElbtmxRqVKlZLPZVLt2bTkcDr3yyiuKjIy0bH8JM4VwLU8fxrUJDg5Wamqq01hGRoa5tBkcHJzv6+szMjJUu3btG1ajVbz++ut6//33NXHiRN1///2S6K8rZGRkaNu2bWrXrp05Vr16dV24cEFBQUHau3dvvv3pb8GtWrVKGRkZ5j2Jeb88V69erejo6Ev272r9DQoKugGVW0fp0qWdXlerVk3Z2dkKCgqybH+5Z6YQePqw+4SFhennn382vylVutjbsLAwc3tiYqK5LSsrSzt37jS346Lp06dryZIlmjx5sjp27GiO09/rd+DAAQ0YMMDpG8t37NihsmXLqmHDhvT3Or333ntauXKlPvroI3300Udq27at2rZtq48++khhYWH66aefZPz/70c2DEM//vjjZft7+PBhHT58mP7+ybp169SkSROnFcSUlBSVLl1aDRs2tG5/PflRKiv717/+ZXTs2NFISkoyvvzyS6NBgwbG6tWrPV2WJf35o9m5ublGhw4djOeff97YtWuXMWvWLCM8PNx8TkdaWpoRGhpqzJo1y3xOR6dOnXhOx5+kpqYatWvXNqZMmeL0HIljx47RXxfIzc01YmJijD59+hi7d+821qxZYzRv3txYsGAB/XWDwYMHmx8HPnPmjNG0aVPj9ddfN3bv3m28/vrrRosWLcyPwv/4449G3bp1jQ8++MB8Dkq/fv08WX6Rc+bMGaNVq1bGiy++aOzZs8dYs2aN0bJlS2P27NmW7i9hppAyMzONQYMGGeHh4UbLli2Nd99919MlWdafw4xhGMa+ffuMxx9/3KhXr57RsWNHY8OGDU77r1mzxrjvvvuM+vXrG08++WSReMZBUTJr1iwjJCTkkn8Mg/66wpEjR4y4uDijQYMGRosWLYx33nnHDCT017X+HGYM4+KD2x566CEjNDTU6Nq1q/Hzzz877b98+XIjKirKCA8PN+Li4ozjx4/f6JKLvF27dhm9e/c2wsPDjRYtWhjTpk0z//5atb82w/j/60kAAAAWxA0eAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0vhuJgBFStu2bXXw4MF84w0aNND777/vgYoAFHWEGQBFzquvvqoOHTo4jd1yyy0eqgZAUUeYAVDk3HrrrUXim3gBWAP3zACwjLNnzyo+Pl7NmjVTvXr11L59e3311Vfm9po1a+qtt95SkyZN1L9/f0nSDz/8oJiYGNWvX1+dOnXS6tWrPVU+ADdhZQaAZYwZM0a//fab5s+fLz8/P82dO1dDhw7V3XffLW9vb0nSt99+q/fff18Oh0Pp6enq16+fXnjhBbVq1Urbtm3TkCFDFBgYqEaNGnn4bAC4Cl80CaBIadu2rdLT01W8uPP/a23YsEGff/656tWrp5CQEEnS3r179cADD2jNmjWqUKGCatasqREjRqh79+6SpKlTp2rPnj2aNm2aOc+4ceN08OBBpzEA1sbKDIAiZ+DAgbrvvvucxvz8/PTQQw/pq6++0gcffKC9e/fq559/liTZ7XZzv0qVKpn/vHfvXn377beKiIgwxy5cuKA777zTzWcA4EYizAAocgIDA1WlSpV846+88op++uknde7cWd27d1dQUJAeffRRp318fHzMf87NzVWnTp3M+2fy/HXVB4C18W80AEs4e/asPvnkE33wwQeqX7++JGnt2rWSpMtdLb/zzjv1008/OQWj+fPnKycnJ1/AAWBdfJoJgCV4e3vLz89PX3zxhQ4cOKB169Zp1KhRkqScnJxL/kyPHj20Y8cOTZkyRfv27dPKlSs1efJkVaxY8UaWDsDNCDMALMHb21sTJ07U6tWr1bFjR40bN07PPPOMgoKClJKScsmfqVSpkmbOnKl169YpOjpaU6dO1ZAhQ/Tggw/e4OoBuBOfZgIAAJbGygwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALC0/weCPmjauRMh9gAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.histplot(train_df['Fare'], bins=20, color='orange')\n",
+ "plt.title('Distribution of Passenger Fares')\n",
+ "plt.xlabel('Fare')\n",
+ "plt.ylabel('Frequency')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Make a histogram for \"Age\" (Assignment)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHACAYAAABXvOnoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAX0lEQVR4nO3deXhTZf7+8TsU2qYUUEBQimxiS4HaDQsIiMMgooA6CI4LOi5YkE3HhUUQcRARGRgVEAQXVPwJw6oI4sioDCObgECRSossraLY8BWwTReanN8f2DiltKRp0uSE9+u6uDDPOXk+z6dp6e05JycWwzAMAQAAmFQNfy8AAACgKggzAADA1AgzAADA1AgzAADA1AgzAADA1AgzAADA1AgzAADA1AgzAADA1AgzAIIS9wMFLhyEGeAC9vjjjysmJkZvvvlmtdZdsWKFYmJi9P33359z+9ixY9WjR49yH59PZmam7rzzziqvE4A5EGaAC9Svv/6q9evXKzo6WkuWLAnoIxnDhg3T7Nmz3d5/3bp1+vrrr324IgCBhDADXKA++ugjSdL48eN1+PBhbdmyxc8rKl+zZs3Utm1bfy8DQIAizAAXqOXLl6tz587q1KmTmjdvrsWLF5fZ54033tAf//hHXXXVVbrjjjv02WefKSYmRlu3bnXtk5GRoSFDhigpKUlJSUkaPny4srOzvbrWs08z7d27V3/5y1+UnJysxMRE3Xfffdq1a5ckadasWa6jODExMZo1a5YkqbCwUHPmzFHv3r0VFxenXr16af78+XI6nZXqedasWbr++us1e/ZspaSkqGvXrjp58qQKCgo0Y8YM9erVS+3bt1dSUpLuv/9+paenl+rjwQcf1JIlS9SzZ09XjUOHDunzzz9Xv379FB8fr4EDB5Z6HoCK1fT3AgBUv8zMTKWlpenll1+WJN1666169dVXZbPZ1LBhQ0nS7NmzNWfOHD344IPq1KmTNm7cqEcffbTUPIcOHdIdd9yhVq1aadq0aSouLtbcuXN155136oMPPlCDBg0qXIfT6VRxcXGZ8YpOeeXm5mrw4MHq1KmTZs2apaKiIs2dO1cPPvigvvjiCw0cOFA//fSTli1bpiVLlujSSy+VYRgaOnSodu3apREjRqhNmzbaunWrXnrpJWVnZ2vy5Mlu9yxJR48e1YYNG/SPf/xDJ06cUL169TRq1Cht375djz32mJo1a6YjR47o5Zdf1uOPP641a9bIYrFIkr7++mv9/PPPGjt2rAoLCzVp0iSlpqbKYrFo1KhRslqteuaZZ/TEE09ozZo1FX79AJxBmAEuQMuXL9dFF13kOtrxpz/9SbNmzdKyZcs0dOhQ2e12LViwQHfffbeeeOIJSVLXrl2Vn5+vJUuWuOaZPXu2rFarFi5cqMjISElS586d1bNnT73++usaM2ZMheu4/vrry90WFRV1zvEDBw7ol19+0b333qukpCRJUqtWrbRkyRLl5eXp0ksv1aWXXipJSkhIkCRt2LBBmzZt0syZM9WnTx9JUpcuXRQeHq6XX35Z9957r6KiotzqWZKKi4s1ZswYdejQQZJUVFSkvLw8TZgwQTfddJMkKSUlRbm5uXrhhRdks9l0ySWXSJLy8vL00ksv6YorrpAkbdu2TYsXL9bChQvVuXNnSdKRI0c0bdo0nTp1SnXr1q3wawiAMANccE6fPq0PP/xQPXv2VEFBgQoKClS7dm0lJyfrn//8p1JTU7Vr1y4VFBSod+/epZ7bt2/fUr/Yt2zZopSUFIWHh7uOsERGRqpDhw7atGnTedcyd+5c1y/5/zVnzhxlZGSc8zlXXnml6tevr6FDh6p3797q1q2bunTpoieffLLcOtu2bVPNmjXL9HPzzTfr5Zdf1rZt29SyZUu3ei4RGxvr+u/Q0FC98cYbkqRjx47p0KFDOnz4sD7//HNJZ8JOiXr16rmCjCTXkbD4+HjX2EUXXSRJhBnATYQZ4ALzxRdf6Pjx41q2bJmWLVtWZvvGjRv166+/SpLq169fatvZp41OnDihtWvXau3atWXmOfu55xIdHa2mTZuWGS/5ZX4utWvX1nvvvae5c+fq448/1pIlSxQeHq5bbrlFEyZMUGhoaJnnnDx5UhdffLFCQkJKjZcEqV9//VX/93//d851l3eqrHbt2qUeb9y4Uc8//7wOHjyo2rVrq02bNoqIiJBU+rRZyRGss5XsC6DyCDPABWb58uW6/PLLNWXKlFLjhmFoxIgRWrx4sR588EFJ0vHjx9WqVSvXPiW/8EvUqVNH11xzje6///4ydWrW9N0/L61atdL06dPlcDi0Z88effDBB3r//ffVrFkzDR48uMz+9erV0y+//CKHw1Eq0Pz888+SpIsvvth1aup8PZ9LVlaWhg8frp49e+q1117T5ZdfLovFovfee08bN26sarsAzoN3MwEXkJycHG3cuFF9+vRRx44dS/3p1KmTevfurQ0bNuiyyy5TnTp19Omnn5Z6/r/+9a9Sj1NSUnTgwAHFxsYqLi5OcXFxat++vRYuXFjmud6ybt06derUSTk5OQoJCVFiYqImTZqkunXr6ujRo5KkGjVK/9OWkpKi4uJirVu3rtT4hx9+KElKTk5WmzZt3Or5XPbu3avCwkKlpqaqWbNmrot9S4JMIN/DBwgGHJkBLiCrVq1ScXGx6yLYs916661aunSpVqxYocGDB+uVV16R1WpVSkqKtm3bpvfff1/S72Fh2LBhuuOOOzRkyBDdeeedCgsL05IlS7R+/Xq98sorPukhKSlJTqdTw4cPV2pqqmrXrq2PP/5Yv/76q3r16iVJrutMPvroI8XHx+vaa69Vx44dNWHCBB07dkxt2rTRtm3btGDBAv3pT39S69atJcmtns+lXbt2qlmzpqZPn64HHnhARUVFWrFihb744gtJkt1u98nXAsAZHJkBLiArVqzQlVdeqejo6HNuT05OVtOmTbV06VI99NBDGjlypD744AMNGTJE27dvd73Lp+T6jjZt2ui9996TxWLR6NGjNWrUKOXk5GjOnDmuYOFtjRo10uuvv646depo/PjxGjJkiL755hvNmjVLnTp1kiT16tVLcXFxGjt2rN544w1ZLBa99tpruuOOO7Rw4UKlpqZq3bp1euyxx/T888+75h4yZMh5ez6X5s2ba8aMGTp27JgefvhhTZw4UZL07rvvymKxaPv27T75WgA4w2Jw/BPAWYqLi/XRRx+pY8eOuuyyy1zj7733np577jlt3bo16N5lcyH2DAQLwgyAc+rTp49CQ0P18MMP6+KLL1ZGRoZeeukl9ezZU1OnTvX38nziQuwZCAaEGQDnlJ2drZkzZ2rr1q06deqUmjRpoptvvllDhgxRrVq1/L08n7gQewaCAWEGAACYGhcAAwAAUyPMAAAAUyPMAAAAU7sgbppXXFyskydPKiwsrMIbXwEAgMDhdDpVWFioevXqVfgRKRdEmDl58qQOHz7s72UAAAAPtGjRotwPfZUukDATFhYm6cwXw2q1Vnk+h8OhjIwMRUdHl/kU3mAQ7P1J9BgMgr0/iR6DQbD3J/m2x/z8fB0+fNj1e7w8F0SYKTm1ZLVaK7wlubscDoekM7c3D8ZvzmDvT6LHYBDs/Un0GAyCvT+peno83yUiXEACAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMjTADAABMraa/FwDg3LKysmSz2Tx+vsPhUEZGhpxOp0JCQtx+XsOGDdWsWTOP6wJAdSPMAAEoKytLMTGxKiiwV3vt8PAI7d+fTqABYBqEGSAA2Ww2FRTYFRu7SBERsR7NYRiG8vPtslojZLFY3HqO3Z6u9PRBstlshBkApkGYAQJYRESs6tRJ8ui5hmHIYslVZGSk22EGAMyIC4ABAICpEWYAAICpEWYAAICpEWYAAICpEWYAAICpEWYAAICpEWYAAICpEWYAAICpEWYAAICpEWYAAICpEWYAAICpBUSYKSoqUt++fbV161bX2K5du3THHXcoMTFRN9xwg5YuXVrqOZs2bVLfvn0VHx+ve++9V9nZ2dW9bAAAEAD8HmYKCwv12GOPKTMz0zWWk5Ojhx56SCkpKVq5cqVGjRqlyZMn64svvpAkHT16VMOHD1f//v21bNky1a9fX8OGDZNhGH7qAgAA+Itfw8yBAwd0++23Kysrq9T4+vXr1bBhQz322GNq0aKF+vTpo1tvvVWrV6+WJC1dulTt27fXAw88oCuvvFJTp07VDz/8oG3btvmjDQAA4Ed+DTPbtm1Tx44dtWTJklLj3bp109SpU8vsn5ubK0navXu3OnTo4Bq3Wq1q166ddu3a5dP1AgCAwFPTn8Xvuuuuc443bdpUTZs2dT0+fvy41qxZo5EjR0o6cxqqUaNGpZ7ToEED/fTTTxXWczgccjgcVVy1XHN4Y65AFOz9SYHfY8m6DMOowulTw/W3u1OU1PLWz4ovBfpr6A30aH7B3p/k2x7dndOvYcYdBQUFGjlypBo2bKg///nPkqT8/HyFhoaW2i80NFRFRUUVzpWRkeHVtaWlpXl1vkAT7P1Jgdtjyfdqfr5dFktulebKzc1ze9/8fLurfo0afr+kzi2B+hp6Ez2aX7D3J/m3x4AOM3l5eRo2bJgOHz6s//f//p+sVqskKSwsrExwKSoqUt26dSucLzo6WhEREVVel8PhUFpamuLi4hQSElLl+QJNsPcnBX6PTqdTkmS1RigyMtLDWQzl5uYpMrK2JIt7zzDO/HxER0crISHBw7rVI9BfQ2+gR/ML9v4k3/Zot9vdOhARsGEmNzdXgwcPVlZWlt5++221aNHCta1x48ay2Wyl9rfZbIqNja1wzpCQEK9+ob09X6AJ9v6kwO2xZE0Wi0UWi3tB5Gy/n1pyf46S/QL163IuZlqrp+jR/IK9P8k3Pbo7X0AeR3Y6nRoxYoS+//57vfvuu7ryyitLbY+Pj9eOHTtcj/Pz87Vv3z7Fx8dX91IBAICfBWSYWbZsmbZu3arnnntOdevWVU5OjnJycnTixAlJ0m233aadO3dq/vz5yszM1Lhx49S0aVN17NjRvwsHAADVLiBPM33yySdyOp0aMmRIqfGUlBS9++67atq0qWbNmqXnn39ec+bMUWJioubMmePx4XgAAGBeARNm9u/f7/rvN95447z7d+/eXd27d/flkgAAgAkE5GkmAAAAdxFmAACAqRFmAACAqRFmAACAqRFmAACAqRFmAACAqQXMW7OBQJSVlVXmozOqQ3p6erXXBACzIswA5cjKylJMTKwKCux+W0NRUaHfagOAWRBmgHLYbDYVFNgVG7tIEREVf4iptx0/vlaHDz+t4uLiaq0LAGZEmAHOIyIiVnXqJFVrTbud00wA4C4uAAYAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZGmAEAAKZW098LANyRlZUlm83mtfkcDocyMjLkdDoVEhJyzn3S09O9Vg8A4DuEGQS8rKwsxcTEqqDA7pf6RUWFfqkLAHAPYQYBz2azqaDArtjYRYqIiPXKnIZhKD/fLqs1QhaL5Zz7HD++VocPP63i4mKv1AQA+AZhBqYRERGrOnWSvDKXYRiyWHIVGRlZbpix2znNBABmwAXAAADA1AgzAADA1AgzAADA1AIizBQVFalv377aunWrayw7O1v33XefEhISdNNNN+m///1vqeds2rRJffv2VXx8vO69915lZ2dX97IBAEAA8HuYKSws1GOPPabMzEzXmGEYGj58uBo2bKjly5frlltu0YgRI3T06FFJ0tGjRzV8+HD1799fy5YtU/369TVs2DAZhuGvNgAAgJ/4NcwcOHBAt99+u7KyskqNb9myRdnZ2frb3/6mK664QkOGDFFCQoKWL18uSVq6dKnat2+vBx54QFdeeaWmTp2qH374Qdu2bfNHGwAAwI/8Gma2bdumjh07asmSJaXGd+/erbZt2yoiIsI1lpycrF27drm2d+jQwbXNarWqXbt2ru0AAODC4df7zNx1113nHM/JyVGjRo1KjTVo0EA//fSTW9vL43A45HA4qrDi3+f537+DTaD1V7IOwzC8eCrRcP1d3pS/j3uzrnu8U/v8PZate2ZHb/2s+FKgfZ/6Aj2aX7D3J/m2R3fnDMib5uXn5ys0NLTUWGhoqIqKitzaXp6MjAyvrjMtLc2r8wWaQOmv5HXLz7fLYsn16ty5uXnlbisoyP+tboFyc71b93y8WbuiHs+Wn3/mIyMyMjJUo4bfL6lzS6B8n/oSPZpfsPcn+bfHgAwzYWFhOnHiRKmxoqIihYeHu7afHVyKiopUt27dCueNjo4uderKUw6HQ2lpaYqLiyv3QwrNLND6czqdkiSrNUKRkZFemtVQbm6eIiNrSzr3HYDz8qy/1Q33Yl33eKf2+Xss8wzjzM9HdHS0EhISPKxbPQLt+9QX6NH8gr0/ybc92u12tw5EBGSYady4sQ4cOFBqzGazuU4tNW7cuMwnKNtsNsXGVvy5PSEhIV79Qnt7vkATKP2VrMFisZT70QOV9ftpl/Ln/H3Ye3Xd5Y3a7vRYtu6Z/QLltXeHmdbqKXo0v2DvT/JNj+7OF5DHkePj4/XNN9+ooKDANbZjxw7Fx8e7tu/YscO1LT8/X/v27XNtBwAAF46ADDMpKSm67LLLNG7cOGVmZmr+/Pnas2ePBgwYIEm67bbbtHPnTs2fP1+ZmZkaN26cmjZtqo4dO/p55QAAoLoFZJgJCQnRq6++qpycHPXv318ffvih5syZoyZNmkiSmjZtqlmzZmn58uUaMGCATpw4oTlz5lT7qQAAAOB/AXPNzP79+0s9bt68uRYtWlTu/t27d1f37t19vSwAABDgAvLIDAAAgLsIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQIMwAAwNQCOsz8+OOPGjJkiJKSktSjRw8tXLjQtW3fvn0aOHCg4uPjddttt2nv3r3+WygAAPCbgA4zjz76qCIiIrRixQo99dRTeumll/Tpp5/KbrcrNTVVHTp00IoVK5SYmKghQ4bIbrf7e8kAAKCaBWyYOXnypHbt2qWHH35YLVq0UM+ePdWtWzdt3rxZa9euVVhYmEaPHq0rrrhC48ePV+3atbVu3Tp/LxsAAFSzgA0z4eHhslqtWrFihU6fPq2DBw9q586dio2N1e7du5WcnCyLxSJJslgsSkpK0q5du/y7aAAAUO1q+nsB5QkLC9PEiRM1efJkvfPOO3I4HOrfv78GDhyof//732rdunWp/Rs0aKDMzMwK53Q4HHI4HFVeW8kc3pgrEAVafyXrMAxDhmF4aVbD9Xd5U/4+7s267vFO7fP3WLbumR2/+eaban/9GzZsqGbNmrm9f6B9n/oCPZpfsPcn+bZHd+cM2DAjSd99953+8Ic/6P7771dmZqYmT56szp07Kz8/X6GhoaX2DQ0NVVFRUYXzZWRkeHV9aWlpXp0v0ARKfyWvW36+XRZLrlfnzs3NK3dbQUH+b3ULlJvr3brn483aFfV4tlOnDkmqoXvvvbdKNT0RFmbV8uVLdemll1bqeYHyfepL9Gh+wd6f5N8eAzbMbN68WcuWLdOGDRsUHh6uuLg4HTt2THPnztXll19eJrgUFRUpPDy8wjmjo6MVERFR5bU5HA6lpaUpLi5OISEhVZ4v0ARaf06nU5JktUYoMjLSS7Mays3NU2RkbUmWc+6Rl2f9rW64F+u6xzu1z99j2bqFkpxq0WKB6tdP9LBu5dnt6fr223vUqFEjJSQkuPWcQPs+9QV6NL9g70/ybY92u92tAxEBG2b27t2r5s2blwoobdu21bx589ShQwfZbLZS+9tsNjVq1KjCOUNCQrz6hfb2fIEmUPorWYPFYnFdJ1VVv592KX/O34e9V9dd3qjtTo/l1bVaY1S3brJHdT1Rsj5PvucC5fvUl+jR/IK9P8k3Pbo7X8BeANyoUSMdOXKk1BGYgwcPqmnTpoqPj9fXX3/tOr9vGIZ27typ+Ph4fy0XAAD4ScCGmR49eqhWrVqaMGGCDh06pM8++0zz5s3TPffco969e+vUqVOaMmWKDhw4oClTpig/P1833nijv5cNAACqWcCGmTp16mjhwoXKycnRgAEDNHXqVD388MP685//rMjISL322mvasWOH+vfvr927d2v+/PleuR4GAACYS8BeMyNJrVu31ltvvXXObVdddZVWrlxZzSsCAACBxqMjM1u2bKn2+24AAACci0dHZh555BHVqlVLvXv3Vt++fd1+KyUAAIC3eRRmvvzyS3355Zdat26dUlNTFRkZqRtvvFF9+vRR27Ztvb1GAACAcnkUZmrWrKnu3bure/fuKi4u1qZNm/TZZ5/prrvuUuPGjdWvXz/1799fTZo08fZ6AQAASqnSu5mKioq0YcMGrVmzRh9//LEuvvhi9ejRQ4cPH1afPn20aNEib60TAADgnDw6MrN+/XqtW7dOX3zxhWrVqqUbbrhBc+bMUYcOHVz7vPfee5o5c6YGDRrktcUCAACczaMwM2bMGPXs2VMzZ85Uly5dznm74fbt2+v++++v8gIBAAAq4lGY2bRpk3Jzc3Xq1ClXkFm7dq2uvvpqXXLJJZKk+Ph4Pl4AAAD4nEfXzOzcuVPXX3+9Vq9e7Rp75513dNNNN2nHjh1eWxwAAMD5eBRmpk2bpqFDh2rUqFGuscWLF2vw4MF6/vnnvbY4AACA8/EozBw+fFi9e/cuM37jjTfqwIEDVV4UAACAuzwKM61atdLHH39cZvyzzz5Ts2bNqrwoAAAAd3l0AfCjjz6qYcOG6csvv1S7du0kSfv379f27ds1a9Ysry4QAACgIh4dmbn22mu1cuVKtW3bVgcPHlRWVpbatGmjNWvWqHv37t5eIwAAQLk8OjIjSVdeeaXGjh3rzbUAAABUmkdh5tSpU3rzzTeVlpam4uJiGYZRavs777zjlcUBAACcj0dhZvTo0UpLS1O/fv0UGRnp7TUBAAC4zeM7AC9atEhXXXWVt9cDAABQKR5dANy4cWPVqFGlD9wGAADwCo9PM02aNEmjRo1S8+bNVatWrVLbmzRp4pXFAQAAnI9HYWbkyJGSpNTUVEmSxWKRJBmGIYvFovT0dC8tDwAAoGIehZl///vf3l4HAACARzy68CUqKkpRUVGy2+3at2+fLr74YjmdTjVp0kRRUVHeXiMAAEC5PDoyc/LkST3yyCPatm2bJOmTTz7RlClTlJ2drfnz5xNoAABAtfHoyMxzzz0nq9WqLVu2KCwsTJL0/PPP69JLL9Vzzz3n1QUCAABUxKMws3HjRj322GOqW7eua6x+/foaN26cvvrqK68tDgAA4Hw8vllMYWFhmbH/+7//U82aHn/cEwAAQKV5FGb69u2rKVOmKDMzUxaLRXa7XVu2bNHTTz+tm266ydtrBAAAKJfHN82bOXOm+vfvr9OnT+uWW25RSEiIBg4cqNGjR3t7jQAAAOXyKMyEhoZq7NixevTRR5WdnS2Hw6HLL79ctWvX9vb6AAAAKuRRmDnXRb779u1z/ffVV1/t+YoAAAAqwaMwc88995xzPDQ0VJdccgl3CAYAANXGozDz7bfflnrscDiUlZWlyZMnq1+/fl5ZGAAAgDs8fmv2/woJCVHLli01duxYvfzyy96YEgAAwC1eCTMljh8/rlOnTnlzSgAAgAp5dJpp3LhxZcby8vK0adMm9e7du8qLAgAAcJfXbtd70UUXacyYMbrlllu8NSUAAMB5eRRmpk6d6u11AAAAeMSjMDN79my39x0xYoQnJQAAANziUZg5cuSI1q1bp4suukjt27dXaGiovv32W2VlZSkhIcH1YZMWi8WriwUAADibxx9n0K9fPz377LOqVauWa3zatGk6efKknn/+ea8tEAAAoCIevTV77dq1Gjx4cKkgI0m333671q5d65WFAQAAuMOjMNO4cWNt3LixzPgnn3yiyy+/vMqLAgAAcJdHp5kef/xxPfroo/riiy/Upk0bSVJaWpr27dunefPmeW1xRUVFmjp1qj766CPVqlVLAwYM0F//+ldZLBbt27dPzzzzjDIyMtS6dWs9++yzat++vddqAwAAc/DoyMz111+vFStWKDo6Wt99951++OEHpaSk6JNPPlFKSorXFvfcc89p06ZNeuONNzRjxgz985//1JIlS2S325WamqoOHTpoxYoVSkxM1JAhQ2S3271WGwAAmIPHN82LiYnRuHHjdPLkSUVGRqpGjRpefffSiRMntHz5cr311lu66qqrJEkPPPCAdu/e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UHUREbGKjEyUxZKryMhIn4eZCxkXAAMAAFPjyAwAIKilp6cHdT0QZgAAQaqo6EdJNTRo0CA/1S/0S90LEWEGABCUiotPSHKqRYsFatAgqdrqHj++VocPP63i4uJqq3mhI8wAAIKa1RqjOnWqL8zY7Zxmqm5cAAwAAEyNMAMAAEyNMAMAAEyNMAMAAEzN1GGmsLBQTz31lDp06KCuXbvqzTff9PeSAABANTP1u5lefPFF7d27V2+//baOHj2qMWPGqEmTJurdu7e/lwYAgF9U9037HA6Hfv7552qteTbThhm73a6lS5dqwYIFateundq1a6fMzEy99957hBkAwAXHnzcJDAuzKj39G7Vs2bLaa0smDjPffvutiouLlZiY6BpLTk7WvHnz5HQ6VaOGqc+gAQBQKf66SWBe3j59++09stlshJnKysnJ0cUXX6zQ0FDXWMOGDVVYWKgTJ06ofv36rnGn0ylJysvLk8PhqHLtkvmcTqdiYmJ0ySUHFR5uVHled1ksx+V0xujSS7NUr94OH1QwZLUWKDw8XNLvn/Lq+7rn5pu65+7R93Xd453a5+/RN3Urz7O6le/PO3Wrzv26Ve/Rs7reVXFd7/bofl3fObuur/orr26TJlbVq1d9v5MKCsJkGDFyOp369ddfvTx3gaTff++Wx2IYRvV17EWrVq3Syy+/rM8//9w1lp2drZ49e2rDhg269NJLXePHjx/X4cOH/bBKAABQVS1atFCDBg3K3W7aIzNhYWEqKioqNVby+EwC/l29evXUokULhYWFcfoJAACTcDqdKiwsVL169Srcz7RhpnHjxvrll19UXFysmjXPtJGTk6Pw8HDVrVu31L41a9asMNEBAIDAFBkZed59THuYIjY2VjVr1tSuXbtcYzt27FBcXBxHXwAAuICY9re+1WrVrbfeqkmTJmnPnj1av3693nzzTd17773+XhoAAKhGpg0zkjRu3Di1a9dOf/nLX/Tss89q5MiR6tWrl09rButdh4uKitS3b19t3brVNZadna377rtPCQkJuummm/Tf//7Xjyv03LFjxzRq1CilpKSoW7dumjp1qgoLCyUFT49HjhzRgw8+qMTERF133XV6/fXXXduCpccSqampGjt2rOvxvn37NHDgQMXHx+u2227T3r17/bg6z3366aeKiYkp9WfUqFGSgqfHoqIiPfvss7r6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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Create the plot below\n",
+ "sns.histplot(train_df['Age'], bins=15, color='blue')\n",
+ "plt.title('Age Histogram')\n",
+ "plt.xlabel('Age')\n",
+ "plt.ylabel('Frequency')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "## Fill Missing: Age Feature"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Ticket | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 5 | \n",
+ " 6 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Moran, Mr. James | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 330877 | \n",
+ " 8.4583 | \n",
+ " NaN | \n",
+ " Q | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " 18 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " Williams, Mr. Charles Eugene | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 244373 | \n",
+ " 13.0000 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " 20 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " Masselmani, Mrs. Fatima | \n",
+ " female | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2649 | \n",
+ " 7.2250 | \n",
+ " NaN | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " | 26 | \n",
+ " 27 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Emir, Mr. Farred Chehab | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2631 | \n",
+ " 7.2250 | \n",
+ " NaN | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " | 28 | \n",
+ " 29 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " O'Dwyer, Miss. Ellen \"Nellie\" | \n",
+ " female | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 330959 | \n",
+ " 7.8792 | \n",
+ " NaN | \n",
+ " Q | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 859 | \n",
+ " 860 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Razi, Mr. Raihed | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 2629 | \n",
+ " 7.2292 | \n",
+ " NaN | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " | 863 | \n",
+ " 864 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Sage, Miss. Dorothy Edith \"Dolly\" | \n",
+ " female | \n",
+ " NaN | \n",
+ " 8 | \n",
+ " 2 | \n",
+ " CA. 2343 | \n",
+ " 69.5500 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 868 | \n",
+ " 869 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " van Melkebeke, Mr. Philemon | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 345777 | \n",
+ " 9.5000 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 878 | \n",
+ " 879 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Laleff, Mr. Kristo | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 349217 | \n",
+ " 7.8958 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " | 888 | \n",
+ " 889 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Johnston, Miss. Catherine Helen \"Carrie\" | \n",
+ " female | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " W./C. 6607 | \n",
+ " 23.4500 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
177 rows × 12 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Survived Pclass Name \\\n",
+ "5 6 0 3 Moran, Mr. James \n",
+ "17 18 1 2 Williams, Mr. Charles Eugene \n",
+ "19 20 1 3 Masselmani, Mrs. Fatima \n",
+ "26 27 0 3 Emir, Mr. Farred Chehab \n",
+ "28 29 1 3 O'Dwyer, Miss. Ellen \"Nellie\" \n",
+ ".. ... ... ... ... \n",
+ "859 860 0 3 Razi, Mr. Raihed \n",
+ "863 864 0 3 Sage, Miss. Dorothy Edith \"Dolly\" \n",
+ "868 869 0 3 van Melkebeke, Mr. Philemon \n",
+ "878 879 0 3 Laleff, Mr. Kristo \n",
+ "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n",
+ "\n",
+ " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n",
+ "5 male NaN 0 0 330877 8.4583 NaN Q \n",
+ "17 male NaN 0 0 244373 13.0000 NaN S \n",
+ "19 female NaN 0 0 2649 7.2250 NaN C \n",
+ "26 male NaN 0 0 2631 7.2250 NaN C \n",
+ "28 female NaN 0 0 330959 7.8792 NaN Q \n",
+ ".. ... ... ... ... ... ... ... ... \n",
+ "859 male NaN 0 0 2629 7.2292 NaN C \n",
+ "863 female NaN 8 2 CA. 2343 69.5500 NaN S \n",
+ "868 male NaN 0 0 345777 9.5000 NaN S \n",
+ "878 male NaN 0 0 349217 7.8958 NaN S \n",
+ "888 female NaN 1 2 W./C. 6607 23.4500 NaN S \n",
+ "\n",
+ "[177 rows x 12 columns]"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df[train_df[\"Age\"].isnull()]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Try Checking for Null Values in Test Df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "PassengerId 0\n",
+ "Pclass 0\n",
+ "Name 0\n",
+ "Sex 0\n",
+ "Age 86\n",
+ "SibSp 0\n",
+ "Parch 0\n",
+ "Ticket 0\n",
+ "Fare 1\n",
+ "Cabin 327\n",
+ "Embarked 0\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df.isnull().sum()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Run this to fix the Null Values"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "index_nan_age = list(train_df[\"Age\"][train_df[\"Age\"].isnull()].index)\n",
+ "for i in index_nan_age:\n",
+ " age_pred = train_df[\"Age\"][((train_df[\"SibSp\"] == train_df.iloc[i][\"SibSp\"]) &(train_df[\"Parch\"] == train_df.iloc[i][\"Parch\"])& (train_df[\"Pclass\"] == train_df.iloc[i][\"Pclass\"]))].median()\n",
+ " age_med = train_df[\"Age\"].median()\n",
+ " if not np.isnan(age_pred):\n",
+ " train_df[\"Age\"].iloc[i] = age_pred\n",
+ " else:\n",
+ " train_df[\"Age\"].iloc[i] = age_med\n",
+ "\n",
+ "index_nan_age = list(test_df[\"Age\"][test_df[\"Age\"].isnull()].index)\n",
+ "for i in index_nan_age:\n",
+ " age_pred = test_df[\"Age\"][((test_df[\"SibSp\"] == test_df.iloc[i][\"SibSp\"]) &(test_df[\"Parch\"] == test_df.iloc[i][\"Parch\"])& (test_df[\"Pclass\"] == test_df.iloc[i][\"Pclass\"]))].median()\n",
+ " age_med = test_df[\"Age\"].median()\n",
+ " if not np.isnan(age_pred):\n",
+ " test_df[\"Age\"].iloc[i] = age_pred\n",
+ " else:\n",
+ " test_df[\"Age\"].iloc[i] = age_med"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Analysing the correlation between the different columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "numerical_columns = train_df.select_dtypes(include=[np.number]).columns\n",
+ "sns.heatmap(train_df[numerical_columns].corr(), annot=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We see that Fare and Parch are positively correlated with Survived. Similarly, Fare and Class are negatively correlated, in the sense that the higher the higher the Fare, the lower the Class number (Remember that Class 1 < Class 2 < Class 3 in face value)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Embarked"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 S\n",
+ "1 C\n",
+ "2 S\n",
+ "3 S\n",
+ "4 S\n",
+ "Name: Embarked, dtype: object"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df[\"Embarked\"].head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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Gjx4sBwOh1JSUnTq1CkrDgEAAFjM0pg5cuSIbr/9du3cudP75/HHH5fT6dTEiRMVHx+vV155RbGxsZo0aZKcTqckad++fUpPT1dqaqrWr1+vM2fOKC0tzcpDAQAAFrE0Zj755BP16NFDbdu29f5p0aKFtm7dKrvdrhkzZqhbt25KT09Xs2bNtG3bNknSunXrNGzYMI0aNUo33XSTFixYoB07dqikpMTKwwEAABawPGa6du1aa3thYaHi4uJks9kkSTabTX369FFBQYF3PT4+3rt/+/btFRERocLCwisxNgAAaEQCrXpij8ejf//739q5c6eWL18ut9utoUOHatq0aSorK1P37t199g8LC1NxcbEk6auvvlK7du1qrZ84caLO53S73XK73Q17IGiSeB0BwOVX35+1lsVMaWmpKisrFRQUpGeeeUaff/65Hn/8cVVVVXm3f19QUJBcLpckqaqqqs71izl8+HDDHgSarPNnCQEA1rMsZjp06KAPPvhALVu2lM1mU1RUlGpqavTggw+qb9++tcLE5XIpODhYkmS32y+4HhISUudz9ujRQ6Ghof4NnHvAv/vhqhQTE2P1CABw1XM6nfU6EWFZzEjSdddd53O7W7duqq6uVtu2bVVeXu6zVl5e7r20FB4efsH1tm3b1vl8AQEBCggI+PGDo8njdQQAl199f9Za9gbgd955R/369VNlZaV328GDB3XdddcpLi5O//rXv+TxeCR99/6avXv3yuFwSJIcDofy8/O99zt+/LiOHz/uXQcAAE2HZTETGxsru92uhx9+WEePHtWOHTu0YMEC3X///Ro6dKjOnDmjjIwMHTlyRBkZGaqsrNSwYcMkSUlJSXrttde0ceNGHTp0SDNmzNDAgQPVqVMnqw4HAABYxLKYad68uVauXKlTp04pMTFR6enpGjt2rO6//341b95cy5cvV35+vhISElRYWKicnBzv+11iY2M1d+5cZWdnKykpSS1btlRmZqZVhwIAACxk85y/lnMVczqdOnjwoKKiovx+A3Dcg2saeCqYLD8r2eoRAOCqV99/v/lFkwAAwGjEDAAAMBoxAwAAjEbMAAAAoxEzAADAaMQMAAAwGjEDAACMRswAAACjETMAAMBoxAwAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjEbMAAAAoxEzAADAaMQMAAAw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oaFXeLKmg5hBnaKjozVw4EBNmTJFmzdv1ueff66CggLNnj1bLpdLv/71r60eEU3Q1KlTdfbsWd13333avXu3PvvsM23cuFEzZ85UcnKyunfvbvWIaEJat26twYMHa9myZTp37pwkae3atbr//vu1e/du/eUvf9GYMWMsnvLqxvfM4JIqKyu1bNkybdu2TaWlpQoNDVX//v31wAMPKCIiwurx0EQdP35cixcv1s6dO1VRUaHOnTvrd7/7nZKSkmp9ogS43L766islJSWpc+fOSklJUYsWLTRnzhzl5+erc+fO2rp1K5/+vIyIGQAAGsDJkyeVnZ2tN998U6dPn1ZERIQGDRqkv/3tb+rcubMyMzO5BHqZEDMAAFxGTqdT69ev19ixY3nfzGVCzAAAAKPxBmAAAGA0YgYAABiNmAEAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAdAgBg0apBtvvPGCfz744IMf9FivvPKKBg0a1GCzffDBB7rxxhsb7PH8OSYAl0+g1QMAuHrMmjVLw4cPr7W9ZcuWFkwDoKkgZgA0mGuvvVZt27a1egwATQyXmQBcEYMGDdKmTZuUmJio3r17a8KECfriiy80depUORwOjRw5UsXFxT73WbRokfr06aMBAwZo7dq13u0ul0uZmZkaMGCAoqOjNWjQIK1fv97nubKystS/f3+NGjVK//1F55mZmRo4cKBKS0slSXv27FFCQoJ69+6tO++8U9u3b/fZf8mSJbr11lvVr18/bdy4saH/agD8SMQMgCvmmWee0QMPPKD//d//VVFRkX7zm9/otttu06ZNmxQSEqJFixZ59/3iiy/08ccfa/369frzn/+sJ5980vs+lZycHP3jH//Q4sWLtW3bNo0aNUrz5s1TeXm59/6bN2/WypUr9cQTT8hms3m3r1q1Sq+99ppWrlypiIgIlZWVadKkSUpISNDmzZt1//33a+bMmdqzZ48kaf369VqzZo3mz5+vF198UXl5eVfobwtAfXGZCUCDmT17tubNm+ezLSIiQlu2bJEkJSQk6LbbbpMk3XLLLSorK1NSUpIk6a677tLq1au997Pb7XriiSfUqlUr3XDDDdq9e7dyc3PVr18/3XTTTbrlllsUExMjSZo8ebKys7N17NgxtWnTxvt459/0ez6Ctm7dqiVLlujFF19Ut27dJEkvvfSSbrvtNv3+97+XJHXp0kUHDx7U6tWrFR8frw0bNujee+/V7bffLkl6/PHHdccddzT43x0A/xEzABrMtGnT9Otf/9pnW2Dg//sx06lTJ+//Dw4OVocOHXxuf/vttz77tmrVynv75ptv9l7iGTx4sN5991098cQTOnr0qIqKiiRJbrfbu//3H/u8mTNnKigoSNdff71329GjR/X2228rNjbWu+3bb79VZGSkJOmTTz5RSkqKd6179+785mOgkSFmADSYsLAwdenS5aLrAQEBPrd/8pOLX+n+77Wamhpdc801kqSnn35aGzduVEJCgkaNGqXZs2fX+ii33W6v9ZhZWVlasWKFnnzySS1cuFCSdO7cOd15552aPHmyz77fj7D/fs/N99cAWI/3zABolEpKSlRZWem9vW/fPv30pz+VJOXm5uqRRx7R9OnTNXz4cO9+/x0d/23IkCF6+OGHtWXLFn344YeSpMjISH366afq0qWL98+bb76pzZs3S5JuuOEGffTRR97H+Pzzz3XmzJkGPVYAPw4xA6DB/Oc//1FZWVmtP06n8wc/VnV1tR566CEVFxcrNzdX27dv17333itJuu666/T222+rpKREe/bs0YwZMyR99ymnSzn/yam5c+fq3Llzuvvuu7V//349/fTTOnbsmDZv3qxFixYpIiJCkvT73/9ea9as0fbt23X48GGlp6fXeUYJwJXHuVIADWb+/PmaP39+re1/+tOffvBjRUVFKTw8XL/97W/VqlUrzZ8/Xz179vQ+z5w5c3THHXcoPDxcY8aMUUBAgA4ePKhf/OIXl3zsBx54QEOGDNHatWv1P//zP1q2bJkWLlyolStXKjw8XDNnztRdd90lSRo5cqROnz6tefPmqaqqShMnTtShQ4d+8PEAuHxsnkudlwUAAGjEOFcKAACMRswAAACjETMAAMBoxAwAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjEbMAAAAoxEzAADAaMQMAAAw2v8HOjvIgZF7/0cAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.countplot(x = \"Embarked\", data = train_df)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Ticket | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked_C | \n",
+ " Embarked_Q | \n",
+ " Embarked_S | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " male | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " A/5 21171 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " female | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " PC 17599 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " female | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " STON/O2. 3101282 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " female | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 113803 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 5 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " male | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 373450 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ "
\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_C Embarked_Q Embarked_S \n",
+ "0 0 A/5 21171 7.2500 NaN False False True \n",
+ "1 0 PC 17599 71.2833 C85 True False False \n",
+ "2 0 STON/O2. 3101282 7.9250 NaN False False True \n",
+ "3 0 113803 53.1000 C123 False False True \n",
+ "4 0 373450 8.0500 NaN False False True "
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df = pd.get_dummies(train_df, columns=[\"Embarked\"])\n",
+ "train_df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Ticket | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked_C | \n",
+ " Embarked_Q | \n",
+ " Embarked_S | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 892 | \n",
+ " 3 | \n",
+ " Kelly, Mr. James | \n",
+ " male | \n",
+ " 34.5 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 330911 | \n",
+ " 7.8292 | \n",
+ " NaN | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 893 | \n",
+ " 3 | \n",
+ " Wilkes, Mrs. James (Ellen Needs) | \n",
+ " female | \n",
+ " 47.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 363272 | \n",
+ " 7.0000 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 894 | \n",
+ " 2 | \n",
+ " Myles, Mr. Thomas Francis | \n",
+ " male | \n",
+ " 62.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 240276 | \n",
+ " 9.6875 | \n",
+ " NaN | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 895 | \n",
+ " 3 | \n",
+ " Wirz, Mr. Albert | \n",
+ " male | \n",
+ " 27.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 315154 | \n",
+ " 8.6625 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 896 | \n",
+ " 3 | \n",
+ " Hirvonen, Mrs. Alexander (Helga E Lindqvist) | \n",
+ " female | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 3101298 | \n",
+ " 12.2875 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Pclass Name Sex \\\n",
+ "0 892 3 Kelly, Mr. James male \n",
+ "1 893 3 Wilkes, Mrs. James (Ellen Needs) female \n",
+ "2 894 2 Myles, Mr. Thomas Francis male \n",
+ "3 895 3 Wirz, Mr. Albert male \n",
+ "4 896 3 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female \n",
+ "\n",
+ " Age SibSp Parch Ticket Fare Cabin Embarked_C Embarked_Q \\\n",
+ "0 34.5 0 0 330911 7.8292 NaN False True \n",
+ "1 47.0 1 0 363272 7.0000 NaN False False \n",
+ "2 62.0 0 0 240276 9.6875 NaN False True \n",
+ "3 27.0 0 0 315154 8.6625 NaN False False \n",
+ "4 22.0 1 1 3101298 12.2875 NaN False False \n",
+ "\n",
+ " Embarked_S \n",
+ "0 False \n",
+ "1 True \n",
+ "2 False \n",
+ "3 True \n",
+ "4 True "
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df = pd.get_dummies(test_df, columns=[\"Embarked\"])\n",
+ "test_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ticket (Assignment)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 330911\n",
+ "1 363272\n",
+ "2 240276\n",
+ "3 315154\n",
+ "4 3101298\n",
+ "Name: Ticket, dtype: object"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df[\"Ticket\"].head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'A5'"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "example_ticket = \"A/5. 2151\"\n",
+ "example_ticket.replace(\".\",\"\").replace(\"/\",\"\").strip().split(\" \")[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "tickets = []\n",
+ "for i in list(train_df.Ticket):\n",
+ " if not i.isdigit():\n",
+ " tickets.append(i.replace(\".\",\"\").replace(\"/\",\"\").strip().split(\" \")[0])\n",
+ " else:\n",
+ " tickets.append(\"x\")\n",
+ "train_df[\"Ticket\"] = tickets\n",
+ "\n",
+ "# Do the same for the test set\n",
+ "tickets = []\n",
+ "for i in list(test_df.Ticket):\n",
+ " if not i.isdigit():\n",
+ " tickets.append(i.replace(\".\",\"\").replace(\"/\",\"\").strip().split(\" \")[0])\n",
+ " else:\n",
+ " tickets.append(\"x\")\n",
+ "test_df[\"Ticket\"] = tickets\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 A5\n",
+ "1 PC\n",
+ "2 STONO2\n",
+ "3 x\n",
+ "4 x\n",
+ "5 x\n",
+ "6 x\n",
+ "7 x\n",
+ "8 x\n",
+ "9 x\n",
+ "10 PP\n",
+ "11 x\n",
+ "12 A5\n",
+ "13 x\n",
+ "14 x\n",
+ "15 x\n",
+ "16 x\n",
+ "17 x\n",
+ "18 x\n",
+ "19 x\n",
+ "Name: Ticket, dtype: object"
+ ]
+ },
+ "execution_count": 35,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df[\"Ticket\"].head(20)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 x\n",
+ "1 x\n",
+ "2 x\n",
+ "3 x\n",
+ "4 x\n",
+ "5 x\n",
+ "6 x\n",
+ "7 x\n",
+ "8 x\n",
+ "9 A4\n",
+ "10 x\n",
+ "11 x\n",
+ "12 x\n",
+ "13 x\n",
+ "14 WEP\n",
+ "15 SCPARIS\n",
+ "16 x\n",
+ "17 x\n",
+ "18 STONO2\n",
+ "19 x\n",
+ "Name: Ticket, dtype: object"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df[\"Ticket\"].head(20)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " ... | \n",
+ " TcktName_SOPP | \n",
+ " TcktName_SOTONO2 | \n",
+ " TcktName_SOTONOQ | \n",
+ " TcktName_SP | \n",
+ " TcktName_STONO | \n",
+ " TcktName_STONO2 | \n",
+ " TcktName_SWPP | \n",
+ " TcktName_WC | \n",
+ " TcktName_WEP | \n",
+ " TcktName_x | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " male | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " female | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " female | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " female | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 5 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Allen, Mr. William Henry | \n",
+ " male | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 6 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Moran, Mr. James | \n",
+ " male | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.4583 | \n",
+ " NaN | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 7 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " McCarthy, Mr. Timothy J | \n",
+ " male | \n",
+ " 54.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 51.8625 | \n",
+ " E46 | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 8 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Palsson, Master. Gosta Leonard | \n",
+ " male | \n",
+ " 2.0 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 21.0750 | \n",
+ " NaN | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 9 | \n",
+ " 1 | \n",
+ " 3 | \n",
+ " Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) | \n",
+ " female | \n",
+ " 27.0 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 11.1333 | \n",
+ " NaN | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 10 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " Nasser, Mrs. Nicholas (Adele Achem) | \n",
+ " female | \n",
+ " 14.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 30.0708 | \n",
+ " NaN | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
10 rows × 44 columns
\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",
+ "5 6 0 3 \n",
+ "6 7 0 1 \n",
+ "7 8 0 3 \n",
+ "8 9 1 3 \n",
+ "9 10 1 2 \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",
+ "5 Moran, Mr. James male 26.0 0 \n",
+ "6 McCarthy, Mr. Timothy J male 54.0 0 \n",
+ "7 Palsson, Master. Gosta Leonard male 2.0 3 \n",
+ "8 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27.0 0 \n",
+ "9 Nasser, Mrs. Nicholas (Adele Achem) female 14.0 1 \n",
+ "\n",
+ " Parch Fare Cabin ... TcktName_SOPP TcktName_SOTONO2 \\\n",
+ "0 0 7.2500 NaN ... False False \n",
+ "1 0 71.2833 C85 ... False False \n",
+ "2 0 7.9250 NaN ... False False \n",
+ "3 0 53.1000 C123 ... False False \n",
+ "4 0 8.0500 NaN ... False False \n",
+ "5 0 8.4583 NaN ... False False \n",
+ "6 0 51.8625 E46 ... False False \n",
+ "7 1 21.0750 NaN ... False False \n",
+ "8 2 11.1333 NaN ... False False \n",
+ "9 0 30.0708 NaN ... False False \n",
+ "\n",
+ " TcktName_SOTONOQ TcktName_SP TcktName_STONO TcktName_STONO2 \\\n",
+ "0 False False False False \n",
+ "1 False False False False \n",
+ "2 False False False True \n",
+ "3 False False False False \n",
+ "4 False False False False \n",
+ "5 False False False False \n",
+ "6 False False False False \n",
+ "7 False False False False \n",
+ "8 False False False False \n",
+ "9 False False False False \n",
+ "\n",
+ " TcktName_SWPP TcktName_WC TcktName_WEP TcktName_x \n",
+ "0 False False False False \n",
+ "1 False False False False \n",
+ "2 False False False False \n",
+ "3 False False False True \n",
+ "4 False False False True \n",
+ "5 False False False True \n",
+ "6 False False False True \n",
+ "7 False False False True \n",
+ "8 False False False True \n",
+ "9 False False False True \n",
+ "\n",
+ "[10 rows x 44 columns]"
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df = pd.get_dummies(train_df, columns= [\"Ticket\"], prefix = \"TcktName\")\n",
+ "train_df.head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked_C | \n",
+ " ... | \n",
+ " TcktName_SOC | \n",
+ " TcktName_SOPP | \n",
+ " TcktName_SOTONO2 | \n",
+ " TcktName_SOTONOQ | \n",
+ " TcktName_STONO | \n",
+ " TcktName_STONO2 | \n",
+ " TcktName_STONOQ | \n",
+ " TcktName_WC | \n",
+ " TcktName_WEP | \n",
+ " TcktName_x | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 892 | \n",
+ " 3 | \n",
+ " Kelly, Mr. James | \n",
+ " male | \n",
+ " 34.5 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.8292 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 893 | \n",
+ " 3 | \n",
+ " Wilkes, Mrs. James (Ellen Needs) | \n",
+ " female | \n",
+ " 47.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0000 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 894 | \n",
+ " 2 | \n",
+ " Myles, Mr. Thomas Francis | \n",
+ " male | \n",
+ " 62.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9.6875 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 895 | \n",
+ " 3 | \n",
+ " Wirz, Mr. Albert | \n",
+ " male | \n",
+ " 27.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.6625 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 896 | \n",
+ " 3 | \n",
+ " Hirvonen, Mrs. Alexander (Helga E Lindqvist) | \n",
+ " female | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 12.2875 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 897 | \n",
+ " 3 | \n",
+ " Svensson, Mr. Johan Cervin | \n",
+ " male | \n",
+ " 14.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9.2250 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 898 | \n",
+ " 3 | \n",
+ " Connolly, Miss. Kate | \n",
+ " female | \n",
+ " 30.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.6292 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 899 | \n",
+ " 2 | \n",
+ " Caldwell, Mr. Albert Francis | \n",
+ " male | \n",
+ " 26.0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 29.0000 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 900 | \n",
+ " 3 | \n",
+ " Abrahim, Mrs. Joseph (Sophie Halaut Easu) | \n",
+ " female | \n",
+ " 18.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.2292 | \n",
+ " NaN | \n",
+ " True | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 901 | \n",
+ " 3 | \n",
+ " Davies, Mr. John Samuel | \n",
+ " male | \n",
+ " 21.0 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 24.1500 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
10 rows × 40 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Pclass Name Sex \\\n",
+ "0 892 3 Kelly, Mr. James male \n",
+ "1 893 3 Wilkes, Mrs. James (Ellen Needs) female \n",
+ "2 894 2 Myles, Mr. Thomas Francis male \n",
+ "3 895 3 Wirz, Mr. Albert male \n",
+ "4 896 3 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female \n",
+ "5 897 3 Svensson, Mr. Johan Cervin male \n",
+ "6 898 3 Connolly, Miss. Kate female \n",
+ "7 899 2 Caldwell, Mr. Albert Francis male \n",
+ "8 900 3 Abrahim, Mrs. Joseph (Sophie Halaut Easu) female \n",
+ "9 901 3 Davies, Mr. John Samuel male \n",
+ "\n",
+ " Age SibSp Parch Fare Cabin Embarked_C ... TcktName_SOC \\\n",
+ "0 34.5 0 0 7.8292 NaN False ... False \n",
+ "1 47.0 1 0 7.0000 NaN False ... False \n",
+ "2 62.0 0 0 9.6875 NaN False ... False \n",
+ "3 27.0 0 0 8.6625 NaN False ... False \n",
+ "4 22.0 1 1 12.2875 NaN False ... False \n",
+ "5 14.0 0 0 9.2250 NaN False ... False \n",
+ "6 30.0 0 0 7.6292 NaN False ... False \n",
+ "7 26.0 1 1 29.0000 NaN False ... False \n",
+ "8 18.0 0 0 7.2292 NaN True ... False \n",
+ "9 21.0 2 0 24.1500 NaN False ... False \n",
+ "\n",
+ " TcktName_SOPP TcktName_SOTONO2 TcktName_SOTONOQ TcktName_STONO \\\n",
+ "0 False False False False \n",
+ "1 False False False False \n",
+ "2 False False False False \n",
+ "3 False False False False \n",
+ "4 False False False False \n",
+ "5 False False False False \n",
+ "6 False False False False \n",
+ "7 False False False False \n",
+ "8 False False False False \n",
+ "9 False False False False \n",
+ "\n",
+ " TcktName_STONO2 TcktName_STONOQ TcktName_WC TcktName_WEP TcktName_x \n",
+ "0 False False False False True \n",
+ "1 False False False False True \n",
+ "2 False False False False True \n",
+ "3 False False False False True \n",
+ "4 False False False False True \n",
+ "5 False False False False True \n",
+ "6 False False False False True \n",
+ "7 False False False False True \n",
+ "8 False False False False True \n",
+ "9 False False False False False \n",
+ "\n",
+ "[10 rows x 40 columns]"
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df = pd.get_dummies(test_df, columns= [\"Ticket\"], prefix = \"TcktName\")\n",
+ "test_df.head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "## Pclass"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.countplot(x = \"Pclass\", data = train_df)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked_C | \n",
+ " ... | \n",
+ " TcktName_SP | \n",
+ " TcktName_STONO | \n",
+ " TcktName_STONO2 | \n",
+ " TcktName_SWPP | \n",
+ " TcktName_WC | \n",
+ " TcktName_WEP | \n",
+ " TcktName_x | \n",
+ " Pclass_1 | \n",
+ " Pclass_2 | \n",
+ " Pclass_3 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " male | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " female | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " True | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " female | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " female | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 5 | \n",
+ " 0 | \n",
+ " Allen, Mr. William Henry | \n",
+ " male | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 46 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Survived Name \\\n",
+ "0 1 0 Braund, Mr. Owen Harris \n",
+ "1 2 1 Cumings, Mrs. John Bradley (Florence Briggs Th... \n",
+ "2 3 1 Heikkinen, Miss. Laina \n",
+ "3 4 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) \n",
+ "4 5 0 Allen, Mr. William Henry \n",
+ "\n",
+ " Sex Age SibSp Parch Fare Cabin Embarked_C ... TcktName_SP \\\n",
+ "0 male 22.0 1 0 7.2500 NaN False ... False \n",
+ "1 female 38.0 1 0 71.2833 C85 True ... False \n",
+ "2 female 26.0 0 0 7.9250 NaN False ... False \n",
+ "3 female 35.0 1 0 53.1000 C123 False ... False \n",
+ "4 male 35.0 0 0 8.0500 NaN False ... False \n",
+ "\n",
+ " TcktName_STONO TcktName_STONO2 TcktName_SWPP TcktName_WC TcktName_WEP \\\n",
+ "0 False False False False False \n",
+ "1 False False False False False \n",
+ "2 False True False False False \n",
+ "3 False False False False False \n",
+ "4 False False False False False \n",
+ "\n",
+ " TcktName_x Pclass_1 Pclass_2 Pclass_3 \n",
+ "0 False False False True \n",
+ "1 False True False False \n",
+ "2 False False False True \n",
+ "3 True True False False \n",
+ "4 True False False True \n",
+ "\n",
+ "[5 rows x 46 columns]"
+ ]
+ },
+ "execution_count": 40,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df[\"Pclass\"] = train_df[\"Pclass\"].astype(\"category\")\n",
+ "train_df = pd.get_dummies(train_df, columns= [\"Pclass\"])\n",
+ "train_df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked_C | \n",
+ " Embarked_Q | \n",
+ " ... | \n",
+ " TcktName_SOTONOQ | \n",
+ " TcktName_STONO | \n",
+ " TcktName_STONO2 | \n",
+ " TcktName_STONOQ | \n",
+ " TcktName_WC | \n",
+ " TcktName_WEP | \n",
+ " TcktName_x | \n",
+ " Pclass_1 | \n",
+ " Pclass_2 | \n",
+ " Pclass_3 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 892 | \n",
+ " Kelly, Mr. James | \n",
+ " male | \n",
+ " 34.5 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.8292 | \n",
+ " NaN | \n",
+ " False | \n",
+ " True | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 893 | \n",
+ " Wilkes, Mrs. James (Ellen Needs) | \n",
+ " female | \n",
+ " 47.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0000 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 894 | \n",
+ " Myles, Mr. Thomas Francis | \n",
+ " male | \n",
+ " 62.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9.6875 | \n",
+ " NaN | \n",
+ " False | \n",
+ " True | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 895 | \n",
+ " Wirz, Mr. Albert | \n",
+ " male | \n",
+ " 27.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.6625 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 896 | \n",
+ " Hirvonen, Mrs. Alexander (Helga E Lindqvist) | \n",
+ " female | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 12.2875 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 42 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Name Sex Age \\\n",
+ "0 892 Kelly, Mr. James male 34.5 \n",
+ "1 893 Wilkes, Mrs. James (Ellen Needs) female 47.0 \n",
+ "2 894 Myles, Mr. Thomas Francis male 62.0 \n",
+ "3 895 Wirz, Mr. Albert male 27.0 \n",
+ "4 896 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female 22.0 \n",
+ "\n",
+ " SibSp Parch Fare Cabin Embarked_C Embarked_Q ... TcktName_SOTONOQ \\\n",
+ "0 0 0 7.8292 NaN False True ... False \n",
+ "1 1 0 7.0000 NaN False False ... False \n",
+ "2 0 0 9.6875 NaN False True ... False \n",
+ "3 0 0 8.6625 NaN False False ... False \n",
+ "4 1 1 12.2875 NaN False False ... False \n",
+ "\n",
+ " TcktName_STONO TcktName_STONO2 TcktName_STONOQ TcktName_WC \\\n",
+ "0 False False False False \n",
+ "1 False False False False \n",
+ "2 False False False False \n",
+ "3 False False False False \n",
+ "4 False False False False \n",
+ "\n",
+ " TcktName_WEP TcktName_x Pclass_1 Pclass_2 Pclass_3 \n",
+ "0 False True False False True \n",
+ "1 False True False False True \n",
+ "2 False True False True False \n",
+ "3 False True False False True \n",
+ "4 False True False False True \n",
+ "\n",
+ "[5 rows x 42 columns]"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df[\"Pclass\"] = test_df[\"Pclass\"].astype(\"category\")\n",
+ "test_df = pd.get_dummies(test_df, columns= [\"Pclass\"])\n",
+ "test_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "## Sex"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Name | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked_C | \n",
+ " Embarked_Q | \n",
+ " ... | \n",
+ " TcktName_STONO2 | \n",
+ " TcktName_SWPP | \n",
+ " TcktName_WC | \n",
+ " TcktName_WEP | \n",
+ " TcktName_x | \n",
+ " Pclass_1 | \n",
+ " Pclass_2 | \n",
+ " Pclass_3 | \n",
+ " Sex_female | \n",
+ " Sex_male | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " Braund, Mr. Owen Harris | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.2500 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
+ " 38.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 71.2833 | \n",
+ " C85 | \n",
+ " True | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ " Heikkinen, Miss. Laina | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.9250 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " ... | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " True | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
+ " 35.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 53.1000 | \n",
+ " C123 | \n",
+ " False | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 5 | \n",
+ " 0 | \n",
+ " Allen, Mr. William Henry | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.0500 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 47 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Survived Name \\\n",
+ "0 1 0 Braund, Mr. Owen Harris \n",
+ "1 2 1 Cumings, Mrs. John Bradley (Florence Briggs Th... \n",
+ "2 3 1 Heikkinen, Miss. Laina \n",
+ "3 4 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) \n",
+ "4 5 0 Allen, Mr. William Henry \n",
+ "\n",
+ " Age SibSp Parch Fare Cabin Embarked_C Embarked_Q ... \\\n",
+ "0 22.0 1 0 7.2500 NaN False False ... \n",
+ "1 38.0 1 0 71.2833 C85 True False ... \n",
+ "2 26.0 0 0 7.9250 NaN False False ... \n",
+ "3 35.0 1 0 53.1000 C123 False False ... \n",
+ "4 35.0 0 0 8.0500 NaN False False ... \n",
+ "\n",
+ " TcktName_STONO2 TcktName_SWPP TcktName_WC TcktName_WEP TcktName_x \\\n",
+ "0 False False False False False \n",
+ "1 False False False False False \n",
+ "2 True False False False False \n",
+ "3 False False False False True \n",
+ "4 False False False False True \n",
+ "\n",
+ " Pclass_1 Pclass_2 Pclass_3 Sex_female Sex_male \n",
+ "0 False False True False True \n",
+ "1 True False False True False \n",
+ "2 False False True True False \n",
+ "3 True False False True False \n",
+ "4 False False True False True \n",
+ "\n",
+ "[5 rows x 47 columns]"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df[\"Sex\"] = train_df[\"Sex\"].astype(\"category\")\n",
+ "train_df = pd.get_dummies(train_df, columns=[\"Sex\"])\n",
+ "train_df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Name | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked_C | \n",
+ " Embarked_Q | \n",
+ " Embarked_S | \n",
+ " ... | \n",
+ " TcktName_STONO2 | \n",
+ " TcktName_STONOQ | \n",
+ " TcktName_WC | \n",
+ " TcktName_WEP | \n",
+ " TcktName_x | \n",
+ " Pclass_1 | \n",
+ " Pclass_2 | \n",
+ " Pclass_3 | \n",
+ " Sex_female | \n",
+ " Sex_male | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 892 | \n",
+ " Kelly, Mr. James | \n",
+ " 34.5 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 7.8292 | \n",
+ " NaN | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 893 | \n",
+ " Wilkes, Mrs. James (Ellen Needs) | \n",
+ " 47.0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 7.0000 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " True | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 894 | \n",
+ " Myles, Mr. Thomas Francis | \n",
+ " 62.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 9.6875 | \n",
+ " NaN | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 895 | \n",
+ " Wirz, Mr. Albert | \n",
+ " 27.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 8.6625 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " True | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 896 | \n",
+ " Hirvonen, Mrs. Alexander (Helga E Lindqvist) | \n",
+ " 22.0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 12.2875 | \n",
+ " NaN | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " ... | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " False | \n",
+ " False | \n",
+ " True | \n",
+ " True | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 43 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Name Age SibSp \\\n",
+ "0 892 Kelly, Mr. James 34.5 0 \n",
+ "1 893 Wilkes, Mrs. James (Ellen Needs) 47.0 1 \n",
+ "2 894 Myles, Mr. Thomas Francis 62.0 0 \n",
+ "3 895 Wirz, Mr. Albert 27.0 0 \n",
+ "4 896 Hirvonen, Mrs. Alexander (Helga E Lindqvist) 22.0 1 \n",
+ "\n",
+ " Parch Fare Cabin Embarked_C Embarked_Q Embarked_S ... \\\n",
+ "0 0 7.8292 NaN False True False ... \n",
+ "1 0 7.0000 NaN False False True ... \n",
+ "2 0 9.6875 NaN False True False ... \n",
+ "3 0 8.6625 NaN False False True ... \n",
+ "4 1 12.2875 NaN False False True ... \n",
+ "\n",
+ " TcktName_STONO2 TcktName_STONOQ TcktName_WC TcktName_WEP TcktName_x \\\n",
+ "0 False False False False True \n",
+ "1 False False False False True \n",
+ "2 False False False False True \n",
+ "3 False False False False True \n",
+ "4 False False False False True \n",
+ "\n",
+ " Pclass_1 Pclass_2 Pclass_3 Sex_female Sex_male \n",
+ "0 False False True False True \n",
+ "1 False False True True False \n",
+ "2 False True False False True \n",
+ "3 False False True False True \n",
+ "4 False False True True False \n",
+ "\n",
+ "[5 rows x 43 columns]"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df[\"Sex\"] = test_df[\"Sex\"].astype(\"category\")\n",
+ "test_df = pd.get_dummies(test_df, columns=[\"Sex\"])\n",
+ "test_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Drop Passenger ID and Cabin (Assignment)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "train_df.drop(labels = [\"PassengerId\", \"Cabin\"], axis = 1, inplace = True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['Survived', 'Name', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked_C',\n",
+ " 'Embarked_Q', 'Embarked_S', 'TcktName_A4', 'TcktName_A5', 'TcktName_AS',\n",
+ " 'TcktName_C', 'TcktName_CA', 'TcktName_CASOTON', 'TcktName_FC',\n",
+ " 'TcktName_FCC', 'TcktName_Fa', 'TcktName_LINE', 'TcktName_PC',\n",
+ " 'TcktName_PP', 'TcktName_PPP', 'TcktName_SC', 'TcktName_SCA4',\n",
+ " 'TcktName_SCAH', 'TcktName_SCOW', 'TcktName_SCPARIS',\n",
+ " 'TcktName_SCParis', 'TcktName_SOC', 'TcktName_SOP', 'TcktName_SOPP',\n",
+ " 'TcktName_SOTONO2', 'TcktName_SOTONOQ', 'TcktName_SP', 'TcktName_STONO',\n",
+ " 'TcktName_STONO2', 'TcktName_SWPP', 'TcktName_WC', 'TcktName_WEP',\n",
+ " 'TcktName_x', 'Pclass_1', 'Pclass_2', 'Pclass_3', 'Sex_female',\n",
+ " 'Sex_male'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 45,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df.columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Drop the PassengerId and Cabin columns from the test set\n",
+ "test_df.drop(labels = [\"PassengerId\", \"Cabin\"], axis = 1, inplace = True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['Name', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked_C', 'Embarked_Q',\n",
+ " 'Embarked_S', 'TcktName_A', 'TcktName_A4', 'TcktName_A5',\n",
+ " 'TcktName_AQ3', 'TcktName_AQ4', 'TcktName_C', 'TcktName_CA',\n",
+ " 'TcktName_FC', 'TcktName_FCC', 'TcktName_LP', 'TcktName_PC',\n",
+ " 'TcktName_PP', 'TcktName_SC', 'TcktName_SCA3', 'TcktName_SCA4',\n",
+ " 'TcktName_SCAH', 'TcktName_SCPARIS', 'TcktName_SCParis', 'TcktName_SOC',\n",
+ " 'TcktName_SOPP', 'TcktName_SOTONO2', 'TcktName_SOTONOQ',\n",
+ " 'TcktName_STONO', 'TcktName_STONO2', 'TcktName_STONOQ', 'TcktName_WC',\n",
+ " 'TcktName_WEP', 'TcktName_x', 'Pclass_1', 'Pclass_2', 'Pclass_3',\n",
+ " 'Sex_female', 'Sex_male'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Print the columns of the test set\n",
+ "test_df.columns"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "# Modeling"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split, StratifiedKFold, GridSearchCV\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "from sklearn.svm import SVC\n",
+ "from sklearn.ensemble import RandomForestClassifier, VotingClassifier\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "from sklearn.metrics import accuracy_score"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Train - Test Split (Assignment)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "891"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df_len = len(train_df)\n",
+ "train_df_len"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "X_train 594\n",
+ "X_test 297\n",
+ "y_train 594\n",
+ "y_test 297\n",
+ "test 418\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "train = train_df[:train_df_len]\n",
+ "test = test_df\n",
+ "\n",
+ "# Select all numerical values from train and test\n",
+ "numeric_train = train.select_dtypes(include=[np.number])\n",
+ "numeric_test = test.select_dtypes(include=[np.number]) \n",
+ "\n",
+ "\n",
+ "X_train = numeric_train.drop(labels=[\"Survived\",], axis=1)\n",
+ "y_train = numeric_train[\"Survived\"]\n",
+ "\n",
+ "# Split the train data into train and test sets with a 1/3 ratio\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X_train, y_train, test_size=1/3) # Use the train_test_split function here\n",
+ "\n",
+ "\n",
+ "print(\"X_train\", len(X_train))\n",
+ "print(\"X_test\", len(X_test))\n",
+ "print(\"y_train\", len(y_train))\n",
+ "print(\"y_test\", len(y_test))\n",
+ "print(\"test\", len(numeric_test))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Simple Logistic Regression (Assignment)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Accuracy on the training set: 70.03\n",
+ "Accuracy on the test set: 69.36\n"
+ ]
+ }
+ ],
+ "source": [
+ "logreg = LogisticRegression()\n",
+ "logreg.fit(X_train, y_train)\n",
+ "acc_log_train = round(logreg.score(X_train, y_train)*100,2) \n",
+ "acc_log_test = round(logreg.score(X_test,y_test)*100,2)\n",
+ "# Print the accuracy on the training and test set\n",
+ "print(\"Accuracy on the training set:\", acc_log_train)\n",
+ "print(\"Accuracy on the test set:\", acc_log_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "## Hyperparameter Tuning -- Grid Search -- Cross Validation\n",
+ "We will compare 5 ml classifier and evaluate mean accuracy of each of them by stratified cross validation.\n",
+ "\n",
+ "* Decision Tree\n",
+ "* SVM\n",
+ "* Random Forest\n",
+ "* KNN\n",
+ "* Logistic Regression"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "random_state = 42\n",
+ "classifier = [DecisionTreeClassifier(random_state = random_state),\n",
+ " SVC(random_state = random_state),\n",
+ " RandomForestClassifier(random_state = random_state),\n",
+ " LogisticRegression(random_state = random_state),\n",
+ " KNeighborsClassifier()]\n",
+ "\n",
+ "dt_param_grid = {\"min_samples_split\" : range(10,500,20),\n",
+ " \"max_depth\": range(1,20,2)}\n",
+ "\n",
+ "svc_param_grid = {\"kernel\" : [\"rbf\"],\n",
+ " \"gamma\": [0.001, 0.01, 0.1, 1],\n",
+ " \"C\": [1,10,50,100,200,300,1000]}\n",
+ "\n",
+ "rf_param_grid = {\"max_features\": [1,3,10],\n",
+ " \"min_samples_split\":[2,3,10],\n",
+ " \"min_samples_leaf\":[1,3,10],\n",
+ " \"bootstrap\":[False],\n",
+ " \"n_estimators\":[100,300],\n",
+ " \"criterion\":[\"gini\"]}\n",
+ "\n",
+ "logreg_param_grid = {\"C\":np.logspace(-3,3,7),\n",
+ " \"penalty\": [\"l1\",\"l2\"]}\n",
+ "\n",
+ "knn_param_grid = {\"n_neighbors\": np.linspace(1,19,10, dtype = int).tolist(),\n",
+ " \"weights\": [\"uniform\",\"distance\"],\n",
+ " \"metric\":[\"euclidean\",\"manhattan\"]}\n",
+ "classifier_param = [dt_param_grid,\n",
+ " svc_param_grid,\n",
+ " rf_param_grid,\n",
+ " logreg_param_grid,\n",
+ " knn_param_grid]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 60,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Fitting 10 folds for each of 250 candidates, totalling 2500 fits\n",
+ "0.7035875706214688\n",
+ "Fitting 10 folds for each of 28 candidates, totalling 280 fits\n",
+ "0.720367231638418\n",
+ "Fitting 10 folds for each of 54 candidates, totalling 540 fits\n",
+ "0.7492090395480225\n",
+ "Fitting 10 folds for each of 14 candidates, totalling 140 fits\n",
+ "0.7019774011299434\n",
+ "Fitting 10 folds for each of 40 candidates, totalling 400 fits\n",
+ "0.7188983050847456\n"
+ ]
+ }
+ ],
+ "source": [
+ "cv_result = []\n",
+ "best_estimators = []\n",
+ "for i in range(len(classifier)):\n",
+ " clf = GridSearchCV(classifier[i], param_grid=classifier_param[i], cv = StratifiedKFold(n_splits = 10), scoring = \"accuracy\", n_jobs = -1,verbose = 1)\n",
+ " clf.fit(X_train,y_train)\n",
+ " cv_result.append(clf.best_score_)\n",
+ " best_estimators.append(clf.best_estimator_)\n",
+ " print(cv_result[i])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Text(0.5, 1.0, 'Cross Validation Scores')"
+ ]
+ },
+ "execution_count": 61,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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o06dOsaiRYsS3MPEiRON4sWLG5MnT463bv78+Yavr69RunRpw9vb2+jTp4+xYcMGo3jx4sbWrVvj9Xb+/HmjePHixrJly6x67NChg+Hm5mZUqVLFmD17ttGoUSOr85GQ45w4ccKoVauWUapUKePrr79+6rF+//13o3379oabm5vh7u5utGrVyvjtt98s65+2jWEYRp8+fYzq1as/9zzFxMQYixYtMpo3b25UqFDBKFWqlFG1alWjb9++xrlz56zG3rlzxxg8eLDh6elpuLm5GU2aNDF27dplWR8dHW1MnTrV8PX1NUqVKmVUr17dCA4ONh4+fPjCmqKioozJkydbtn3nnXeMIUOGGDdv3rSM+bc/EyKpzcYwEjhLXURERETkP0JzYkVERETEdBRiRURERMR0FGJFRERExHQUYkVERETEdBRiRURERMR0FGJFRERExHT0YQfyyoqOjub27dukS5fuhZ/iIyIiIv8NsbGxPHr0iGzZsmFn9+yoqhArr6zbt28TERGR2mWIiIjISyhUqBA5cuR45nqFWHllpUuXDoC33nqLTJkypXI1KSsmJoY//viD4sWLY2trm9rlpCj1rt7V++tDvb+avT948ICIiAjL3/FnUYiVV1bcFIL06dOTMWPGVK4mZcXExACQMWPGV+5/bi+i3tW7en99qPdXu/cXTQXUREERERERMR2FWBERERExHYVYERERETEdhVgRERERMR0bwzCM1C5CJDlERkZy7NgxRqwL59zNh6ldjoiISLLYG/RxapeQpOL+fru4uDz3jdm6EisiIiIipqMQKyIiIiKmoxArIiIiIqajECsiIiIipqMQKyIiIiKmoxArIiIiIqajECsiIiIipqMQKyIiIiKmoxArIiIiIqajECsiIiIipqMQKyIiIiKmoxArIiIiIqajECsiIiIipqMQKyIiIiKmoxArIiIiIqajECsiIiIipqMQKyIiIiKmoxArIiIiIqajECsiIiIipqMQKyIiIiKmoxArIiIiIqajECsiIiIipqMQKyIiIiKmoxArIiIiIqZjihDr4+ODs7Mzzs7OlChRAnd3d5o2bcr27dv/9b5DQ0Px8fFJsnEvsmvXLksvT/vq27fvvz7Gs2zdupWWLVtSrlw5KleuTJcuXTh16pRlfUhICC1btky248OT5zI0NBSAGzdu8NFHH1GmTBn69OlD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MjKSY8eOMWJdOOduPnzxBiIiIia0N+jj1C4hScX9/XZxcbF8yufTmGY6gYiIiIhIHIVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdu9QuQCS5zev2HlmyZEntMlJUTEwMBw4cwM3NDVtb29QuJ0Wpd/Wu3l8f6v1J768rXYkVEREREdNRiBURERER01GIFRERERHTUYgVEREREdNRiBURERER01GIFRERERHTUYgVEREREdNRiBURERER01GIFRERERHTUYgVEREREdNRiBURERER01GIFRERERHTUYgVEREREdOxMQzDSO0iRJJDZGQkx44dY8S6cM7dfJja5YiIiKS6vUEfp3YJLxT399vFxYWMGTM+c5yuxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxEqyiIqKIiQkBF9fX0qXLo23tzejR4/m3r17TJgwgWrVqmEYRrztLl++TIkSJTh06BAhISE4OzvTr1+/eOMMw8DLywtnZ+eUaEdERET+YxRiJVmMGzeO9evXM2LECH788UdGjx7Nzz//TK9evahbty6XL1/m0KFD8bb78ccfeeutt3B1dQXA3t6en376idjYWKtxBw4c4K+//kqRXkREROS/RyFWksXy5cv57LPP8PT0JH/+/Hh6ejJ06FC2bNlC1qxZcXZ2Zt26dfG2W7t2LXXq1LE8LlmyJA8ePODAgQNW4zZu3Iibm1sydyEiIiL/VQqxkixsbGz49ddfra6guru7s2bNGrJnz07dunXZsGGD1TaXLl3i4MGD1K1b17IsXbp0eHl5sXnzZquxGzduxM/PL3mbEBERkf8shVhJFh9//DHffvstPj4+DBkyhHXr1vHw4UOKFi2Kvb09derU4fz58xw/ftyyzY8//oiLiwtFihSx2pevr69ViD116hQPHz6kdOnSKdaPiIiI/LcoxEqy6NKlC0FBQbzxxhssXryYgIAAqlatyrJlywDIly8f7u7urF+/3rLN2rVr8ff3j7evatWqERERwdmzZ4EnV2F9fX2xsbFJmWZERETkP0chVpJNvXr1WLRoEb/88gvjxo2jWLFiDBgwgCNHjgBQt25dS4i9ePEiR48etZoPGyd79uyUK1fOcjV248aN1KhRI+UaERERkf8chVhJcsePH2fMmDGWx9mzZ8ff359vv/2WN954g19//RWA9957jzNnznDmzBnWrl1LuXLlyJMnz1P3GTel4MqVK5w/f54KFSqkSC8iIiLy36QQK0kuJiaG2bNn8/vvv1stT5s2LenTp8fR0REAR0dHKleuzKZNm9i4ceNTpxLE8fX1Zd++fSxfvhxvb2/s7OyStQcRERH5b1OIlSRXqlQpvL296dy5M6tWreLChQscOHCAIUOG8PjxY2rWrGkZ6+/vz4oVKzh27BjvvvvuM/dZoEABChcuzPTp0zWVQERERBRiJXlMmDCB999/n8mTJ/Pee+/RoUMH7t27x/z588mcObNlnJ+fH2fPnuXtt98mW7Zsz92nj48PMTExVKlSJbnLFxERkf84G+Npn/0p8gqIjIzk2LFjjFgXzrmbD1O7HBERkVS3N+jj1C7hheL+fru4uJAxY8ZnjtOVWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHbvULkAkuc3r9h5ZsmRJ7TJSVExMDAcOHMDNzQ1bW9vULidFqXf1rt5fH+r99ew9jq7EioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSK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IiLyQgkKsZUqVUrQzmrWrPmvihERERERSQh97KyIiIiImE6CQuzkyZMTvEMFXhERERFJbgkOsWnSpMHFxYVMmTJhGMZTx71o3qyIiIiISFJIUIgdMmQIGzdu5MCBA1SoUAFfX198fX1xdHRM7vpEREREROJJUIht1qwZzZo14969e/z0009s2LCBoKAgihcvjp+fHzVq1CBfvnzJXauIiIiICJDAEBsnc+bM1KlThzp16vD48WN27tzJpk2baNq0KTlz5sTPz48uXbokV60iIiIiIgDYGM+a4JoAsbGx7N27l02bNrFkyRJiYmI4cOBAEpYn8vIiIyM5duwYxYsXJ0uWLKldToqK+110c3PD1tY2tctJUepdvav314d6fzV7j/v77eLiQsaMGZ85LlFXYgHu37/P9u3b2bx5M9u2bQPA29ub0aNH4+Xl9fIVi4iIiIgkUIJC7OXLl9m0aRObN2/mt99+I0+ePPj4+DBp0iTKlSv3yv0LQERERET+2xIUYqtXr46dnR0VKlSgT58+FC9e3LJu3759VmMrVKiQtBWKiIiIiPxDgkKsYRhERUXxyy+/8MsvvzxznI2NDceOHUuy4kREREREniZBIfb48ePJXYeIiIiISIKlSe0CREREREQSSyFWRERERExHIVZERERETEchVkRERERMRyFWRERERExHIVZERERETEchVkRERERMRyFWRERERExHIVZERERETMfGMAwjtYsQSQ6RkZEcO3aMEevCOXfzYWqXIyIikuR2j2mBra1tapeRpOL+fru4uJAxY8ZnjtOVWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMZ3XNsQ6Ozuza9euVN33+fPn+emnnwC4cOECzs7OXLhw4YXb+fj44OzsbPkqUaIEFStWpFOnTvz555//uv6UFBoaio+PT2qXISIiIibz2obY5LRjxw7c3d1fOK5///4cOnQIgDfffJMdO3bw5ptvJugY/fv3Z8eOHezYsYOffvqJ8ePHc/LkSfr06fOvak9ptWvXZunSpaldhoiIiJiMXWoX8CrKlStXorextbVN1HZZsmSxGp8nTx4CAgL44osvuHv3LlmyZEl0Dakhffr0pE+fPrXLEBEREZPRldhn2LJlCx988AGurq7Url2b9evXW9bFxsYybtw4KlWqRKVKlZg6dSo1atSwTCH4+3SCnTt38v7771OmTBl8fX1ZtGgRAH379mX37t1MnjyZli1bxptOcP36dbp3746HhwdVqlQhODgYwzCeW3PatGkBSJPmydN6584dvvjiCzw8PPDy8iIwMJCHDx9axh85coTGjRvj6upK06ZNmThxIi1btgQgJCSEzp0706JFCypWrMju3bt5/PgxI0aMsPTdq1cvbt26ZdnfvHnzqF69OmXKlOHDDz9kz549lnXBwcF4eXnh6upKy5YtOXnyJBB/OkF4eDjt2rXDw8ODqlWrMnnyZGJjYy019ezZkyFDhuDh4YGnpyczZsxI6FMqIiIirxCF2KfYuXMn3bp14/3332fFihU0atSIHj16cOTIEQC+/vprwsLC+N///sfs2bPZunUr58+fj7efmJgYunfvTq1atVi7di2fffYZw4YN49SpUwwYMAB3d3fatm1LSEhIvG27dOnCtWvXmD9/PhMmTCA0NJQFCxY8s+Zz584xffp0qlatSqZMmQAYMGAAd+/eZeHChUydOpXDhw8zfPhwAO7evUv79u0pVaoUYWFh1K1bl+nTp1vtc9OmTdStW5e5c+fi6upKcHAwR44cYcaMGcybN4979+7x2WefAfD7778zduxYhgwZwtq1aylfvjzdu3cnNjaWDRs28P333zNhwgRWr15Nzpw56devX7webty4QfPmzcmdOzdLlixhyJAhzJ8/n3nz5lnGrFu3jnTp0rF8+XLatWvHuHHjOHPmzIueUhEREXnFaDrBUyxYsIB3332X1q1bA+Dk5MShQ4f45ptvCA4O5rvvvqN79+54eXkBMGbMGN577714+7l79y63bt0iZ86c5M+fn/z585M7d25y5cpFlixZsLe3J2PGjDg4OHDv3j3LdsePH2f//v1s3LiRAgUKADB06FAiIyMtY4YMGUJgYCAA0dHR2Nvb4+vrS//+/YEnoXbjxo3s3r3bMrUgMDCQ+vXr069fP3744QcyZszI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ioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqIiIiI6SjEioiIiIjp2KV2ASLJbV6398iSJUtql5GiYmJiOHDgAG5ubtja2qZ2OSlKvat39f76UO8HUruMVKUrsSIiIiJiOgqxIiIiImI6CrEiIiIiYjoKsSIiIiJiOgqxIiIiImI6CrEiIiIiYjoKsSIiIiJiOgqxIiIiImI6CrEiIiIiYjoKsSIiIiJiOgqxIiIiImI6CrEiIiIiYjoKsSIiIiJiOgqxIiIiImI6NoZhGKldhEhyiIyM5NixY4xYF865mw9TuxwREZFUtTfo49QuIUHi/n67uLiQMWPGZ47TlVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExnVcmxDo7O7Nr1y6rZdu2baNUqVKEhIQA4OPjQ7NmzTAMw2rcrl27cHZ2TtBxEjM2NDQUHx+fZ67v27cvffv2TdC+ksrWrVtp2bIl5cqVo3LlynTp0oVTp05Z1oeEhNCyZctkrcHHx4fQ0FAAbty4wUcffUSZMmXo06cPLVu2tDxfIiIiIs9il9oFJJeDBw/y2Wef0bx5c7p162ZZvm/fPpYtW0bDhg1far/u7u7s2LEjqcpMUXPnzmX8+PEEBAQwdOhQoqKimDFjBi1atGDRokU4OTmlSB1Lly4lY8aMAKxcuZKIiAjCwsLInj07adKkwd7ePkXqEBEREfN6Za7E/t3p06f59NNPqVWrFv3797daly9fPsaNG8etW7deat9p06YlV65cSVBlyjp//jxBQUEMGzaMtm3bUqRIEUqUKEFQUBAFChRg8uTJKVaLo6Mj6dOnB+DevXsUKlSIIkWK4OjoiIODA5kyZUqxWkRERMScXrkQe+XKFdq3b0+lSpUYMWIENjY2VuvbtWtH+vTpGTdu3DP3cefOHb744gs8PDzw8vIiMDCQhw8f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H5k3b16i6tyzZw/Tpk0jPDycESNGEBUVRd26dcmUKRONGjUiMDCQXbt2cfz4cb744gveeOMNqlSp8tR9Xb58meHDh3PgwAEiIiJYt26dZR5qvnz56Nq1KwMGDGDOnDlERERw6NAhunXrxrlz5+jZs2e8/Tk4OLB//35OnDjByZMn6du3L9euXbOE+dOnTzN8+HCOHz/OyZMn+emnnyhZsiTp0qVj3759BAYGcvr0aQ4fPsyePXvizYl9kTZt2jB37lzCwsI4d+4cQUFBrF27liJFiiRqPyIiIvLqeWVDLEC3bt148803nzutwNPTk7p161otGzt2LPnz56d169a0adMGJycngoOD422bJk0aQkJCuHLlCu+//z5Tp07lww8/TNTN+uvXr8+ePXt4//33OXToEF9//TUZMmQAoE+fPrz99tsEBATQrFkz0qVLx5w5c+K9ASrOZ599hoeHB506deL9998nMjKSoKAgy/qOHTsyfPhwVq1axYcffkjHjh2xtbVl4cKFvPXWW/H217VrV3LkyEGTJk1o06YN6dKlo1mzZhw7dgyAoUOHkjNnTlq2bEnjxo3JnTs3AwYMAJ5cpX3w4AENGzakXbt2lC9f3moaQELUrl2bHj16MGnSJOrWrcvOnTuZNm2aZZ6viIiIvL5sDN1c86Vdv36d33//napVq1qWxd1K6p9vGJOUFxkZybFjxxixLpxzNx+mdjkiIiKpam/Qx6ldQoLE/f12cXGxenP8P73SV2JTQqdOnfjuu++4ePEiv/zyC3PnzqVWrVqpXZaIiIjIK80utQswsxw5cjBhwgTLm6hy5szJRx99RPPmzVO7NBEREZFXmkLsv+Tn54efn19qlyEiIiLyWtF0AhERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdhVgRERERMR2FWBERERExHYVYERERETEdu9QuQCS5zev2HlmyZEntMlJUTEwMBw4cwM3NDVtb29QuJ0Wpd/Wu3l8f6v317D2OrsSKiIiIiOkoxIqIiIiI6SjEioiIiIjpKMSKiIiIiOkoxIqI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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "cv_results = pd.DataFrame({\"Cross Validation Means\":cv_result, \"ML Models\":[\"DecisionTreeClassifier\", \"SVM\",\"RandomForestClassifier\",\n",
+ " \"LogisticRegression\",\n",
+ " \"KNeighborsClassifier\"]})\n",
+ "\n",
+ "g = sns.barplot(x=\"Cross Validation Means\",y= \"ML Models\", data=cv_results)\n",
+ "g.set_xlabel(\"Mean Accuracy\")\n",
+ "g.set_title(\"Cross Validation Scores\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ensemble Modeling (Assignment)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 73,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Accuracy Score: 0.7138047138047138\n"
+ ]
+ }
+ ],
+ "source": [
+ "votingC = VotingClassifier(estimators = [(\"dt\",best_estimators[0]),\n",
+ " (\"rfc\",best_estimators[2]),\n",
+ " (\"lr\",best_estimators[3])],\n",
+ " voting = \"soft\", n_jobs = -1)\n",
+ "votingC = votingC.fit(X_train, y_train)\n",
+ "\n",
+ "# Print the accuracy score of the voting classifier\n",
+ "y_pred = votingC.predict(X_test)\n",
+ "accuracy = accuracy_score(y_test, y_pred)\n",
+ "print(\"Accuracy Score:\", accuracy)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 74,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Drop the null values which are going to cause you an error in the next cell\n",
+ "X_train.dropna(inplace=True)\n",
+ "y_train.dropna(inplace=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "## Prediction and Submission"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " PassengerId Survived\n",
+ "0 892 0.0\n",
+ "1 893 0.0\n",
+ "2 894 0.0\n",
+ "3 895 0.0\n",
+ "4 896 0.0\n",
+ ".. ... ...\n",
+ "413 1305 NaN\n",
+ "414 1306 NaN\n",
+ "415 1307 NaN\n",
+ "416 1308 NaN\n",
+ "417 1309 NaN\n",
+ "\n",
+ "[418 rows x 2 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "test_survived = pd.Series(votingC.predict(X_test), name=\"Survived\").astype(int)\n",
+ "results = pd.concat([test_PassengerId, test_survived], axis=1)\n",
+ "results.to_csv(\"titanic.csv\", index=False)\n",
+ "print(results)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Congratulations on finishing the assignment!!\n",
+ "\n",
+ "### The submission is the titanic.csv which was just created, and this file which you have modified."
+ ]
+ }
+ ],
+ "metadata": {
+ "kaggle": {
+ "accelerator": "none",
+ "dataSources": [
+ {
+ "databundleVersionId": 26502,
+ "sourceId": 3136,
+ "sourceType": "competition"
+ }
+ ],
+ "dockerImageVersionId": 29852,
+ "isGpuEnabled": false,
+ "isInternetEnabled": false,
+ "language": "python",
+ "sourceType": "notebook"
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.12.2"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}