· 6 years ago · Sep 06, 2019, 05:26 AM
1{
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {},
6 "source": [
7 "<h2><b>Travel Datathon 2019 Assessment</b></h2>\n",
8 "\n",
9 "Participants:<br>\n",
10 " Hasan Alp Boz, Sabancı University<br>\n",
11 " Mert Gürkan, Sabancı Üniversity<br>"
12 ]
13 },
14 {
15 "cell_type": "markdown",
16 "metadata": {},
17 "source": [
18 "<h4>Importing Packages and Initialization</h4>"
19 ]
20 },
21 {
22 "cell_type": "code",
23 "execution_count": 74,
24 "metadata": {},
25 "outputs": [],
26 "source": [
27 "# If you need to install, XGBoost to your environment\n",
28 "# !pip install xgboost"
29 ]
30 },
31 {
32 "cell_type": "code",
33 "execution_count": 33,
34 "metadata": {},
35 "outputs": [],
36 "source": [
37 "import pandas as pd\n",
38 "import matplotlib.pyplot as plt\n",
39 "import seaborn as sns\n",
40 "import numpy as np\n",
41 "from scipy import stats\n",
42 "from sklearn.model_selection import train_test_split\n",
43 "from sklearn.metrics import mean_squared_error\n",
44 "from sklearn.metrics import r2_score\n",
45 "\n",
46 "import os\n",
47 "os.environ['KMP_DUPLICATE_LIB_OK']='True'\n",
48 "\n",
49 "import xgboost as xgb\n",
50 "from sklearn.ensemble import RandomForestRegressor\n",
51 "\n",
52 "import warnings\n",
53 "warnings.filterwarnings('ignore')"
54 ]
55 },
56 {
57 "cell_type": "code",
58 "execution_count": 2,
59 "metadata": {},
60 "outputs": [],
61 "source": [
62 "# Please change the path of the .csv file to the location of it in your system\n",
63 "df = pd.read_csv(r\"C:\\Users\\Mert\\Desktop\\assessment\\assessment\\Assessment Data\\Assessment Train Data.csv\")"
64 ]
65 },
66 {
67 "cell_type": "markdown",
68 "metadata": {},
69 "source": [
70 "<h2>Data Exploration</h2>"
71 ]
72 },
73 {
74 "cell_type": "code",
75 "execution_count": 3,
76 "metadata": {},
77 "outputs": [
78 {
79 "data": {
80 "text/html": [
81 "<div>\n",
82 "<style scoped>\n",
83 " .dataframe tbody tr th:only-of-type {\n",
84 " vertical-align: middle;\n",
85 " }\n",
86 "\n",
87 " .dataframe tbody tr th {\n",
88 " vertical-align: top;\n",
89 " }\n",
90 "\n",
91 " .dataframe thead th {\n",
92 " text-align: right;\n",
93 " }\n",
94 "</style>\n",
95 "<table border=\"1\" class=\"dataframe\">\n",
96 " <thead>\n",
97 " <tr style=\"text-align: right;\">\n",
98 " <th></th>\n",
99 " <th>Departure_YMD_LMT</th>\n",
100 " <th>Operation_YMD_LMT</th>\n",
101 " <th>Departure_Airport</th>\n",
102 " <th>Operation_Airport</th>\n",
103 " <th>Terminal_Number</th>\n",
104 " <th>Terminal_Name</th>\n",
105 " <th>Operation_Initials</th>\n",
106 " <th>Operation_Sonic_Code</th>\n",
107 " <th>Operation_Channel</th>\n",
108 " <th>Passenger_Title</th>\n",
109 " <th>...</th>\n",
110 " <th>SWC_FLY</th>\n",
111 " <th>Cabin_Class</th>\n",
112 " <th>SWC_FQTV_Member</th>\n",
113 " <th>Passenger_Baggage_Count</th>\n",
114 " <th>Passenger_Baggage_Weight</th>\n",
115 " <th>SWC_Staff</th>\n",
116 " <th>SWC_CIP_Passenger</th>\n",
117 " <th>SWC_VIP_Passenger</th>\n",
118 " <th>SWC_Has_Infant</th>\n",
119 " <th>Operation_Count</th>\n",
120 " </tr>\n",
121 " </thead>\n",
122 " <tbody>\n",
123 " <tr>\n",
124 " <th>0</th>\n",
125 " <td>20190326</td>\n",
126 " <td>20190326</td>\n",
127 " <td>KDT</td>\n",
128 " <td>KDT</td>\n",
129 " <td>?</td>\n",
130 " <td>032363</td>\n",
131 " <td>KS</td>\n",
132 " <td>?</td>\n",
133 " <td>QC</td>\n",
134 " <td>MISTER</td>\n",
135 " <td>...</td>\n",
136 " <td>1</td>\n",
137 " <td>Y</td>\n",
138 " <td>1</td>\n",
139 " <td>0</td>\n",
140 " <td>0</td>\n",
141 " <td>0</td>\n",
142 " <td>1</td>\n",
143 " <td>0</td>\n",
144 " <td>0</td>\n",
145 " <td>1</td>\n",
146 " </tr>\n",
147 " <tr>\n",
148 " <th>1</th>\n",
149 " <td>20180321</td>\n",
150 " <td>20180321</td>\n",
151 " <td>KDT</td>\n",
152 " <td>KDT</td>\n",
153 " <td>?</td>\n",
154 " <td>03F960</td>\n",
155 " <td>KS</td>\n",
156 " <td>?</td>\n",
157 " <td>QC</td>\n",
158 " <td>MISTER</td>\n",
159 " <td>...</td>\n",
160 " <td>1</td>\n",
161 " <td>Y</td>\n",
162 " <td>1</td>\n",
163 " <td>0</td>\n",
164 " <td>0</td>\n",
165 " <td>0</td>\n",
166 " <td>1</td>\n",
167 " <td>0</td>\n",
168 " <td>0</td>\n",
169 " <td>1</td>\n",
170 " </tr>\n",
171 " <tr>\n",
172 " <th>2</th>\n",
173 " <td>20190322</td>\n",
174 " <td>20190322</td>\n",
175 " <td>KDT</td>\n",
176 " <td>KDT</td>\n",
177 " <td>?</td>\n",
178 " <td>03AA2P</td>\n",
179 " <td>KS</td>\n",
180 " <td>Y011161</td>\n",
181 " <td>QC</td>\n",
182 " <td>MISTER</td>\n",
183 " <td>...</td>\n",
184 " <td>1</td>\n",
185 " <td>Y</td>\n",
186 " <td>0</td>\n",
187 " <td>0</td>\n",
188 " <td>0</td>\n",
189 " <td>0</td>\n",
190 " <td>0</td>\n",
191 " <td>0</td>\n",
192 " <td>0</td>\n",
193 " <td>1</td>\n",
194 " </tr>\n",
195 " <tr>\n",
196 " <th>3</th>\n",
197 " <td>20180515</td>\n",
198 " <td>20180515</td>\n",
199 " <td>KDT</td>\n",
200 " <td>KDT</td>\n",
201 " <td>?</td>\n",
202 " <td>0353D0</td>\n",
203 " <td>MK</td>\n",
204 " <td>?</td>\n",
205 " <td>TS</td>\n",
206 " <td>MISTER</td>\n",
207 " <td>...</td>\n",
208 " <td>1</td>\n",
209 " <td>Y</td>\n",
210 " <td>1</td>\n",
211 " <td>0</td>\n",
212 " <td>0</td>\n",
213 " <td>0</td>\n",
214 " <td>1</td>\n",
215 " <td>0</td>\n",
216 " <td>0</td>\n",
217 " <td>2</td>\n",
218 " </tr>\n",
219 " <tr>\n",
220 " <th>4</th>\n",
221 " <td>20190420</td>\n",
222 " <td>20190420</td>\n",
223 " <td>KDT</td>\n",
224 " <td>KDT</td>\n",
225 " <td>?</td>\n",
226 " <td>03F902</td>\n",
227 " <td>KS</td>\n",
228 " <td>Y013437</td>\n",
229 " <td>QC</td>\n",
230 " <td>MISTER</td>\n",
231 " <td>...</td>\n",
232 " <td>1</td>\n",
233 " <td>Y</td>\n",
234 " <td>0</td>\n",
235 " <td>0</td>\n",
236 " <td>0</td>\n",
237 " <td>1</td>\n",
238 " <td>0</td>\n",
239 " <td>0</td>\n",
240 " <td>0</td>\n",
241 " <td>1</td>\n",
242 " </tr>\n",
243 " </tbody>\n",
244 "</table>\n",
245 "<p>5 rows × 23 columns</p>\n",
246 "</div>"
247 ],
248 "text/plain": [
249 " Departure_YMD_LMT Operation_YMD_LMT Departure_Airport Operation_Airport \\\n",
250 "0 20190326 20190326 KDT KDT \n",
251 "1 20180321 20180321 KDT KDT \n",
252 "2 20190322 20190322 KDT KDT \n",
253 "3 20180515 20180515 KDT KDT \n",
254 "4 20190420 20190420 KDT KDT \n",
255 "\n",
256 " Terminal_Number Terminal_Name Operation_Initials Operation_Sonic_Code \\\n",
257 "0 ? 032363 KS ? \n",
258 "1 ? 03F960 KS ? \n",
259 "2 ? 03AA2P KS Y011161 \n",
260 "3 ? 0353D0 MK ? \n",
261 "4 ? 03F902 KS Y013437 \n",
262 "\n",
263 " Operation_Channel Passenger_Title ... SWC_FLY Cabin_Class \\\n",
264 "0 QC MISTER ... 1 Y \n",
265 "1 QC MISTER ... 1 Y \n",
266 "2 QC MISTER ... 1 Y \n",
267 "3 TS MISTER ... 1 Y \n",
268 "4 QC MISTER ... 1 Y \n",
269 "\n",
270 " SWC_FQTV_Member Passenger_Baggage_Count Passenger_Baggage_Weight \\\n",
271 "0 1 0 0 \n",
272 "1 1 0 0 \n",
273 "2 0 0 0 \n",
274 "3 1 0 0 \n",
275 "4 0 0 0 \n",
276 "\n",
277 " SWC_Staff SWC_CIP_Passenger SWC_VIP_Passenger SWC_Has_Infant \\\n",
278 "0 0 1 0 0 \n",
279 "1 0 1 0 0 \n",
280 "2 0 0 0 0 \n",
281 "3 0 1 0 0 \n",
282 "4 1 0 0 0 \n",
283 "\n",
284 " Operation_Count \n",
285 "0 1 \n",
286 "1 1 \n",
287 "2 1 \n",
288 "3 2 \n",
289 "4 1 \n",
290 "\n",
291 "[5 rows x 23 columns]"
292 ]
293 },
294 "execution_count": 3,
295 "metadata": {},
296 "output_type": "execute_result"
297 }
298 ],
299 "source": [
300 "df.head()"
301 ]
302 },
303 {
304 "cell_type": "code",
305 "execution_count": 4,
306 "metadata": {},
307 "outputs": [
308 {
309 "data": {
310 "text/plain": [
311 "(808696, 23)"
312 ]
313 },
314 "execution_count": 4,
315 "metadata": {},
316 "output_type": "execute_result"
317 }
318 ],
319 "source": [
320 "df.shape"
321 ]
322 },
323 {
324 "cell_type": "markdown",
325 "metadata": {},
326 "source": [
327 "Training data provided consists of 808696 rows and 23 columns. Among those 23 columns, 22 of them are features and 1 is - denoted with Operation_Count - is target label.\n",
328 "\n",
329 "Data types of different features are listed below."
330 ]
331 },
332 {
333 "cell_type": "code",
334 "execution_count": 5,
335 "metadata": {},
336 "outputs": [
337 {
338 "data": {
339 "text/plain": [
340 "Departure_YMD_LMT int64\n",
341 "Operation_YMD_LMT int64\n",
342 "Departure_Airport object\n",
343 "Operation_Airport object\n",
344 "Terminal_Number object\n",
345 "Terminal_Name object\n",
346 "Operation_Initials object\n",
347 "Operation_Sonic_Code object\n",
348 "Operation_Channel object\n",
349 "Passenger_Title object\n",
350 "Passenger_Gender object\n",
351 "Inbound_Departure_Airport object\n",
352 "Outbound_Arrival_Airport object\n",
353 "SWC_FLY int64\n",
354 "Cabin_Class object\n",
355 "SWC_FQTV_Member int64\n",
356 "Passenger_Baggage_Count int64\n",
357 "Passenger_Baggage_Weight int64\n",
358 "SWC_Staff int64\n",
359 "SWC_CIP_Passenger int64\n",
360 "SWC_VIP_Passenger int64\n",
361 "SWC_Has_Infant int64\n",
362 "Operation_Count int64\n",
363 "dtype: object"
364 ]
365 },
366 "execution_count": 5,
367 "metadata": {},
368 "output_type": "execute_result"
369 }
370 ],
371 "source": [
372 "df.dtypes"
373 ]
374 },
375 {
376 "cell_type": "markdown",
377 "metadata": {},
378 "source": [
379 "<h2>Data Preprocessing</h2>"
380 ]
381 },
382 {
383 "cell_type": "markdown",
384 "metadata": {},
385 "source": [
386 "<h4>Helper Functions</h4>\n",
387 "\n",
388 "Functions below are used to generate new features from existing ones. You can also check their descriptions from the following list:\n",
389 "\n",
390 "- is_op_airport_different : Returns 0 if check-in operation is done in KDT airport, returns 1 if operation is performed in another airport\n",
391 "- map_operation_channels : Maps operations channels to their channel groups\n",
392 "- map_inbound_flights : Returns 1 if an inbound flight exists for the entry, returns 0 otherwise\n",
393 "- map_outbound_flights : Returns 1 if an outbound flight exists for the entry, returns 0 otherwise\n",
394 "- is_inbound_kdt : Returns 1 if inbound flight location is KDT, returns 0 otherwise\n",
395 "- is_outbound_kdt : Returns 1 if outbound flight location is KDT, returns 0 otherwise"
396 ]
397 },
398 {
399 "cell_type": "code",
400 "execution_count": 6,
401 "metadata": {},
402 "outputs": [],
403 "source": [
404 "def map_operation_channels(channel):\n",
405 " if channel == 'JW' or channel == 'TW':\n",
406 " return 'online'\n",
407 " elif channel == 'TS' or channel == 'JM':\n",
408 " return 'mobile'\n",
409 " elif channel == 'TY' or channel == 'QC':\n",
410 " return 'kontuar'\n",
411 " elif channel == 'SC':\n",
412 " return 'kiosk'\n",
413 " else:\n",
414 " return 'other'\n",
415 "\n",
416 "## This function is not being used becasue \n",
417 "## there is no KG code in dataframe for KGA personnel\n",
418 "## It seems there is a mistake in the pdf file sent to us.\n",
419 "def map_operation_personnel(initial):\n",
420 " if initial == 'KG':\n",
421 " # Returns 1 if operation is performed by\n",
422 " # KGA personnel\n",
423 " return 1\n",
424 " else:\n",
425 " return 0\n",
426 "\n",
427 "def map_inbound_flights(flight):\n",
428 " if flight == '?':\n",
429 " return 0\n",
430 " else:\n",
431 " return 1\n",
432 "\n",
433 "def map_outbound_flights(flight):\n",
434 " if flight == '?':\n",
435 " return 0\n",
436 " else:\n",
437 " return 1\n",
438 "\n",
439 "def is_inbound_kdt(flight):\n",
440 " if flight == 'KDT':\n",
441 " return 1\n",
442 " else:\n",
443 " return 0\n",
444 "\n",
445 "def is_outbound_kdt(flight):\n",
446 " if flight == 'KDT':\n",
447 " return 1\n",
448 " else:\n",
449 " return 0\n",
450 " \n",
451 "def is_op_airport_different(port):\n",
452 " if port != 'KDT':\n",
453 " return 1\n",
454 " else:\n",
455 " return 0"
456 ]
457 },
458 {
459 "cell_type": "markdown",
460 "metadata": {},
461 "source": [
462 "Applying functions defined above to existing features to create binary features."
463 ]
464 },
465 {
466 "cell_type": "code",
467 "execution_count": 7,
468 "metadata": {},
469 "outputs": [],
470 "source": [
471 "#df['Performed_By_KG'] = df['Operation_Initials'].apply(map_operation_personnel)\n",
472 "df['Inbound_Exist'] = df['Inbound_Departure_Airport'].apply(map_inbound_flights)\n",
473 "df['Outbound_Exist'] = df['Outbound_Arrival_Airport'].apply(map_outbound_flights)\n",
474 "df['Is_Inbound_KDT'] = df['Inbound_Departure_Airport'].apply(is_inbound_kdt)\n",
475 "df['Is_Outbound_KDT'] = df['Outbound_Arrival_Airport'].apply(is_outbound_kdt)\n",
476 "df['Different_Operation_Airport'] = df['Operation_Airport'].apply(is_op_airport_different)\n",
477 "df['Mapped_Channels'] = df['Operation_Channel'].apply(map_operation_channels)"
478 ]
479 },
480 {
481 "cell_type": "markdown",
482 "metadata": {},
483 "source": [
484 "Below, cabin class information is mapped to 1s and 0s. Also, for passenger gender and operation channel features, new features are created with one-hot encoding."
485 ]
486 },
487 {
488 "cell_type": "code",
489 "execution_count": 8,
490 "metadata": {},
491 "outputs": [],
492 "source": [
493 "df['Cabin_Class'] = df['Cabin_Class'].map({'Y': 0, 'C': 1})\n",
494 "\n",
495 "onehot_gender = pd.get_dummies(df['Passenger_Gender'])\n",
496 "df = pd.concat([df, onehot_gender], axis=1)\n",
497 "\n",
498 "onehot_channels = pd.get_dummies(df['Mapped_Channels'])\n",
499 "df = pd.concat([df, onehot_channels], axis=1)"
500 ]
501 },
502 {
503 "cell_type": "markdown",
504 "metadata": {},
505 "source": [
506 "Time difference between flight dates of passengers and their check-in date is stored in a feature called 'checkin_fly_difference'."
507 ]
508 },
509 {
510 "cell_type": "code",
511 "execution_count": 9,
512 "metadata": {},
513 "outputs": [
514 {
515 "data": {
516 "text/plain": [
517 "<matplotlib.axes._subplots.AxesSubplot at 0x18718f6e710>"
518 ]
519 },
520 "execution_count": 9,
521 "metadata": {},
522 "output_type": "execute_result"
523 },
524 {
525 "data": {
526 "image/png": "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\n",
527 "text/plain": [
528 "<Figure size 432x288 with 1 Axes>"
529 ]
530 },
531 "metadata": {
532 "needs_background": "light"
533 },
534 "output_type": "display_data"
535 }
536 ],
537 "source": [
538 "df['Departure_YMD_LMT'] = pd.to_datetime(df['Departure_YMD_LMT'], format='%Y%m%d')\n",
539 "df['Operation_YMD_LMT'] = pd.to_datetime(df['Operation_YMD_LMT'], format='%Y%m%d')\n",
540 "df['checkin_fly_difference'] = df['Departure_YMD_LMT'] - df['Operation_YMD_LMT']\n",
541 "df['checkin_fly_difference'].plot(kind=\"box\")"
542 ]
543 },
544 {
545 "cell_type": "markdown",
546 "metadata": {},
547 "source": [
548 "Features that do not provide additional information - because they are replaced with new features - are dropped."
549 ]
550 },
551 {
552 "cell_type": "code",
553 "execution_count": 10,
554 "metadata": {},
555 "outputs": [],
556 "source": [
557 "processed_df = df.drop(['Departure_YMD_LMT', 'Operation_YMD_LMT','Departure_Airport', 'Operation_Airport', 'Terminal_Number', 'Terminal_Name',\n",
558 " 'Operation_Initials', 'Operation_Sonic_Code', 'Operation_Channel','Passenger_Title', \n",
559 " 'Passenger_Gender', 'Inbound_Departure_Airport','Outbound_Arrival_Airport'], axis=1)"
560 ]
561 },
562 {
563 "cell_type": "markdown",
564 "metadata": {},
565 "source": [
566 "After dropping unnecessary columns, features left are following:"
567 ]
568 },
569 {
570 "cell_type": "code",
571 "execution_count": 11,
572 "metadata": {},
573 "outputs": [
574 {
575 "data": {
576 "text/plain": [
577 "SWC_FLY int64\n",
578 "Cabin_Class float64\n",
579 "SWC_FQTV_Member int64\n",
580 "Passenger_Baggage_Count int64\n",
581 "Passenger_Baggage_Weight int64\n",
582 "SWC_Staff int64\n",
583 "SWC_CIP_Passenger int64\n",
584 "SWC_VIP_Passenger int64\n",
585 "SWC_Has_Infant int64\n",
586 "Operation_Count int64\n",
587 "Inbound_Exist int64\n",
588 "Outbound_Exist int64\n",
589 "Is_Inbound_KDT int64\n",
590 "Is_Outbound_KDT int64\n",
591 "Different_Operation_Airport int64\n",
592 "Mapped_Channels object\n",
593 "? uint8\n",
594 "C uint8\n",
595 "C/INF uint8\n",
596 "F uint8\n",
597 "F/INF uint8\n",
598 "M uint8\n",
599 "M/INF uint8\n",
600 "kiosk uint8\n",
601 "kontuar uint8\n",
602 "mobile uint8\n",
603 "online uint8\n",
604 "other uint8\n",
605 "checkin_fly_difference timedelta64[ns]\n",
606 "dtype: object"
607 ]
608 },
609 "execution_count": 11,
610 "metadata": {},
611 "output_type": "execute_result"
612 }
613 ],
614 "source": [
615 "processed_df.dtypes"
616 ]
617 },
618 {
619 "cell_type": "markdown",
620 "metadata": {},
621 "source": [
622 "Checking if features include null values;"
623 ]
624 },
625 {
626 "cell_type": "code",
627 "execution_count": 12,
628 "metadata": {},
629 "outputs": [
630 {
631 "data": {
632 "text/plain": [
633 "SWC_FLY 0\n",
634 "Cabin_Class 27571\n",
635 "SWC_FQTV_Member 0\n",
636 "Passenger_Baggage_Count 0\n",
637 "Passenger_Baggage_Weight 0\n",
638 "SWC_Staff 0\n",
639 "SWC_CIP_Passenger 0\n",
640 "SWC_VIP_Passenger 0\n",
641 "SWC_Has_Infant 0\n",
642 "Operation_Count 0\n",
643 "Inbound_Exist 0\n",
644 "Outbound_Exist 0\n",
645 "Is_Inbound_KDT 0\n",
646 "Is_Outbound_KDT 0\n",
647 "Different_Operation_Airport 0\n",
648 "Mapped_Channels 0\n",
649 "? 0\n",
650 "C 0\n",
651 "C/INF 0\n",
652 "F 0\n",
653 "F/INF 0\n",
654 "M 0\n",
655 "M/INF 0\n",
656 "kiosk 0\n",
657 "kontuar 0\n",
658 "mobile 0\n",
659 "online 0\n",
660 "other 0\n",
661 "checkin_fly_difference 0\n",
662 "dtype: int64"
663 ]
664 },
665 "execution_count": 12,
666 "metadata": {},
667 "output_type": "execute_result"
668 }
669 ],
670 "source": [
671 "processed_df.isna().sum()"
672 ]
673 },
674 {
675 "cell_type": "markdown",
676 "metadata": {},
677 "source": [
678 "Only Cabin_Class feature includes some null values. Since we do not want to fill this feature with random values, we can drop entries with cabin information having NaN."
679 ]
680 },
681 {
682 "cell_type": "code",
683 "execution_count": 13,
684 "metadata": {},
685 "outputs": [],
686 "source": [
687 "processed_df = processed_df[pd.notnull(processed_df['Cabin_Class'])]"
688 ]
689 },
690 {
691 "cell_type": "code",
692 "execution_count": 14,
693 "metadata": {},
694 "outputs": [],
695 "source": [
696 "processed_df = processed_df.drop(['Mapped_Channels'], axis = 1)\n",
697 "# Converting timedelta typed feature to int\n",
698 "processed_df['checkin_fly_difference'] = processed_df['checkin_fly_difference'].dt.days"
699 ]
700 },
701 {
702 "cell_type": "markdown",
703 "metadata": {},
704 "source": [
705 "<h2>Applying Machine Learning Models on Validation Set</h2>"
706 ]
707 },
708 {
709 "cell_type": "markdown",
710 "metadata": {},
711 "source": [
712 "<h4><b>XGBoost Regressor Model</b></h4>"
713 ]
714 },
715 {
716 "cell_type": "code",
717 "execution_count": 15,
718 "metadata": {},
719 "outputs": [],
720 "source": [
721 "y = processed_df['Operation_Count']\n",
722 "X = processed_df.drop(['Operation_Count'], axis = 1)\n",
723 "\n",
724 "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.33, random_state=42)"
725 ]
726 },
727 {
728 "cell_type": "code",
729 "execution_count": 16,
730 "metadata": {},
731 "outputs": [
732 {
733 "name": "stdout",
734 "output_type": "stream",
735 "text": [
736 "[19:36:06] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n"
737 ]
738 },
739 {
740 "data": {
741 "text/plain": [
742 "XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n",
743 " colsample_bynode=1, colsample_bytree=1, gamma=0,\n",
744 " importance_type='gain', learning_rate=0.1, max_delta_step=0,\n",
745 " max_depth=3, min_child_weight=1, missing=None, n_estimators=100,\n",
746 " n_jobs=1, nthread=None, objective='reg:linear', random_state=0,\n",
747 " reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,\n",
748 " silent=None, subsample=1, verbosity=1)"
749 ]
750 },
751 "execution_count": 16,
752 "metadata": {},
753 "output_type": "execute_result"
754 }
755 ],
756 "source": [
757 "xgbmodel = xgb.XGBRegressor()\n",
758 "xgbmodel.fit(X_train, y_train)"
759 ]
760 },
761 {
762 "cell_type": "code",
763 "execution_count": 17,
764 "metadata": {},
765 "outputs": [
766 {
767 "data": {
768 "text/plain": [
769 "4.225014413957816"
770 ]
771 },
772 "execution_count": 17,
773 "metadata": {},
774 "output_type": "execute_result"
775 }
776 ],
777 "source": [
778 "pred = xgbmodel.predict(X_test)\n",
779 "mean_squared_error(y_test, pred)"
780 ]
781 },
782 {
783 "cell_type": "code",
784 "execution_count": 18,
785 "metadata": {},
786 "outputs": [
787 {
788 "data": {
789 "text/plain": [
790 "0.17922021632556528"
791 ]
792 },
793 "execution_count": 18,
794 "metadata": {},
795 "output_type": "execute_result"
796 }
797 ],
798 "source": [
799 "r2_score(y_test, pred)"
800 ]
801 },
802 {
803 "cell_type": "code",
804 "execution_count": 19,
805 "metadata": {},
806 "outputs": [
807 {
808 "data": {
809 "image/png": "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\n",
810 "text/plain": [
811 "<Figure size 864x864 with 1 Axes>"
812 ]
813 },
814 "metadata": {
815 "needs_background": "light"
816 },
817 "output_type": "display_data"
818 }
819 ],
820 "source": [
821 "feature_importances = pd.Series(xgbmodel.feature_importances_, index=X.columns).sort_values(ascending=False)\n",
822 "\n",
823 "plt.figure(figsize=(12, 12))\n",
824 "sns.barplot(x=feature_importances, y=feature_importances.index)\n",
825 "\n",
826 "# Add labels to our graph \n",
827 "plt.xlabel('Feature Importance Score')\n",
828 "plt.ylabel('Features')\n",
829 "plt.title(\"Feature Importance Rankings\")\n",
830 "plt.show()"
831 ]
832 },
833 {
834 "cell_type": "markdown",
835 "metadata": {},
836 "source": [
837 "<h4>K-Fold Cross Validation</h4>\n",
838 "\n",
839 "10-fold cross validation for XGBoost model is below."
840 ]
841 },
842 {
843 "cell_type": "code",
844 "execution_count": 20,
845 "metadata": {},
846 "outputs": [
847 {
848 "name": "stdout",
849 "output_type": "stream",
850 "text": [
851 "[19:36:58] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n",
852 "[19:37:57] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n",
853 "[19:38:55] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n",
854 "[19:39:54] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n",
855 "[19:40:53] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n",
856 "[19:41:51] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n",
857 "[19:42:51] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n",
858 "[19:43:49] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n",
859 "[19:44:48] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n",
860 "[19:45:47] WARNING: C:/Jenkins/workspace/xgboost-win64_release_0.90/src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.\n"
861 ]
862 },
863 {
864 "data": {
865 "text/plain": [
866 "array([0.18317994, 0.18209709, 0.17805348, 0.17923736, 0.17389156,\n",
867 " 0.18128156, 0.16611453, 0.18291924, 0.17375828, 0.1774409 ])"
868 ]
869 },
870 "execution_count": 20,
871 "metadata": {},
872 "output_type": "execute_result"
873 }
874 ],
875 "source": [
876 "from sklearn.model_selection import KFold\n",
877 "from sklearn.model_selection import cross_val_score\n",
878 "\n",
879 "kfold = KFold(n_splits = 10, random_state=7)\n",
880 "xgbresults = cross_val_score(xgbmodel, X, y, cv=kfold)\n",
881 "xgbresults"
882 ]
883 },
884 {
885 "cell_type": "markdown",
886 "metadata": {},
887 "source": [
888 "As seen from the cross-validation scores, R^2 score of XGBoost do not change much. All of the scores after each iteration are very close to R^2 score of initial fit of the model."
889 ]
890 },
891 {
892 "cell_type": "markdown",
893 "metadata": {},
894 "source": [
895 "<h4><b>Random Forest Regressor Model</b></h4>"
896 ]
897 },
898 {
899 "cell_type": "code",
900 "execution_count": 21,
901 "metadata": {},
902 "outputs": [
903 {
904 "data": {
905 "text/plain": [
906 "RandomForestRegressor(bootstrap=True, criterion='mse', max_depth=None,\n",
907 " max_features='auto', max_leaf_nodes=None,\n",
908 " min_impurity_decrease=0.0, min_impurity_split=None,\n",
909 " min_samples_leaf=1, min_samples_split=2,\n",
910 " min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=None,\n",
911 " oob_score=False, random_state=None, verbose=0, warm_start=False)"
912 ]
913 },
914 "execution_count": 21,
915 "metadata": {},
916 "output_type": "execute_result"
917 }
918 ],
919 "source": [
920 "rfmodel = RandomForestRegressor(criterion='mse')\n",
921 "rfmodel.fit(X_train, y_train)"
922 ]
923 },
924 {
925 "cell_type": "code",
926 "execution_count": 22,
927 "metadata": {},
928 "outputs": [
929 {
930 "data": {
931 "text/plain": [
932 "3.7485005941444633"
933 ]
934 },
935 "execution_count": 22,
936 "metadata": {},
937 "output_type": "execute_result"
938 }
939 ],
940 "source": [
941 "rf_pred = rfmodel.predict(X_test)\n",
942 "mean_squared_error(y_test, rf_pred)"
943 ]
944 },
945 {
946 "cell_type": "code",
947 "execution_count": 23,
948 "metadata": {},
949 "outputs": [
950 {
951 "data": {
952 "text/plain": [
953 "0.27179100345760343"
954 ]
955 },
956 "execution_count": 23,
957 "metadata": {},
958 "output_type": "execute_result"
959 }
960 ],
961 "source": [
962 "r2_score(y_test, rf_pred)"
963 ]
964 },
965 {
966 "cell_type": "code",
967 "execution_count": 24,
968 "metadata": {},
969 "outputs": [
970 {
971 "data": {
972 "image/png": "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\n",
973 "text/plain": [
974 "<Figure size 864x864 with 1 Axes>"
975 ]
976 },
977 "metadata": {
978 "needs_background": "light"
979 },
980 "output_type": "display_data"
981 }
982 ],
983 "source": [
984 "feature_importances = pd.Series(rfmodel.feature_importances_, index=X.columns).sort_values(ascending=False)\n",
985 "\n",
986 "plt.figure(figsize=(12, 12))\n",
987 "sns.barplot(x=feature_importances, y=feature_importances.index)\n",
988 "\n",
989 "# Add labels to our graph \n",
990 "plt.xlabel('Feature Importance Score')\n",
991 "plt.ylabel('Features')\n",
992 "plt.title(\"Feature Importance Rankings\")\n",
993 "plt.show()"
994 ]
995 },
996 {
997 "cell_type": "markdown",
998 "metadata": {},
999 "source": [
1000 "<h4>K-Fold Cross Validation</h4>\n",
1001 "\n",
1002 "10-fold cross validation for Random Forest Regressor model is below."
1003 ]
1004 },
1005 {
1006 "cell_type": "code",
1007 "execution_count": 25,
1008 "metadata": {},
1009 "outputs": [
1010 {
1011 "data": {
1012 "text/plain": [
1013 "array([0.28349469, 0.2705083 , 0.26981818, 0.26610356, 0.25349095,\n",
1014 " 0.27755084, 0.24296661, 0.26295131, 0.27446709, 0.25949676])"
1015 ]
1016 },
1017 "execution_count": 25,
1018 "metadata": {},
1019 "output_type": "execute_result"
1020 }
1021 ],
1022 "source": [
1023 "kfold = KFold(n_splits = 10, random_state=7)\n",
1024 "rf_results = cross_val_score(rfmodel, X, y, cv=kfold)\n",
1025 "rf_results"
1026 ]
1027 },
1028 {
1029 "cell_type": "markdown",
1030 "metadata": {},
1031 "source": [
1032 "Similar to cross-validation results of XGBoost, R^2 scores of Random Forest Regressor also do not change significantly. For both models, we can consider initial scores as scores for these models."
1033 ]
1034 },
1035 {
1036 "cell_type": "markdown",
1037 "metadata": {},
1038 "source": [
1039 "<h2>Insights From Machine Learning Models</h2>"
1040 ]
1041 },
1042 {
1043 "cell_type": "markdown",
1044 "metadata": {},
1045 "source": [
1046 "1. For both models, it can be seend that most important features are very similar. Most important features can be listed as Passanger_Baggage_Count, Inbound_Exist, Outbound_Exist, kontuar and SWC_CIP_Passenger. Among those features, Inbound_Exist and Outbound_Exist are ones created by us. These being important features for regression operations can be interpreted as presence or absence of inbound and outbound flights do affect number of times check-in operations are being made. Also, from the importance graphs above, it can be seen that check-in operation being made from kontuar also affects number of times check-in operations are attempted.\n",
1047 "\n",
1048 "2. When two models compared, Random Forest Regressor model seem to perform better for prediction operation counts in validation set. This may be due to XGBoost model overfitting to training data after boosting iterations. Parameters of both models can be tuned to further analyze their performances.\n",
1049 "\n",
1050 "3. With current parameters, for predicting operation counts in test file, Random Forest Regressor should be used, since its evaluation metrics are better."
1051 ]
1052 },
1053 {
1054 "cell_type": "markdown",
1055 "metadata": {},
1056 "source": [
1057 "<h4>Conducting Hypothesis Testing from Insights</h4>"
1058 ]
1059 },
1060 {
1061 "cell_type": "markdown",
1062 "metadata": {},
1063 "source": [
1064 "<b>1.</b> For first hypothesis test, we will analyzse whether check-in operation is being performed from kontuar cause statistically significant difference on number of operations made compared to other forms of check-in channels. "
1065 ]
1066 },
1067 {
1068 "cell_type": "code",
1069 "execution_count": 26,
1070 "metadata": {},
1071 "outputs": [],
1072 "source": [
1073 "kontuar_ops = processed_df[processed_df['kontuar'] == 1]['Operation_Count']\n",
1074 "other_ops = processed_df[processed_df['kontuar'] == 0]['Operation_Count']"
1075 ]
1076 },
1077 {
1078 "cell_type": "code",
1079 "execution_count": 27,
1080 "metadata": {},
1081 "outputs": [
1082 {
1083 "name": "stdout",
1084 "output_type": "stream",
1085 "text": [
1086 "Mean value of operation count when check-in is performed in kontuar: 1.31\n"
1087 ]
1088 }
1089 ],
1090 "source": [
1091 "print(\"Mean value of operation count when check-in is performed in kontuar: {:.2f}\".format(kontuar_ops.mean()))"
1092 ]
1093 },
1094 {
1095 "cell_type": "code",
1096 "execution_count": 28,
1097 "metadata": {},
1098 "outputs": [
1099 {
1100 "name": "stdout",
1101 "output_type": "stream",
1102 "text": [
1103 "Mean value of operation count when check-in is NOT performed in kontuar: 1.76\n"
1104 ]
1105 }
1106 ],
1107 "source": [
1108 "print(\"Mean value of operation count when check-in is NOT performed in kontuar: {:.2f}\".format(other_ops.mean()))"
1109 ]
1110 },
1111 {
1112 "cell_type": "code",
1113 "execution_count": 38,
1114 "metadata": {},
1115 "outputs": [
1116 {
1117 "data": {
1118 "image/png": "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OOf9klSWt05EbABWAW3IEq4PgbeAfwI3RMTKigeQNEpSqaTSZcuW1f4ZWFGqzSRrw4YNtbavqmzcuLHSdRWTrF//+td07lyx0bdhc5JlZmZmVph8/YeiwDq9gY3AXkBH4GJJn/lExYjbIqJnRPRs27bt1sZr28jChQs59NBDmTVrFuvWrePMM8+ka9euHHrooTz66KNAlnicdNJJDBo0iE6dOnHppZcCcNlll7F27VpKSkoYNmzYJ1rIbrjhBsaMGQPAuHHj6NWrF926dePLX/4ya9asAWDkyJFcdNFFHH300YwePXqz2KqKZ/DgwQwaNIgDDjiAq666qnyb3/72t/Tu3ZuSkhLOOeec8oSqVatWXHnllfTp04enn36asWPH0qtXL7p06cKoUaOICCZPnkxpaSnDhg2jpKSEtWvX0r9/f0pLSwG4++676dq1K126dNks1latWnH55ZfTrVs3+vbty9tvvw3AfffdR5cuXejWrRtHHXVUrX1mdc2zC5qZmZkVZgmwT8779sDSSuosSV0DdwNWAqcDf4mI9cA7kp4EegIL6zzqHcCF8+Yx54MPanWfJa1acVOnTtXWe/311zn11FO58847KSkp4cc//jEAL730Eq+99hoDBw7kjTfeAGDOnDk8//zzNGvWjAMOOIBvfOMbXH/99dxyyy3MmTMHyLohVuakk07i7LPPBuCKK67g9ttv5xvf+AYAb7zxBg8//DCNGjXabJtbb7210nieffZZXn75ZXbeeWd69erFF77wBVq2bMmkSZN48sknadKkCeeddx4TJ07kjDPO4MMPP6RLly6MHTsWgM6dO3PllVcCMHz4cB588EFOPvlkbrnlFm644QZ69uy5WSxLly5l9OjRzJ49m913352BAwcyZcoUhgwZwocffkjfvn255ppruPTSSxk3bhxXXHEFY8eO5aGHHmLvvffmvffeq/bzKBZuyTIzMzMrzCygk6SOkpoCpwJTK9SZCoxIyycDMyIiyLoIfk6ZlkBf4LVtFLfVkWXLljF48GB++9vfUlJSAsATTzzB8OHDATjwwAPZb7/9ypOaAQMGsNtuu9G8eXM6d+7Mm2++WaPjvfzyyxx55JF07dqViRMnMnfu3PJ1Q4cO/USCVV08xx57LG3atKFFixacdNJJPPHEEzzyyCPMnj2bXr16UVJSwiOPPMLChdmzgEaNGvHlL3+5fN+PPvooffr0oWvXrsyYMWOzePKZNWsW/fv3p23btjRu3Jhhw4bx+OOPA9C0aVO++MUvAtCjR4/yZPPwww9n5MiRjBs3rsouisXGLVlmZmZmBYiIDZLOBx4CGgF3RMRcSWOB0oiYCtwO3CVpPlkL1qlp81uBO4GXyboU3hkRL9Z2jKtnr+ajpR+xxwl71Paui1ohLU51YbfddmOfffbhySef5OCDDwayv7FUmWbNmpUvN2rUKO/4qcaNG7Np06by97nTiI8cOZIpU6bQrVs3xo8fz8yZM8vXtWzZMu8xq4qn4gx6kogIRowYwXXXXfeJ+s2bNy9P5NatW8d5551HaWkp++yzD2PGjKl2yvOqYmnSpEl5PLk/m1/+8pc888wz/OlPf6KkpIQ5c+bQpk2bKo9TDNySVUOaOTPvy8yspmZq5ideZlbcImJaRHw2Iv47Iq5JZVemBIuIWBcRQyNi/4joHRELU/kHqfzgiOgcET+qi/gW37iYBd9eUBe7tjyaNm3KlClT+M1vfsPvfvc7AI466igmTpwIZF34/vnPf3LAAQdUuZ8mTZqwfv16APbcc0/eeecdVqxYwUcffcSDDz5YXm/16tW0a9eO9evXlx+jOlXFM336dFauXMnatWuZMmUKhx9+OAMGDGDy5Mm88847AKxcuTJvi1tZQrXHHnvwwQcfMHny5PJ1u+yyC6tXr/7ENn369OGxxx5j+fLlbNy4kbvvvpt+/fpVGf+CBQvo06cPY8eOZY899mDx4sVV1i8WbskyMzMzayg2QmysvLXAal/Lli158MEHOfbYY2nZsiXnnXce5557Ll27dqVx48aMHz9+sxasfEaNGsUhhxxC9+7dmThxYvnkEh07duTAAw8sr/f973+fPn36sN9++9G1a9e8iUxFVcVzxBFHMHz4cObPn8/pp59ePobq6quvZuDAgWzatIkmTZpw6623st9++22239atW3P22WfTtWtXOnToQK9evcrXjRw5knPPPZcWLVrw9NNPl5e3a9eO6667jqOPPpqI4Pjjj2fw4Ip/BWFzl1xyCfPmzSMiGDBgAN26dav2nIuBqmq225H07NkzymY9qUplrVbRv3/tBmRmSJodET2rr1lcCr2f5Gu56h/9az8gsx1cQ7+X5Jp76lxWz1pN3wV96yiq4vHqq69y0EEH1XcY263x48dTWlrKLbfcUt+hFK18/8cKvZ+4u6CZmZlZQxF8clJ5M9vm3F3QzMzMrKFwkmUFGjlyJCNHjqzvMBost2SZmZmZNRRR9QxuZrZtOMkyMzMzayAiwi1ZZkXASZaZmZlZQ+HugmZFwUmWmZmZmZlZLXKSZWZmZtZQeExWg9C/f39qOn1/PlOmTOGVV16phYiKw5w5c5g2bVr5+6lTp3L99dfXY0SVc5JlZmZm1lC4u6DlqM0ka+PGjbWyn+ps2LCh0nUVk6wTTzyRyy67bFuEVWNOsszMzMwaCE98se0sWrSIgw46iLPPPpuDDz6YgQMHsnbtWiBLBvr27cshhxzCl770Jd59910ga6EaPXo0vXv35rOf/Sx/+9vfqjzGpk2bGDFiBFdccQUAd999N127dqVLly6MHj26vF6rVq24/PLL6datG3379uXtt9/mqaeeYurUqVxyySWUlJSwYMGCzVrIli9fTocOHcrP5cgjj6R79+50796dp556CoCZM2dy9NFHc/rpp9O1a9dPxFdVPBdffDHdu3dnwIABLFu2DIAFCxYwaNAgevTowZFHHslrr70GZNPJX3TRRRx99NGMHj2aZ599lsMOO4xDDz2Uww47jNdff52PP/6YK6+8kkmTJlFSUsKkSZMYP348559/PgBvvvkmAwYM4JBDDmHAgAH885//LN/3BRdcwGGHHcZnPvMZJk+eDMBbb73FUUcdRUlJCV26dKn2s6gp/50sMyt6kpoDjwPNyO5bkyPie5LGA/2AVanqyIiYI0nAT4HjgTWp/Lm0rxHAFan+1RExIZX3AMYDLYBpwDcjIiR9CpgEdAAWAV+JiHfr9ITNzLbUDtqSNe/CeXww54Na3WerklZ0uqlT1cedN4+7776bcePG8ZWvfIX777+fr371q5xxxhn87Gc/o1+/flx55ZVcddVV3HTTTUDWUvPss88ybdo0rrrqKh5++OG8+96wYQPDhg2jS5cuXH755SxdupTRo0cze/Zsdt99dwYOHMiUKVMYMmQIH374IX379uWaa67h0ksvZdy4cVxxxRWceOKJfPGLX+Tkk0+u8jw+/elPM336dJo3b868efM47bTTypOxZ599lpdffpmOHTtutk118XTv3p0f//jHjB07lquuuopbbrmFUaNG8ctf/pJOnTrxzDPPcN555zFjxgwA3njjDR5++GEaNWrE+++/z+OPP07jxo15+OGH+e53v8v999/P2LFjKS0t5ZZbbgFg/Pjx5fGcf/75nHHGGYwYMYI77riDCy64gClTpgBZQvXEE0/w2muvceKJJ3LyySfzu9/9js9//vNcfvnlbNy4kTVr1lT5M6opJ1lmtj34CPhcRHwgqQnwhKQ/p3WXRMTkCvWPAzqlVx/gF0CflDB9D+hJ9jVktqSpKWn6BTAK+DtZkjUI+DNwGfBIRFwv6bL0fjRmZsVoB02y6kvHjh0pKSkBoEePHixatIhVq1bx3nvv0a9fPwBGjBjB0KFDy7c56aSTNqtfmXPOOYetsvNEAAAgAElEQVSvfOUrXH755QDMmjWL/v3707ZtWwCGDRvG448/zpAhQ2jatClf/OIXy/c7ffr0Gp3H+vXrOf/885kzZw6NGjXijTfeKF/Xu3fvTyRY1cWz0047ccoppwDw1a9+lZNOOokPPviAp556arOfxUcffVS+PHToUBo1agTAqlWrGDFiBPPmzUMS69evr/Ycnn76aR544AEAhg8fzqWXXlq+riymzp078/bbbwPQq1cv/vd//5f169czZMiQ8s+xtjjJMrOiF9ko7rJHlE3Sq6qvEYOB36Tt/i6ptaR2QH9gekSsBJA0HRgkaSawa0Q8ncp/AwwhS7IGp+0AJgAzcZJlZsVqB534oroWp7rSrFmz8uVGjRqVdxcsZJtGjRqVjz8688wzef7559lrr73KxxwddthhPProo1x88cU0b968ys+1SZMmZJ04Nt9vRY0bN2bTpk0ArFu3rrz8xhtvZM899+SFF15g06ZNNG/evHxdy5Yt8+6rJv/PJLFp0yZat27NnDlz8tbJPc7/+3//j6OPPprf//73LFq0iP79+xd8rNxjlsn9nMriPuqoo3j88cf505/+xPDhw7nkkks444wzanycynhMlpltFyQ1kjQHeIcsUXomrbpG0ouSbpRUdhfdG1ics/mSVFZV+ZI85QB7RsRbAOnfT1cS3yhJpZJKy/qem5ltax6TVf922203dt999/IxPnfddVd5q1Zl7rzzzk9M6nDWWWdx/PHHM3ToUDZs2ECfPn147LHHWL58ORs3buTuu++udr+77LILq1evLn/foUMHZs+eDVA+NgmylqN27dqx0047cddddxU0yUVV8WzatKl8/7/73e844ogj2HXXXenYsSP33Xcf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\n",
1119 "text/plain": [
1120 "<Figure size 1008x432 with 3 Axes>"
1121 ]
1122 },
1123 "metadata": {
1124 "needs_background": "light"
1125 },
1126 "output_type": "display_data"
1127 }
1128 ],
1129 "source": [
1130 "fig, ax = plt.subplots(1, 3, figsize=(14,6)) # a figure with 1 row and 3 columns\n",
1131 " # ax variable stores a list with 3 elements\n",
1132 " # each element in ax correspons to chart\n",
1133 " \n",
1134 "kontuar_ops.plot(kind=\"hist\", ax=ax[0], bins=40, label=\"k\", color=\"c\")\n",
1135 "ax[0].set_title(\"From Kontuar\")\n",
1136 "\n",
1137 "other_ops.plot(kind=\"hist\", ax=ax[1], bins=40, label=\"o\", color=\"m\")\n",
1138 "ax[1].set_title(\"From Other Channels\")\n",
1139 "\n",
1140 "sns.kdeplot(kontuar_ops, shade=True, label=\"kontuar operations\", ax=ax[2], color=\"c\")\n",
1141 "sns.kdeplot(other_ops, shade=True, label=\"non-kontuar operations\", ax=ax[2], color=\"m\")\n",
1142 "ax[2].set_title(\"Comparison with KDE\")\n",
1143 "\n",
1144 "plt.suptitle(\"Operation Count Distributions\")\n",
1145 "plt.show()"
1146 ]
1147 },
1148 {
1149 "cell_type": "code",
1150 "execution_count": 34,
1151 "metadata": {},
1152 "outputs": [
1153 {
1154 "data": {
1155 "text/plain": [
1156 "Ttest_indResult(statistic=-88.80864853163777, pvalue=0.0)"
1157 ]
1158 },
1159 "execution_count": 34,
1160 "metadata": {},
1161 "output_type": "execute_result"
1162 }
1163 ],
1164 "source": [
1165 "# One tail t-test between 2 distributions\n",
1166 "stats.ttest_ind(kontuar_ops, other_ops, equal_var=False)"
1167 ]
1168 },
1169 {
1170 "cell_type": "markdown",
1171 "metadata": {},
1172 "source": [
1173 "t-test between 2 distribution gives us p-value of 0.0. Interpreting this value as 0.001 and considering threshold value for significance is 0.05, this result tell us that difference between two distributions are statistically significant. Additionally, after checking means of two distributions, we can conclude that doing check-in in kontuar is likely to be completed in less number of operations compared to doing it in other ways. "
1174 ]
1175 },
1176 {
1177 "cell_type": "markdown",
1178 "metadata": {},
1179 "source": [
1180 "<b>2.</b> For the second hypothesis test, we will compare two distributions of operations counts for different values Inbound_Exist feature. By doing that, we will test if existance/absence of inbound flight actually affect number of operations performed for check-ins of passengers."
1181 ]
1182 },
1183 {
1184 "cell_type": "code",
1185 "execution_count": 35,
1186 "metadata": {},
1187 "outputs": [],
1188 "source": [
1189 "inbound_present = processed_df[processed_df['Inbound_Exist'] == 1]['Operation_Count']\n",
1190 "inbound_absent = processed_df[processed_df['Inbound_Exist'] == 0]['Operation_Count']"
1191 ]
1192 },
1193 {
1194 "cell_type": "code",
1195 "execution_count": 36,
1196 "metadata": {},
1197 "outputs": [
1198 {
1199 "name": "stdout",
1200 "output_type": "stream",
1201 "text": [
1202 "Mean value of operation count when there is an inbound flight: 1.24\n"
1203 ]
1204 }
1205 ],
1206 "source": [
1207 "print(\"Mean value of operation count when there is an inbound flight: {:.2f}\".format(inbound_present.mean()))"
1208 ]
1209 },
1210 {
1211 "cell_type": "code",
1212 "execution_count": 37,
1213 "metadata": {},
1214 "outputs": [
1215 {
1216 "name": "stdout",
1217 "output_type": "stream",
1218 "text": [
1219 "Mean value of operation count when there is not an inbound flight: 1.57\n"
1220 ]
1221 }
1222 ],
1223 "source": [
1224 "print(\"Mean value of operation count when there is not an inbound flight: {:.2f}\".format(inbound_absent.mean()))"
1225 ]
1226 },
1227 {
1228 "cell_type": "code",
1229 "execution_count": 39,
1230 "metadata": {},
1231 "outputs": [
1232 {
1233 "data": {
1234 "image/png": "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zDF8+eWXfPXVV4W/iQ3APVNm1mhIagPsBeSeBrsM2EvSO2nZZan8YWAGMB24EfgvgIhYAPwceCm9LkllAKcBY9I67wKP1NKGmZlZSQwYMICuXbuywQYb0K9fP2bOnFm5bPjw4ZV/n3/+eQCef/55jj76aACOO+44Jk2aVFQbb731Fj169KBnz55I4thjjy16HyZPnsygQYPYbLPNaNGiBYcffvhqyw8++GA22GADevfuzccff5x3G7vssgu//OUvufzyy3n//fdp3bp10fHUB/dMmVmjERFLgQ5VyuaTje5XtW4Ap1eznZuBm/OUlwN98pTnbcPMrLF59VX44AM46KBSR9K0rUkPUn3ZcMMNK6ebNWvGypUrK+dzR6CrbjS6ivLmzZuzatUqIHuu0pdffllrG3U1qmHupYn55LZfXd2jjz6agQMH8re//Y199tmHMWPGsMcee9RJfHXBPVPVkL7+MjMrig8oZlZHdtgBhg0rdRRWanfddVfl31122QXIRgK88847Abj99tsrLwns3r07U6ZMAeCBBx5gxYoVNW67V69evPfee7z77rsA3HHHHTXWr8mAAQN45plnWLhwIStXruSvf/1rreu0a9eOJUuWVM7PmDGDrbbaijPPPJODDjqIqVOnFh1PfXDPlJmZmZnZOuSLL75g4MCBrFq1qjLZufrqq/nBD37Ab37zGzp16sQtt9wCwKhRoxg2bBgDBgxgyJAhbLTRRjVuu1WrVtxwww3sv//+dOzYkd12241p06YVFWeXLl346U9/ysCBA+ncuTO9e/dm4403rnGdvn370rx5c7bffnuOP/54li9fzp/+9CdatGjBN7/5TS688MKiYqkvqq37rakpKyuLitFFapLvxPF69laZNQhJUyKirNRxrKlCjyWADyhmDWR9OJ5UHE58CKl7b775Jttuu22pw2hyPvvsM9q2bcvKlSs55JBD+MEPfsAhhxxS6rBWk++zL/R44sv8zMzMzMysXowePZp+/frRp08fevTowcEHH1zqkOqUL/MzMzMzM7N6ccUVV5Q6hHrlnikzMzMzM7MiOJkyMzMzMzMrgpMpMzMzMzOzIjiZMjMzMzMzK4KTKTMzMzOzddwf/vAHxo0bV2OdsWPHcsYZZzRQRJnBgweTb+j/iRMnst1229GvXz/efPNN+vTpA0B5eTlnnnlmjducOXNmZf2qxo4dy5w5c9Y+8AJ5ND8zMzMzs3XcqaeeWuoQ1sjtt9/OueeeywknnMDMmTMry8vKyigrK/5xcWPHjqVPnz507ty5DqKsnXumzMzMzMxKbObMmWy77baMGjWK7bbbjr333ptly5YB8Oqrr7LzzjvTt29fDjnkEBYuXPi19UePHl05DPngwYM577zzGDBgANtssw0TJ06srDdr1iyGDh3Kt7/9bS6++OLK8t/+9rf06dOHPn36cNVVV1XGlNsDdMUVVzB69Oga21i2bBlHHXUUffv25cgjj6zch1xjxozh7rvv5pJLLuGYY45ZbdnTTz/NAQccAMC8efPYa6+96N+/P6eccgrf+ta3+OSTTwD46quvvvZe3XPPPZSXl3PMMcfQr18/li1bxvnnn0/v3r3p27cv55577pp9KAVwz5SZmZmZWa6zzoJXX63bbfbrBylJqc4777zDHXfcwY033sgRRxzBX//6V4499lhGjBjB73//ewYNGsSFF17IxRdfXJnwVGflypVMnjyZhx9+mIsvvpgnnngCgMmTJzNt2jTatGnDTjvtxP77748kbrnlFl588UUigoEDBzJo0CA23XTTNW7j+uuvp02bNkydOpWpU6fSv3//r6130kknMWnSJA444AAOO+yw1Xqmcl188cXsscceXHDBBTz66KPccMMNtb5X11xzDVdccQVlZWUsWLCA++67j7feegtJLFq0qMb9KYZ7pszMzMzMGoEePXrQr18/AHbccUdmzpzJ4sWLWbRoEYMGDQJg5MiRPPvss7Vu69BDD11tOxX22msvOnToQOvWrTn00EOZNGkSkyZN4pBDDmGjjTaibdu2HHrooav1Zq1JG88++yzHHnssAH379qVv374F739VkyZN4qijjgJg6NChqyV3+d6rqtq3b0+rVq046aSTuPfee2nTpk3RsVTHPVNmZmZmZrlq6fWpLxtuuGHldLNmzfJeIrem22rWrBkrV66sLJe0Wj1JRETebTRv3pxVq1ZVzi9fvryoNopVXVy5bVe0n++9at68OZMnT+bJJ5/kzjvv5JprruGpp56qk9gquGfKzMzMzKyR2njjjdl0000re4puu+22yl6qYkyYMIEFCxawbNky7r//fnbddVd233137r//fpYuXcrnn3/Offfdx/e+9z0233xz5s6dy/z58/niiy946KGHat3+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\n",
1235 "text/plain": [
1236 "<Figure size 1008x432 with 3 Axes>"
1237 ]
1238 },
1239 "metadata": {
1240 "needs_background": "light"
1241 },
1242 "output_type": "display_data"
1243 }
1244 ],
1245 "source": [
1246 "fig, ax = plt.subplots(1, 3, figsize=(14,6)) # a figure with 1 row and 3 columns\n",
1247 " # ax variable stores a list with 3 elements\n",
1248 " # each element in ax correspons to chart\n",
1249 " \n",
1250 "inbound_present.plot(kind=\"hist\", ax=ax[0], bins=40, label=\"inb\", color=\"b\")\n",
1251 "ax[0].set_title(\"Inbound Present\")\n",
1252 "\n",
1253 "inbound_absent.plot(kind=\"hist\", ax=ax[1], bins=40, label=\"no\", color=\"r\")\n",
1254 "ax[1].set_title(\"Inbound Absent\")\n",
1255 "\n",
1256 "sns.kdeplot(inbound_present, shade=True, label=\"inbound flights\", ax=ax[2], color=\"b\")\n",
1257 "sns.kdeplot(inbound_absent, shade=True, label=\"no inbound flights\", ax=ax[2], color=\"r\")\n",
1258 "ax[2].set_title(\"Comparison with KDE\")\n",
1259 "\n",
1260 "plt.suptitle(\"Operation Count Distributions\")\n",
1261 "plt.show()"
1262 ]
1263 },
1264 {
1265 "cell_type": "code",
1266 "execution_count": 40,
1267 "metadata": {},
1268 "outputs": [
1269 {
1270 "data": {
1271 "text/plain": [
1272 "Ttest_indResult(statistic=-89.01460439966546, pvalue=0.0)"
1273 ]
1274 },
1275 "execution_count": 40,
1276 "metadata": {},
1277 "output_type": "execute_result"
1278 }
1279 ],
1280 "source": [
1281 "# One tail t-test between 2 distributions\n",
1282 "stats.ttest_ind(inbound_present, inbound_absent, equal_var=False)"
1283 ]
1284 },
1285 {
1286 "cell_type": "markdown",
1287 "metadata": {},
1288 "source": [
1289 "Again, t-test result is 0.0. Interpreting this value as 0.001 and considering threshold value for significance is 0.05, this result tell us that difference between two distributions are statistically significant. If we combine this result with observation of means of distributions, we can conclude that presence of inbound flights results less number of operations for check-in. However, it should be noted that size of the distribution where inbound flight is present is much lower that where inbound flight is not present."
1290 ]
1291 },
1292 {
1293 "cell_type": "markdown",
1294 "metadata": {},
1295 "source": [
1296 "<h2>Predicting Labels in Test Set<h2>"
1297 ]
1298 },
1299 {
1300 "cell_type": "markdown",
1301 "metadata": {},
1302 "source": [
1303 "As done in training file, test file should be preprocessed as well. Below, same operations performed on training csv file are also performed on training data.\n"
1304 ]
1305 },
1306 {
1307 "cell_type": "code",
1308 "execution_count": 47,
1309 "metadata": {},
1310 "outputs": [],
1311 "source": [
1312 "test_df = pd.read_csv(r\"C:\\Users\\Mert\\Desktop\\assessment\\assessment\\Assessment Data\\Assessment Result File.csv\")"
1313 ]
1314 },
1315 {
1316 "cell_type": "code",
1317 "execution_count": 48,
1318 "metadata": {},
1319 "outputs": [
1320 {
1321 "data": {
1322 "text/html": [
1323 "<div>\n",
1324 "<style scoped>\n",
1325 " .dataframe tbody tr th:only-of-type {\n",
1326 " vertical-align: middle;\n",
1327 " }\n",
1328 "\n",
1329 " .dataframe tbody tr th {\n",
1330 " vertical-align: top;\n",
1331 " }\n",
1332 "\n",
1333 " .dataframe thead th {\n",
1334 " text-align: right;\n",
1335 " }\n",
1336 "</style>\n",
1337 "<table border=\"1\" class=\"dataframe\">\n",
1338 " <thead>\n",
1339 " <tr style=\"text-align: right;\">\n",
1340 " <th></th>\n",
1341 " <th>Departure_YMD_LMT</th>\n",
1342 " <th>Operation_YMD_LMT</th>\n",
1343 " <th>Departure_Airport</th>\n",
1344 " <th>Operation_Airport</th>\n",
1345 " <th>Terminal_Number</th>\n",
1346 " <th>Terminal_Name</th>\n",
1347 " <th>Operation_Initials</th>\n",
1348 " <th>Operation_Sonic_Code</th>\n",
1349 " <th>Operation_Channel</th>\n",
1350 " <th>Passenger_Title</th>\n",
1351 " <th>...</th>\n",
1352 " <th>SWC_FLY</th>\n",
1353 " <th>Cabin_Class</th>\n",
1354 " <th>SWC_FQTV_Member</th>\n",
1355 " <th>Passenger_Baggage_Count</th>\n",
1356 " <th>Passenger_Baggage_Weight</th>\n",
1357 " <th>SWC_Staff</th>\n",
1358 " <th>SWC_CIP_Passenger</th>\n",
1359 " <th>SWC_VIP_Passenger</th>\n",
1360 " <th>SWC_Has_Infant</th>\n",
1361 " <th>Operation_Count</th>\n",
1362 " </tr>\n",
1363 " </thead>\n",
1364 " <tbody>\n",
1365 " <tr>\n",
1366 " <th>0</th>\n",
1367 " <td>20190608</td>\n",
1368 " <td>20190607</td>\n",
1369 " <td>KDT</td>\n",
1370 " <td>KDT</td>\n",
1371 " <td>?</td>\n",
1372 " <td>03539F</td>\n",
1373 " <td>MK</td>\n",
1374 " <td>?</td>\n",
1375 " <td>TS</td>\n",
1376 " <td>MISS</td>\n",
1377 " <td>...</td>\n",
1378 " <td>1</td>\n",
1379 " <td>Y</td>\n",
1380 " <td>1</td>\n",
1381 " <td>1</td>\n",
1382 " <td>17</td>\n",
1383 " <td>0</td>\n",
1384 " <td>0</td>\n",
1385 " <td>0</td>\n",
1386 " <td>0</td>\n",
1387 " <td></td>\n",
1388 " </tr>\n",
1389 " <tr>\n",
1390 " <th>1</th>\n",
1391 " <td>20190609</td>\n",
1392 " <td>20190609</td>\n",
1393 " <td>KDT</td>\n",
1394 " <td>KDT</td>\n",
1395 " <td>?</td>\n",
1396 " <td>03F39C</td>\n",
1397 " <td>KS</td>\n",
1398 " <td>Y013171</td>\n",
1399 " <td>QC</td>\n",
1400 " <td>MISTER</td>\n",
1401 " <td>...</td>\n",
1402 " <td>1</td>\n",
1403 " <td>Y</td>\n",
1404 " <td>0</td>\n",
1405 " <td>1</td>\n",
1406 " <td>7</td>\n",
1407 " <td>0</td>\n",
1408 " <td>0</td>\n",
1409 " <td>0</td>\n",
1410 " <td>0</td>\n",
1411 " <td></td>\n",
1412 " </tr>\n",
1413 " <tr>\n",
1414 " <th>2</th>\n",
1415 " <td>20190612</td>\n",
1416 " <td>20190612</td>\n",
1417 " <td>KDT</td>\n",
1418 " <td>KDT</td>\n",
1419 " <td>?</td>\n",
1420 " <td>032A72</td>\n",
1421 " <td>KS</td>\n",
1422 " <td>Y013347</td>\n",
1423 " <td>QC</td>\n",
1424 " <td>MISTER</td>\n",
1425 " <td>...</td>\n",
1426 " <td>1</td>\n",
1427 " <td>Y</td>\n",
1428 " <td>1</td>\n",
1429 " <td>0</td>\n",
1430 " <td>0</td>\n",
1431 " <td>0</td>\n",
1432 " <td>0</td>\n",
1433 " <td>0</td>\n",
1434 " <td>0</td>\n",
1435 " <td></td>\n",
1436 " </tr>\n",
1437 " <tr>\n",
1438 " <th>3</th>\n",
1439 " <td>20190613</td>\n",
1440 " <td>20190612</td>\n",
1441 " <td>KDT</td>\n",
1442 " <td>KDT</td>\n",
1443 " <td>?</td>\n",
1444 " <td>0302F9</td>\n",
1445 " <td>Q7</td>\n",
1446 " <td>?</td>\n",
1447 " <td>TW</td>\n",
1448 " <td>MISTER</td>\n",
1449 " <td>...</td>\n",
1450 " <td>1</td>\n",
1451 " <td>Y</td>\n",
1452 " <td>1</td>\n",
1453 " <td>0</td>\n",
1454 " <td>0</td>\n",
1455 " <td>0</td>\n",
1456 " <td>1</td>\n",
1457 " <td>0</td>\n",
1458 " <td>0</td>\n",
1459 " <td></td>\n",
1460 " </tr>\n",
1461 " <tr>\n",
1462 " <th>4</th>\n",
1463 " <td>20190602</td>\n",
1464 " <td>20190601</td>\n",
1465 " <td>KDT</td>\n",
1466 " <td>KDT</td>\n",
1467 " <td>?</td>\n",
1468 " <td>03023B</td>\n",
1469 " <td>MK</td>\n",
1470 " <td>?</td>\n",
1471 " <td>TW</td>\n",
1472 " <td>MISS</td>\n",
1473 " <td>...</td>\n",
1474 " <td>1</td>\n",
1475 " <td>Y</td>\n",
1476 " <td>0</td>\n",
1477 " <td>1</td>\n",
1478 " <td>18</td>\n",
1479 " <td>0</td>\n",
1480 " <td>0</td>\n",
1481 " <td>0</td>\n",
1482 " <td>0</td>\n",
1483 " <td></td>\n",
1484 " </tr>\n",
1485 " </tbody>\n",
1486 "</table>\n",
1487 "<p>5 rows × 23 columns</p>\n",
1488 "</div>"
1489 ],
1490 "text/plain": [
1491 " Departure_YMD_LMT Operation_YMD_LMT Departure_Airport Operation_Airport \\\n",
1492 "0 20190608 20190607 KDT KDT \n",
1493 "1 20190609 20190609 KDT KDT \n",
1494 "2 20190612 20190612 KDT KDT \n",
1495 "3 20190613 20190612 KDT KDT \n",
1496 "4 20190602 20190601 KDT KDT \n",
1497 "\n",
1498 " Terminal_Number Terminal_Name Operation_Initials Operation_Sonic_Code \\\n",
1499 "0 ? 03539F MK ? \n",
1500 "1 ? 03F39C KS Y013171 \n",
1501 "2 ? 032A72 KS Y013347 \n",
1502 "3 ? 0302F9 Q7 ? \n",
1503 "4 ? 03023B MK ? \n",
1504 "\n",
1505 " Operation_Channel Passenger_Title ... SWC_FLY Cabin_Class \\\n",
1506 "0 TS MISS ... 1 Y \n",
1507 "1 QC MISTER ... 1 Y \n",
1508 "2 QC MISTER ... 1 Y \n",
1509 "3 TW MISTER ... 1 Y \n",
1510 "4 TW MISS ... 1 Y \n",
1511 "\n",
1512 " SWC_FQTV_Member Passenger_Baggage_Count Passenger_Baggage_Weight \\\n",
1513 "0 1 1 17 \n",
1514 "1 0 1 7 \n",
1515 "2 1 0 0 \n",
1516 "3 1 0 0 \n",
1517 "4 0 1 18 \n",
1518 "\n",
1519 " SWC_Staff SWC_CIP_Passenger SWC_VIP_Passenger SWC_Has_Infant \\\n",
1520 "0 0 0 0 0 \n",
1521 "1 0 0 0 0 \n",
1522 "2 0 0 0 0 \n",
1523 "3 0 1 0 0 \n",
1524 "4 0 0 0 0 \n",
1525 "\n",
1526 " Operation_Count \n",
1527 "0 \n",
1528 "1 \n",
1529 "2 \n",
1530 "3 \n",
1531 "4 \n",
1532 "\n",
1533 "[5 rows x 23 columns]"
1534 ]
1535 },
1536 "execution_count": 48,
1537 "metadata": {},
1538 "output_type": "execute_result"
1539 }
1540 ],
1541 "source": [
1542 "test_df.head()"
1543 ]
1544 },
1545 {
1546 "cell_type": "code",
1547 "execution_count": 49,
1548 "metadata": {},
1549 "outputs": [
1550 {
1551 "data": {
1552 "text/plain": [
1553 "Departure_YMD_LMT int64\n",
1554 "Operation_YMD_LMT int64\n",
1555 "Departure_Airport object\n",
1556 "Operation_Airport object\n",
1557 "Terminal_Number object\n",
1558 "Terminal_Name object\n",
1559 "Operation_Initials object\n",
1560 "Operation_Sonic_Code object\n",
1561 "Operation_Channel object\n",
1562 "Passenger_Title object\n",
1563 "Passenger_Gender object\n",
1564 "Inbound_Departure_Airport object\n",
1565 "Outbound_Arrival_Airport object\n",
1566 "SWC_FLY int64\n",
1567 "Cabin_Class object\n",
1568 "SWC_FQTV_Member int64\n",
1569 "Passenger_Baggage_Count int64\n",
1570 "Passenger_Baggage_Weight int64\n",
1571 "SWC_Staff int64\n",
1572 "SWC_CIP_Passenger int64\n",
1573 "SWC_VIP_Passenger int64\n",
1574 "SWC_Has_Infant int64\n",
1575 "Operation_Count object\n",
1576 "dtype: object"
1577 ]
1578 },
1579 "execution_count": 49,
1580 "metadata": {},
1581 "output_type": "execute_result"
1582 }
1583 ],
1584 "source": [
1585 "test_df.dtypes"
1586 ]
1587 },
1588 {
1589 "cell_type": "code",
1590 "execution_count": 50,
1591 "metadata": {},
1592 "outputs": [],
1593 "source": [
1594 "# Performing all preprocessing in this cell\n",
1595 "\n",
1596 "#test_df['Performed_By_KG'] = test_df['Operation_Initials'].apply(map_operation_personnel)\n",
1597 "test_df['Inbound_Exist'] = test_df['Inbound_Departure_Airport'].apply(map_inbound_flights)\n",
1598 "test_df['Outbound_Exist'] = test_df['Outbound_Arrival_Airport'].apply(map_outbound_flights)\n",
1599 "test_df['Is_Inbound_KDT'] = test_df['Inbound_Departure_Airport'].apply(is_inbound_kdt)\n",
1600 "test_df['Is_Outbound_KDT'] = test_df['Outbound_Arrival_Airport'].apply(is_outbound_kdt)\n",
1601 "test_df['Different_Operation_Airport'] = test_df['Operation_Airport'].apply(is_op_airport_different)\n",
1602 "test_df['Mapped_Channels'] = test_df['Operation_Channel'].apply(map_operation_channels)\n",
1603 "\n",
1604 "test_df['Cabin_Class'] = test_df['Cabin_Class'].map({'Y': 0, 'C': 1})\n",
1605 "\n",
1606 "onehot_gender = pd.get_dummies(test_df['Passenger_Gender'])\n",
1607 "test_df = pd.concat([test_df, onehot_gender], axis=1)\n",
1608 "\n",
1609 "onehot_channels = pd.get_dummies(test_df['Mapped_Channels'])\n",
1610 "test_df = pd.concat([test_df, onehot_channels], axis=1)\n",
1611 "\n",
1612 "test_df['Departure_YMD_LMT'] = pd.to_datetime(test_df['Departure_YMD_LMT'], format='%Y%m%d')\n",
1613 "test_df['Operation_YMD_LMT'] = pd.to_datetime(test_df['Operation_YMD_LMT'], format='%Y%m%d')\n",
1614 "test_df['checkin_fly_difference'] = test_df['Departure_YMD_LMT'] - test_df['Operation_YMD_LMT']\n",
1615 "\n",
1616 "processed_test_df = test_df.drop(['Departure_YMD_LMT', 'Operation_YMD_LMT','Departure_Airport', 'Operation_Airport', 'Terminal_Number', 'Terminal_Name',\n",
1617 " 'Operation_Initials', 'Operation_Sonic_Code', 'Operation_Channel','Passenger_Title', \n",
1618 " 'Passenger_Gender', 'Inbound_Departure_Airport','Outbound_Arrival_Airport'], axis=1)"
1619 ]
1620 },
1621 {
1622 "cell_type": "code",
1623 "execution_count": 52,
1624 "metadata": {},
1625 "outputs": [
1626 {
1627 "data": {
1628 "text/html": [
1629 "<div>\n",
1630 "<style scoped>\n",
1631 " .dataframe tbody tr th:only-of-type {\n",
1632 " vertical-align: middle;\n",
1633 " }\n",
1634 "\n",
1635 " .dataframe tbody tr th {\n",
1636 " vertical-align: top;\n",
1637 " }\n",
1638 "\n",
1639 " .dataframe thead th {\n",
1640 " text-align: right;\n",
1641 " }\n",
1642 "</style>\n",
1643 "<table border=\"1\" class=\"dataframe\">\n",
1644 " <thead>\n",
1645 " <tr style=\"text-align: right;\">\n",
1646 " <th></th>\n",
1647 " <th>SWC_FLY</th>\n",
1648 " <th>Cabin_Class</th>\n",
1649 " <th>SWC_FQTV_Member</th>\n",
1650 " <th>Passenger_Baggage_Count</th>\n",
1651 " <th>Passenger_Baggage_Weight</th>\n",
1652 " <th>SWC_Staff</th>\n",
1653 " <th>SWC_CIP_Passenger</th>\n",
1654 " <th>SWC_VIP_Passenger</th>\n",
1655 " <th>SWC_Has_Infant</th>\n",
1656 " <th>Operation_Count</th>\n",
1657 " <th>...</th>\n",
1658 " <th>?</th>\n",
1659 " <th>C</th>\n",
1660 " <th>F</th>\n",
1661 " <th>M</th>\n",
1662 " <th>kiosk</th>\n",
1663 " <th>kontuar</th>\n",
1664 " <th>mobile</th>\n",
1665 " <th>online</th>\n",
1666 " <th>other</th>\n",
1667 " <th>checkin_fly_difference</th>\n",
1668 " </tr>\n",
1669 " </thead>\n",
1670 " <tbody>\n",
1671 " <tr>\n",
1672 " <th>0</th>\n",
1673 " <td>1</td>\n",
1674 " <td>0</td>\n",
1675 " <td>1</td>\n",
1676 " <td>1</td>\n",
1677 " <td>17</td>\n",
1678 " <td>0</td>\n",
1679 " <td>0</td>\n",
1680 " <td>0</td>\n",
1681 " <td>0</td>\n",
1682 " <td></td>\n",
1683 " <td>...</td>\n",
1684 " <td>0</td>\n",
1685 " <td>0</td>\n",
1686 " <td>1</td>\n",
1687 " <td>0</td>\n",
1688 " <td>0</td>\n",
1689 " <td>0</td>\n",
1690 " <td>1</td>\n",
1691 " <td>0</td>\n",
1692 " <td>0</td>\n",
1693 " <td>1 days</td>\n",
1694 " </tr>\n",
1695 " <tr>\n",
1696 " <th>1</th>\n",
1697 " <td>1</td>\n",
1698 " <td>0</td>\n",
1699 " <td>0</td>\n",
1700 " <td>1</td>\n",
1701 " <td>7</td>\n",
1702 " <td>0</td>\n",
1703 " <td>0</td>\n",
1704 " <td>0</td>\n",
1705 " <td>0</td>\n",
1706 " <td></td>\n",
1707 " <td>...</td>\n",
1708 " <td>0</td>\n",
1709 " <td>0</td>\n",
1710 " <td>0</td>\n",
1711 " <td>1</td>\n",
1712 " <td>0</td>\n",
1713 " <td>1</td>\n",
1714 " <td>0</td>\n",
1715 " <td>0</td>\n",
1716 " <td>0</td>\n",
1717 " <td>0 days</td>\n",
1718 " </tr>\n",
1719 " <tr>\n",
1720 " <th>2</th>\n",
1721 " <td>1</td>\n",
1722 " <td>0</td>\n",
1723 " <td>1</td>\n",
1724 " <td>0</td>\n",
1725 " <td>0</td>\n",
1726 " <td>0</td>\n",
1727 " <td>0</td>\n",
1728 " <td>0</td>\n",
1729 " <td>0</td>\n",
1730 " <td></td>\n",
1731 " <td>...</td>\n",
1732 " <td>0</td>\n",
1733 " <td>0</td>\n",
1734 " <td>0</td>\n",
1735 " <td>1</td>\n",
1736 " <td>0</td>\n",
1737 " <td>1</td>\n",
1738 " <td>0</td>\n",
1739 " <td>0</td>\n",
1740 " <td>0</td>\n",
1741 " <td>0 days</td>\n",
1742 " </tr>\n",
1743 " <tr>\n",
1744 " <th>3</th>\n",
1745 " <td>1</td>\n",
1746 " <td>0</td>\n",
1747 " <td>1</td>\n",
1748 " <td>0</td>\n",
1749 " <td>0</td>\n",
1750 " <td>0</td>\n",
1751 " <td>1</td>\n",
1752 " <td>0</td>\n",
1753 " <td>0</td>\n",
1754 " <td></td>\n",
1755 " <td>...</td>\n",
1756 " <td>0</td>\n",
1757 " <td>0</td>\n",
1758 " <td>0</td>\n",
1759 " <td>1</td>\n",
1760 " <td>0</td>\n",
1761 " <td>0</td>\n",
1762 " <td>0</td>\n",
1763 " <td>1</td>\n",
1764 " <td>0</td>\n",
1765 " <td>1 days</td>\n",
1766 " </tr>\n",
1767 " <tr>\n",
1768 " <th>4</th>\n",
1769 " <td>1</td>\n",
1770 " <td>0</td>\n",
1771 " <td>0</td>\n",
1772 " <td>1</td>\n",
1773 " <td>18</td>\n",
1774 " <td>0</td>\n",
1775 " <td>0</td>\n",
1776 " <td>0</td>\n",
1777 " <td>0</td>\n",
1778 " <td></td>\n",
1779 " <td>...</td>\n",
1780 " <td>0</td>\n",
1781 " <td>0</td>\n",
1782 " <td>1</td>\n",
1783 " <td>0</td>\n",
1784 " <td>0</td>\n",
1785 " <td>0</td>\n",
1786 " <td>0</td>\n",
1787 " <td>1</td>\n",
1788 " <td>0</td>\n",
1789 " <td>1 days</td>\n",
1790 " </tr>\n",
1791 " </tbody>\n",
1792 "</table>\n",
1793 "<p>5 rows × 26 columns</p>\n",
1794 "</div>"
1795 ],
1796 "text/plain": [
1797 " SWC_FLY Cabin_Class SWC_FQTV_Member Passenger_Baggage_Count \\\n",
1798 "0 1 0 1 1 \n",
1799 "1 1 0 0 1 \n",
1800 "2 1 0 1 0 \n",
1801 "3 1 0 1 0 \n",
1802 "4 1 0 0 1 \n",
1803 "\n",
1804 " Passenger_Baggage_Weight SWC_Staff SWC_CIP_Passenger SWC_VIP_Passenger \\\n",
1805 "0 17 0 0 0 \n",
1806 "1 7 0 0 0 \n",
1807 "2 0 0 0 0 \n",
1808 "3 0 0 1 0 \n",
1809 "4 18 0 0 0 \n",
1810 "\n",
1811 " SWC_Has_Infant Operation_Count ... ? C F M kiosk \\\n",
1812 "0 0 ... 0 0 1 0 0 \n",
1813 "1 0 ... 0 0 0 1 0 \n",
1814 "2 0 ... 0 0 0 1 0 \n",
1815 "3 0 ... 0 0 0 1 0 \n",
1816 "4 0 ... 0 0 1 0 0 \n",
1817 "\n",
1818 " kontuar mobile online other checkin_fly_difference \n",
1819 "0 0 1 0 0 1 days \n",
1820 "1 1 0 0 0 0 days \n",
1821 "2 1 0 0 0 0 days \n",
1822 "3 0 0 1 0 1 days \n",
1823 "4 0 0 1 0 1 days \n",
1824 "\n",
1825 "[5 rows x 26 columns]"
1826 ]
1827 },
1828 "execution_count": 52,
1829 "metadata": {},
1830 "output_type": "execute_result"
1831 }
1832 ],
1833 "source": [
1834 "processed_test_df.head()"
1835 ]
1836 },
1837 {
1838 "cell_type": "code",
1839 "execution_count": 53,
1840 "metadata": {},
1841 "outputs": [],
1842 "source": [
1843 "processed_test_df = processed_test_df.drop(['Mapped_Channels'], axis = 1)\n",
1844 "# Converting timedelta typed feature to int\n",
1845 "processed_test_df['checkin_fly_difference'] = processed_test_df['checkin_fly_difference'].dt.days"
1846 ]
1847 },
1848 {
1849 "cell_type": "code",
1850 "execution_count": 57,
1851 "metadata": {},
1852 "outputs": [
1853 {
1854 "data": {
1855 "text/plain": [
1856 "SWC_FLY int64\n",
1857 "Cabin_Class int64\n",
1858 "SWC_FQTV_Member int64\n",
1859 "Passenger_Baggage_Count int64\n",
1860 "Passenger_Baggage_Weight int64\n",
1861 "SWC_Staff int64\n",
1862 "SWC_CIP_Passenger int64\n",
1863 "SWC_VIP_Passenger int64\n",
1864 "SWC_Has_Infant int64\n",
1865 "Operation_Count object\n",
1866 "Inbound_Exist int64\n",
1867 "Outbound_Exist int64\n",
1868 "Is_Inbound_KDT int64\n",
1869 "Is_Outbound_KDT int64\n",
1870 "Different_Operation_Airport int64\n",
1871 "? uint8\n",
1872 "C uint8\n",
1873 "F uint8\n",
1874 "M uint8\n",
1875 "kiosk uint8\n",
1876 "kontuar uint8\n",
1877 "mobile uint8\n",
1878 "online uint8\n",
1879 "other uint8\n",
1880 "checkin_fly_difference int64\n",
1881 "dtype: object"
1882 ]
1883 },
1884 "execution_count": 57,
1885 "metadata": {},
1886 "output_type": "execute_result"
1887 }
1888 ],
1889 "source": [
1890 "processed_test_df.dtypes"
1891 ]
1892 },
1893 {
1894 "cell_type": "markdown",
1895 "metadata": {},
1896 "source": [
1897 "It seems some of the one-hot encoded features are missing from processed_test_df. Adding those in the cell below."
1898 ]
1899 },
1900 {
1901 "cell_type": "code",
1902 "execution_count": 59,
1903 "metadata": {},
1904 "outputs": [],
1905 "source": [
1906 "processed_test_df['C/INF'] = 0\n",
1907 "processed_test_df['M/INF'] = 0\n",
1908 "processed_test_df['F/INF'] = 0"
1909 ]
1910 },
1911 {
1912 "cell_type": "code",
1913 "execution_count": 60,
1914 "metadata": {},
1915 "outputs": [
1916 {
1917 "data": {
1918 "text/html": [
1919 "<div>\n",
1920 "<style scoped>\n",
1921 " .dataframe tbody tr th:only-of-type {\n",
1922 " vertical-align: middle;\n",
1923 " }\n",
1924 "\n",
1925 " .dataframe tbody tr th {\n",
1926 " vertical-align: top;\n",
1927 " }\n",
1928 "\n",
1929 " .dataframe thead th {\n",
1930 " text-align: right;\n",
1931 " }\n",
1932 "</style>\n",
1933 "<table border=\"1\" class=\"dataframe\">\n",
1934 " <thead>\n",
1935 " <tr style=\"text-align: right;\">\n",
1936 " <th></th>\n",
1937 " <th>SWC_FLY</th>\n",
1938 " <th>Cabin_Class</th>\n",
1939 " <th>SWC_FQTV_Member</th>\n",
1940 " <th>Passenger_Baggage_Count</th>\n",
1941 " <th>Passenger_Baggage_Weight</th>\n",
1942 " <th>SWC_Staff</th>\n",
1943 " <th>SWC_CIP_Passenger</th>\n",
1944 " <th>SWC_VIP_Passenger</th>\n",
1945 " <th>SWC_Has_Infant</th>\n",
1946 " <th>Operation_Count</th>\n",
1947 " <th>...</th>\n",
1948 " <th>M</th>\n",
1949 " <th>kiosk</th>\n",
1950 " <th>kontuar</th>\n",
1951 " <th>mobile</th>\n",
1952 " <th>online</th>\n",
1953 " <th>other</th>\n",
1954 " <th>checkin_fly_difference</th>\n",
1955 " <th>C/INF</th>\n",
1956 " <th>M/INF</th>\n",
1957 " <th>F/INF</th>\n",
1958 " </tr>\n",
1959 " </thead>\n",
1960 " <tbody>\n",
1961 " <tr>\n",
1962 " <th>0</th>\n",
1963 " <td>1</td>\n",
1964 " <td>0</td>\n",
1965 " <td>1</td>\n",
1966 " <td>1</td>\n",
1967 " <td>17</td>\n",
1968 " <td>0</td>\n",
1969 " <td>0</td>\n",
1970 " <td>0</td>\n",
1971 " <td>0</td>\n",
1972 " <td></td>\n",
1973 " <td>...</td>\n",
1974 " <td>0</td>\n",
1975 " <td>0</td>\n",
1976 " <td>0</td>\n",
1977 " <td>1</td>\n",
1978 " <td>0</td>\n",
1979 " <td>0</td>\n",
1980 " <td>1</td>\n",
1981 " <td>0</td>\n",
1982 " <td>0</td>\n",
1983 " <td>0</td>\n",
1984 " </tr>\n",
1985 " <tr>\n",
1986 " <th>1</th>\n",
1987 " <td>1</td>\n",
1988 " <td>0</td>\n",
1989 " <td>0</td>\n",
1990 " <td>1</td>\n",
1991 " <td>7</td>\n",
1992 " <td>0</td>\n",
1993 " <td>0</td>\n",
1994 " <td>0</td>\n",
1995 " <td>0</td>\n",
1996 " <td></td>\n",
1997 " <td>...</td>\n",
1998 " <td>1</td>\n",
1999 " <td>0</td>\n",
2000 " <td>1</td>\n",
2001 " <td>0</td>\n",
2002 " <td>0</td>\n",
2003 " <td>0</td>\n",
2004 " <td>0</td>\n",
2005 " <td>0</td>\n",
2006 " <td>0</td>\n",
2007 " <td>0</td>\n",
2008 " </tr>\n",
2009 " <tr>\n",
2010 " <th>2</th>\n",
2011 " <td>1</td>\n",
2012 " <td>0</td>\n",
2013 " <td>1</td>\n",
2014 " <td>0</td>\n",
2015 " <td>0</td>\n",
2016 " <td>0</td>\n",
2017 " <td>0</td>\n",
2018 " <td>0</td>\n",
2019 " <td>0</td>\n",
2020 " <td></td>\n",
2021 " <td>...</td>\n",
2022 " <td>1</td>\n",
2023 " <td>0</td>\n",
2024 " <td>1</td>\n",
2025 " <td>0</td>\n",
2026 " <td>0</td>\n",
2027 " <td>0</td>\n",
2028 " <td>0</td>\n",
2029 " <td>0</td>\n",
2030 " <td>0</td>\n",
2031 " <td>0</td>\n",
2032 " </tr>\n",
2033 " <tr>\n",
2034 " <th>3</th>\n",
2035 " <td>1</td>\n",
2036 " <td>0</td>\n",
2037 " <td>1</td>\n",
2038 " <td>0</td>\n",
2039 " <td>0</td>\n",
2040 " <td>0</td>\n",
2041 " <td>1</td>\n",
2042 " <td>0</td>\n",
2043 " <td>0</td>\n",
2044 " <td></td>\n",
2045 " <td>...</td>\n",
2046 " <td>1</td>\n",
2047 " <td>0</td>\n",
2048 " <td>0</td>\n",
2049 " <td>0</td>\n",
2050 " <td>1</td>\n",
2051 " <td>0</td>\n",
2052 " <td>1</td>\n",
2053 " <td>0</td>\n",
2054 " <td>0</td>\n",
2055 " <td>0</td>\n",
2056 " </tr>\n",
2057 " <tr>\n",
2058 " <th>4</th>\n",
2059 " <td>1</td>\n",
2060 " <td>0</td>\n",
2061 " <td>0</td>\n",
2062 " <td>1</td>\n",
2063 " <td>18</td>\n",
2064 " <td>0</td>\n",
2065 " <td>0</td>\n",
2066 " <td>0</td>\n",
2067 " <td>0</td>\n",
2068 " <td></td>\n",
2069 " <td>...</td>\n",
2070 " <td>0</td>\n",
2071 " <td>0</td>\n",
2072 " <td>0</td>\n",
2073 " <td>0</td>\n",
2074 " <td>1</td>\n",
2075 " <td>0</td>\n",
2076 " <td>1</td>\n",
2077 " <td>0</td>\n",
2078 " <td>0</td>\n",
2079 " <td>0</td>\n",
2080 " </tr>\n",
2081 " <tr>\n",
2082 " <th>5</th>\n",
2083 " <td>1</td>\n",
2084 " <td>0</td>\n",
2085 " <td>0</td>\n",
2086 " <td>2</td>\n",
2087 " <td>27</td>\n",
2088 " <td>0</td>\n",
2089 " <td>0</td>\n",
2090 " <td>0</td>\n",
2091 " <td>0</td>\n",
2092 " <td></td>\n",
2093 " <td>...</td>\n",
2094 " <td>1</td>\n",
2095 " <td>0</td>\n",
2096 " <td>1</td>\n",
2097 " <td>0</td>\n",
2098 " <td>0</td>\n",
2099 " <td>0</td>\n",
2100 " <td>0</td>\n",
2101 " <td>0</td>\n",
2102 " <td>0</td>\n",
2103 " <td>0</td>\n",
2104 " </tr>\n",
2105 " <tr>\n",
2106 " <th>6</th>\n",
2107 " <td>0</td>\n",
2108 " <td>1</td>\n",
2109 " <td>1</td>\n",
2110 " <td>0</td>\n",
2111 " <td>0</td>\n",
2112 " <td>0</td>\n",
2113 " <td>0</td>\n",
2114 " <td>0</td>\n",
2115 " <td>0</td>\n",
2116 " <td></td>\n",
2117 " <td>...</td>\n",
2118 " <td>1</td>\n",
2119 " <td>0</td>\n",
2120 " <td>0</td>\n",
2121 " <td>1</td>\n",
2122 " <td>0</td>\n",
2123 " <td>0</td>\n",
2124 " <td>1</td>\n",
2125 " <td>0</td>\n",
2126 " <td>0</td>\n",
2127 " <td>0</td>\n",
2128 " </tr>\n",
2129 " <tr>\n",
2130 " <th>7</th>\n",
2131 " <td>0</td>\n",
2132 " <td>0</td>\n",
2133 " <td>1</td>\n",
2134 " <td>0</td>\n",
2135 " <td>0</td>\n",
2136 " <td>0</td>\n",
2137 " <td>0</td>\n",
2138 " <td>0</td>\n",
2139 " <td>0</td>\n",
2140 " <td></td>\n",
2141 " <td>...</td>\n",
2142 " <td>0</td>\n",
2143 " <td>1</td>\n",
2144 " <td>0</td>\n",
2145 " <td>0</td>\n",
2146 " <td>0</td>\n",
2147 " <td>0</td>\n",
2148 " <td>0</td>\n",
2149 " <td>0</td>\n",
2150 " <td>0</td>\n",
2151 " <td>0</td>\n",
2152 " </tr>\n",
2153 " <tr>\n",
2154 " <th>8</th>\n",
2155 " <td>1</td>\n",
2156 " <td>0</td>\n",
2157 " <td>0</td>\n",
2158 " <td>0</td>\n",
2159 " <td>0</td>\n",
2160 " <td>0</td>\n",
2161 " <td>0</td>\n",
2162 " <td>0</td>\n",
2163 " <td>0</td>\n",
2164 " <td></td>\n",
2165 " <td>...</td>\n",
2166 " <td>0</td>\n",
2167 " <td>0</td>\n",
2168 " <td>1</td>\n",
2169 " <td>0</td>\n",
2170 " <td>0</td>\n",
2171 " <td>0</td>\n",
2172 " <td>0</td>\n",
2173 " <td>0</td>\n",
2174 " <td>0</td>\n",
2175 " <td>0</td>\n",
2176 " </tr>\n",
2177 " <tr>\n",
2178 " <th>9</th>\n",
2179 " <td>1</td>\n",
2180 " <td>1</td>\n",
2181 " <td>1</td>\n",
2182 " <td>1</td>\n",
2183 " <td>10</td>\n",
2184 " <td>0</td>\n",
2185 " <td>1</td>\n",
2186 " <td>0</td>\n",
2187 " <td>0</td>\n",
2188 " <td></td>\n",
2189 " <td>...</td>\n",
2190 " <td>0</td>\n",
2191 " <td>0</td>\n",
2192 " <td>1</td>\n",
2193 " <td>0</td>\n",
2194 " <td>0</td>\n",
2195 " <td>0</td>\n",
2196 " <td>0</td>\n",
2197 " <td>0</td>\n",
2198 " <td>0</td>\n",
2199 " <td>0</td>\n",
2200 " </tr>\n",
2201 " </tbody>\n",
2202 "</table>\n",
2203 "<p>10 rows × 28 columns</p>\n",
2204 "</div>"
2205 ],
2206 "text/plain": [
2207 " SWC_FLY Cabin_Class SWC_FQTV_Member Passenger_Baggage_Count \\\n",
2208 "0 1 0 1 1 \n",
2209 "1 1 0 0 1 \n",
2210 "2 1 0 1 0 \n",
2211 "3 1 0 1 0 \n",
2212 "4 1 0 0 1 \n",
2213 "5 1 0 0 2 \n",
2214 "6 0 1 1 0 \n",
2215 "7 0 0 1 0 \n",
2216 "8 1 0 0 0 \n",
2217 "9 1 1 1 1 \n",
2218 "\n",
2219 " Passenger_Baggage_Weight SWC_Staff SWC_CIP_Passenger SWC_VIP_Passenger \\\n",
2220 "0 17 0 0 0 \n",
2221 "1 7 0 0 0 \n",
2222 "2 0 0 0 0 \n",
2223 "3 0 0 1 0 \n",
2224 "4 18 0 0 0 \n",
2225 "5 27 0 0 0 \n",
2226 "6 0 0 0 0 \n",
2227 "7 0 0 0 0 \n",
2228 "8 0 0 0 0 \n",
2229 "9 10 0 1 0 \n",
2230 "\n",
2231 " SWC_Has_Infant Operation_Count ... M kiosk kontuar mobile online \\\n",
2232 "0 0 ... 0 0 0 1 0 \n",
2233 "1 0 ... 1 0 1 0 0 \n",
2234 "2 0 ... 1 0 1 0 0 \n",
2235 "3 0 ... 1 0 0 0 1 \n",
2236 "4 0 ... 0 0 0 0 1 \n",
2237 "5 0 ... 1 0 1 0 0 \n",
2238 "6 0 ... 1 0 0 1 0 \n",
2239 "7 0 ... 0 1 0 0 0 \n",
2240 "8 0 ... 0 0 1 0 0 \n",
2241 "9 0 ... 0 0 1 0 0 \n",
2242 "\n",
2243 " other checkin_fly_difference C/INF M/INF F/INF \n",
2244 "0 0 1 0 0 0 \n",
2245 "1 0 0 0 0 0 \n",
2246 "2 0 0 0 0 0 \n",
2247 "3 0 1 0 0 0 \n",
2248 "4 0 1 0 0 0 \n",
2249 "5 0 0 0 0 0 \n",
2250 "6 0 1 0 0 0 \n",
2251 "7 0 0 0 0 0 \n",
2252 "8 0 0 0 0 0 \n",
2253 "9 0 0 0 0 0 \n",
2254 "\n",
2255 "[10 rows x 28 columns]"
2256 ]
2257 },
2258 "execution_count": 60,
2259 "metadata": {},
2260 "output_type": "execute_result"
2261 }
2262 ],
2263 "source": [
2264 "processed_test_df.head(10)"
2265 ]
2266 },
2267 {
2268 "cell_type": "markdown",
2269 "metadata": {},
2270 "source": [
2271 "Using Random Forest Model, which was better performing compared to XGBoost, on test data"
2272 ]
2273 },
2274 {
2275 "cell_type": "code",
2276 "execution_count": 61,
2277 "metadata": {},
2278 "outputs": [],
2279 "source": [
2280 "X_test_data = processed_test_df.drop(['Operation_Count'], axis = 1)"
2281 ]
2282 },
2283 {
2284 "cell_type": "code",
2285 "execution_count": 62,
2286 "metadata": {},
2287 "outputs": [],
2288 "source": [
2289 "final_predictions = rfmodel.predict(X_test_data)"
2290 ]
2291 },
2292 {
2293 "cell_type": "markdown",
2294 "metadata": {},
2295 "source": [
2296 "Since final predictions should be integers, we rounded float type prediction values coming from Random Forest Regressor to nearest integer value."
2297 ]
2298 },
2299 {
2300 "cell_type": "code",
2301 "execution_count": 67,
2302 "metadata": {},
2303 "outputs": [],
2304 "source": [
2305 "rounded_list = []\n",
2306 "for pred in final_predictions:\n",
2307 " pred = int(round(pred))\n",
2308 " rounded_list.append(pred)"
2309 ]
2310 },
2311 {
2312 "cell_type": "code",
2313 "execution_count": 68,
2314 "metadata": {},
2315 "outputs": [],
2316 "source": [
2317 "processed_test_df['Operation_Count'] = rounded_list"
2318 ]
2319 },
2320 {
2321 "cell_type": "code",
2322 "execution_count": 69,
2323 "metadata": {},
2324 "outputs": [
2325 {
2326 "data": {
2327 "text/html": [
2328 "<div>\n",
2329 "<style scoped>\n",
2330 " .dataframe tbody tr th:only-of-type {\n",
2331 " vertical-align: middle;\n",
2332 " }\n",
2333 "\n",
2334 " .dataframe tbody tr th {\n",
2335 " vertical-align: top;\n",
2336 " }\n",
2337 "\n",
2338 " .dataframe thead th {\n",
2339 " text-align: right;\n",
2340 " }\n",
2341 "</style>\n",
2342 "<table border=\"1\" class=\"dataframe\">\n",
2343 " <thead>\n",
2344 " <tr style=\"text-align: right;\">\n",
2345 " <th></th>\n",
2346 " <th>SWC_FLY</th>\n",
2347 " <th>Cabin_Class</th>\n",
2348 " <th>SWC_FQTV_Member</th>\n",
2349 " <th>Passenger_Baggage_Count</th>\n",
2350 " <th>Passenger_Baggage_Weight</th>\n",
2351 " <th>SWC_Staff</th>\n",
2352 " <th>SWC_CIP_Passenger</th>\n",
2353 " <th>SWC_VIP_Passenger</th>\n",
2354 " <th>SWC_Has_Infant</th>\n",
2355 " <th>Operation_Count</th>\n",
2356 " <th>...</th>\n",
2357 " <th>M</th>\n",
2358 " <th>kiosk</th>\n",
2359 " <th>kontuar</th>\n",
2360 " <th>mobile</th>\n",
2361 " <th>online</th>\n",
2362 " <th>other</th>\n",
2363 " <th>checkin_fly_difference</th>\n",
2364 " <th>C/INF</th>\n",
2365 " <th>M/INF</th>\n",
2366 " <th>F/INF</th>\n",
2367 " </tr>\n",
2368 " </thead>\n",
2369 " <tbody>\n",
2370 " <tr>\n",
2371 " <th>0</th>\n",
2372 " <td>1</td>\n",
2373 " <td>0</td>\n",
2374 " <td>1</td>\n",
2375 " <td>1</td>\n",
2376 " <td>17</td>\n",
2377 " <td>0</td>\n",
2378 " <td>0</td>\n",
2379 " <td>0</td>\n",
2380 " <td>0</td>\n",
2381 " <td>1</td>\n",
2382 " <td>...</td>\n",
2383 " <td>0</td>\n",
2384 " <td>0</td>\n",
2385 " <td>0</td>\n",
2386 " <td>1</td>\n",
2387 " <td>0</td>\n",
2388 " <td>0</td>\n",
2389 " <td>1</td>\n",
2390 " <td>0</td>\n",
2391 " <td>0</td>\n",
2392 " <td>0</td>\n",
2393 " </tr>\n",
2394 " <tr>\n",
2395 " <th>1</th>\n",
2396 " <td>1</td>\n",
2397 " <td>0</td>\n",
2398 " <td>0</td>\n",
2399 " <td>1</td>\n",
2400 " <td>7</td>\n",
2401 " <td>0</td>\n",
2402 " <td>0</td>\n",
2403 " <td>0</td>\n",
2404 " <td>0</td>\n",
2405 " <td>1</td>\n",
2406 " <td>...</td>\n",
2407 " <td>1</td>\n",
2408 " <td>0</td>\n",
2409 " <td>1</td>\n",
2410 " <td>0</td>\n",
2411 " <td>0</td>\n",
2412 " <td>0</td>\n",
2413 " <td>0</td>\n",
2414 " <td>0</td>\n",
2415 " <td>0</td>\n",
2416 " <td>0</td>\n",
2417 " </tr>\n",
2418 " <tr>\n",
2419 " <th>2</th>\n",
2420 " <td>1</td>\n",
2421 " <td>0</td>\n",
2422 " <td>1</td>\n",
2423 " <td>0</td>\n",
2424 " <td>0</td>\n",
2425 " <td>0</td>\n",
2426 " <td>0</td>\n",
2427 " <td>0</td>\n",
2428 " <td>0</td>\n",
2429 " <td>1</td>\n",
2430 " <td>...</td>\n",
2431 " <td>1</td>\n",
2432 " <td>0</td>\n",
2433 " <td>1</td>\n",
2434 " <td>0</td>\n",
2435 " <td>0</td>\n",
2436 " <td>0</td>\n",
2437 " <td>0</td>\n",
2438 " <td>0</td>\n",
2439 " <td>0</td>\n",
2440 " <td>0</td>\n",
2441 " </tr>\n",
2442 " <tr>\n",
2443 " <th>3</th>\n",
2444 " <td>1</td>\n",
2445 " <td>0</td>\n",
2446 " <td>1</td>\n",
2447 " <td>0</td>\n",
2448 " <td>0</td>\n",
2449 " <td>0</td>\n",
2450 " <td>1</td>\n",
2451 " <td>0</td>\n",
2452 " <td>0</td>\n",
2453 " <td>1</td>\n",
2454 " <td>...</td>\n",
2455 " <td>1</td>\n",
2456 " <td>0</td>\n",
2457 " <td>0</td>\n",
2458 " <td>0</td>\n",
2459 " <td>1</td>\n",
2460 " <td>0</td>\n",
2461 " <td>1</td>\n",
2462 " <td>0</td>\n",
2463 " <td>0</td>\n",
2464 " <td>0</td>\n",
2465 " </tr>\n",
2466 " <tr>\n",
2467 " <th>4</th>\n",
2468 " <td>1</td>\n",
2469 " <td>0</td>\n",
2470 " <td>0</td>\n",
2471 " <td>1</td>\n",
2472 " <td>18</td>\n",
2473 " <td>0</td>\n",
2474 " <td>0</td>\n",
2475 " <td>0</td>\n",
2476 " <td>0</td>\n",
2477 " <td>1</td>\n",
2478 " <td>...</td>\n",
2479 " <td>0</td>\n",
2480 " <td>0</td>\n",
2481 " <td>0</td>\n",
2482 " <td>0</td>\n",
2483 " <td>1</td>\n",
2484 " <td>0</td>\n",
2485 " <td>1</td>\n",
2486 " <td>0</td>\n",
2487 " <td>0</td>\n",
2488 " <td>0</td>\n",
2489 " </tr>\n",
2490 " <tr>\n",
2491 " <th>5</th>\n",
2492 " <td>1</td>\n",
2493 " <td>0</td>\n",
2494 " <td>0</td>\n",
2495 " <td>2</td>\n",
2496 " <td>27</td>\n",
2497 " <td>0</td>\n",
2498 " <td>0</td>\n",
2499 " <td>0</td>\n",
2500 " <td>0</td>\n",
2501 " <td>1</td>\n",
2502 " <td>...</td>\n",
2503 " <td>1</td>\n",
2504 " <td>0</td>\n",
2505 " <td>1</td>\n",
2506 " <td>0</td>\n",
2507 " <td>0</td>\n",
2508 " <td>0</td>\n",
2509 " <td>0</td>\n",
2510 " <td>0</td>\n",
2511 " <td>0</td>\n",
2512 " <td>0</td>\n",
2513 " </tr>\n",
2514 " <tr>\n",
2515 " <th>6</th>\n",
2516 " <td>0</td>\n",
2517 " <td>1</td>\n",
2518 " <td>1</td>\n",
2519 " <td>0</td>\n",
2520 " <td>0</td>\n",
2521 " <td>0</td>\n",
2522 " <td>0</td>\n",
2523 " <td>0</td>\n",
2524 " <td>0</td>\n",
2525 " <td>1</td>\n",
2526 " <td>...</td>\n",
2527 " <td>1</td>\n",
2528 " <td>0</td>\n",
2529 " <td>0</td>\n",
2530 " <td>1</td>\n",
2531 " <td>0</td>\n",
2532 " <td>0</td>\n",
2533 " <td>1</td>\n",
2534 " <td>0</td>\n",
2535 " <td>0</td>\n",
2536 " <td>0</td>\n",
2537 " </tr>\n",
2538 " <tr>\n",
2539 " <th>7</th>\n",
2540 " <td>0</td>\n",
2541 " <td>0</td>\n",
2542 " <td>1</td>\n",
2543 " <td>0</td>\n",
2544 " <td>0</td>\n",
2545 " <td>0</td>\n",
2546 " <td>0</td>\n",
2547 " <td>0</td>\n",
2548 " <td>0</td>\n",
2549 " <td>1</td>\n",
2550 " <td>...</td>\n",
2551 " <td>0</td>\n",
2552 " <td>1</td>\n",
2553 " <td>0</td>\n",
2554 " <td>0</td>\n",
2555 " <td>0</td>\n",
2556 " <td>0</td>\n",
2557 " <td>0</td>\n",
2558 " <td>0</td>\n",
2559 " <td>0</td>\n",
2560 " <td>0</td>\n",
2561 " </tr>\n",
2562 " <tr>\n",
2563 " <th>8</th>\n",
2564 " <td>1</td>\n",
2565 " <td>0</td>\n",
2566 " <td>0</td>\n",
2567 " <td>0</td>\n",
2568 " <td>0</td>\n",
2569 " <td>0</td>\n",
2570 " <td>0</td>\n",
2571 " <td>0</td>\n",
2572 " <td>0</td>\n",
2573 " <td>6</td>\n",
2574 " <td>...</td>\n",
2575 " <td>0</td>\n",
2576 " <td>0</td>\n",
2577 " <td>1</td>\n",
2578 " <td>0</td>\n",
2579 " <td>0</td>\n",
2580 " <td>0</td>\n",
2581 " <td>0</td>\n",
2582 " <td>0</td>\n",
2583 " <td>0</td>\n",
2584 " <td>0</td>\n",
2585 " </tr>\n",
2586 " <tr>\n",
2587 " <th>9</th>\n",
2588 " <td>1</td>\n",
2589 " <td>1</td>\n",
2590 " <td>1</td>\n",
2591 " <td>1</td>\n",
2592 " <td>10</td>\n",
2593 " <td>0</td>\n",
2594 " <td>1</td>\n",
2595 " <td>0</td>\n",
2596 " <td>0</td>\n",
2597 " <td>1</td>\n",
2598 " <td>...</td>\n",
2599 " <td>0</td>\n",
2600 " <td>0</td>\n",
2601 " <td>1</td>\n",
2602 " <td>0</td>\n",
2603 " <td>0</td>\n",
2604 " <td>0</td>\n",
2605 " <td>0</td>\n",
2606 " <td>0</td>\n",
2607 " <td>0</td>\n",
2608 " <td>0</td>\n",
2609 " </tr>\n",
2610 " <tr>\n",
2611 " <th>10</th>\n",
2612 " <td>1</td>\n",
2613 " <td>0</td>\n",
2614 " <td>0</td>\n",
2615 " <td>3</td>\n",
2616 " <td>34</td>\n",
2617 " <td>0</td>\n",
2618 " <td>0</td>\n",
2619 " <td>0</td>\n",
2620 " <td>0</td>\n",
2621 " <td>1</td>\n",
2622 " <td>...</td>\n",
2623 " <td>0</td>\n",
2624 " <td>0</td>\n",
2625 " <td>1</td>\n",
2626 " <td>0</td>\n",
2627 " <td>0</td>\n",
2628 " <td>0</td>\n",
2629 " <td>0</td>\n",
2630 " <td>0</td>\n",
2631 " <td>0</td>\n",
2632 " <td>0</td>\n",
2633 " </tr>\n",
2634 " <tr>\n",
2635 " <th>11</th>\n",
2636 " <td>1</td>\n",
2637 " <td>0</td>\n",
2638 " <td>0</td>\n",
2639 " <td>2</td>\n",
2640 " <td>30</td>\n",
2641 " <td>0</td>\n",
2642 " <td>0</td>\n",
2643 " <td>0</td>\n",
2644 " <td>0</td>\n",
2645 " <td>1</td>\n",
2646 " <td>...</td>\n",
2647 " <td>0</td>\n",
2648 " <td>0</td>\n",
2649 " <td>1</td>\n",
2650 " <td>0</td>\n",
2651 " <td>0</td>\n",
2652 " <td>0</td>\n",
2653 " <td>0</td>\n",
2654 " <td>0</td>\n",
2655 " <td>0</td>\n",
2656 " <td>0</td>\n",
2657 " </tr>\n",
2658 " <tr>\n",
2659 " <th>12</th>\n",
2660 " <td>1</td>\n",
2661 " <td>0</td>\n",
2662 " <td>1</td>\n",
2663 " <td>1</td>\n",
2664 " <td>9</td>\n",
2665 " <td>0</td>\n",
2666 " <td>0</td>\n",
2667 " <td>0</td>\n",
2668 " <td>0</td>\n",
2669 " <td>1</td>\n",
2670 " <td>...</td>\n",
2671 " <td>0</td>\n",
2672 " <td>0</td>\n",
2673 " <td>0</td>\n",
2674 " <td>0</td>\n",
2675 " <td>1</td>\n",
2676 " <td>0</td>\n",
2677 " <td>1</td>\n",
2678 " <td>0</td>\n",
2679 " <td>0</td>\n",
2680 " <td>0</td>\n",
2681 " </tr>\n",
2682 " <tr>\n",
2683 " <th>13</th>\n",
2684 " <td>1</td>\n",
2685 " <td>0</td>\n",
2686 " <td>1</td>\n",
2687 " <td>1</td>\n",
2688 " <td>7</td>\n",
2689 " <td>0</td>\n",
2690 " <td>1</td>\n",
2691 " <td>0</td>\n",
2692 " <td>0</td>\n",
2693 " <td>1</td>\n",
2694 " <td>...</td>\n",
2695 " <td>0</td>\n",
2696 " <td>0</td>\n",
2697 " <td>0</td>\n",
2698 " <td>0</td>\n",
2699 " <td>1</td>\n",
2700 " <td>0</td>\n",
2701 " <td>1</td>\n",
2702 " <td>0</td>\n",
2703 " <td>0</td>\n",
2704 " <td>0</td>\n",
2705 " </tr>\n",
2706 " <tr>\n",
2707 " <th>14</th>\n",
2708 " <td>1</td>\n",
2709 " <td>0</td>\n",
2710 " <td>1</td>\n",
2711 " <td>0</td>\n",
2712 " <td>0</td>\n",
2713 " <td>0</td>\n",
2714 " <td>0</td>\n",
2715 " <td>0</td>\n",
2716 " <td>0</td>\n",
2717 " <td>2</td>\n",
2718 " <td>...</td>\n",
2719 " <td>1</td>\n",
2720 " <td>0</td>\n",
2721 " <td>0</td>\n",
2722 " <td>1</td>\n",
2723 " <td>0</td>\n",
2724 " <td>0</td>\n",
2725 " <td>1</td>\n",
2726 " <td>0</td>\n",
2727 " <td>0</td>\n",
2728 " <td>0</td>\n",
2729 " </tr>\n",
2730 " <tr>\n",
2731 " <th>15</th>\n",
2732 " <td>1</td>\n",
2733 " <td>0</td>\n",
2734 " <td>0</td>\n",
2735 " <td>1</td>\n",
2736 " <td>14</td>\n",
2737 " <td>0</td>\n",
2738 " <td>0</td>\n",
2739 " <td>0</td>\n",
2740 " <td>0</td>\n",
2741 " <td>1</td>\n",
2742 " <td>...</td>\n",
2743 " <td>1</td>\n",
2744 " <td>1</td>\n",
2745 " <td>0</td>\n",
2746 " <td>0</td>\n",
2747 " <td>0</td>\n",
2748 " <td>0</td>\n",
2749 " <td>0</td>\n",
2750 " <td>0</td>\n",
2751 " <td>0</td>\n",
2752 " <td>0</td>\n",
2753 " </tr>\n",
2754 " <tr>\n",
2755 " <th>16</th>\n",
2756 " <td>1</td>\n",
2757 " <td>0</td>\n",
2758 " <td>1</td>\n",
2759 " <td>2</td>\n",
2760 " <td>26</td>\n",
2761 " <td>0</td>\n",
2762 " <td>0</td>\n",
2763 " <td>0</td>\n",
2764 " <td>0</td>\n",
2765 " <td>1</td>\n",
2766 " <td>...</td>\n",
2767 " <td>0</td>\n",
2768 " <td>0</td>\n",
2769 " <td>0</td>\n",
2770 " <td>1</td>\n",
2771 " <td>0</td>\n",
2772 " <td>0</td>\n",
2773 " <td>0</td>\n",
2774 " <td>0</td>\n",
2775 " <td>0</td>\n",
2776 " <td>0</td>\n",
2777 " </tr>\n",
2778 " <tr>\n",
2779 " <th>17</th>\n",
2780 " <td>1</td>\n",
2781 " <td>0</td>\n",
2782 " <td>0</td>\n",
2783 " <td>0</td>\n",
2784 " <td>0</td>\n",
2785 " <td>0</td>\n",
2786 " <td>0</td>\n",
2787 " <td>0</td>\n",
2788 " <td>0</td>\n",
2789 " <td>1</td>\n",
2790 " <td>...</td>\n",
2791 " <td>1</td>\n",
2792 " <td>0</td>\n",
2793 " <td>1</td>\n",
2794 " <td>0</td>\n",
2795 " <td>0</td>\n",
2796 " <td>0</td>\n",
2797 " <td>0</td>\n",
2798 " <td>0</td>\n",
2799 " <td>0</td>\n",
2800 " <td>0</td>\n",
2801 " </tr>\n",
2802 " <tr>\n",
2803 " <th>18</th>\n",
2804 " <td>1</td>\n",
2805 " <td>0</td>\n",
2806 " <td>0</td>\n",
2807 " <td>0</td>\n",
2808 " <td>0</td>\n",
2809 " <td>0</td>\n",
2810 " <td>0</td>\n",
2811 " <td>0</td>\n",
2812 " <td>0</td>\n",
2813 " <td>6</td>\n",
2814 " <td>...</td>\n",
2815 " <td>0</td>\n",
2816 " <td>0</td>\n",
2817 " <td>1</td>\n",
2818 " <td>0</td>\n",
2819 " <td>0</td>\n",
2820 " <td>0</td>\n",
2821 " <td>0</td>\n",
2822 " <td>0</td>\n",
2823 " <td>0</td>\n",
2824 " <td>0</td>\n",
2825 " </tr>\n",
2826 " <tr>\n",
2827 " <th>19</th>\n",
2828 " <td>1</td>\n",
2829 " <td>0</td>\n",
2830 " <td>1</td>\n",
2831 " <td>6</td>\n",
2832 " <td>22</td>\n",
2833 " <td>0</td>\n",
2834 " <td>0</td>\n",
2835 " <td>0</td>\n",
2836 " <td>0</td>\n",
2837 " <td>1</td>\n",
2838 " <td>...</td>\n",
2839 " <td>1</td>\n",
2840 " <td>0</td>\n",
2841 " <td>1</td>\n",
2842 " <td>0</td>\n",
2843 " <td>0</td>\n",
2844 " <td>0</td>\n",
2845 " <td>0</td>\n",
2846 " <td>0</td>\n",
2847 " <td>0</td>\n",
2848 " <td>0</td>\n",
2849 " </tr>\n",
2850 " <tr>\n",
2851 " <th>20</th>\n",
2852 " <td>1</td>\n",
2853 " <td>0</td>\n",
2854 " <td>1</td>\n",
2855 " <td>0</td>\n",
2856 " <td>0</td>\n",
2857 " <td>0</td>\n",
2858 " <td>1</td>\n",
2859 " <td>0</td>\n",
2860 " <td>0</td>\n",
2861 " <td>1</td>\n",
2862 " <td>...</td>\n",
2863 " <td>1</td>\n",
2864 " <td>0</td>\n",
2865 " <td>1</td>\n",
2866 " <td>0</td>\n",
2867 " <td>0</td>\n",
2868 " <td>0</td>\n",
2869 " <td>0</td>\n",
2870 " <td>0</td>\n",
2871 " <td>0</td>\n",
2872 " <td>0</td>\n",
2873 " </tr>\n",
2874 " <tr>\n",
2875 " <th>21</th>\n",
2876 " <td>1</td>\n",
2877 " <td>0</td>\n",
2878 " <td>0</td>\n",
2879 " <td>0</td>\n",
2880 " <td>0</td>\n",
2881 " <td>0</td>\n",
2882 " <td>0</td>\n",
2883 " <td>0</td>\n",
2884 " <td>0</td>\n",
2885 " <td>1</td>\n",
2886 " <td>...</td>\n",
2887 " <td>1</td>\n",
2888 " <td>0</td>\n",
2889 " <td>1</td>\n",
2890 " <td>0</td>\n",
2891 " <td>0</td>\n",
2892 " <td>0</td>\n",
2893 " <td>1</td>\n",
2894 " <td>0</td>\n",
2895 " <td>0</td>\n",
2896 " <td>0</td>\n",
2897 " </tr>\n",
2898 " <tr>\n",
2899 " <th>22</th>\n",
2900 " <td>1</td>\n",
2901 " <td>0</td>\n",
2902 " <td>0</td>\n",
2903 " <td>2</td>\n",
2904 " <td>14</td>\n",
2905 " <td>0</td>\n",
2906 " <td>0</td>\n",
2907 " <td>0</td>\n",
2908 " <td>0</td>\n",
2909 " <td>1</td>\n",
2910 " <td>...</td>\n",
2911 " <td>1</td>\n",
2912 " <td>1</td>\n",
2913 " <td>0</td>\n",
2914 " <td>0</td>\n",
2915 " <td>0</td>\n",
2916 " <td>0</td>\n",
2917 " <td>0</td>\n",
2918 " <td>0</td>\n",
2919 " <td>0</td>\n",
2920 " <td>0</td>\n",
2921 " </tr>\n",
2922 " <tr>\n",
2923 " <th>23</th>\n",
2924 " <td>1</td>\n",
2925 " <td>0</td>\n",
2926 " <td>0</td>\n",
2927 " <td>0</td>\n",
2928 " <td>0</td>\n",
2929 " <td>0</td>\n",
2930 " <td>0</td>\n",
2931 " <td>0</td>\n",
2932 " <td>0</td>\n",
2933 " <td>3</td>\n",
2934 " <td>...</td>\n",
2935 " <td>1</td>\n",
2936 " <td>0</td>\n",
2937 " <td>0</td>\n",
2938 " <td>1</td>\n",
2939 " <td>0</td>\n",
2940 " <td>0</td>\n",
2941 " <td>0</td>\n",
2942 " <td>0</td>\n",
2943 " <td>0</td>\n",
2944 " <td>0</td>\n",
2945 " </tr>\n",
2946 " <tr>\n",
2947 " <th>24</th>\n",
2948 " <td>1</td>\n",
2949 " <td>0</td>\n",
2950 " <td>1</td>\n",
2951 " <td>0</td>\n",
2952 " <td>0</td>\n",
2953 " <td>0</td>\n",
2954 " <td>1</td>\n",
2955 " <td>0</td>\n",
2956 " <td>0</td>\n",
2957 " <td>1</td>\n",
2958 " <td>...</td>\n",
2959 " <td>1</td>\n",
2960 " <td>0</td>\n",
2961 " <td>0</td>\n",
2962 " <td>0</td>\n",
2963 " <td>1</td>\n",
2964 " <td>0</td>\n",
2965 " <td>1</td>\n",
2966 " <td>0</td>\n",
2967 " <td>0</td>\n",
2968 " <td>0</td>\n",
2969 " </tr>\n",
2970 " </tbody>\n",
2971 "</table>\n",
2972 "<p>25 rows × 28 columns</p>\n",
2973 "</div>"
2974 ],
2975 "text/plain": [
2976 " SWC_FLY Cabin_Class SWC_FQTV_Member Passenger_Baggage_Count \\\n",
2977 "0 1 0 1 1 \n",
2978 "1 1 0 0 1 \n",
2979 "2 1 0 1 0 \n",
2980 "3 1 0 1 0 \n",
2981 "4 1 0 0 1 \n",
2982 "5 1 0 0 2 \n",
2983 "6 0 1 1 0 \n",
2984 "7 0 0 1 0 \n",
2985 "8 1 0 0 0 \n",
2986 "9 1 1 1 1 \n",
2987 "10 1 0 0 3 \n",
2988 "11 1 0 0 2 \n",
2989 "12 1 0 1 1 \n",
2990 "13 1 0 1 1 \n",
2991 "14 1 0 1 0 \n",
2992 "15 1 0 0 1 \n",
2993 "16 1 0 1 2 \n",
2994 "17 1 0 0 0 \n",
2995 "18 1 0 0 0 \n",
2996 "19 1 0 1 6 \n",
2997 "20 1 0 1 0 \n",
2998 "21 1 0 0 0 \n",
2999 "22 1 0 0 2 \n",
3000 "23 1 0 0 0 \n",
3001 "24 1 0 1 0 \n",
3002 "\n",
3003 " Passenger_Baggage_Weight SWC_Staff SWC_CIP_Passenger SWC_VIP_Passenger \\\n",
3004 "0 17 0 0 0 \n",
3005 "1 7 0 0 0 \n",
3006 "2 0 0 0 0 \n",
3007 "3 0 0 1 0 \n",
3008 "4 18 0 0 0 \n",
3009 "5 27 0 0 0 \n",
3010 "6 0 0 0 0 \n",
3011 "7 0 0 0 0 \n",
3012 "8 0 0 0 0 \n",
3013 "9 10 0 1 0 \n",
3014 "10 34 0 0 0 \n",
3015 "11 30 0 0 0 \n",
3016 "12 9 0 0 0 \n",
3017 "13 7 0 1 0 \n",
3018 "14 0 0 0 0 \n",
3019 "15 14 0 0 0 \n",
3020 "16 26 0 0 0 \n",
3021 "17 0 0 0 0 \n",
3022 "18 0 0 0 0 \n",
3023 "19 22 0 0 0 \n",
3024 "20 0 0 1 0 \n",
3025 "21 0 0 0 0 \n",
3026 "22 14 0 0 0 \n",
3027 "23 0 0 0 0 \n",
3028 "24 0 0 1 0 \n",
3029 "\n",
3030 " SWC_Has_Infant Operation_Count ... M kiosk kontuar mobile online \\\n",
3031 "0 0 1 ... 0 0 0 1 0 \n",
3032 "1 0 1 ... 1 0 1 0 0 \n",
3033 "2 0 1 ... 1 0 1 0 0 \n",
3034 "3 0 1 ... 1 0 0 0 1 \n",
3035 "4 0 1 ... 0 0 0 0 1 \n",
3036 "5 0 1 ... 1 0 1 0 0 \n",
3037 "6 0 1 ... 1 0 0 1 0 \n",
3038 "7 0 1 ... 0 1 0 0 0 \n",
3039 "8 0 6 ... 0 0 1 0 0 \n",
3040 "9 0 1 ... 0 0 1 0 0 \n",
3041 "10 0 1 ... 0 0 1 0 0 \n",
3042 "11 0 1 ... 0 0 1 0 0 \n",
3043 "12 0 1 ... 0 0 0 0 1 \n",
3044 "13 0 1 ... 0 0 0 0 1 \n",
3045 "14 0 2 ... 1 0 0 1 0 \n",
3046 "15 0 1 ... 1 1 0 0 0 \n",
3047 "16 0 1 ... 0 0 0 1 0 \n",
3048 "17 0 1 ... 1 0 1 0 0 \n",
3049 "18 0 6 ... 0 0 1 0 0 \n",
3050 "19 0 1 ... 1 0 1 0 0 \n",
3051 "20 0 1 ... 1 0 1 0 0 \n",
3052 "21 0 1 ... 1 0 1 0 0 \n",
3053 "22 0 1 ... 1 1 0 0 0 \n",
3054 "23 0 3 ... 1 0 0 1 0 \n",
3055 "24 0 1 ... 1 0 0 0 1 \n",
3056 "\n",
3057 " other checkin_fly_difference C/INF M/INF F/INF \n",
3058 "0 0 1 0 0 0 \n",
3059 "1 0 0 0 0 0 \n",
3060 "2 0 0 0 0 0 \n",
3061 "3 0 1 0 0 0 \n",
3062 "4 0 1 0 0 0 \n",
3063 "5 0 0 0 0 0 \n",
3064 "6 0 1 0 0 0 \n",
3065 "7 0 0 0 0 0 \n",
3066 "8 0 0 0 0 0 \n",
3067 "9 0 0 0 0 0 \n",
3068 "10 0 0 0 0 0 \n",
3069 "11 0 0 0 0 0 \n",
3070 "12 0 1 0 0 0 \n",
3071 "13 0 1 0 0 0 \n",
3072 "14 0 1 0 0 0 \n",
3073 "15 0 0 0 0 0 \n",
3074 "16 0 0 0 0 0 \n",
3075 "17 0 0 0 0 0 \n",
3076 "18 0 0 0 0 0 \n",
3077 "19 0 0 0 0 0 \n",
3078 "20 0 0 0 0 0 \n",
3079 "21 0 1 0 0 0 \n",
3080 "22 0 0 0 0 0 \n",
3081 "23 0 0 0 0 0 \n",
3082 "24 0 1 0 0 0 \n",
3083 "\n",
3084 "[25 rows x 28 columns]"
3085 ]
3086 },
3087 "execution_count": 69,
3088 "metadata": {},
3089 "output_type": "execute_result"
3090 }
3091 ],
3092 "source": [
3093 "processed_test_df.head(25)"
3094 ]
3095 },
3096 {
3097 "cell_type": "code",
3098 "execution_count": 71,
3099 "metadata": {},
3100 "outputs": [],
3101 "source": [
3102 "### Printing to Excel ###\n",
3103 "# If you wish you can print results to excel by uncommenting and executing this cell.\n",
3104 "# processed_test_df.to_excel(\"Enter filename here\")"
3105 ]
3106 },
3107 {
3108 "cell_type": "markdown",
3109 "metadata": {},
3110 "source": [
3111 "<b> Thanks for checking out our work :) </b>"
3112 ]
3113 }
3114 ],
3115 "metadata": {
3116 "kernelspec": {
3117 "display_name": "Python 3",
3118 "language": "python",
3119 "name": "python3"
3120 },
3121 "language_info": {
3122 "codemirror_mode": {
3123 "name": "ipython",
3124 "version": 3
3125 },
3126 "file_extension": ".py",
3127 "mimetype": "text/x-python",
3128 "name": "python",
3129 "nbconvert_exporter": "python",
3130 "pygments_lexer": "ipython3",
3131 "version": "3.7.1"
3132 }
3133 },
3134 "nbformat": 4,
3135 "nbformat_minor": 2
3136}