{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 1: Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Name: Allen\n", "\n", "Batch: FTDS_BSD_003\n", "\n", "Dataset: `Hotel Reservation Datasets`\n", "\n", "Problem Statement:\n", "The Hotel Reservation Project is to explore customer activity related to their booking and reservation status. The main or the output of this project is aimed to predict whether the customer will cancel their booking or not. The online hotel reservation have developed their booking process but they have also brought some challanges like the typical reasons for cancellations include change of plans, scheduling conflicts, etc. This is often made easier by the option to do so free of charge or preferably at a low cost which is beneficial to hotel guests but it is a less desirable and possibly revenue-diminishing factor for hotels to deal with. This modeling is useful for hotels to manage a problem like this and to reduce and minimalize the business loss. The dataset includes various features such as the number of adults and children, lead time, room type, and more. So at last the target feature in this dataset `booking_status`, which has two categories: \"Not_Canceled\" and \"Canceled.\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 2: Import Library" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [], "source": [ "# Import Library\n", "import numpy as np\n", "import pandas as pd\n", "import pickle\n", "import phik\n", "from phik import resources, report\n", "pd.set_option('display.max_columns', None)\n", "from sklearn.model_selection import train_test_split\n", "from sklearn import preprocessing\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.preprocessing import OneHotEncoder\n", "from sklearn.compose import ColumnTransformer\n", "from scipy import stats\n", "import seaborn as sns\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "from sklearn.svm import SVC\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.ensemble import AdaBoostClassifier\n", "from sklearn.model_selection import StratifiedKFold\n", "from sklearn.model_selection import RandomizedSearchCV\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.model_selection import cross_val_score\n", "from sklearn.metrics import classification_report,ConfusionMatrixDisplay, precision_score,recall_score,accuracy_score,f1_score" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 3: Data Loading" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Booking_IDno_of_adultsno_of_childrenno_of_weekend_nightsno_of_week_nightstype_of_meal_planrequired_car_parking_spaceroom_type_reservedlead_timearrival_yeararrival_montharrival_datemarket_segment_typerepeated_guestno_of_previous_cancellationsno_of_previous_bookings_not_canceledavg_price_per_roomno_of_special_requestsbooking_status
0INN000012012Meal Plan 10Room_Type 12242017102Offline00065.000Not_Canceled
1INN000022023Not Selected0Room_Type 152018116Online000106.681Not_Canceled
2INN000031021Meal Plan 10Room_Type 112018228Online00060.000Canceled
3INN000042002Meal Plan 10Room_Type 12112018520Online000100.000Canceled
4INN000052011Not Selected0Room_Type 1482018411Online00094.500Canceled
\n", "
" ], "text/plain": [ " Booking_ID no_of_adults no_of_children no_of_weekend_nights \\\n", "0 INN00001 2 0 1 \n", "1 INN00002 2 0 2 \n", "2 INN00003 1 0 2 \n", "3 INN00004 2 0 0 \n", "4 INN00005 2 0 1 \n", "\n", " no_of_week_nights type_of_meal_plan required_car_parking_space \\\n", "0 2 Meal Plan 1 0 \n", "1 3 Not Selected 0 \n", "2 1 Meal Plan 1 0 \n", "3 2 Meal Plan 1 0 \n", "4 1 Not Selected 0 \n", "\n", " room_type_reserved lead_time arrival_year arrival_month arrival_date \\\n", "0 Room_Type 1 224 2017 10 2 \n", "1 Room_Type 1 5 2018 11 6 \n", "2 Room_Type 1 1 2018 2 28 \n", "3 Room_Type 1 211 2018 5 20 \n", "4 Room_Type 1 48 2018 4 11 \n", "\n", " market_segment_type repeated_guest no_of_previous_cancellations \\\n", "0 Offline 0 0 \n", "1 Online 0 0 \n", "2 Online 0 0 \n", "3 Online 0 0 \n", "4 Online 0 0 \n", "\n", " no_of_previous_bookings_not_canceled avg_price_per_room \\\n", "0 0 65.00 \n", "1 0 106.68 \n", "2 0 60.00 \n", "3 0 100.00 \n", "4 0 94.50 \n", "\n", " no_of_special_requests booking_status \n", "0 0 Not_Canceled \n", "1 1 Not_Canceled \n", "2 0 Canceled \n", "3 0 Canceled \n", "4 0 Canceled " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Untuk mengeload data set\n", "df_ori=pd.read_csv('hotel_reservations.csv')\n", "\n", "\n", "#Membuat Duplicate df_ori\n", "df=df_ori.copy()\n", "\n", "#Tampilkan 5 data ter atas\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For starting analys this dataset let us know deeper about all columns in the dataset :\n", " - no_of_adults: The number of adults in the reservation (categorical: 5 values)\n", " - no_of_children: The number of children in the reservation (categorical: 6 values)\n", " - no_of_weekend_nights: The number of weekend nights included in the reservation (categorical: 8 values)\n", " - no_of_week_nights: The number of weeknights included in the reservation (categorical: 18 values)\n", " - type_of_meal_plan: The type of meal plan chosen (categorical: 4 values)\n", " - required_car_parking_space: Whether a car parking space is required (binary: 2 values)\n", " - room_type_reserved: The type of room reserved (categorical: 7 values)\n", " - lead_time: The number of days between booking and arrival (numerical: range up to 352 days)\n", " - arrival_year: The year of arrival (categorical: 2 values)\n", " - arrival_month: The month of arrival (categorical: 12 values)\n", " - arrival_date: The day of arrival (categorical: 31 values)\n", " - market_segment_type: The type of market segment (categorical: 5 values)\n", " - repeated_guest: Whether the guest is a repeated customer (binary: 2 values)\n", " - no_of_previous_cancellations: The number of previous cancellations by the guest (categorical: 9 values)\n", " - no_of_previous_bookings_not_canceled: The number of previous bookings not canceled by the guest (numerical: range up to 59)\n", " - avg_price_per_room: The average price per room (numerical: range up to 3930)\n", " - no_of_special_requests: The number of special requests made by the guest (categorical: 6 values)\n", " - booking_status: The target variable, indicating whether the reservation was canceled or not (binary: 2 values)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 36275 entries, 0 to 36274\n", "Data columns (total 19 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Booking_ID 36275 non-null object \n", " 1 no_of_adults 36275 non-null int64 \n", " 2 no_of_children 36275 non-null int64 \n", " 3 no_of_weekend_nights 36275 non-null int64 \n", " 4 no_of_week_nights 36275 non-null int64 \n", " 5 type_of_meal_plan 36275 non-null object \n", " 6 required_car_parking_space 36275 non-null int64 \n", " 7 room_type_reserved 36275 non-null object \n", " 8 lead_time 36275 non-null int64 \n", " 9 arrival_year 36275 non-null int64 \n", " 10 arrival_month 36275 non-null int64 \n", " 11 arrival_date 36275 non-null int64 \n", " 12 market_segment_type 36275 non-null object \n", " 13 repeated_guest 36275 non-null int64 \n", " 14 no_of_previous_cancellations 36275 non-null int64 \n", " 15 no_of_previous_bookings_not_canceled 36275 non-null int64 \n", " 16 avg_price_per_room 36275 non-null float64\n", " 17 no_of_special_requests 36275 non-null int64 \n", " 18 booking_status 36275 non-null object \n", "dtypes: float64(1), int64(13), object(5)\n", "memory usage: 5.3+ MB\n" ] } ], "source": [ "# Checking all data\n", "df.info()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['INN00001', 'INN00002', 'INN00003', ..., 'INN36273', 'INN36274',\n", " 'INN36275'], dtype=object)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.Booking_ID.unique() " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([2, 1, 3, 0, 4], dtype=int64)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.no_of_adults.unique() " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0, 2, 1, 3, 10, 9], dtype=int64)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.no_of_children.unique() " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 2, 0, 4, 3, 6, 5, 7], dtype=int64)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.no_of_weekend_nights.unique() " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 2, 3, 1, 4, 5, 0, 10, 6, 11, 7, 15, 9, 13, 8, 14, 12, 17,\n", " 16], dtype=int64)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.no_of_week_nights.unique() " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Meal Plan 1', 'Not Selected', 'Meal Plan 2', 'Meal Plan 3'],\n", " dtype=object)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.type_of_meal_plan.unique() " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1], dtype=int64)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.required_car_parking_space.unique()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Room_Type 1', 'Room_Type 4', 'Room_Type 2', 'Room_Type 6',\n", " 'Room_Type 5', 'Room_Type 7', 'Room_Type 3'], dtype=object)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.room_type_reserved.unique() " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([224, 5, 1, 211, 48, 346, 34, 83, 121, 44, 0, 35, 30,\n", " 95, 47, 256, 99, 12, 122, 2, 37, 130, 60, 56, 3, 107,\n", " 72, 23, 289, 247, 186, 64, 96, 41, 55, 146, 32, 57, 7,\n", " 124, 169, 6, 51, 13, 100, 139, 117, 39, 86, 19, 192, 179,\n", " 26, 74, 143, 177, 18, 267, 155, 46, 128, 20, 40, 196, 188,\n", " 17, 110, 68, 73, 92, 171, 134, 320, 118, 189, 16, 24, 8,\n", " 10, 182, 116, 123, 105, 443, 317, 286, 148, 14, 85, 25, 28,\n", " 80, 11, 162, 82, 27, 245, 266, 112, 88, 69, 273, 4, 97,\n", " 31, 62, 197, 280, 185, 160, 104, 22, 292, 109, 126, 303, 81,\n", " 54, 15, 161, 147, 87, 127, 418, 156, 58, 433, 111, 195, 119,\n", " 59, 78, 335, 103, 70, 76, 144, 49, 77, 36, 79, 21, 33,\n", " 164, 152, 43, 102, 71, 209, 93, 53, 302, 239, 45, 167, 113,\n", " 84, 9, 166, 174, 61, 151, 52, 67, 282, 38, 175, 89, 133,\n", " 65, 66, 50, 159, 386, 115, 237, 125, 91, 29, 221, 213, 198,\n", " 75, 180, 236, 120, 230, 63, 136, 309, 157, 268, 217, 94, 305,\n", " 98, 42, 154, 330, 137, 184, 232, 304, 114, 257, 265, 191, 101,\n", " 259, 149, 170, 271, 207, 108, 210, 222, 296, 194, 145, 153, 275,\n", " 158, 301, 349, 200, 315, 181, 263, 176, 141, 270, 150, 359, 244,\n", " 219, 142, 138, 276, 178, 163, 377, 290, 216, 226, 258, 254, 193,\n", " 131, 208, 215, 190, 381, 231, 248, 106, 308, 140, 173, 168, 172,\n", " 90, 249, 205, 129, 212, 135, 220, 277, 253, 132, 183, 255, 223,\n", " 336, 288, 229, 319, 199, 203, 228, 246, 235, 294, 281, 202, 361,\n", " 287, 291, 313, 206, 269, 279, 261, 214, 274, 250, 187, 240, 241,\n", " 323, 322, 227, 225, 233, 338, 283, 327, 204, 352, 165, 251, 299,\n", " 314, 285, 238, 328, 278, 332, 243, 201, 307, 272, 252, 242, 284,\n", " 297, 324, 260, 262, 326, 295, 218, 234, 353, 300, 355, 306, 298,\n", " 331, 341, 318, 333, 372, 311, 310, 345, 264, 325, 293, 348, 350,\n", " 351], dtype=int64)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.lead_time.unique() " ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([2017, 2018], dtype=int64)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.arrival_year.unique() " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10, 11, 2, 5, 4, 9, 12, 7, 6, 8, 3, 1], dtype=int64)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.arrival_month.unique() " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 2, 6, 28, 20, 11, 13, 15, 26, 18, 30, 5, 10, 4, 25, 22, 21, 19,\n", " 17, 7, 9, 27, 1, 29, 16, 3, 24, 14, 31, 23, 8, 12],\n", " dtype=int64)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.arrival_date.unique() " ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Offline', 'Online', 'Corporate', 'Aviation', 'Complementary'],\n", " dtype=object)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.market_segment_type.unique() " ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1], dtype=int64)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.repeated_guest.unique() " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0, 3, 1, 2, 11, 4, 5, 13, 6], dtype=int64)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.no_of_previous_cancellations.unique() " ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0, 5, 1, 3, 4, 12, 19, 2, 15, 17, 7, 20, 16, 50, 13, 6, 14,\n", " 34, 18, 8, 10, 23, 11, 49, 47, 53, 9, 33, 22, 24, 52, 21, 48, 28,\n", " 39, 25, 31, 38, 26, 51, 42, 37, 35, 56, 44, 27, 32, 55, 45, 30, 57,\n", " 46, 54, 43, 58, 41, 29, 40, 36], dtype=int64)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.no_of_previous_bookings_not_canceled.unique() " ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 65. , 106.68, 60. , ..., 118.43, 137.25, 167.8 ])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.avg_price_per_room.unique() " ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 3, 2, 4, 5], dtype=int64)" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.no_of_special_requests.unique() " ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Not_Canceled', 'Canceled'], dtype=object)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value\n", "df.booking_status.unique() " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From information above, we can conclude that we have 3 type of data columns:\n", "1. Numerical Columns: it means that these is real numerical columns\n", "2. Categorical Columns: it means that these columns have type data object\n", "3. Categorical Numeric Columns: it means that it is actually categorical columns in the form of numerical columns\n", "\n", "Now we will defined every type data columns:\n", "1. Numerical Columns: \n", "- `no_of_adults`,\n", "- `no_of_children`,\n", "- `no_of_weekend_nights`,\n", "- `no_of_week_nights`,\n", "- `lead_time`,\n", "- `arrival_year`,\n", "- `arrival_month`,\n", "- `arrival_date`,\n", "- `no_of_previous_cancellations`,and \n", "- `avg_price_per_room`\n", "\n", "2. Categorical Columns: \n", "- `Booking_ID`,\n", "- `type_of_meal_plan`, \n", "- `room_type_reserved`,\n", "- `market_segment_type`, and \n", "- `booking_status`\n", "\n", "3. Categorical Numeric Columns: \n", "- `required_car_parking_space`,\n", "- `repeated_guest`, and \n", "- `no_of_special_requests`" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Booking_ID', 'no_of_adults', 'no_of_children', 'no_of_weekend_nights',\n", " 'no_of_week_nights', 'type_of_meal_plan', 'required_car_parking_space',\n", " 'room_type_reserved', 'lead_time', 'arrival_year', 'arrival_month',\n", " 'arrival_date', 'market_segment_type', 'repeated_guest',\n", " 'no_of_previous_cancellations', 'no_of_previous_bookings_not_canceled',\n", " 'avg_price_per_room', 'no_of_special_requests', 'booking_status'],\n", " dtype='object')" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Show All Columns\n", "df.columns" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(36275, 19)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show the row and the columns\n", "df.shape" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Booking_ID 36275\n", "no_of_adults 5\n", "no_of_children 6\n", "no_of_weekend_nights 8\n", "no_of_week_nights 18\n", "type_of_meal_plan 4\n", "required_car_parking_space 2\n", "room_type_reserved 7\n", "lead_time 352\n", "arrival_year 2\n", "arrival_month 12\n", "arrival_date 31\n", "market_segment_type 5\n", "repeated_guest 2\n", "no_of_previous_cancellations 9\n", "no_of_previous_bookings_not_canceled 59\n", "avg_price_per_room 3930\n", "no_of_special_requests 6\n", "booking_status 2\n", "dtype: int64" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# show unique value\n", "df.nunique()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
no_of_adultsno_of_childrenno_of_weekend_nightsno_of_week_nightsrequired_car_parking_spacelead_timearrival_yeararrival_montharrival_daterepeated_guestno_of_previous_cancellationsno_of_previous_bookings_not_canceledavg_price_per_roomno_of_special_requests
count36275.00000036275.00000036275.00000036275.00000036275.00000036275.00000036275.00000036275.00000036275.00000036275.00000036275.00000036275.00000036275.00000036275.000000
mean1.8449620.1052790.8107242.2043000.03098685.2325572017.8204277.42365315.5969950.0256370.0233490.153411103.4235390.619655
std0.5187150.4026480.8706441.4109050.17328185.9308170.3838363.0698948.7404470.1580530.3683311.75417135.0894240.786236
min0.0000000.0000000.0000000.0000000.0000000.0000002017.0000001.0000001.0000000.0000000.0000000.0000000.0000000.000000
25%2.0000000.0000000.0000001.0000000.00000017.0000002018.0000005.0000008.0000000.0000000.0000000.00000080.3000000.000000
50%2.0000000.0000001.0000002.0000000.00000057.0000002018.0000008.00000016.0000000.0000000.0000000.00000099.4500000.000000
75%2.0000000.0000002.0000003.0000000.000000126.0000002018.00000010.00000023.0000000.0000000.0000000.000000120.0000001.000000
max4.00000010.0000007.00000017.0000001.000000443.0000002018.00000012.00000031.0000001.00000013.00000058.000000540.0000005.000000
\n", "
" ], "text/plain": [ " no_of_adults no_of_children no_of_weekend_nights no_of_week_nights \\\n", "count 36275.000000 36275.000000 36275.000000 36275.000000 \n", "mean 1.844962 0.105279 0.810724 2.204300 \n", "std 0.518715 0.402648 0.870644 1.410905 \n", "min 0.000000 0.000000 0.000000 0.000000 \n", "25% 2.000000 0.000000 0.000000 1.000000 \n", "50% 2.000000 0.000000 1.000000 2.000000 \n", "75% 2.000000 0.000000 2.000000 3.000000 \n", "max 4.000000 10.000000 7.000000 17.000000 \n", "\n", " required_car_parking_space lead_time arrival_year arrival_month \\\n", "count 36275.000000 36275.000000 36275.000000 36275.000000 \n", "mean 0.030986 85.232557 2017.820427 7.423653 \n", "std 0.173281 85.930817 0.383836 3.069894 \n", "min 0.000000 0.000000 2017.000000 1.000000 \n", "25% 0.000000 17.000000 2018.000000 5.000000 \n", "50% 0.000000 57.000000 2018.000000 8.000000 \n", "75% 0.000000 126.000000 2018.000000 10.000000 \n", "max 1.000000 443.000000 2018.000000 12.000000 \n", "\n", " arrival_date repeated_guest no_of_previous_cancellations \\\n", "count 36275.000000 36275.000000 36275.000000 \n", "mean 15.596995 0.025637 0.023349 \n", "std 8.740447 0.158053 0.368331 \n", "min 1.000000 0.000000 0.000000 \n", "25% 8.000000 0.000000 0.000000 \n", "50% 16.000000 0.000000 0.000000 \n", "75% 23.000000 0.000000 0.000000 \n", "max 31.000000 1.000000 13.000000 \n", "\n", " no_of_previous_bookings_not_canceled avg_price_per_room \\\n", "count 36275.000000 36275.000000 \n", "mean 0.153411 103.423539 \n", "std 1.754171 35.089424 \n", "min 0.000000 0.000000 \n", "25% 0.000000 80.300000 \n", "50% 0.000000 99.450000 \n", "75% 0.000000 120.000000 \n", "max 58.000000 540.000000 \n", "\n", " no_of_special_requests \n", "count 36275.000000 \n", "mean 0.619655 \n", "std 0.786236 \n", "min 0.000000 \n", "25% 0.000000 \n", "50% 0.000000 \n", "75% 1.000000 \n", "max 5.000000 " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# looking data mean std min median max\n", "df.describe()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Booking_ID 0\n", "no_of_adults 0\n", "no_of_children 0\n", "no_of_weekend_nights 0\n", "no_of_week_nights 0\n", "type_of_meal_plan 0\n", "required_car_parking_space 0\n", "room_type_reserved 0\n", "lead_time 0\n", "arrival_year 0\n", "arrival_month 0\n", "arrival_date 0\n", "market_segment_type 0\n", "repeated_guest 0\n", "no_of_previous_cancellations 0\n", "no_of_previous_bookings_not_canceled 0\n", "avg_price_per_room 0\n", "no_of_special_requests 0\n", "booking_status 0\n", "dtype: int64" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Looking isnull of the data \n", "df.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# show data duplicated\n", "df.duplicated().sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 4: Exploratory Data Analysis (EDA)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section we will look at the correlation between `type of meal plan`, `market sgement type`, and `room type` of the hotel visitos with the target `booking status`" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Description of the Categorical Dataset:\n", "========================================\n" ] }, { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 countuniquetopfreq
Booking_ID3627536275INN000011
type_of_meal_plan362754Meal Plan 127835
room_type_reserved362757Room_Type 128130
market_segment_type362755Online23214
booking_status362752Not_Canceled24390
\n" ], "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create the DataFrame description\n", "print('Description of the Categorical Dataset:')\n", "print(\"=\" * 40)\n", "categorical_description = df.describe(include=['object', 'bool']).T\n", "\n", "# Define a styling function\n", "def style_description(s):\n", " return f'background-color: blue; font-weight: bold;'\n", "\n", "# Apply the styling to the DataFrame\n", "styled_description = categorical_description.style.applymap(style_description)\n", "styled_description" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now lets make a visualization about the information above" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABUYAAAJOCAYAAAB7td2CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADQ40lEQVR4nOzdd3gU1dvG8XtJJYGEmgJSBSK92QCV3kEBERGlKIKCiggoooIIAiL1JwoiShVBVECaFKkiPUhNpEkokpCQSnqb9w/erCwJkFAyKd/Pde0lO3Nm5p7Nxp19cs4ci2EYhgAAAAAAAAAgHylgdgAAAAAAAAAAyG4URgEAAAAAAADkOxRGAQAAAAAAAOQ7FEYBAAAAAAAA5DsURgEAAAAAAADkOxRGAQAAAAAAAOQ7FEYBAAAAAAAA5DsURgEAAAAAAADkOxRGAQAAAAAAAOQ7FEaBuzR//nxZLBabR8mSJdWkSROtWbPmvh+/fPny6tChw23bWSwWjR49+r7nyUhoaKhGjBihatWqydXVVe7u7nrooYfUs2dPHTlyxNpu165dGj16tCIiIu74WOvWrTPtPG98Lzg7O8vLy0tNmzbVhAkTFBwcnG6b0aNHy2KxZOk4sbGxGj16tLZt25al7TI6VmbfP1nxww8/aPr06RmuM/N9CACA2TK6bkx7DBs2zOx4+dbmzZv18MMPy9XVVRaLRStXrsywXUBAgPXndbPrmVdeecXa5n7atm2bLBbLba8H09qlPezs7OTp6annnntO/v7+1nZp5zZ//vz7mjsjadeoV65cua/H6dOnT7rX4oEHHlC3bt107Nix+3rstNd38uTJt2yX2Z/r/eLv76+ePXuqYsWKcnZ2VokSJVSvXj29+eabioqKsra71fV+Zs2cOdOU9xtwI3uzAwB5xbx58/TQQw/JMAwFBQXpyy+/VMeOHbVq1Sp17NjR7HjavXu3HnjggWw/bnR0tB5//HFFR0fr3XffVe3atRUXF6eTJ09q+fLlOnTokGrVqiXpWmH0k08+UZ8+fVSkSJE7Ot66dev01VdfmVp8S3svJCUlKTg4WDt37tTEiRM1efJk/fjjj2rRooW17auvvqo2bdpkaf+xsbH65JNPJElNmjTJ9HZ3cqw78cMPP+jYsWMaPHhwunVmvQ8BAMhJ0q4VrleqVCmT0uRvhmGoW7duqlKlilatWiVXV1f5+PjccpvChQtr/vz5GjVqlAoU+K+vUXR0tH766Se5ubnZFJFygvHjx6tp06ZKTEzUgQMHNGbMGG3evFlHjx5V6dKlzY6XbQoWLKgtW7ZIkpKTk3X69Gl9+umnatiwofz9/U1/LerVq6fdu3erWrVq2X7sv/76S40aNVLVqlU1atQolS9fXleuXNHhw4e1dOlSDRs2TG5ubpJufb2fWTNnzlSJEiXUp0+fe3MCwB2iMArcIzVq1NDDDz9sfd6mTRsVLVpUS5YsyRGF0ccff9yU4/700086ffq0tmzZoqZNm9qsGzJkiFJTU03JdT/d+F549tln9c477+iJJ55Qly5ddOrUKXl6ekqSHnjggfteKIyNjZWLi0u2HOt2zHofAgCQk9x4rXArSUlJslgssrfnq9v9cOnSJYWFhalz585q3rx5prZ5/vnn9e2332rz5s1q2bKldfmPP/6olJQUderUSd9///39inxHKleubL0Oe+qpp1SkSBH17dtX8+fP14cffmhyuuxToEABm+vRJ554QmXLllXz5s21du1a9e/f38R0kpubm2nXy9OnT1eBAgW0bds2FS5c2Lq8a9euGjt2rAzDMCUXcL8xlB64T5ydneXo6CgHBweb5WFhYRo4cKBKly4tR0dHVaxYUR9++KESEhJs2sXHx2vEiBGqUKGCHB0dVbp0ab3xxhuZGmY+c+ZM2dvb6+OPP7Yuu3HIT9pQrq1bt2rAgAEqUaKEihcvri5duujSpUs2+0tISNDQoUPl5eUlFxcXPfXUU/L19VX58uVv+xe+0NBQSZK3t3eG69P+yj569Gi9++67kqQKFSpYh7ikDSP58ccf1apVK3l7e6tgwYKqWrWq3n//fcXExFj31adPH3311VfW8017BAQE3HJ40I2vTUhIiPr3768yZcrIyclJJUuWVKNGjfT777/f8lxvpWzZspoyZYquXr2q2bNnW5dnNLx9y5YtatKkiYoXL66CBQuqbNmyevbZZxUbG6uAgACVLFlSkvTJJ59YzzHt55C2v4MHD6pr164qWrSoHnzwwZseK82KFStUq1YtOTs7q2LFivriiy9s1qe9XwICAmyW3zjcp0mTJlq7dq3OnTtn8zNIk9HQs2PHjumZZ55R0aJF5ezsrDp16mjBggUZHmfJkiX68MMPVapUKbm5ualFixY6ceLEzV94AABykbTPu0WLFmno0KEqXbq0nJycdPr0aUnS77//rubNm8vNzU0uLi5q1KiRNm/enG4/a9euVZ06deTk5KQKFSpo8uTJ6a4DsnJtJEmnTp1Sjx495OHhIScnJ1WtWtV63XVj/sx+Xq9fv17NmzeXu7u7XFxcVLVqVU2YMEGStGjRIlksFu3evTvddmPGjJGDg0O6a9Yb7dy5U82bN1fhwoXl4uKihg0bau3atdb1o0ePtv7RePjw4bJYLCpfvvwt9ylJPj4+atiwoebOnWuzfO7cuerSpYvc3d0z3O7HH39UgwYN5OrqqkKFCql169b666+/bNocOHBA3bt3V/ny5VWwYEGVL19eL7zwgs6dO3fbXFmRVny71X5Pnz6tl19+WZUrV5aLi4tKly6tjh076ujRozbt7tV12oULF9SlSxe5ubnJ3d1dL730kkJCQqzr+/btq2LFiik2Njbdts2aNVP16tUzfazrpf28bvzelplrVEk6f/68XnrpJZvfjSlTpty2A0hSUpJ69+6tQoUKWW/BltFQ+j59+qhQoUI6ffq02rVrp0KFCqlMmTIaOnRouu+QFy9eVNeuXVW4cGEVKVJEL774ovbv35+p2ySEhobKzc1NhQoVynB92v8/bne9/8knn+ixxx5TsWLF5Obmpnr16um7776zKayWL19ex48f1/bt263bp/3uZfZ7h3Stl2uHDh2sr32pUqXUvn17Xbx48ZbnClyPwihwj6SkpCg5OVlJSUm6ePGiBg8erJiYGPXo0cPaJj4+Xk2bNtXChQs1ZMgQrV27Vi+99JI+//xzdenSxdrOMAx16tRJkydPVs+ePbV27VoNGTJECxYsULNmzdJ9AF6/3bBhwzR48GB9++231uHWt/Lqq6/KwcFBP/zwgz7//HNt27ZNL730kk2bl19+WdOnT9fLL7+sX3/9Vc8++6w6d+6cqSJtgwYNJEm9evXSypUrrYXSjHK89dZbkqTly5dr9+7d2r17t+rVqyfp2sV4u3bt9N1332n9+vUaPHiwli1bZtMbd+TIkerataskWbffvXv3TYuyN9OzZ0+tXLlSo0aN0saNG/Xtt9+qRYsWN82eWe3atZOdnZ127Nhx0zYBAQFq3769HB0dNXfuXK1fv16fffaZXF1dlZiYKG9vb61fv17StYvDtHMcOXKkzX66dOmiSpUq6aefftLXX399y1yHDh3S4MGD9c4772jFihVq2LCh3n777dveAykjM2fOVKNGjeTl5WXzM7iZEydOqGHDhjp+/Li++OILLV++XNWqVVOfPn30+eefp2v/wQcf6Ny5c/r222/1zTff6NSpU+rYsaNSUlKynBUAALOkXTde/7jeiBEjdP78eX399ddavXq1PDw89P3336tVq1Zyc3PTggULtGzZMhUrVkytW7e2KY5u3rxZzzzzjAoXLqylS5dq0qRJWrZsmebNm3fHef38/PTII4/o2LFjmjJlitasWaP27dtr0KBBGV5vZubz+rvvvlO7du2UmppqPc9BgwZZCxrPP/+8vLy80hVfk5OTNXv2bHXu3PmWtx/Yvn27mjVrpsjISH333XdasmSJChcurI4dO+rHH3+UdO36c/ny5ZKkt956S7t379aKFSsy9Zr07dtXK1euVHh4uKRr1zS7du1S3759M2w/fvx4vfDCC6pWrZqWLVumRYsW6erVq3ryySfl5+dnbRcQECAfHx9Nnz5dGzZs0MSJExUYGKhHHnnknt6DM63YnvYH94xcunRJxYsX12effab169frq6++kr29vR577LEMC553e53WuXNnVapUST///LNGjx6tlStXqnXr1kpKSpIkvf322woPD9cPP/xgs52fn5+2bt2qN954I1PHSfudi4+P17Fjx/Tuu++qaNGiat++vbVNZq9RQ0JC1LBhQ23cuFFjx47VqlWr1KJFCw0bNkxvvvnmTTNERESodevW2rhxo7Zv337be/4nJSXp6aefVvPmzfXrr7/qlVde0bRp0zRx4kRrm5iYGDVt2lRbt27VxIkTtWzZMnl6eur555/P1OvSoEEDBQYG6sUXX9T27dsVFxeXYbvbXe8HBATotdde07Jly7R8+XJ16dJFb731lsaOHWtts2LFClWsWFF169a1bp/Z373rz7dly5a6fPmyvvrqK23atEnTp09X2bJldfXq1SztC/mcAeCuzJs3z5CU7uHk5GTMnDnTpu3XX39tSDKWLVtms3zixImGJGPjxo2GYRjG+vXrDUnG559/btPuxx9/NCQZ33zzjXVZuXLljPbt2xuxsbHGs88+a7i7uxu///57upySjI8//jhd7oEDB9q0+/zzzw1JRmBgoGEYhnH8+HFDkjF8+HCbdkuWLDEkGb17977tazRmzBjD0dHR+tpUqFDBeP31143Dhw/btJs0aZIhyTh79uwt95eammokJSUZ27dvNyTZ7OeNN94wMvpf29mzZw1Jxrx589Ktu/G1KVSokDF48ODbnteN0l7T/fv337SNp6enUbVqVevzjz/+2Cbvzz//bEgyDh06dNN9hISEpMt84/5GjRp103XXK1eunGGxWNIdr2XLloabm5sRExNjc243/my2bt1qSDK2bt1qXda+fXujXLlyGWa/MXf37t0NJycn4/z58zbt2rZta7i4uBgRERE2x2nXrp1Nu2XLlhmSjN27d2d4PAAAcpKbXTdKMpKSkqyfd0899ZTNdjExMUaxYsWMjh072ixPSUkxateubTz66KPWZY899phRqlQpIy4uzrosKirKKFasmM11QFaujVq3bm088MADRmRkpE27N99803B2djbCwsIMw8j85/XVq1cNNzc344knnjBSU1Nv+np9/PHHhqOjo3H58mXrsrTr4e3bt990O8MwjMcff9zw8PAwrl69al2WnJxs1KhRw3jggQesx017HSZNmnTL/d3Y9urVq0ahQoWML7/80jAMw3j33XeNChUqGKmpqemuR8+fP2/Y29sbb731ls3+rl69anh5eRndunW76TGTk5ON6Ohow9XV1fjf//5nXZ7RNVhG0tr9+OOPRlJSkhEbG2vs2LHDqFSpkmFnZ2e9jr7V++H6LImJiUblypWNd955J90x7vQ6Le0a9fp9GoZhLF682JBkfP/999ZljRs3NurUqWPTbsCAAYabm5vNzzojvXv3zvB3z9vb29i5c6dN28xeo77//vuGJGPv3r3pMlksFuPEiROGYdi+d86ePWtUq1bNqFatmhEQEGCzXUY/17TcN36HbNeuneHj42N9/tVXXxmSjN9++82m3WuvvXbbn61hGEZ8fLzRqVMn6+tiZ2dn1K1b1/jwww+N4OBgm7a3ut6/XkpKipGUlGSMGTPGKF68uM3ve/Xq1Y3GjRun2yaz3zsOHDhgSDJWrlx52xzArdBjFLhHFi5cqP3792v//v367bff1Lt3b73xxhv68ssvrW22bNkiV1dXa6/GNGnDoNP+2p92Q/Abh6k/99xzcnV1TTdkKjQ0VM2aNdO+ffusQ4Yy6+mnn7Z5njYRUtqwmu3bt0uSunXrZtOua9eumb7X1ciRI3X+/HnNnTtXr732mgoVKqSvv/5a9evX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/f1v265Pnz4KCQnR9OnTVa5cOTk5OalBgwZKTEy0aXdj0dNisSg19dqo1IIFC950/2lt5syZo8cee8xm3c0KvqmpqerYsaMmTpyYbp23t7dOnTp12/O6XyiMAjmMYRjadjJEi3af07YTwUq9u/93AjlD4CFp9SBp40ipVrdrRVLPamanAgAAAIC78tlnn6lOnTo2Q82rVaumnTt32rTbtWuXqlSpYi0eOjo6KiUlJdPH6dGjh7p3765ff/01XW9UwzAUFRUld3d3/fHHH5o5c6batWsnSbpw4YLNJEeZUatWLS1YsEBJSUnpCqienp4qXbq0/vnnH7344ouZ2l+9evX0yy+/qHz58rK3T1+KrFSpkhwcHLRnzx6VLVtWkhQeHq6TJ0+qcePGWcqeVUy+BOQQkbFJmrPjHzWZvE0vz9uvLX9TFEUelBAp7Z8jzWogLego/bPd7EQAAAAAcMdq1qypF198UTNmzLAuGzp0qDZv3qyxY8fq5MmTWrBggb788ksNGzbM2qZ8+fLasWOH/v3330wVLrt166bnn39eL7zwgiZMmKADBw7o3LlzWrNmjVq0aKGtW7dKulZkXLRokfz9/bV37169+OKLt+wBmpE333xTUVFR6t69uw4cOKBTp05p0aJFOnHihCRp9OjRmjBhgv73v//p5MmTOnr0qObNm6epU6dmuL833nhDYWFheuGFF7Rv3z79888/2rhxo1555RWlpKSoUKFC6tu3r959911t3rxZx44dU58+fVSgwP0vW1IYBUwWHBWv0auO67EJv2vcOn+dC401OxKQPc7ukBY+LX3XSjq50ew0AAAAAHBHxo4dazNUvl69elq2bJmWLl2qGjVqaNSoURozZozNcPsxY8YoICBADz74oEqWLHnbY1gsFv3www+aOnWqVqxYocaNG6tWrVoaPXq0nnnmGbVu3VrStUmNwsPDVbduXfXs2VODBg2Sh4dHls6nePHi2rJli6Kjo9W4cWPVr19fc+bMsfYeffXVV/Xtt99q/vz5qlmzpho3bqz58+erQoUKGe6vVKlS+vPPP5WSkqLWrVurRo0aevvtt+Xu7m4tfk6aNElPPfWUnn76abVo0UJPPPGE6tevn6Xcd8Ji3O1NDgDckctR8Zq17YyW7DvP7PIme84rSJMihpgdA961pSeHSlWfljJxU3EAyA3ShrVFRkbK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pGvv6emp0qVL659//knXvkKFCpKkatWq6fDhw4qLi7NulzaZFAAAAICci8IorJbtv6A/Tl0xOwYAILuselOKCc22w82cOVMpKSl69NFH9csvv+jUqVPy9/fXF198oQYNGujBBx9UcnKyZsyYoX/++UeLFi3S119/neXjjB49WlOmTNEXX3yhU6dO6eDBg5oxY4YkqUWLFmrQoIE6deqkDRs2KCAgQLt27dJHH32kAwcO3HR/EyZM0P/+9z+dPHlSR48e1bx58zR16lRJUo8ePVSgQAH17dtXfn5+WrdunSZPnnznL1Q+t2PHDnXs2FGlSpWSxWLRypUrbdb36dNHFovF5vH444/btElISNBbb72lEiVKyNXVVU8//bQuXrxo0yY8PFw9e/aUu7u73N3d1bNnT0VERNi0OX/+vDp27ChXV1eVKFFCgwYNUmJi4v04bQAAAJiAwigkSZej4vXpWj+zYwAAslP0ZWnN27dvd49UqFBBBw8eVNOmTTV06FDVqFFDLVu21ObNmzVr1izVqVNHU6dO1cSJE1WjRg0tXrxYEyZMyPJxevfurenTp2vmzJmqXr26OnTooFOnTkm6Nux+3bp1euqpp/TKK6+oSpUq6t69uwICAuTp6Znh/l599VV9++23mj9/vmrWrKnGjRtr/vz51h6jhQoV0urVq+Xn56e6devqww8/1MSJE+/8hcrnYmJiVLt2bX355Zc3bdOmTRsFBgZaH+vWrbNZP3jwYK1YsUJLly7Vzp07FR0drQ4dOigl5b9RMT169NChQ4e0fv16rV+/XocOHVLPnj2t61NSUtS+fXvFxMRo586dWrp0qX755RcNHTr03p80AAAATGExuDEWJL26YL9+9w82OwZgiue8gjQpYojZMQDzdPpaqvOC2SmAdCwWi1asWGFzX9o+ffooIiIiXU/SNJGRkSpZsqQWLVqk559/XpJ06dIllSlTRuvWrVPr1q3l7++vatWqac+ePdZ7x+7Zs0cNGjTQ33//LR8fH/3222/q0KGDLly4oFKlSkmSli5dqj59+ig4OFhubm6ZOoeoqCi5u7srMjIy09tcr/67C7O8TW7nO6mX2REAAEAul9lrMHqMQr8e+peiKADkZ7+9J0X+a3YKINO2bdsmDw8PValSRf369VNw8H/XMb6+vkpKSlKrVq2sy0qVKqUaNWpo165dkqTd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qVPHfiq2JA0bNkz5+flXnb186tSpWrZsmerVq6fFixdr6dKl9mtaent76/PPP1fVqlV15513KjExUUOHDtX58+dLdATpAw88oHHjxmncuHFKTk7WypUr9c9//lM1a9YsvQ0vgXvvvVcLFizQokWLlJycrPT0dC1atEjx8fGSpJ49e+qhhx7S6NGjlZKSog0bNmjSpEm39Jrt2rVTzZo11bp1a/Xt21fdu3fXlClTih0bEhKiRYsW6e2331adOnX05JNP6tlnn72l1wdQuVgMwzDMDgEAAAAAQEXyxRdfqE2bNjp8+LB9oqJfWCwWrVixQr169TInXCWVkZGhU6dO6b333jM7CoBKglPpAQAAAAAooby8PB06dEiTJk1S3759ryhFAQAVB6fSAwAAAABQQm+++aZq1aqlnJwcPf3002XyGr6+vle9rVu37obXN2PGjKuur3PnzmWwBTentLcbAK6HU+kBAAAAAHAge/bsuepjUVFR9hnZS+rkyZM6efJksY95eXkpKirqhtZXVkp7uwHgeihGAQAAAAAAADgdTqUHAAAAAAAA4HQoRgEAAAAAAAA4HYpRAAAAAAAAAE6HYhQAAAAAAACA06EYBQAAAAAAAOB0KEYBAAAAAAAAOB2KUQAAAAAAAABOh2IUAAAAAAAAgNP5/xudEuHqjCShAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create subplots in a 1x2 grid\n", "fig, axes = plt.subplots(1, 2, figsize=(14, 6))\n", "\n", "# Plot 1: Booking Status Distribution (Pie Chart)\n", "booking_status_counts = df['booking_status'].value_counts()\n", "labels = booking_status_counts.index\n", "sizes = booking_status_counts.values\n", "\n", "axes[0].pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)\n", "axes[0].set_title('Booking Status Distribution')\n", "axes[0].axis('equal') # Equal aspect ratio ensures that the pie chart is circular\n", "\n", "# Plot 2: Frequency of Meal Plan by Booking Status (Countplot)\n", "sns.countplot(data=df, x=\"type_of_meal_plan\", hue=\"booking_status\", ax=axes[1])\n", "axes[1].set_title('Frequency of Meal Plan by Booking Status')\n", "\n", "# Display the plots in a tight layout\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From information above we can take an information that visitors that not canceled their booking is bigger than canceled their booking `67.2%` to `32.8%`. We can take a look the comparison between the visitors that not canceled and canceled in how they chose meal plan, the meal plan 1 is occupied the first place than followed by not selected meal, than meal plan 2." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2IAAAIhCAYAAAAsFAnkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACBuklEQVR4nOzdd3yN9///8ecR2eMgZBEJtWIrLaEtasQIpYOWBq3RlhqfoqqTaqmtpUq1NtVJWzSoVWpHo/ZozUrQithB8v794Zfr60gQ68R43G+3c7s51/W6rut1jXOcZ67rXMdmjDECAAAAADhNjuxuAAAAAADuNwQxAAAAAHAyghgAAAAAOBlBDAAAAACcjCAGAAAAAE5GEAMAAAAAJyOIAQAAAICTEcQAAAAAwMkIYgAAAADgZAQx3HEmTpwom82W6aNHjx7Z3d59a+HChapUqZK8vb1ls9k0a9asTOv27Nlj7a8+ffpkWvPiiy9aNbdajRo1VLp06Vsyry1btqhPnz7as2dPlqdZvXq1mjZtqoIFC8rd3V2BgYGKjIxU9+7db0lPd5PTp0+rT58+WrJkyTVra9SoccXX/aWPKx1Td6rw8HBFR0ff9uVcvp28vb0VERGhvn376tSpU7d12X369JHNZtO///571bo2bdooPDz8tvZyJcYYzZgxQ48++qgCAgLk4eGhAgUKKCoqSl988YVVdz3H7JUcPHhQffr0UXx8/M03DuCeljO7GwCuZMKECSpRooTDsJCQkGzq5v5mjFGzZs1UrFgx/fTTT/L29lbx4sWvOo2vr68mTpyod999Vzly/N/ffE6ePKlvv/1Wfn5+On78+O1u/aZs2bJFffv2VY0aNbL0AXLOnDlq3LixatSooUGDBik4OFgJCQlat26dZsyYoaFDh97+pu8gp0+fVt++fSVdDFpXM3r0aIfjYc6cOfrggw8yvA8UKFDgtvR6L3j66aetwH/y5EktXbpU77//vv788099//332dyd9M4776hr167ZsuzevXtr4MCBat++vXr27ClfX1/t3btXixYt0o8//qh27dpJur5j9koOHjyovn37Kjw8XOXLl79FawDgXkQQwx2rdOnSqlSpUpZqz58/L5vNppw5OaRvh4MHD+ro0aNq2rSpatWqlaVpmjdvri+++EILFy5UnTp1rOFff/21UlNT1aRJE02dOvWW9Xj69Gl5eXndsvndiEGDBqlQoUKaN2+ew7H47LPPatCgQdnY2Z2vZMmSDs+3bdsm6freB+53gYGBqlKlivW8du3a2rt3r6ZNm6azZ8/Kw8MjG7uTHnjggWxZ7pkzZzRixAi1atVKn3/+ucO4Nm3aKC0tLVv6AgAuTcRdZ8mSJbLZbJoyZYq6d++u/Pnzy93dXbt27ZIk/frrr6pVq5b8/Pzk5eWlatWqaeHChRnmM2fOHJUvX17u7u4qVKiQhgwZYl1iky79MruJEydmmD6zy6R27typFi1aKCAgQO7u7oqIiNCnn36aaf9fffWV3nrrLYWEhMjPz0+1a9fW9u3bMywnNjZWtWrVkt1ul5eXlyIiIjRgwABJ0pQpU2Sz2bRy5coM073//vtydXXVwYMHr7o9ly9frlq1asnX11deXl6qWrWq5syZY43v06ePdRaiV69estlsWTo7VLx4cVWtWlXjx493GD5+/Hg9+eSTstvtGab5+uuvVbduXQUHB8vT01MRERF64403Mlxa1aZNG/n4+Gjjxo2qW7eufH19rxoQZ86cKS8vL7Vr104XLlyQJK1bt06NGzdWnjx55OHhoQoVKuibb76xppk4caKeeeYZSVLNmjWtS74yOxbS/ffff8qbN2+mfxC49KzgpesbGRkpb29v+fj4KCoqSn/88UeGunHjxqlYsWJyd3dXyZIlNX369AyXeaUfq4MHD9bAgQMVHh4uT09P1ahRQzt27ND58+f1xhtvKCQkRHa7XU2bNtXhw4dvqKf07b9r1y41aNBAPj4+Cg0NVffu3ZWSkmL1ky9fPklS3759re3Xpk2bK26/q7meYz398tRly5apSpUq8vT0VP78+fXOO+8oNTXVYdpz587pgw8+UIkSJeTu7q58+fLphRde0JEjRxzqFi1apBo1asjf31+enp4qWLCgnnrqKZ0+fTpL/c+cOVNly5aVh4eHChcurE8++cQad/LkSeXKlUsvvfRShun27NkjFxcXDR48OEvLuZzdbpfNZpOLi4vD8PHjx6tcuXLy8PBQnjx51LRpU23dujXD9D/99JMiIyPl5eUlX19f1alTJ9N9cLlt27apcOHCqly5snWcZXZpos1m06uvvqopU6YoIiJCXl5eKleunGbPnp1hnj/++KPKli0rd3d3FS5cWB9//HGG9+zMnDp1SikpKQoODs50fPpr81rH7K5du/TCCy+oaNGi8vLyUv78+dWoUSNt3LjRmteSJUv00EMPSZJeeOGFDJfU1qhRI9MzbZltm88++0zlypWTj4+PfH19VaJECb355ptXXVcAdxkD3GEmTJhgJJlVq1aZ8+fPOzyMMWbx4sVGksmfP795+umnzU8//WRmz55t/vvvPzNlyhRjs9lMkyZNzA8//GB+/vlnEx0dbVxcXMyvv/5qLePXX381Li4u5pFHHjE//PCD+fbbb81DDz1kChYsaC59WezevdtIMhMmTMjQpyTz3nvvWc83b95s7Ha7KVOmjJk8ebKZP3++6d69u8mRI4fp06ePVZfef3h4uGnZsqWZM2eO+eqrr0zBggVN0aJFzYULF6zaL774wthsNlOjRg0zffp08+uvv5rRo0ebjh07GmOMSUlJMUFBQaZly5YOvZ0/f96EhISYZ5555qrbesmSJcbV1dVUrFjRfP3112bWrFmmbt26xmazmRkzZhhjjNm/f7/54YcfjCTTuXNns3LlSrN+/forzjN9mw0ePNh8+eWXxsPDwxw9etQYY8y2bduMJLNo0SLTqVMnc/lbUL9+/czw4cPNnDlzzJIlS8yYMWNMoUKFTM2aNR3qWrdubVxdXU14eLgZMGCAWbhwoZk3b54xxpjq1aubUqVKWbXDhg0zLi4upl+/ftawRYsWGTc3N/Poo4+ar7/+2sTGxpo2bdo47OvDhw+b/v37G0nm008/NStXrjQrV640hw8fvuK6t2vXztpOq1atMufOnbti7YcffmhsNpt58cUXzezZs80PP/xgIiMjjbe3t9m8ebNVN3bsWCPJPPXUU2b27Nlm2rRpplixYiYsLMyEhYVl2O5hYWGmUaNGZvbs2Wbq1KkmMDDQFCtWzMTExJgXX3zR/PLLL2bMmDHGx8fHNGrU6IZ6at26tXFzczMRERFmyJAh5tdffzXvvvuusdlspm/fvsYYY86ePWtiY2ONJNO2bVtr++3ateuK2+RS6e8Da9euNcZc37FevXp14+/vb0JCQswnn3xi5s2bZ7p06WIkmU6dOll1qamppl69esbb29v07dvXLFiwwHzxxRcmf/78pmTJkub06dPWtvXw8DB16tQxs2bNMkuWLDHTpk0zMTExJikp6arrERYWZvLnz28KFixoxo8fb+bOnWtatmxpvUbS/e9//zPe3t7m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lSrm559/zrS3671r4tVkdtfEFStWmMjISOPl5WXy5ctn2rVrZ9avX59hu7Ru3dp4e3tnOt/Lb19vjDGbNm0yQUFB5sEHH7Rusb1hwwbTrFkzExAQYFxdXU1QUJB5/PHHzZgxYxymHTFihClUqJBxcXG54p3Q0n399demRYsWpmjRosbHx8e4urqaggULmpiYGLNly5YM9bNmzTI1a9Y0fn5+xt3d3YSFhZmnn37a4acWjDHm888/N0WKFDFubm6mWLFiZvz48eaJJ54wFSpUsGqutN2vdLxd6XWWlZ6utP0ze/38+uuvpkKFCsbd3d1IMq1bt77i9stKf8Zc+1hPPwaWLFliKlWqZNzd3U1wcLB58803M9wp8/z582bIkCGmXLlyxsPDw/j4+JgSJUqYl156yezcudMYY8zKlStN06ZNTVhYmHF3dzf+/v6mevXq5qeffrrmeoSFhZmGDRua7777zpQqVcq4ubmZ8PBwM2zYsCtO06ZNG5MzZ05z4MCBa84/nS67W6Krq6spXLiweeGFFzL9yYAvvvjCev+z2+3miSeecPiJgnSzZs0ylStXNh4eHsbb29vUqlXL/P777w41l9++3hhjjh07ZqpVq2by5Mlj7cMr3TXx0p8USBcWFpbhWJk5c6YpU6aMw3t2ly5dTO7cua+6bVJSUsyQIUNM/fr1TcGCBY27u7vx8PAwERER5vXXXzf//fefQ/2VjtmkpCTTtm1bExAQYLy8vMwjjzxili1blumdEL/66itTokQJ4+rqmuH/ikmTJpmIiAjj4eFhSpYsab7++usM22bSpEmmZs2aJjAw0Li5uZmQkBDTrFkz8+eff151XQHcXWzGZOFWQcB9ok+fPurbt2+W7qB1p/n555/VuHFjzZkz55rfdcDd7dixYypWrJiaNGmizz//PLvbcbprHes1atTQv//+a30n725y7tw5hYeH65FHHnH4gXFkdP78eZUvX1758+fX/Pnzs7sdALhuXJoI3OW2bNmivXv3qnv37ipfvrzq16+f3S3hFkpMTNSHH36omjVryt/fX3v37tXw4cN14sSJLN2x715yLx/rR44c0fbt2zVhwgQdOnRIb7zxRna3dMdp27at6tSpY12qN2bMGG3dulUff/xxdrcGADeEIAbc5Tp27Kjff/9dDz74oCZNmnTLvteFO4O7u7v27Nmjjh07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BDjcov9yAwYMUN++fW98BQEAAADcl27ojNgzzzyj+fPn3+peMvj66681depUTZ8+XevXr9ekSZM0ZMgQTZo0yaHu0ksjpYuXLF4+7HKX12RWf6359O7dW8nJydZj//79WVktAAAAAE60Z88e2Ww2xcfH39R8atSooW7dut2Snm7ojFiRIkX0zjvvaNWqVSpTpoxcXV0dxnfp0uWWNNezZ0+98cYbevbZZyVJZcqU0d69ezVgwAC1bt1aQUFBki6e0QoODramO3z4sHWWLCgoSOfOnVNSUpLDWbHDhw+ratWqVs2hQ4cyLP/IkSMZzrZdyt3dXe7u7je/ogAAALhjVew52anLixvc6rrq27Rpo0mTJmnAgAF64403rOGzZs1S06ZNZYzJ0nzCw8PVrVu36woaxhiNGzdOX375pTZv3qycOXOqSJEiev7559WhQwd5eXld17rcT27ojNjnn38uHx8fLV26VKNGjdLw4cOtx4gRI25Zc6dPn1aOHI4turi4WHdpLFSokIKCgrRgwQJr/Llz57R06VIrZFWsWFGurq4ONQkJCdq0aZNVExkZqeTkZK1Zs8aqWb16tZKTk60aAAAA4E7l4eGhgQMHKikpyanLjYmJUbdu3fTEE09o8eLFio+P1zvvvKMff/zRKVfQ3c1uKIjt3r37io+///77ljXXqFEjffjhh5ozZ4727NmjmTNnatiwYWratKmki5cTduvWTf3799fMmTO1adMmtWnTRl5eXmrRooUkyW63q23bturevbsWLlyoP/74Q88//7zKlClj3UUxIiJC9erVU/v27bVq1SqtWrVK7du3V3R0NHdMBAAAwB2vdu3aCgoK0oABA65Y8/3336tUqVJyd3dXeHi4hg4dao2rUaOG9u7dq//973+y2WzX/JqPJH3zzTeaNm2avvrqK7355pt66KGHFB4erieeeEKLFi1SzZo1JUlr165VnTp1lDdvXtntdlWvXj3DDf5sNpu++OILNW3aVF5eXipatKh++uknh5rNmzerYcOG8vPzk6+vrx599FH99ddf1vgJEyYoIiJCHh4eKlGihEaPHn3V/rds2aIGDRrIx8dHgYGBiomJ0b///muNP3XqlFq1aiUfHx8FBwc7bK9b4YaCmLOMHDlSTz/9tDp27KiIiAj16NFDL730kvr162fVvP766+rWrZs6duyoSpUq6Z9//tH8+fOt3xCTpOHDh6tJkyZq1qyZqlWrJi8vL/38888OP0A9bdo0lSlTRnXr1lXdunVVtmxZTZkyxanrCwAAANwIFxcX9e/fXyNHjtSBAwcyjI+Li1OzZs307LPPauPGjerTp4/eeecdTZw4UZL0ww8/qECBAnr//feVkJCghISEay5z2rRpKl68uJ544okM42w2m+x2uyTpxIkTat26tZYtW6ZVq1apaNGiatCggU6cOOEwTd++fdWsWTP9+eefatCggVq2bKmjR49Kkv755x899thj8vDw0KJFixQXF6cXX3xRFy5ckHTxp6feeustffjhh9q6dav69++vd955J8O9JdIlJCSoevXqKl++vNatW6fY2FgdOnRIzZo1s2p69uypxYsXa+bMmZo/f76WLFmiuLi4a26XrLKZrF40eokXX3zxquPHjx9/ww3dzY4fPy673a7k5GT5+flldzu4Azn7GvPbZabv4Oxu4aYVfHdjdrcAAMgGV/u8dvbsWe3evVuFChWSh4eHNfxu+I7YsWPHNGvWLEVGRqpkyZL68ssvHb4j1rJlSx05csThcsHXX39dc+bM0ebNmyVd/3fESpYsqaJFi+rHH3+8rn5TU1OVO3duTZ8+XdHR0ZIuBre3337bOuFy6tQp+fr6au7cuapXr57efPNNzZgxQ9u3b89wfwpJKliwoAYOHGjdXV26+JNbc+fO1YoVK7Rnzx4VKlRIf/zxh8qXL693331Xq1ev1rx586z6AwcOKDQ0VNu3b1dISIj8/f01efJkNW/eXJJ09OhRFShQQB06dLji17GudAxl5oZvX3+p8+fPa9OmTTp27Jgef/zxG5klAAAAgJs0cOBAPf744+revbvD8K1bt2Y4c1WtWjWNGDFCqampDleKZVVW7lQuXbxJ3rvvvqtFixbp0KFDSk1N1enTp7Vv3z6HurJly1r/9vb2lq+vrw4fPixJio+P16OPPpppCDty5Ij279+vtm3bqn379tbwCxcuWGflLhcXF6fFixfLx8cnw7i//vpLZ86c0blz5xQZGWkNz5Mnzy392tINBbGZM2dmGJaWlqaOHTuqcOHCN90UAAAAgOv32GOPKSoqSm+++abatGljDc8sNN3AhXEOihUrpq1bt16zrk2bNjpy5IhGjBihsLAwubu7KzIyUufOnXOouzxk2Ww26yZ9np6e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V5MrVy4TEBBgxo4da06ePGnatGljfHx8TOHChc3cuXMdesnKfDt37mx69uxpcufObQIDA61jx5grv+537dplGjdubAICAoy3t7epVKmSWbBggcOyw8LCTL9+/Uzr1q2Nn5+fadWqlalZs6bp1KmTQ92///5r3NzczMKFCzPZk8CdhSB2H/nvv/+MzWYz/fv3z3R8+/btTe7cuc2///5r2rdvbyIjI01CQoL577//zH///ZdhmDFZC2IlSpQws2fPNtu3bzdPP/20CQsLsz5U/fnnn8bHx8cMHz7c7Nixw/z++++mQoUKpk2bNrd1W9wvsrrP09LSTFhYmMmTJ4/59NNPzc6dO82AAQNMjhw5zNatW40xWQtirq6upnbt2mbt2rUmLi7OREREmBYtWljL+/zzz01wcLD5/vvvzd9//22+//57kydPHjNx4sTbuh3uVtfaf8YYk5aWZipUqGAeeeQRs27dOrNq1Srz4IMPWn8sMebiB8D0YLx+/XqzYcMGK4j5+PiYrl27mm3btpmpU6caLy8v8/nnn1vTNm7c2ERERJjffvvNxMfHm6ioKFOkSBFz7tw5Y8z/7feqVaua33//3Wzbts2cPHnSLFy40EyZMsVs2bLFbNmyxbRt29YEBgZaH8APHz5sJJkJEyaYhIQEc/jwYWOMMbGxscbPz89MnDjR/PXXX2b+/PkmPDzc9OnT5zZs4bvLl19+aSpVqmSMMebnn3824eHhJi0tzYwcOdIULFjQIUCPHDnS5M+f36SmphpjMr5XDx8+3CxatMj8/fffZuHChaZ48eLmlVdeMcYYk5KSYkaMGGH8/PxMQkKCSUhIsELapfPJ6rHn4+NjnnzySbNx40bz22+/maCgIPPmm2/exi11a93K16GPj495+umnzebNm81PP/1k3NzcTFRUlOncubPZtm2bGT9+vJFkVq5caU0nyfj7+5tx48aZ7du3m7ffftu4uLiYLVu2GGMyvjcfPHjQ5M2b1/Tu3dts3brVrF+/3tSpU8fUrFnTmmf16tWNr6+v6devn9mxY4fp16+fyZEjh6lfv775/PPPzY4dO8wrr7xi/P39zalTp65rvn5+fqZPnz5mx44dZtKkScZms5n58+cbY678uo+Pjzdjxowxf/75p9mxY4d56623jIeHh9m7d6817/QgP3jwYLNz506zc+dOM23aNJM7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hzZu3KgJEyZo2LBhTuvhbjN69Gilpqbq4Ycf1vfff6+dO3dq69at+uSTTxQZGanatWurbNmyatmypdavX681a9aoVatWql69eobLeDKzf/9+vfbaa9q+fbu++uorjRw5Ul27dpV08UzAE088ofbt22v58uXasGGDnn/+eeXPn19PPPHEVedbpEgRTZkyRVu3btXq1avVsmVLeXp6OtSEh4dr4cKFSkxMVFJSkiTp3Xff1eTJk9WnTx9t3rxZW7du1ddff6233377Brfg3W/27NlKSkpS27ZtVbp0aYfH008/rS+//FLe3t564okn9M4772jr1q1q0aLFFef3wAMP6MKFCxo5cqT+/vtvTZkyRWPGjHGoCQ8P18mTJ7Vw4UL9+++/mV4WerPH3t3kdr8Or+Xbb7/V+PHjtWPHDr333ntas2aNXn311UxrO3XqpKNHj+q5557TmjVr9Pfff2v+/Pl68cUXrxmur+ZWzTez132RIkX0ww8/WH9gaNGixXWdNW3Xrp0++ugjpaamqmnTpte9bkB2IYjdZ4oWLap169bpgQceUPPmzfXAAw+oQ4cOqlmzplauXKk8efI4tZ+yZctq6dKl2rlzpx599FFVqFBB77zzjsNlDrg5d9I+b9eunb744gtNnDhRZcqUUfXq1TVx4kTOiF1FoUKFtH79etWsWVPdu3dX6dKlVadOHS1cuFCfffaZ9eOouXPn1mOPPabatWurcOHC+vrrr7M0/1atWunMmTN6+OGH1alTJ3Xu3NnhB3snTJigihUrKjo6WpGRkTLGaO7cuRkuP7rc+PHjlZSUpAoVKigmJkZdunRRQECAQ83QoUO1YMEChYaGqkKFCpKkqKgozZ49WwsWLNBDDz2kKlWqaNiwYff1pUZffvmlateunemPpz/11FOKj4/X+vXr1bJlS23YsEGPPvroVS/tLl++vIYNG6aBAweqdOnSmjZtmgYMGOBQU7VqVb388stq3ry58uXLp0GDBmWYz80ee3eT2/06vJa+fftqxowZKlu2rCZNmqRp06apZMmSmdaGhITo999/V2pqqqKiolS6dGl17dpVdrv9ps4q36r5Zva6Hz58uHLnzq2qVauqUaNGioqK0oMPPpjleT733HPKmTOnWrRocV9fwoy7j81c6UsAAIB7Wo0aNVS+fHmNGDEiu1sBcAU2m00zZ8684vfT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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 6))\n", "sns.countplot(data=df, x=\"market_segment_type\", hue=\"booking_status\")\n", "plt.title('Frequency of Market Segment Types by Booking Status')\n", "plt.legend(title=\"Booking Status\", loc=\"center left\", bbox_to_anchor=(1, 0.5))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looking into the information above we know that market segment of booking status `online` booking status occupied the first place or most often did by visitors that not canceled and canceled booking status than followed by `ofline` for sencond place, corporate in the third place, aviation, and complementary in the last position" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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XHeek/6MHTtWTz31lFq3bq0+ffooMDBQv//+u3755RfrbHmmF154QY888ohsNpv69euXo2OMHDlSbdq0UYsWLTRkyBC5u7tr0qRJ2rVrl7788ssbfqVVbo0aNUoNGzbUO++8o88//1xvvfWWlixZohYtWujNN9+Uv7+/5s6dq6VLl+r999+X3W6XJL344ouaNWuWOnbsqLfffltlypTR0qVLNWnSJD377LN5+seJ3KhYsaL69u2rSZMmaf369brnnnty9B5MTExUixYt1KNHD1WpUkW+vr7aunWrYmJi9MADD0jK3fv5RqpUqaLw8HCNHDlSR48ezfKd41WqVFGFChX06quvyhgjf39/LV68ONspwTVq1JB05f3eq1cvubm5qXLlyg5ntzM9/vjj+vjjj9WrVy8dOnRINWrU0Pr16zVixAh16NBBrVu3zu1L/o/k5DNSrFgxPfvsszpy5IgqVaqkZcuWacqUKXr22WdVunRpSVL37t01d+5cdejQQS+88IIaNGggNzc3HTt2TD/++KPuu+8+3X///fr000+1evVqdezYUaVLl9bFixc1bdo0ScpR30NCQtSlSxdFR0crODhYc+bM0YoVKzRq1Kgswfmxxx7T0KFDtW7dOv3nP//J8R+EpCuzGzIv5bh48aJiY2P17rvvqkiRItaMkCJFiuiNN97Qa6+9pscff1yPPvqoTp8+rWHDhsnT01NvvfWWpCtfY/f++++rZ8+e6tSpk55++mmlpqZq9OjROnv2rN57771s2xAcHKy1a9cqIiJC9957r1asWKGwsLAc9+Fa3n77bXXs2FERERF64YUXlJGRodGjR6tw4cJZLo+5WmJiosqWLauHH35YrVu3VmhoqJKTk7VmzRp9+OGHqlq1qvV59fX1VZkyZfTdd9+pVatW8vf3V/HixVW2bFl16tRJM2bMUJUqVVSzZk1t375do0ePznLpVoUKFeTl5aW5c+eqatWqKly4sEJCQhQSEqLIyEhNnjxZjz32mPr06aPTp0/r/fffl5+fn8M++vTpIy8vLzVp0kTBwcGKj4/XyJEjZbfbra8EBACnlT/3DwRwM7K7+/bfZd79/r///W+269euXWs6duxo/P39jZubmylZsqTp2LFjlvpFixaZmjVrGnd3d1O6dGnz3nvvWXeT/rvExETz1FNPmcDAQOPj42M6d+5sDh06lO2dmg8ePGiefPJJU7JkSePm5mZKlChhGjdubN59990btv9a3xSwbNky06xZM+Pj42O8vb1NtWrVHL7OLlNqaqrx8PAw7dq1y/Z1uZaffvrJtGzZ0vj4+BgvLy/TqFGjLHd1v5m791+r9uGHHzaFChWyvs5q586dpnPnzsZutxt3d3dTq1atbO9effjwYdOjRw9TrFgx4+bmZipXrmxGjx7tcKfvax37Wq/5jd5rma71lX3GGHPixAlTuHBh06JFC2vZjd6DFy9eNM8884ypWbOm8fPzM15eXqZy5crmrbfecviqspzs60bty/TZZ58ZScbLyyvbbyvYs2ePadOmjfH19TVFixY1Dz/8sDly5Ei27/OhQ4eakJAQ4+LiYiSZH3/80RiT/R3GT58+bZ555hkTHBxsChUqZMqUKWOGDh1qLl686FCnq74WL1OZMmVMr169rtmvq11vTG/0GWnWrJmpXr26WbNmjalXr57x8PAwwcHB5rXXXrO+MjRTenq6GTNmjKlVq5bx9PQ0hQsXNlWqVDFPP/20OXDggDHGmI0bN5r777/flClTxnh4eJhixYqZZs2amUWLFt2wH2XKlDEdO3Y033zzjalevbpxd3c3ZcuWNePGjbvmNlFRUaZQoULm2LFjN9x/Jl111343NzdTvnx588QTT1if0b/7/PPPrd+bdrvd3HfffWb37t1Z6hYuXGgaNmxoPD09jY+Pj2nVqpX5+eefHWqye9+ePXvWNGnSxPj7+1tjeK279+f0/bJgwQJTo0YNh9/1AwYMMEWLFr3ua5OammrGjBlj2rdvb0qXLm08PDyMp6enqVq1qnn55ZfN6dOnHepXrlxp6tSpYzw8PIwkqx0JCQmmd+/eJiAgwHh7e5t77rnH/PTTT9l+Xr788ktTpUoV4+bmluWzN3PmTFO1alXj6elpqlWrZr766qssr83MmTNNixYtTGBgoHF3dzchISGmW7du5tdff71uXwHAGdiMycHtVQH860VHR2vYsGE5uiPznWbx4sXq0qWLli5desNrTIF/oxt9Rpo3b66//vpLu3btyofW/TNpaWkqW7as7rnnHn399df53Zw7Wnp6umrXrq2SJUtq+fLl+d0cAEAeYXo/AKe1Z88eHT58WIMHD1bt2rUdvoYNgHN/Rk6dOqV9+/Zp+vTpOnHihF599dX8btIdp3fv3mrTpo013f3TTz/V3r17c/wtCgCAgoHQD8Bp9evXTz///LPuvvtuzZw5M8+vwwcKOmf+jCxdulRPPPGEgoODNWnSpBx/Td+/yblz5zRkyBCdOnVKbm5uuvvuu7Vs2bLbfk8JAMCtxfR+AAAAAACcVL5+Zd/IkSNVv359+fr6KiAgQF27dtW+ffscaowxio6OVkhIiLy8vNS8efMsX62Smpqq/v37q3jx4vLx8VGXLl2yfH93QkKCIiMjZbfbZbfbFRkZqbNnzzrUHDlyRJ07d5aPj4+KFy+uAQMGOHyVDQAAAAAABUm+hv61a9fqueee06ZNm7RixQpdunRJbdu2VUpKilXz/vvva9y4cZo4caK2bt2qoKAgtWnTRufOnbNqBg4cqAULFmjevHlav369kpOT1alTJ2VkZFg1PXr0UGxsrGJiYhQTE6PY2FhFRkZa6zMyMtSxY0elpKRo/fr1mjdvnr799lsNHjz49rwYAAAAAADksTtqev+pU6cUEBCgtWvX6t5775UxRiEhIRo4cKBeeeUVSVfO6gcGBmrUqFF6+umnlZiYqBIlSmj27Nl65JFHJEnHjx9XaGioli1bpoiICO3du1fVqlXTpk2b1LBhQ0nSpk2bFB4ert9++02VK1fW999/r06dOuno0aMKCQmRJM2bN09RUVE6efJklu97BQAAAADgTndH3cgvMTFRkuTv7y9JOnjwoOLj49W2bVurxsPDQ82aNdOGDRv09NNPa/v27UpPT3eoCQkJUVhYmDZs2KCIiAht3LhRdrvdCvyS1KhRI9ntdm3YsEGVK1fWxo0bFRYWZgV+SYqIiFBqaqq2b9+uFi1aZGlvamqqUlNTreeXL1/WmTNnVKxYMae6GRIAAACA3DHG6Ny5cwoJCZGLS75OsMa/3B0T+o0xGjRokO655x6FhYVJkuLj4yVJgYGBDrWBgYE6fPiwVePu7q6iRYtmqcncPj4+XgEBAVmOGRAQ4FBz9XGKFi0qd3d3q+ZqI0eO1LBhw3LbVQAAAAD/EkePHlWpUqXyuxn4F7tjQv/zzz+vX3/9VevXr8+y7uqz5saYG55Jv7omu/qbqfm7oUOHatCgQdbzxMRElS5dWkePHuVyAAAAAOBfLCkpSaGhofL19c3vpuBf7o4I/f3799eiRYu0bt06h7+CBQUFSbpyFj44ONhafvLkSeusfFBQkNLS0pSQkOBwtv/kyZNq3LixVXPixIksxz116pTDfjZv3uywPiEhQenp6VlmAGTy8PCQh4dHluV+fn6EfgAAAABc9ot8l68Xlxhj9Pzzz2v+/PlavXq1ypUr57C+XLlyCgoK0ooVK6xlaWlpWrt2rRXo69atKzc3N4eauLg47dq1y6oJDw9XYmKitmzZYtVs3rxZiYmJDjW7du1SXFycVbN8+XJ5eHiobt26ed95AAAAAABusXy9e3+/fv30xRdf6LvvvlPlypWt5Xa7XV5eXpKkUaNGaeTIkZo+fboqVqyoESNGaM2aNdq3b581VebZZ5/VkiVLNGPGDPn7+2vIkCE6ffq0tm/fLldXV0lS+/btdfz4cU2ePFmS1LdvX5UpU0aLFy+WdOUr+2rXrq3AwECNHj1aZ86cUVRUlLp27aoJEybkqD9JSUmy2+1KTEzkTD8AAADwL0Y2wJ0iX0P/taa6TJ8+XVFRUZKuzAYYNmyYJk+erISEBDVs2FAff/yxdbM/Sbp48aJeeuklffHFF7pw4YJatWqlSZMmKTQ01Ko5c+aMBgwYoEWLFkmSunTpookTJ6pIkSJWzZEjR9SvXz+tXr1aXl5e6tGjh8aMGZPtFP7s8MEGAAAAIJENcOfI19DvbPhgAwAAAJDIBrhz8IWRAAAAAAA4KUI/AAAAAABOitAPAAAAAICTIvQDAAAAAOCkCP0AAAAAADgpQj8AAAAAAE6K0A8AAAAAgJMi9AMAAAAA4KQI/QAAAAAAOClCPwAAAAAATorQDwAAAACAkyL0AwAAAADgpAj9AAAAAAA4KUI/AAAAAABOitAPAAAAAICTKpTfDfg3q/vSrPxuQq5sH/14fjcBAAAAAJALnOkHAAAAAMBJEfoBAAAAAHBShH4AAAAAAJwUoR8AAAAAACdF6AcAAAAAwEkR+gEAAAAAcFKEfgAAAAAAnBShHwAAAAAAJ0XoBwAAAADASRH6AQAAAABwUoR+AAAAAACcFKEfAAAAAAAnRegHAAAAAMBJEfoBAAAAAHBShH4AAAAAAJwUoR8AAAAAACdF6AcAAAAAwEkR+gEAAAAAcFKEfgAAAAAAnBShHwAAAAAAJ0XoBwAAAADASRH6AQAAAABwUoR+AAAAAACcFKEfAAAAAAAnRegHAAAAAMBJEfoBAAAAAHBShH4AAAAAAJwUoR8AAAAAACdF6AcAAAAAwEkR+gEAAAAAcFKEfgAAAAAAnFS+hv5169apc+fOCgkJkc1m08KFCx3W22y2bB+jR4+2apo3b55lfffu3R32k5CQoMjISNntdtntdkVGRurs2bMONUeOHFHnzp3l4+Oj4sWLa8CAAUpLS7tVXQcAAAAA4JbL19CfkpKiWrVqaeLEidmuj4uLc3hMmzZNNptNDz74oENdnz59HOomT57ssL5Hjx6KjY1VTEyMYmJiFBsbq8jISGt9RkaGOnbsqJSUFK1fv17z5s3Tt99+q8GDB+d9pwEAAAAAuE0K5efB27dvr/bt219zfVBQkMPz7777Ti1atFD58uUdlnt7e2epzbR3717FxMRo06ZNatiwoSRpypQpCg8P1759+1S5cmUtX75ce/bs0dGjRxUSEiJJGjt2rKKiojR8+HD5+fn9k24CAAAAAJAvCsw1/SdOnNDSpUvVu3fvLOvmzp2r4sWLq3r16hoyZIjOnTtnrdu4caPsdrsV+CWpUaNGstvt2rBhg1UTFhZmBX5JioiIUGpqqrZv337NNqWmpiopKcnhAQAAAADAnSJfz/TnxsyZM+Xr66sHHnjAYXnPnj1Vrlw5BQUFadeuXRo6dKh++eUXrVixQpIUHx+vgICALPsLCAhQfHy8VRMYGOiwvmjRonJ3d7dqsjNy5EgNGzbsn3YNAAAAAIBbosCE/mnTpqlnz57y9PR0WN6nTx/r57CwMFWsWFH16tXTjh07dPfdd0u6ckPAqxljHJbnpOZqQ4cO1aBBg6znSUlJCg0NzXmnAAAAAAC4hQrE9P6ffvpJ+/bt01NPPXXD2rvvvltubm46cOCApCv3BThx4kSWulOnTlln94OCgrKc0U9ISFB6enqWGQB/5+HhIT8/P4cHAAAAAAB3igIR+qdOnaq6deuqVq1aN6zdvXu30tPTFRwcLEkKDw9XYmKitmzZYtVs3rxZiYmJaty4sVWza9cuxcXFWTXLly+Xh4eH6tatm8e9AQAAAADg9sjX6f3Jycn6/fffrecHDx5UbGys/P39Vbp0aUlXpsz/97//1dixY7Ns/8cff2ju3Lnq0KGDihcvrj179mjw4MGqU6eOmjRpIkmqWrWq2rVrpz59+lhf5de3b1916tRJlStXliS1bdtW1apVU2RkpEaPHq0zZ85oyJAh6tOnD2fvAQAAAAAFVr6e6d+2bZvq1KmjOnXqSJIGDRqkOnXq6M0337Rq5s2bJ2OMHn300Szbu7u7a9WqVYqIiFDlypU1YMAAtW3bVitXrpSrq6tVN3fuXNWoUUNt27ZV27ZtVbNmTc2ePdta7+rqqqVLl8rT01NNmjRRt27d1LVrV40ZM+YW9h4AAAAAgFvLZowx+d0IZ5GUlCS73a7ExMQczRCo+9Ks29CqvLN99OP53QQAAACgQMhtNgBulQJxTT8AAAAAAMg9Qj8AAAAAAE6K0A8AAAAAgJMi9AMAAAAA4KQI/QAAAAAAOClCPwAAAAAATorQDwAAAACAkyL0AwAAAADgpAj9AAAAAAA4KUI/AAAAAABOitAPAAAAAICTIvQDAAAAAOCkCP0AAAAAADgpQj8AAAAAAE6K0A8AAAAAgJMi9AMAAAAA4KQI/QAAAAAAOClCPwAAAAAATorQDwAAAACAkyL0AwAAAADgpAj9AAAAAAA4KUI/AAAAAABOitAPAAAAAICTIvQDAAAAAOCkCP0AAAAAADgpQj8AAAAAAE6K0A8AAAAAgJMi9AMAAAAA4KQI/QAAAAAAOClCPwAAAAAATorQDwAAAACAkyL0AwAAAADgpAj9AAAAAAA4KUI/AAAAAABOitAPAAAAAICTIvQDAAAAAOCkCP0AAAAAADgpQj8AAAAAAE6K0A8AAAAAgJMi9AMAAAAA4KQI/QAAAAAAOClCPwAAAAAATorQDwAAAACAkyL0AwAAAADgpAj9AAAAAAA4KUI/AAAAAABOitAPAAAAAICTytfQv27dOnXu3FkhISGy2WxauHChw/qoqCjZbDaHR6NGjRxqUlNT1b9/fxUvXlw+Pj7q0qWLjh075lCTkJCgyMhI2e122e12RUZG6uzZsw41R44cUefOneXj46PixYtrwIABSktLuxXdBgAAAADgtsjX0J+SkqJatWpp4sSJ16xp166d4uLirMeyZcsc1g8cOFALFizQvHnztH79eiUnJ6tTp07KyMiwanr06KHY2FjFxMQoJiZGsbGxioyMtNZnZGSoY8eOSklJ0fr16zVv3jx9++23Gjx4cN53GgAAAACA26RQfh68ffv2at++/XVrPDw8FBQUlO26xMRETZ06VbNnz1br1q0lSXPmzFFoaKhWrlypiIgI7d27VzExMdq0aZMaNmwoSZoyZYrCw8O1b98+Va5cWcuXL9eePXt09OhRhYSESJLGjh2rqKgoDR8+XH5+ftkePzU1VampqdbzpKSkXL8GAAAAAADcKnf8Nf1r1qxRQECAKlWqpD59+ujkyZPWuu3btys9PV1t27a1loWEhCgsLEwbNmyQJG3cuFF2u90K/JLUqFEj2e12h5qwsDAr8EtSRESEUlNTtX379mu2beTIkdYlA3a7XaGhoXnWbwAAAAAA/qk7OvS3b99ec+fO1erVqzV27Fht3bpVLVu2tM6ux8fHy93dXUWLFnXYLjAwUPHx8VZNQEBAln0HBAQ41AQGBjqsL1q0qNzd3a2a7AwdOlSJiYnW4+jRo/+ovwAAAAAA5KV8nd5/I4888oj1c1hYmOrVq6cyZcpo6dKleuCBB665nTFGNpvNev73n/9JzdU8PDzk4eFxw34AAAAAAJAf7ugz/VcLDg5WmTJldODAAUlSUFCQ0tLSlJCQ4FB38uRJ68x9UFCQTpw4kWVfp06dcqi5+ox+QkKC0tPTs8wAAAAAAACgoChQof/06dM6evSogoODJUl169aVm5ubVqxYYdXExcVp165daty4sSQpPDxciYmJ2rJli1WzefNmJSYmOtTs2rVLcXFxVs3y5cvl4eGhunXr3o6uAQAAAACQ5/J1en9ycrJ+//136/nBgwcVGxsrf39/+fv7Kzo6Wg8++KCCg4N16NAhvfbaaypevLjuv/9+SZLdblfv3r01ePBgFStWTP7+/hoyZIhq1Khh3c2/atWqateunfr06aPJkydLkvr27atOnTqpcuXKkqS2bduqWrVqioyM1OjRo3XmzBkNGTJEffr0uead+wEAAAAAuNPla+jftm2bWrRoYT0fNGiQJKlXr1765JNPtHPnTs2aNUtnz55VcHCwWrRooa+++kq+vr7WNh988IEKFSqkbt266cKFC2rVqpVmzJghV1dXq2bu3LkaMGCAdZf/Ll26aOLEidZ6V1dXLV26VP369VOTJk3k5eWlHj16aMyYMbf6JQAAAAAA4JaxGWNMfjfCWSQlJclutysxMTFHMwTqvjTrNrQq72wf/Xh+NwEAAAAoEHKbDYBbpUBd0w8AAAAAAHKO0A8AAAAAgJMi9AMAAAAA4KQI/QAAAAAAOClCPwAAAAAATorQDwAAAACAkyL0AwAAAADgpAj9AAAAAAA4KUI/AAAAAABOitAPAAAAAICTIvQDAAAAAOCkCP0AAAAAADgpQj8AAAAAAE6K0A8AAAAAgJMi9AMAAAAA4KQI/QAAAAAAOClCPwAAAAAATorQDwAAAACAkyL0AwAAAADgpAj9AAAAAAA4KUI/AAAAAABOitAPAAAAAICTIvQDAAAAAOCkCP0AAAAAADgpQj8AAAAAAE6K0A8AAAAAgJMi9AMAAAAA4KQI/QAAAAAAOClCPwAAAAAATorQDwAAAACAkyL0AwAAAADgpAj9AAAAAAA4KUI/AAAAAABOitAPAAAAAICTIvQDAAAAAOCkCP0AAAAAADgpQj8AAAAAAE6K0A8AAAAAgJMi9AMAAAAA4KQI/QAAAAAAOClCPwAAAAAATorQDwAAAACAkyL0AwAAAADgpAj9AAAAAAA4KUI/AAAAAABOitAPAAAAAICTytfQv27dOnXu3FkhISGy2WxauHChtS49PV2vvPKKatSoIR8fH4WEhOjxxx/X8ePHHfbRvHlz2Ww2h0f37t0dahISEhQZGSm73S673a7IyEidPXvWoebIkSPq3LmzfHx8VLx4cQ0YMEBpaWm3qusAAAAAANxy+Rr6U1JSVKtWLU2cODHLuvPnz2vHjh164403tGPHDs2fP1/79+9Xly5dstT26dNHcXFx1mPy5MkO63v06KHY2FjFxMQoJiZGsbGxioyMtNZnZGSoY8eOSklJ0fr16zVv3jx9++23Gjx4cN53GgAAAACA26RQfh68ffv2at++fbbr7Ha7VqxY4bBswoQJatCggY4cOaLSpUtby729vRUUFJTtfvbu3auYmBht2rRJDRs2lCRNmTJF4eHh2rdvnypXrqzly5drz549Onr0qEJCQiRJY8eOVVRUlIYPHy4/P7+86C4AAAAAALdVgbqmPzExUTabTUWKFHFYPnfuXBUvXlzVq1fXkCFDdO7cOWvdxo0bZbfbrcAvSY0aNZLdbteGDRusmrCwMCvwS1JERIRSU1O1ffv2a7YnNTVVSUlJDg8AAAAAAO4U+XqmPzcuXryoV199VT169HA4896zZ0+VK1dOQUFB2rVrl4YOHapffvnFmiUQHx+vgICALPsLCAhQfHy8VRMYGOiwvmjRonJ3d7dqsjNy5EgNGzYsL7oHAAAAAECeKxChPz09Xd27d9fly5c1adIkh3V9+vSxfg4LC1PFihVVr1497dixQ3fffbckyWazZdmnMcZheU5qrjZ06FANGjTIep6UlKTQ0NCcdwwAAAAAgFvojp/en56erm7duungwYNasWLFDa+vv/vuu+Xm5qYDBw5IkoKCgnTixIksdadOnbLO7gcFBWU5o5+QkKD09PQsMwD+zsPDQ35+fg4PAAAAAADuFHd06M8M/AcOHNDKlStVrFixG26ze/dupaenKzg4WJIUHh6uxMREbdmyxarZvHmzEhMT1bhxY6tm165diouLs2qWL18uDw8P1a1bN497BQAAAADA7ZGv0/uTk5P1+++/W88PHjyo2NhY+fv7KyQkRA899JB27NihJUuWKCMjwzob7+/vL3d3d/3xxx+aO3euOnTooOLFi2vPnj0aPHiw6tSpoyZNmkiSqlatqnbt2qlPnz7WV/n17dtXnTp1UuXKlSVJbdu2VbVq1RQZGanRo0frzJkzGjJkiPr06cPZewAAAABAgZWvZ/q3bdumOnXqqE6dOpKkQYMGqU6dOnrzzTd17NgxLVq0SMeOHVPt2rUVHBxsPTLvuu/u7q5Vq1YpIiJClStX1oABA9S2bVutXLlSrq6u1nHmzp2rGjVqqG3btmrbtq1q1qyp2bNnW+tdXV21dOlSeXp6qkmTJurWrZu6du2qMWPG3N4XBAAAAACAPGQzxpj8boSzSEpKkt1uV2JiYo5mCNR9adZtaFXe2T768fxuAgAAAFAg5DYbALfKHX1NPwAAAAAAuHmEfgAAAAAAnBShHwAAAAAAJ0XoBwAAAADASRH6AQAAAABwUoR+AAAAAACcFKEfAAAAAAAnRegHAAAAAMBJEfoBAAAAAHBShH4AAAAAAJwUoR8AAAAAACdF6AcAAAAAwEkR+gEAAAAAcFKEfgAAAAAAnBShHwAAAAAAJ0XoBwAAAADASRXK7wYAAAAAwL/R5cuXlZaWlt/NQAHk7u4uF5ecncMn9AMAAADAbZaWlqaDBw/q8uXL+d0UFEAuLi4qV66c3N3db1hL6AcAAACA28gYo7i4OLm6uio0NDTHZ2wB6coMkePHjysuLk6lS5eWzWa7bj2hHwAAAABuo0uXLun8+fMKCQmRt7d3fjcHBVCJEiV0/PhxXbp0SW5ubtet5U9KAAAAAHAbZWRkSFKOpmYD2cl872S+l66H0A8AAAAA+eBG07KBa8nNe4fQDwAAAACAkyL0AwAAAABy7NChQ7LZbIqNjb1mjc1m08KFC29bm3BthH4AAAAAcAJRUVGy2WzWo1ixYmrXrp1+/fXX296WuLg4tW/f/pYf58cff1SLFi3k7+8vb29vVaxYUb169dKlS5ckSTNmzFCRIkVyvd81a9bIZrPp7NmzedvgfEDoBwAAAAAn0a5dO8XFxSkuLk6rVq1SoUKF1KlTp9vejqCgIHl4eNzSY+zevVvt27dX/fr1tW7dOu3cuVMTJkyQm5ubLl++fEuPXZAQ+gEAAADASXh4eCgoKEhBQUGqXbu2XnnlFR09elSnTp2yanbu3KmWLVvKy8tLxYoVU9++fZWcnGytv3z5st5++22VKlVKHh4eql27tmJiYq55zMuXL6tPnz6qVKmSDh8+LMlxen/m5QDz589XixYt5O3trVq1amnjxo0O+5kyZYpCQ0Pl7e2t+++/X+PGjbvuWfoVK1YoODhY77//vsLCwlShQgW1a9dOn3/+udzd3bVmzRo98cQTSkxMtGY/REdHS5LmzJmjevXqydfXV0FBQerRo4dOnjxptbdFixaSpKJFi8pmsykqKkqSVLZsWY0fP96hHbVr17b2K0nR0dEqXbq0PDw8FBISogEDBlyzD7cDoR8AAAAAnFBycrLmzp2ru+66S8WKFZMknT9/Xu3atVPRokW1detW/fe//9XKlSv1/PPPW9t9+OGHGjt2rMaMGaNff/1VERER6tKliw4cOJDlGGlpaerWrZu2bdum9evXq0yZMtdsz+uvv64hQ4YoNjZWlSpV0qOPPmpNw//555/1zDPP6IUXXlBsbKzatGmj4cOHX7d/QUFBiouL07p167Jd37hxY40fP15+fn7W7IchQ4ZY7X7nnXf0yy+/aOHChTp48KAV7ENDQ/Xtt99Kkvbt26e4uDh9+OGH121Lpm+++UYffPCBJk+erAMHDmjhwoWqUaNGjra9VQrl69EBAAAAAHlmyZIlKly4sCQpJSVFwcHBWrJkiVxcrpzvnTt3ri5cuKBZs2bJx8dHkjRx4kR17txZo0aNUmBgoMaMGaNXXnlF3bt3lySNGjVKP/74o8aPH6+PP/7YOlZycrI6duyoCxcuaM2aNbLb7ddt25AhQ9SxY0dJ0rBhw1S9enX9/vvvqlKliiZMmKD27dtbobxSpUrasGGDlixZcs39Pfzww/rhhx/UrFkzBQUFqVGjRmrVqpUef/xx+fn5yd3dXXa7XTabTUFBQQ7bPvnkk9bP5cuX10cffaQGDRooOTlZhQsXlr+/vyQpICAgV/cEOHLkiIKCgtS6dWu5ubmpdOnSatCgQY63vxU40w8AAAAATqJFixaKjY1VbGysNm/erLZt26p9+/bWtPu9e/eqVq1aVuCXpCZNmujy5cvat2+fkpKSdPz4cTVp0sRhv02aNNHevXsdlj366KNKTk7W8uXLbxj4JalmzZrWz8HBwZJkTanft29flnB8o7Ds6uqq6dOn69ixY3r//fcVEhKi4cOHq3r16oqLi7vutv/3f/+n++67T2XKlJGvr6+aN28u6Upo/ycefvhhXbhwQeXLl1efPn20YMECazZDfiH0AwAAAICT8PHx0V133aW77rpLDRo00NSpU5WSkqIpU6ZIkowxstls2W779+VX12S3XYcOHfTrr79q06ZNOWqbm5tblv1n3nAvu/0bY3K035IlSyoyMlIff/yx9uzZo4sXL+rTTz+9Zn1KSoratm2rwoULa86cOdq6dasWLFgg6cq0/+txcXHJ0q709HTr59DQUO3bt08ff/yxvLy81K9fP917770ONbcboR8AAAAAnJTNZpOLi4suXLggSapWrZpiY2OVkpJi1fz8889ycXFRpUqV5Ofnp5CQEK1fv95hPxs2bFDVqlUdlj377LN677331KVLF61du/YftbNKlSrasmWLw7Jt27blej9FixZVcHCw1T93d3dlZGQ41Pz222/666+/9N5776lp06aqUqWKNeMgk7u7uyRl2bZEiRIOswiSkpJ08OBBhxovLy916dJFH330kdasWaONGzdq586due5LXuGafgAAAABwEqmpqYqPj5ckJSQkaOLEiUpOTlbnzp0lST179tRbb72lXr16KTo6WqdOnVL//v0VGRmpwMBASdJLL72kt956SxUqVFDt2rU1ffp0xcbGau7cuVmO179/f2VkZKhTp076/vvvdc8999xUu/v37697771X48aNU+fOnbV69Wp9//3315yVIEmTJ09WbGys7r//flWoUEEXL17UrFmztHv3bk2YMEHSlbvtJycna9WqVapVq5a8vb1VunRpubu7a8KECXrmmWe0a9cuvfPOOw77LlOmjGw2m5YsWaIOHTrIy8tLhQsXVsuWLTVjxgx17txZRYsW1RtvvCFXV1druxkzZigjI0MNGzaUt7e3Zs+eLS8v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o1y5ctnu7+6779bu3btVtmzZLNv4+PjorrvukpubmzZt2mRtk5CQoP379+eq3deTpzfy++OPP6wbHPxTmdd3XH2m/eTJk9ZZ+aCgIKWlpSkhIeG6NSdOnMiy/1OnTjnUXH2chIQEpaenZ5kB8HceHh7y8/NzeAAAAADAv0GNGjXUs2dPTZgwwVo2ePBgrVq1Su+8847279+vmTNnauLEiRoyZIhVU7ZsWa1bt07/+9//chTKu3XrpkceeUSPPvqoRo4cqW3btunw4cNasmSJWrdurR9//FGSdNddd2n27Nnau3evNm/erJ49e173zH12nn/+eSUlJal79+7atm2bDhw4oNmzZ2vfvn2SpOjoaI0cOVIffvih9u/fr507d2r69OkaN25ctvt77rnndObMGT366KPasmWL/vzzTy1fvlxPPvmkMjIyVLhwYfXu3VsvvfSSVq1apV27dikqKkouLnkX1W9qT4MGDXJ4vPjii+revbseeeQRPfLII3nSsHLlyikoKEgrVqywlqWlpWnt2rVq3LixJKlu3bpyc3NzqImLi9OuXbusmvDwcCUmJmrLli1WzebNm5WYmOhQs2vXLoc7Ry5fvlweHh6qW7dunvQHAAAAAJzNO++84zB9/+6779bXX3+tefPmKSwsTG+++abefvtth0sA3n77bR06dEgVKlRQiRIlbngMm82mL774QuPGjdOCBQvUrFkz1axZU9HR0brvvvsUEREh6coN8hISElSnTh1FRkZqwIAB2V7qfT3FihXT6tWrlZycrGbNmqlu3bqaMmWKdUnAU089pc8//1wzZsxQjRo11KxZM82YMeOaZ/pDQkL0888/KyMjQxEREQoLC9MLL7wgu91uBfvRo0fr3nvvVZcuXdS6dWvdc889eZpDbeYmLrDI/B7ETC4uLipRooRatmypJ598UoUK5exWAcnJyfr9998lSXXq1NG4cePUokUL+fv7q3Tp0ho1apRGjhyp6dOnq2LFihoxYoTWrFmjffv2ydfXV5L07LPPasmSJZoxY4b8/f01ZMgQnT59Wtu3b7emj7Rv317Hjx/X5MmTJUl9+/ZVmTJltHjxYklXvrKvdu3aCgwM1OjRo3XmzBlFRUWpa9euDn+1upGkpCTZ7XYlJibm6Kx/3Zdm5Xjfd4Ltox/P7yYAAAAABcL1ssHFixd18OBBlStXTp6envnUQhRkuXkP3dSN/DKnT/xT27Ztc/gDwqBBgyRJvXr10owZM/Tyyy/rwoUL6tevnxISEtSwYUMtX77cCvyS9MEHH6hQoULq1q2bLly4oFatWmnGjBkON1KYO3euBgwYYN3lv0uXLpo4caK13tXVVUuXLlW/fv3UpEkTeXl5qUePHhozZkye9BMAAAAAgPxwU2f6M506dUr79u2TzWZTpUqVcjQ1w5lxph8AAACAxJn+3Gjfvr1++umnbNe99tpreu21125zi+58t/xMf0pKivr3769Zs2ZZX1vg6uqqxx9/XBMmTJC3t/fN7BYAAAAA8C/z+eef68KFC9mu8/f3v82tcT43FfoHDRqktWvXavHixWrSpIkkaf369RowYIAGDx6sTz75JE8bCQAAAABwTiVLlszvJji1mwr93377rb755hs1b97cWtahQwd5eXmpW7duhH4AAAAAAO4AN/WVfefPn8/2++sDAgJ0/vz5f9woAAAAAADwz91U6A8PD9dbb72lixcvWssuXLigYcOGKTw8PM8aBwAAAAAAbt5NTe8fP3682rdvr1KlSqlWrVqy2WyKjY2Vh4eHli9fntdtBAAAAAAAN+GmQn+NGjV04MABzZkzR7/99puMMerevbt69uwpLy+vvG4jAAAAAAC4CTcV+keOHKnAwED16dPHYfm0adN06tQpvfLKK3nSOAAAAAAAcis6OloLFy5UbGzsTe/j0KFDKleunP7v//5PtWvXzrO23W43FfonT56sL774Isvy6tWrq3v37oR+AAAAAMilI2/XuK3HK/3mzpvaLj4+XsOHD9fSpUv1v//9TwEBAapdu7YGDhyoVq1a5XEr8U/dVOiPj49XcHBwluUlSpRQXFzcP24UAAAAAODOc+jQITVp0kRFihTR+++/r5o1ayo9PV0//PCDnnvuOf3222/53URc5abu3h8aGqqff/45y/Kff/5ZISEh/7hRAAAAAIA7T79+/WSz2bRlyxY99NBDqlSpkqpXr65BgwZp06ZNkqRx48apRo0a8vHxUWhoqPr166fk5GRrHzNmzFCRIkX0ww8/qGrVqipcuLDatWuX5QTytGnTVL16dXl4eCg4OFjPP/+8tS4xMVF9+/ZVQECA/Pz81LJlS/3yyy/Xbfv06dNVtWpVeXp6qkqVKpo0aZLD+i1btqhOnTry9PRUvXr19H//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XIxdwcS4AfmL6f1wcObMGZ05cybbdV5eXipZsuRtbhFyirErmBi3gouxK7gYu4KLsSuYGDcgfxH6AQAAAABwUkzvBwAAAADASRH6AQAAAABwUoR+AAAAAACcFKEfAAAAAAAnRegHAAC3THR0tGrXrp3fzQAA4F+L0A8AcHrNmzfXwIED87sZAAAAtx2hHwCQZ9LS0vK7CQVafr1+6enp+XJcAABw6xH6AQA3rXnz5nr++ec1aNAgFS9eXG3atNHatWvVoEEDeXh4KDg4WK+++qouXbpkbZOamqoBAwYoICBAnp6euueee7R161Zr/Zo1a2Sz2fTDDz+oTp068vLyUsuWLXXy5El9//33qlq1qvz8/PToo4/q/PnzN2xjVFSU1q5dqw8//FA2m002m00HDx7UXXfdpTFjxjjU7tq1Sy4uLvrjjz8kSTabTZ988onat28vLy8vlStXTv/9738dtvnf//6nRx55REWLFlWxYsV033336dChQzl6/aKiotS1a1eNHDlSISEhqlSpUo72uWbNGjVo0EA+Pj4qUqSImjRposOHD1vrFy9erLp168rT01Ply5fXsGHDHMbAZrPp008/1X333ScfHx+9/fbbKlWqlD799FOH9u3YsUM2m01//vmnJCkxMVF9+/ZVQECA/Pz81LJlS/3yyy8O27z33nsKDAyUr6+vevfurYsXL+botQAAALcGoR8A8I/MnDlThQoV0s8//6wRI0aoQ4cOql+/vn755Rd98sknmjp1qt59912r/uWXX9a3336rmTNnaseOHbrrrrsUERGhM2fOOOw3OjpaEydO1IYNG3T06FF169ZN48eP1xdffKGlS5dqxYoVmjBhwg3b9+GHHyo8PFx9+vRRXFyc4uLiVLp0aT355JOaPn26Q+20adPUtGlTVahQwVr2xhtv6MEHH9Qvv/yixx57TI8++qj27t0rSTp//rxatGihwoULa926dVq/fr0KFy6sdu3a5fis/apVq7R3716tWLFCS5YsueE+L126pK5du6pZs2b69ddftXHjRvXt21c2m02S9MMPP+ixxx7TgAEDtGfP/9fevYVEtYVxAP9PXshxtDJNpoEyG7xRmtrFSbpAwUASipJKIoljqWEZUZRhTgZW+FD0YOFDaoVjN4hATLNIs6YUDUJMM8XxQonUQyDlddZ5OLhxN5ZieSLP/wcD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10, 6))\n", "sns.countplot(data=df, x=\"room_type_reserved\", hue=\"booking_status\")\n", "plt.title('Frequency of Room Reservation Types by Booking Status')\n", "plt.legend(title=\"Booking Status\", loc=\"center left\", bbox_to_anchor=(1, 0.5))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the information above `Room type 1` is the highest room type reserved by booking status and then the second popular is `Room type 4`" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "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VlaWwsPD852f+7t5sXN2+/bteuSRR1S2bFn5+vqqZMmSatu2rTZu3Gita/ny5brjjjskSY888kieW2obN26cb09bfsfmnXfeUfXq1eXv76+AgABVqFBBL7zwwgX3FcB1xgDXmKlTpxpJZs2aNSY7O9vlZYwx33zzjZFkSpYsae6//37z5Zdfmnnz5plDhw6ZmTNnGofDYdq3b28+//xz89VXX5m4uDjj7u5ulixZYm1jyZIlxt3d3dx1113m888/N5988om54447TKlSpczZvxY7duwwkszUqVPz1CnJDBo0yHr/66+/GqfTaapWrWpmzJhhFi1aZPr372/c3NzM4MGDrXa59UdFRZkuXbqY+fPnm//+97+mVKlSpmzZsubUqVNW2/fff984HA7TuHFj8+GHH5olS5aYiRMnmt69extjjMnKyjJhYWGmS5cuLrVlZ2ebiIgI88ADD1zwWC9fvtx4eHiY2rVrm48++sjMnTvXxMTEGIfDYWbPnm2MMWbPnj3m888/N5LMU089ZVavXm1+/PHH864z95iNGjXKfPDBB8bb29scPnzYGGPMb7/9ZiSZZcuWmSeeeMKcewl69dVXzRtvvGHmz59vli9fbt59911TpkwZ06RJE5d2Xbt2NR4eHiYqKsoMHz7cLF261CxcuNAYY0yjRo1M5cqVrbZjx4417u7u5tVXX7WmLVu2zHh6epqGDRuajz76yCQlJZmEhASXf+sDBw6YYcOGGUnm7bffNqtXrzarV682Bw4cOO++9+jRwzpOa9asMSdPnjxv26FDhxqHw2G6detm5s2bZz7//HMTHR1t/Pz8zK+//mq1mzRpkpFk7rvvPjNv3jyTmJhoypUrZ0qXLm1Kly6d57iXLl3atG3b1sybN8/MmjXLhIaGmnLlypn4+HjTrVs38/XXX5t3333X+Pv7m7Zt215WTV27djWenp6mYsWKZvTo0WbJkiXm5ZdfNg6HwwwZMsQYY8yJEydMUlKSkWS6d+9uHb/t27ef95icLfc6sG7dOmPMpZ3rjRo1MsHBwSYiIsK89dZbZuHChaZPnz5GknniiSesdjk5OaZly5bGz8/PDBkyxCxevNi8//77pmTJkqZSpUrm77//to6tt7e3adGihZk7d65Zvny5SUxMNPHx8ebIkSMX3I/SpUubkiVLmlKlSpkpU6aYBQsWmC5duli/I7n+/e9/Gz8/P3P06FGX5Z955hnj7e1t/vrrrwtuR5Lp3bu3da08cuSImTt3rgkICMhzzHLP64ceesjMnz/fzJgxw9x6663G6XSa33//3WqXmJhoJJmYmBgzd+5c89FHH5natWsbT09P891331ntBg0aZCSZgwcPGmPOXFeKFStm7rnnHpOZmWm169q1q8s5m1t3VFSUufPOO83HH39sFixYYBo3bmyKFCli/vjjD6vd119/bdzc3Ezjxo3NnDlzzCeffGLq1q1roqKi8lxH8nP77bebgIAAM2bMGLNlyxZz+vTpPG0uds6uWLHC9O/f33z66admxYoVZs6cOaZ9+/bGx8fH/Pbbb8YYY9LS0qxz9z//+Y+1jj179hhjzpybjRo1yrPtc4/Nf//7X+tasmjRIrNkyRLz7rvvmj59+lx0XwFcPwhiuObk/ieW3ys7O9sKMnfffbfLcpmZmSYoKCjPh8ucnBxTvXp1c+edd1rT6tatayIiIszx48etaenp6SYoKOiyg1hsbKy55ZZbTFpamku7J5980iWM5NbfunVrl3Yff/yxkWRWr15tjDHm2LFjJjAw0Nx11135fmjINWjQIOPp6Wn2799vTfvoo4+MJLNixYrzLmeMMfXq1TMhISHm2LFj1rRTp06ZKlWqmFtuucXa7tnh6mLObnvs2DHj7+9vJkyYYIw586GyTJky5vTp0/kGsbOdPn3aZGdnmxUrVhhJ5ueff7bmde3a1UgyU6ZMybNcbhDLyckxTz75pPH09DSzZs1yaVOhQgVTs2ZNK9zniouLM+Hh4SYnJ8cYY8wnn3xiJJlvvvnmovttjDF//fWXueuuu6zz1cPDw9SvX98MHz7c5Rjv3r3bFClSxDz11FMuyx87dsyEhYWZjh07GmPOnLthYWGmbt26Lu127dplPDw88g1i1atXt+o3xphx48YZSaZdu3Yu6+jbt6+RZJ2vBa3JmP87/h9//LFL29atW5vy5ctb7w8ePJjn96Sgzg1ixhT8XG/UqJGRZL744guXdfbs2dO4ubmZXbt2GWP+78PuZ5995tJu3bp1RpKZOHGiMcaYTz/91EgyycnJl7wfpUuXNg6HI8+yLVq0MIGBgVZQ+eOPP4ybm5t54403rDbHjx83wcHB5pFHHrnods53zWzVqpXJyMiw2h05csT4+Pjkuf7s3r3beHl5mc6dOxtjzpx7ERERpmrVqi7n07Fjx0xISIipX7++Ne3sIDZz5kzj6elp+vTp47KcMecPYqGhoSY9Pd2alpqaatzc3Mzw4cOtaXfccYeJjIw0WVlZLrUEBwcXKIitXbvW+kObJBMQEGDi4uLMjBkzXK6vl3LOnjp1ypw8edKULVvW/Pvf/7am554/+f2/UdAg9uSTT5qiRYtetAYA1zduTcQ1a8aMGVq3bp3L6+xbvu677z6X9qtWrdLhw4fVtWtXnTp1ynqdPn1aLVu21Lp165SZmanMzEytW7dO9957r8szEwEBAWrbtu1l1XrixAktXbpUHTp0kK+vr8v2W7durRMnTmjNmjUuy7Rr187lfbVq1SRJu3btsvYnPT1dvXv3vuCtN48//rikM7ev5ZowYYKqVq2qu++++7zLZWZm6ocfftD9998vf39/a7q7u7vi4+O1d+/efG+VvBT+/v564IEHNGXKFJ06dUozZsywbtfJz59//qnOnTsrLCxM7u7u8vDwUKNGjSQp39umzj0Hcp04cULt27dXYmKiFi1apC5duljztm/frt9++82adu6/VUpKymXvd3BwsL777jutW7dOr7/+uu655x79/vvvGjhwoKpWrWqNKrdw4UKdOnVKDz/8sMv2vb291ahRI2vEtq1btyo1NVUdO3Z02U6pUqXUoEGDfGto3bq1y22QFStWlCS1adPGpV3u9N27d19STbkcDkee35dq1apZ5+/VcCnnekBAQJ7fsc6dO+v06dP69ttvJUnz5s1T0aJF1bZtW5d9rlGjhsLCwqx9rlGjhjw9PdWrVy9Nnz5df/755yXVXblyZVWvXj1PLenp6frxxx8lSbfeeqvi4uI0ceJEGWMkSR9++KEOHTqkJ598skDb6dixo3Wt/Pbbb/XWW29p/fr1atmypXXL6OrVq3X8+PE8t4hGRkaqadOm1m3cW7du1b59+xQfH+9yPvn7++u+++7TmjVr8tyWOXToUCUkJOj111/Xm2++me/tuPlp0qSJAgICrPehoaEKCQmxzqXMzEytX79e7du3l6enp0stBb1m33HHHdq+fbuSkpL0wgsvKDo6WkuXLtXDDz+sdu3aWcf8Qk6dOqVhw4apUqVK8vT0VJEiReTp6alt27ble336J+68804dPXpUDz30kL744ouLjkgJ4PrEyAa4ZlWsWPGCD+mfe7///v37JZ0ZOex8Dh8+LIfDodOnTyssLCzP/PymFcShQ4d06tQpjR8/XuPHj8+3zbn/kQYHB7u89/LyknTmwXJJ1jMqFxslLjQ0VA8++KAmTZqk559/Xr/++qu+++47TZo06YLLHTlyRMaYfJ+byB2d8tChQxdcR0F0795dd911l4YOHaqDBw+e9xmhjIwMNWzYUN7e3nrttddUrlw5+fr6as+ePbr33nut45LL19dXgYGB+a7rwIED2rNnj5o3b6769eu7zMs9TwYMGHDer0P4px966tSpY5272dnZeu655/TGG29o5MiRGjlypFVD7rMk58r9AJt7/ENDQ/O0CQ0N1Y4dO/JMDwoKcnmf+8H1fNNPnDghSQWuKZevr2+ewR+8vLys9V0Nl3Ku53fMcn+/c4/r/v37dfToUZcP92fLPQ9uu+02LVmyRCNHjtQTTzyhzMxM3XrrrerTp0+BRgG80LXm7N+xp59+Ws2aNdPixYsVExOjt99+W9HR0apVq9ZFtyFJJUqUcLlmNmzYUCVKlNBDDz2kadOm6dFHH7W2d77f+8WLF7vUdb52p0+f1pEjR1wGyJk1a5ZKliypTp06FajeXOdeC6Uz51Lu73zutep8vwcF5eHhodjYWMXGxko6s4/333+/5s2bp6+//lqtW7e+4PL9+vXT22+/reeee06NGjVSsWLF5Obmph49euS5Pv1T8fHxOnXqlCZPnqz77rtPp0+f1h133KHXXnvNZfAjANc3ghiuW+f2qhQvXlySNH78eJeRw84WGhpqjbCYmpqaZ/6503I/aOb+NTnXuQGlWLFiVk/SE088ke+2y5Qpc4G9ySv3ofG9e/detO3TTz+tmTNn6osvvlBSUpKKFi3q0guUn9wPESkpKXnm5Q56kHtM/4kGDRqofPnyeuWVV9SiRQtFRkbm227ZsmXat2+fli9fbvWCSdLRo0fzbX+hXsJSpUpp7Nix6tChg+6991598skn1r9l7j4NHDhQ9957b77LX2xo/kvh4eGhQYMG6Y033tCmTZtcavj0009VunTp8y6b+wE1NySdLb/z958oaE2FraDn+oWOWe5xLV68uIKDg5WUlJTvts7upWnYsKEaNmyonJwcrV+/XuPHj1ffvn0VGhp60eBxoWvN2SGkadOmqlKliiZMmCB/f3/9+OOP/3hk0dye9p9//tlle+f7vc89Dy7Wzs3NTcWKFXOZnpSUpAcffFANGzbU0qVLr9h5VKxYMTkcjiv+exAcHKy+fftq+fLl2rRp00WD2KxZs/Twww9r2LBhLtP/+usvFS1atEDb9Pb2VlpaWp7p+f3x55FHHtEjjzyizMxMffvttxo0aJDi4uL0+++/X9O/owAKjiCGG0aDBg1UtGhRbd68+YK38nh6eurOO+/U559/rlGjRlkf0I8dO6avvvrKpW1oaKi8vb31yy+/uEz/4osvXN77+vqqSZMm+umnn1StWrXz/oX9UtSvX19Op1PvvvuuOnXqdMHgUbt2bdWvX18jRozQpk2b1KtXL/n5+V1w/X5+fqpbt64+//xzjR49Wj4+PpKk06dPa9asWbrllltUrly5f7wfkvSf//xHn3766XlDqvR/wSq3ZzDXxXr2zicmJkYLFy5UmzZtFBcXpy+++ML6/rOyZcvq559/zvOB6lzn9lJeTEpKSr49CLm3LeX2NMbGxqpIkSL6448/znt7pXQmEIaFhenjjz9Wv379rOm7d+/WqlWrruj36hW0pktxqcevIAp6rh87dkxffvmly+2JH374odzc3KzbGOPi4jR79mzl5OSobt26Bdq+u7u76tatqwoVKigxMVE//vjjRYPYr7/+qp9//tnl9sQPP/xQAQEBeXq7+vTpo8cee0xpaWkKDQ21Ru68XLlfKhwSEiJJio6Olo+Pj2bNmuWy7r1792rZsmXWHQXly5dXyZIl9eGHH2rAgAHW72dmZqY+++wzayTFs5UuXVrfffedmjdvboWxsmXL/qP6pTPXqjp16mju3LkaPXq0dX3NyMjId3TFc2VnZys9PT3fnrdzfzcvdM46HI4816f58+frf//7n26//XZr2oXWERUVpU8++URZWVlWu0OHDmnVqlXn7eH38/NTq1atdPLkSbVv316//vorQQy4QRDEcMPw9/fX+PHj1bVrVx0+fFj333+/QkJCdPDgQf388886ePCg3nnnHUnSq6++qpYtW6pFixbq37+/cnJyNGLECPn5+enw4cPWOh0Oh/71r39pypQpuu2221S9enWtXbtWH374YZ7tv/nmm7rrrrvUsGFDPf7444qKitKxY8e0fft2ffXVV1q2bNkl78+YMWPUo0cPNW/eXD179lRoaKi2b9+un3/+WRMmTHBp//TTT+vBBx+Uw+FQ7969C7SN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U9OmTTVu3DiFhIRo586datKkiSSpWLFikqSuXbtq2rRpioqKUt++fdW3b19rmzVq1FD79u01ePBgSdLgwYM1ZcoU7d+/X8HBwbr//vv11ltvFfjf8EqjRwwAAACwUUZGhhITE3X77bcrODhYkvT333+rZcuWKlasmNatW6dPPvlES5Ys0ZNPPmkt9+abb2rMmDEaPXq0fvnlF8XGxqpdu3batm1bnm2cPHlSHTt21Pr167Vy5UqVLl36vPW8+OKLGjBggJKTk1WuXDk99NBD1i2E33//vR577DE9/fTTSk5OVosWLTR06NAL7l9YWJhSUlL07bff5ju/fv36GjdunAIDA61ewgEDBlh1v/rqq/r55581d+5c7dixQwkJCZKkyMhIffbZZ5KkrVu3KiUlRW+++eYFa8n16aef6o033tCkSZO0bds2zZ07V1WrFu4ff+gRAwAAAK6yefPmWT1bmZmZCg8P17x58+TmdqZfJDExUcePH9eMGTPk5+cnSZowYYLatm2rESNGKDQ0VKNHj9Zzzz2nTp06SZJGjBihb775RuPGjdPbb79tbSsjI0Nt2rTR8ePHtXz5cjmdzgvWNmDAALVp00aSNGTIEFWuXFnbt29XhQoVNH78eLVq1coKSuXKldOqVas0b968867vgQce0MKFC9WoUSOFhYWpXr16atasmR5++GEFBgbK09NTTqdTDofD6iXM1a1bN+vnW2+9VW+99ZbuvPNOZWRkyN/fX0FBQZKkkJCQS3rGbPfu3QoLC1Pz5s3l4eGhUqVK6c477yzw8lcDPWIAAADAVdakSRMlJycrOTlZP/zwg2JiYtSqVSvt2rVLkrRlyxZVr17dCmGS1KBBA50+fVpbt25Venq69u3bpwYNGrist0GDBtqyZYvLtIceekgZGRlatGjRRUOYJFWrVs36OTw8XJJ04MABSWd6ns4NLBcLMO7u7po6dar27t2rkSNHKiIiQkOHDlXlypWVkpJywWV/+ukn3XPPPSpdurQCAgLUuHFjSWeC1D/xwAMP6Pjx47r11lvVs2dPzZkzx+r1KywEMQAAAOAq8/Pz0+23367bb79dd955pz744ANlZmZq8uTJkiRjzHm/DPjs6ee2yW+51q1b65dfftGaNWsKVJuHh0ee9ecOqpHf+o0xBVpvyZIlFR8fr7ffflubN2/WiRMn9O677563fWZmpmJiYuTv769Zs2Zp3bp1mjNnjqQztyxeiJubW566srOzrZ8jIyO1detWvf322/Lx8VHv3r119913u7SxG0EMAAAAsJnD4ZCbm5uOHz8uSapUqZKSk5OVmZlptfn+++/l5uamcuXKKTAwUBEREVq5cqXLelatWqWKFSu6THv88cf1+uuvq127dlqxYsU/qrNChQpau3aty7T169df8nqKFSum8PBwa/88PT2Vk5Pj0ua3337TX3/9pddff10NGzZUhQoVrJ65XJ6enpKUZ9kSJUq49Lalp6drx44dLm18fHzUrl07vfXWW1q+fLlWr16tjRsLb9AYnhEDAAAArrKsrCylpqZKko4cOaIJEyYoIyNDbdu2lSR16dJFgwYNUteuXTV48GAdPHhQTz31lOLj4xUaGipJeuaZZzRo0CDddtttqlGjhqZOnark5GQlJibm2d5TTz2lnJwcxcXF6euvv9Zdd911WXU/9dRTuvvuuzV27Fi1bdtWy5Yt09dff33e3jtJmjRpkpKTk9WhQwfddtttOnHihGbMmKFff/1V48ePlyRFRUUpIyNDS5cuVfXq1eXr66tSpUrJ09NT48eP12OPPaZNmzbp1VdfdVl37siP8+bNU+vWreXj4yN/f381bdpU06ZNU9u2bVWsWDG99NJLcnd3t5abNm2acnJyVLduXfn6+mrmzJny8fG54CAmVxs9YgAAAMBVlpSUpPDwcIWHh6tu3brWyIi5z0D5+vpq4cKFOnz4sO644w7df//9atasmSZMmGCto0+fPurfv7/69++vqlWrKikpSV9++aXKli2b7zb79u2rIUOGqHXr1lq1atVl1d2gQQO9++67Gjt2rKpXr66kpCT9+9//lre393mXyR1c47HHHlPlypXVqFEjrVmzRnPnzlWjRo0knRk58bHHHtODDz6oEiVKaOTIkSpRooSmTZumTz75RJUqVdLrr7+u0aNHu6y7ZMmSGjJkiJ5//nmFhoZao0oOHDhQd999t+Li4tS6dWu1b99et912m7Vc0aJFNXnyZDVo0EDVqlXT0qVL9dVXX1mjVhYGhynoTZ5nadq0qT7//PM8I5Wkp6erffv2WrZs2ZWq77qSnp4up9OptLQ0BQYGFnY5AHDdq/3MjMIuATaaEzCqsEuAjQrre8Qu9HntxIkT2rFjh8qUKXPBoHGz69mzp377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P/74Q9L/3Rr48ccfq3HjxvL29tasWbOUkJCg9u3ba/jw4YqIiFC5cuUkud6a+NBDD6lTp04u28rOzlbx4sU1derUi277UhhjdPvtt2v06NEu0zdt2iQ3NzdrnWlpaerVq5dCQkIUGBiopk2b6ueff7ba//HHH7rnnnsUGhoqf39/3XHHHVqyZInLOqOiovTaa68pISFBTqdTPXv2vOR6AQAobAQxAChkmZmZ6tevn9atW6elS5fKzc1NHTp00OnTp602zz33nPr06aMtW7YoNjZWkrR06VJt2bJFixcv1rx58/Kst0uXLvryyy+VkZFhTVu4cKEyMzN13333FXjbBeFwONStWzcr4OWaMmWKGjZsqNtuu03GGLVp00apqalasGCBNmzYoFq1aqlZs2Y6fPiwJCkjI0OtW7fWkiVL9NNPPyk2NlZt27bV7t27XdY7atQoValSRRs2bNBLL710SbUCAHBNMACAa8qBAweMJLNx40azY8cOI8mMGzfOpU3Xrl1NaGioycrKcpleunRp88YbbxhjjDl58qQpXry4mTFjhjX/oYceMg888ECBtm2Msbb/008/XbTuffv2GXd3d/PDDz9Y2y9RooSZNm2aMcaYpUuXmsDAQHPixAmX5W677TYzadKk8663UqVKZvz48S772L59+4vWAwDAtYweMQAoZH/88Yc6d+6sW2+9VYGBgSpTpowkufQC1alTJ89yVatWlaen53nX6+HhoQceeECJiYmSzvR+ffHFF+rSpcslbbugwsPD1aZNG02ZMkWSNG/ePJ04cUIPPPCAJGnDhg3KyMhQcHCw/P39rdeOHTusWxczMzP17LPPqlKlSipatKj8/f3122+/5aknv+MBAMD1hFETAaCQtW3bVpGRkZo8ebIiIiJ0+vRpValSxWUQivxGQizI6IhdunRRo0aNdODAAS1evFje3t5q1arVJW37UvTo0UPx8fF64403NHXqVD344IPW4CGnT59WeHi4li9fnme5okWLSpKeeeYZLVy4UKNHj9btt98uHx8f3X///XnqYWRIAMD1jiAGAIXo0KFD2rJliyZNmqSGDRtKklauXHnF1l+/fn1FRkbqo48+0tdff60HHnjA6kW7Gttu3bq1/Pz89M477+jrr7/Wt99+a82rVauWUlNTVaRIEUVFReW7/HfffaeEhAR16NBB0plnxnbu3PmPagIA4FpEEAOAQlSsWDEFBwfrvffeU3h4uHbv3q3nn3/+iq3f4XCoc+fOevfdd/X777/rm2++uarbdnd3V0JCggYOHKjbb79d0dHR1rzmzZsrOjpa7du314gRI1S+fHnt27dPCxYsUPv27VWnTh3dfvvt+vzzz9W2bVs5HA699NJLlzxwCAAA1wOeEQOAQuTm5qbZs2drw4YNqlKliv79739r1KhRV3QbXbp00ebNm1WyZEk1aNDgqm+7e/fuOnnypLp16+Yy3eFwaMGCBbr77rvVrVs3lStXTp06ddLOnTsVGhoqSXrjjTdUrFgx1a9fX23btlVsbKxq1ar1j2sCAOBa4zDGmMIuAgBw4/j+++/VuHFj7d271wpYAADAFUEMAHBFZGVlac+ePerVq5fCw8Ot0RoBAEBe3JoIACiQxx57zGXY+bNfjz32mP773/+qfPnySktL08iRIwu7XAAArmn0iAEACuTAgQNKT0/Pd15gYKBCQkJsrggAgOsXQQwAAAAAbMatiQAAAABgM4IYAAAAANiMIAYAAAAANiOIAQAAAIDNCGIAAAAAYDOCGAAAAADYjCAGAAAAADb7f79GPS5EZ93QAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 6))\n", "sns.countplot(data=df, x=\"arrival_year\", hue=\"booking_status\")\n", "plt.title('Frequency of Market Segment Types by Booking Status')\n", "plt.legend(title=\"Booking Status\", loc=\"center left\", bbox_to_anchor=(1, 0.5))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From information above visitors activity in reservation hotel most happend in `2018`" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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/wqFAsHBwfjiiy9w9uxZHDhwoMmOXR/m5uaYNm0a3n77bVhbW6NDhw5Yvnw5bt++jUmTJtW7n44dOyInJweZmZlo3749LC0toVQqH2HlRARwhIiIGkmrVq2QkJCAjIwMeHl54a233sKKFSsa9RgTJkzAmTNn0K5dO425Ok1x7PpYunQpXnrpJYSEhOBvf/sbzp8/j+Tk5GrvW3yYl156CUOHDkW/fv3Qtm1bbNu27RFWTET3KURN97hSNYWFhVCpVFCr1XyNB7UYjX3b/Z07d5CTkwNXV1eYmJjo3Dc9WvzvRVT/v785QkRERESyx0BERLIzdepUWFhY1PiZOnWqvssjIj3gpGoikp2PPvoI8+bNq3EbL4kTyRMDERHJjp2dHezs7PRdBhE1I7xkRkRERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssfb7omo2bkRE9+kx2s77ZUG7/PDDz9gxYoVyMjIQG5uLhITEzFy5MjGL46ImgRHiIiItFBSUoJu3bphzZo1+i6FiBoBR4iIiLQQEBCAgIAAfZdBRI2EI0REREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHu8y4yISAvFxcU4f/68tJyTk4PMzExYW1ujQ4cOeqyMiLTBQEREzY42D0psaunp6ejXr5+0PGfOHADAxIkTsXHjRj1VRUTaYiAiItKCv78/hBD6LoOIGgnnEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkezxSdVEzdjsxKs67R8A00aqhIjo8cZARETNzpVPX27S43WY/XWD2kdGRmLHjh347bffYGpqit69e2PZsmXw8PB4RBUS0aPGS2ZERA106NAhzJgxA6mpqUhJScHdu3cxePBglJSU6Ls0ItKSXgNRTEwMunbtCisrK1hZWcHPzw+7d++WtgshEB4eDicnJ5iamsLf3x+//vqrRh9lZWWYNWsWbG1tYW5ujuHDh+PatWsabQoKChASEgKVSgWVSoWQkBDcunWrKU6RiB5DSUlJCA0NRZcuXdCtWzfExsbiypUryMjI0HdpRKQlvQai9u3bY+nSpUhPT0d6ejr69++PESNGSKFn+fLlWLVqFdasWYO0tDQ4ODhg0KBBKCoqkvoICwtD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.countplot(data=df, x='booking_status', hue='arrival_month')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From information above we can look that booking hotel reservation most happened on `October`. it is asumpt that whay not canceld in that month more than canceled because it is close to the end of year holidays" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 5: Feature Engineering" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section we want to take a look the distribution of our dataset" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "booking_status\n", "Not_Canceled 24390\n", "Canceled 11885\n", "Name: count, dtype: int64" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Untuk melihat data balancing\n", "df['booking_status'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have to encode our target into numerical columns using label Encoder because we want the value of the target in range (0,1)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 0])" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "label_encoder= preprocessing.LabelEncoder()\n", "df['booking_status']= label_encoder.fit_transform(df['booking_status'])\n", "df['booking_status'].unique()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "it looks like that our dataset is imbalance dataset but the gap is about 60% to 40% so here in this project i dont use SMOTE to handle the imbalance data, so in this project we willnot focuses on metric accuracy to determine the prediction because of imbalance dataset, but we can still use metrics recall, precision, and F1_score as the best metric that can be used as the combination of recall and precision." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Booking_ID 36275\n", "no_of_adults 5\n", "no_of_children 6\n", "no_of_weekend_nights 8\n", "no_of_week_nights 18\n", "type_of_meal_plan 4\n", "required_car_parking_space 2\n", "room_type_reserved 7\n", "lead_time 352\n", "arrival_year 2\n", "arrival_month 12\n", "arrival_date 31\n", "market_segment_type 5\n", "repeated_guest 2\n", "no_of_previous_cancellations 9\n", "no_of_previous_bookings_not_canceled 59\n", "avg_price_per_room 3930\n", "no_of_special_requests 6\n", "booking_status 2\n", "dtype: int64" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Value of All data columns\n", "df.nunique()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now in this section we will drop Booking ID with a lot of unique value and not have a correlation with target" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "# Droping column\n", "df= df.drop(['Booking_ID'], axis =1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we will also drop column `arrival_year` because the unique value only 2 and it will make an eror correlation with the target if we dont drop it " ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "# Droping column\n", "df= df.drop(['arrival_year'], axis =1)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(36275, 17)" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show number row and columns after droping Booking ID\n", "df.shape" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "interval columns not set, guessing: ['no_of_adults', 'no_of_children', 'no_of_weekend_nights', 'no_of_week_nights', 'required_car_parking_space', 'lead_time', 'arrival_month', 'arrival_date', 'repeated_guest', 'no_of_previous_cancellations', 'no_of_previous_bookings_not_canceled', 'avg_price_per_room', 'no_of_special_requests', 'booking_status']\n" ] }, { "data": { "text/plain": [ "booking_status 1.000000\n", "lead_time 0.567900\n", "no_of_special_requests 0.358571\n", "arrival_month 0.224787\n", "avg_price_per_room 0.222650\n", "repeated_guest 0.167245\n", "no_of_week_nights 0.137998\n", "required_car_parking_space 0.134456\n", "type_of_meal_plan 0.131484\n", "market_segment_type 0.122171\n", "no_of_weekend_nights 0.101977\n", "no_of_adults 0.078562\n", "no_of_previous_bookings_not_canceled 0.073844\n", "no_of_children 0.051908\n", "no_of_previous_cancellations 0.039806\n", "room_type_reserved 0.035153\n", "arrival_date 0.026595\n", "Name: booking_status, dtype: float64" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Set Phik Correlation\n", "phik_matrix= df.phik_matrix()\n", "corr= phik_matrix['booking_status'].sort_values(ascending= False)\n", "\n", "#Display Results\n", "corr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Based on the information above we can drop the columns that have weak correlation like below `0,1` correlation with the target, like `no_of_adults`,`no_of_previous_bookings_not_canceled`,`no_of_children`,`no_of_previous_cancellations`,`room_type_reserved`,and `arrival_date`" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['no_of_adults', 'no_of_children', 'no_of_weekend_nights',\n", " 'no_of_week_nights', 'type_of_meal_plan', 'required_car_parking_space',\n", " 'room_type_reserved', 'lead_time', 'arrival_month', 'arrival_date',\n", " 'market_segment_type', 'repeated_guest', 'no_of_previous_cancellations',\n", " 'no_of_previous_bookings_not_canceled', 'avg_price_per_room',\n", " 'no_of_special_requests', 'booking_status'],\n", " dtype='object')" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.columns" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "df= df.drop(['no_of_adults','no_of_children','no_of_previous_cancellations',\n", " 'no_of_previous_bookings_not_canceled','room_type_reserved','arrival_date'], axis =1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "# Splitting antara x and y\n", "X= df.drop(['booking_status'], axis =1)\n", "# X= df_new.drop(columns=['booking_status'])\n", "y= df.booking_status\n", "# y= df_new['booking_status']" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
no_of_weekend_nightsno_of_week_nightstype_of_meal_planrequired_car_parking_spacelead_timearrival_monthmarket_segment_typerepeated_guestavg_price_per_roomno_of_special_requests
012Meal Plan 1022410Offline065.000
123Not Selected0511Online0106.681
221Meal Plan 1012Online060.000
302Meal Plan 102115Online0100.000
411Not Selected0484Online094.500
.................................
3627026Meal Plan 10858Online0167.801
3627113Meal Plan 1022810Online090.952
3627226Meal Plan 101487Online098.392
3627303Not Selected0634Online094.500
3627412Meal Plan 1020712Offline0161.670
\n", "

36275 rows × 10 columns

\n", "
" ], "text/plain": [ " no_of_weekend_nights no_of_week_nights type_of_meal_plan \\\n", "0 1 2 Meal Plan 1 \n", "1 2 3 Not Selected \n", "2 2 1 Meal Plan 1 \n", "3 0 2 Meal Plan 1 \n", "4 1 1 Not Selected \n", "... ... ... ... \n", "36270 2 6 Meal Plan 1 \n", "36271 1 3 Meal Plan 1 \n", "36272 2 6 Meal Plan 1 \n", "36273 0 3 Not Selected \n", "36274 1 2 Meal Plan 1 \n", "\n", " required_car_parking_space lead_time arrival_month \\\n", "0 0 224 10 \n", "1 0 5 11 \n", "2 0 1 2 \n", "3 0 211 5 \n", "4 0 48 4 \n", "... ... ... ... \n", "36270 0 85 8 \n", "36271 0 228 10 \n", "36272 0 148 7 \n", "36273 0 63 4 \n", "36274 0 207 12 \n", "\n", " market_segment_type repeated_guest avg_price_per_room \\\n", "0 Offline 0 65.00 \n", "1 Online 0 106.68 \n", "2 Online 0 60.00 \n", "3 Online 0 100.00 \n", "4 Online 0 94.50 \n", "... ... ... ... \n", "36270 Online 0 167.80 \n", "36271 Online 0 90.95 \n", "36272 Online 0 98.39 \n", "36273 Online 0 94.50 \n", "36274 Offline 0 161.67 \n", "\n", " no_of_special_requests \n", "0 0 \n", "1 1 \n", "2 0 \n", "3 0 \n", "4 0 \n", "... ... \n", "36270 1 \n", "36271 2 \n", "36272 2 \n", "36273 0 \n", "36274 0 \n", "\n", "[36275 rows x 10 columns]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1\n", "1 1\n", "2 0\n", "3 0\n", "4 0\n", " ..\n", "36270 1\n", "36271 0\n", "36272 1\n", "36273 0\n", "36274 1\n", "Name: booking_status, Length: 36275, dtype: int32" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "X_train shape: (27206, 10)\n", "X_test shape: (8615, 10)\n", "X_inference shape: (454, 10)\n", "y_train shape: (27206,)\n", "y_test shape: (8615,)\n", "y_inference shape: (454,)\n" ] } ], "source": [ "# Split data train dan juga test temp 80 % dan 20% temp\n", "X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.25, random_state=10)\n", "\n", "# Split temp set into test dan inference set 95% test 5% inference\n", "X_test, X_inference, y_test, y_inference = train_test_split(X_temp, y_temp, test_size=0.05, random_state=10)\n", "\n", "#print data frame untuk mendapatkan kolom dan baris yang sudah di split\n", "print(\"X_train shape:\", X_train.shape)\n", "print(\"X_test shape:\", X_test.shape)\n", "print(\"X_inference shape:\", X_inference.shape)\n", "print(\"y_train shape:\", y_train.shape)\n", "print(\"y_test shape:\", y_test.shape)\n", "print(\"y_inference shape:\", y_inference.shape)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
no_of_weekend_nightsno_of_week_nightstype_of_meal_planrequired_car_parking_spacelead_timearrival_monthmarket_segment_typerepeated_guestavg_price_per_roomno_of_special_requests
1847803Meal Plan 10209Online0136.672
1157514Meal Plan 10117Offline085.000
3610822Meal Plan 102412Online095.201
2315102Meal Plan 101886Offline0130.000
1937710Meal Plan 1028610Offline090.000
\n", "
" ], "text/plain": [ " no_of_weekend_nights no_of_week_nights type_of_meal_plan \\\n", "18478 0 3 Meal Plan 1 \n", "11575 1 4 Meal Plan 1 \n", "36108 2 2 Meal Plan 1 \n", "23151 0 2 Meal Plan 1 \n", "19377 1 0 Meal Plan 1 \n", "\n", " required_car_parking_space lead_time arrival_month \\\n", "18478 0 20 9 \n", "11575 0 11 7 \n", "36108 0 24 12 \n", "23151 0 188 6 \n", "19377 0 286 10 \n", "\n", " market_segment_type repeated_guest avg_price_per_room \\\n", "18478 Online 0 136.67 \n", "11575 Offline 0 85.00 \n", "36108 Online 0 95.20 \n", "23151 Offline 0 130.00 \n", "19377 Offline 0 90.00 \n", "\n", " no_of_special_requests \n", "18478 2 \n", "11575 0 \n", "36108 1 \n", "23151 0 \n", "19377 0 " ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# show Xtrain\n", "X_train.head()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "18478 1\n", "11575 1\n", "36108 1\n", "23151 0\n", "19377 0\n", "Name: booking_status, dtype: int32" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# show ytrain\n", "y_train.head()" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
no_of_weekend_nightsno_of_week_nightstype_of_meal_planrequired_car_parking_spacelead_timearrival_monthmarket_segment_typerepeated_guestavg_price_per_roomno_of_special_requests
305223Meal Plan 1024110Online0150.451
112403Not Selected0154Online0117.670
405212Not Selected01310Online0140.002
2903502Meal Plan 10412Online062.370
2236229Meal Plan 2052Online0146.000
\n", "
" ], "text/plain": [ " no_of_weekend_nights no_of_week_nights type_of_meal_plan \\\n", "3052 2 3 Meal Plan 1 \n", "1124 0 3 Not Selected \n", "4052 1 2 Not Selected \n", "29035 0 2 Meal Plan 1 \n", "22362 2 9 Meal Plan 2 \n", "\n", " required_car_parking_space lead_time arrival_month \\\n", "3052 0 241 10 \n", "1124 0 15 4 \n", "4052 0 13 10 \n", "29035 0 4 12 \n", "22362 0 5 2 \n", "\n", " market_segment_type repeated_guest avg_price_per_room \\\n", "3052 Online 0 150.45 \n", "1124 Online 0 117.67 \n", "4052 Online 0 140.00 \n", "29035 Online 0 62.37 \n", "22362 Online 0 146.00 \n", "\n", " no_of_special_requests \n", "3052 1 \n", "1124 0 \n", "4052 2 \n", "29035 0 \n", "22362 0 " ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Xtest\n", "X_test.head()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3052 0\n", "1124 0\n", "4052 1\n", "29035 1\n", "22362 0\n", "Name: booking_status, dtype: int32" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show ytest\n", "y_test.head()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 2858],\n", " [ 1, 5757]], dtype=int64)" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check Class Distribution in Test-Set\n", "np.array(np.unique(y_test, return_counts=True)).T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "0 = Canceled\n", "1 = Not Canceled" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['no_of_weekend_nights', 'no_of_week_nights', 'type_of_meal_plan',\n", " 'required_car_parking_space', 'lead_time', 'arrival_month',\n", " 'market_segment_type', 'repeated_guest', 'avg_price_per_room',\n", " 'no_of_special_requests'],\n", " dtype='object')" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train.columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check Cardinality for (Categorical and Categorical Numerical Columns)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of categories in the variable type_of_meal_plan : 4\n", "Number of categories in the variable required_car_parking_space : 2\n", "Number of categories in the variable market_segment_type : 5\n", "Number of categories in the variable repeated_guest : 2\n", "Number of categories in the variable no_of_special_requests : 6\n" ] } ], "source": [ "# untuk mengecek cardinality\n", "print('Number of categories in the variable type_of_meal_plan : {}'.format(len(df.type_of_meal_plan.unique())))\n", "print('Number of categories in the variable required_car_parking_space : {}'.format(len(df.required_car_parking_space.unique())))\n", "print('Number of categories in the variable market_segment_type : {}'.format(len(df.market_segment_type.unique())))\n", "print('Number of categories in the variable repeated_guest : {}'.format(len(df.repeated_guest.unique())))\n", "print('Number of categories in the variable no_of_special_requests : {}'.format(len(df.no_of_special_requests.unique())))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the information above our data categorical have low cardinality so it is `good fit`" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "type_of_meal_plan : ['Meal Plan 1' 'Not Selected' 'Meal Plan 2' 'Meal Plan 3']\n", "market_segment_type : ['Online' 'Offline' 'Corporate' 'Complementary' 'Aviation']\n" ] } ], "source": [ "#Show all unique value of data categorical or object data type\n", "df= X_train.select_dtypes(include=['object','category']).columns.tolist()\n", "for columns in X_train[df]:\n", " \n", " print(f'{columns} : {X_train[columns].unique()}')" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1], dtype=int64)" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Valeue of Categorical Numeric\n", "X_train.required_car_parking_space.unique()" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1], dtype=int64)" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Valeue of Categorical Numeric\n", "X_train.repeated_guest.unique()" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([2, 0, 1, 3, 4, 5], dtype=int64)" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show Unique Valeue of Categorical Numeric\n", "X_train.no_of_special_requests.unique()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From information above we can said that 3 other columns are not data categorical but data categorical numeric `required_car_parking_space`, `repeated_guest `, and `no_of_special_requests` " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Checking and Handling Outlier for (Numerical Columns)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "# Function to create histogram and boxplot.\n", "# This functions takes a dataframe (df) and the variable of interest as arguments.\n", "\n", "def diagnostic_plots(df, variable):\n", " # Define figure size\n", " plt.figure(figsize=(16, 4))\n", "\n", " # Histogram\n", " plt.subplot(1, 2, 1)\n", " sns.histplot(df[variable], bins=30)\n", " plt.title('Histogram')\n", "\n", " # Boxplot\n", " plt.subplot(1, 2, 2)\n", " sns.boxplot(y=df[variable])\n", " plt.title('Boxplot')\n", "\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# visualizing outliers for All columns\n", "ax = sns.boxplot(data=X_train, orient=\"h\", palette=\"Set2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "okay now we will handle outlier to data type float or numerical continuous columns" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 27206 entries, 18478 to 17673\n", "Data columns (total 10 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 no_of_weekend_nights 27206 non-null int64 \n", " 1 no_of_week_nights 27206 non-null int64 \n", " 2 type_of_meal_plan 27206 non-null object \n", " 3 required_car_parking_space 27206 non-null int64 \n", " 4 lead_time 27206 non-null int64 \n", " 5 arrival_month 27206 non-null int64 \n", " 6 market_segment_type 27206 non-null object \n", " 7 repeated_guest 27206 non-null int64 \n", " 8 avg_price_per_room 27206 non-null float64\n", " 9 no_of_special_requests 27206 non-null int64 \n", "dtypes: float64(1), int64(7), object(2)\n", "memory usage: 2.3+ MB\n" ] } ], "source": [ "# Show Data type\n", "X_train.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "from information above we will handle outlier with lots of unique values" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distribution of column `no_of_weekend_nights`: 0.7183013056277611\n", "Distribution of column `no_of_week_nights` : 1.4856608752054041\n", "Distribution of column `lead_time` : 1.300929223383215\n", "Distribution of column `arrival_month` : -0.34560081465019166\n", "Distribution of column `repeated_guest` : 6.081103931170396\n", "Distribution of column `avg_price_per_room` : 0.5983008821448975\n", "Distribution of column `no_of_special_requests` : 1.1441190231555718\n" ] } ], "source": [ "# Let's check whether a distribution is normal or not all columns\n", "\n", "print('Distribution of column `no_of_weekend_nights`: ', X_train['no_of_weekend_nights'].skew())\n", "print('Distribution of column `no_of_week_nights` : ', X_train['no_of_week_nights'].skew())\n", "print('Distribution of column `lead_time` : ', X_train['lead_time'].skew())\n", "print('Distribution of column `arrival_month` : ', X_train['arrival_month'].skew())\n", "print('Distribution of column `repeated_guest` : ', X_train['repeated_guest'].skew())\n", "print('Distribution of column `avg_price_per_room` : ', X_train['avg_price_per_room'].skew())\n", "print('Distribution of column `no_of_special_requests` : ', X_train['no_of_special_requests'].skew())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "from information above the data with score between `-0.5` and `0.5` have gausian or normal distribution but if the data have score upper and lower that standard means data skew or have outlier. Here we will do capping method to handling outlier because we dont want to drop column anymore, the data gausian will count using `Gausian` and data skew using `IQR`" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [], "source": [ "def handling_outliers(X_train, columns):\n", " for column in columns:\n", " # calculate Q1 and Q3 of the column\n", " Q1 = X_train[column].quantile(0.25)\n", " Q3 = X_train[column].quantile(0.75)\n", " IQR = Q3 - Q1\n", "\n", " # define the fences\n", " lower_fence = Q1 - 1.5 * IQR\n", " upper_fence = Q3 + 1.5 * IQR\n", "\n", " # cap the outliers to the nearest actual data point\n", " X_train[column] = np.where(X_train[column] > upper_fence, upper_fence, \n", " np.where(X_train[column] < lower_fence, lower_fence, X_train[column]))\n", " \n", " return X_train\n", "columns = ['no_of_weekend_nights','no_of_week_nights',\n", " 'lead_time','arrival_month','repeated_guest',\n", " 'avg_price_per_room','no_of_special_requests']\n", "X_train_capped= handling_outliers(X_train,columns)\n", "X_test_capped= handling_outliers(X_test,columns)" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "image/png": "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yYpztolkIMecLyEE1Go11Gq11iPZS5TMzy4pBzxce5trbRMREemGc7aJGjCFQqHTzY66liMiIiL5cc42EREREZFMmGwTEREREcmEyTYRERERkUyYbBMRERERyYTJNhERERGRTJhsExERERHJhMk2EREREZFMuM42UT2jVCrxxRdfoLCwEABgbGwMhUIBpVKp58iIiIjoUUy2ieoZhUIBlUoFlUql71CIiIioCpxGQkREREQkEybbREREREQyYbJNRERERCQTJttERERERDJhsk1EREREJBOuRkJUTwghoFarATxc/k+hUOg5IiIiIqoKR7aJ6gm1Wo2wsDCEhYVJSTcRERHVbUy2ieqJ0gk2k20iIqL6gck2EREREZFMmGwTEREREcmEyTYRERERkUyYbBMRERERyYTJNhERERGRTJhsExERERHJhMk2UT2h0WjKfU9ERER1F5Ntonri7t275b4nIiKiuovJNhERERGRTJhsExERERHJhMk2EREREZFMmGwTEREREcmkXiTbWVlZUCgUSEtLq/G6k5KSoFAocPv27Rqvu67TpV8VCgXi4+NrLSbSzbx58zB27FiMHTtW36EQERFRJepFsu3k5IScnBx06NBB36E0ODk5ORg0aJC+w6BKMOEmIiKqu54o2S4sLKypOCplaGgIBwcHNGrUqNz9Qgg8ePCgVmKpaUVFRXppV9efnYODA5RKpczREBERET2dqpVs+/r6YurUqZg5cyaaNGmCAQMG4Pz58xg8eDDMzMxgb2+PcePG4fr169Ix9+7dQ0hICMzMzODo6IiIiAj4+voiPDxcKlPeVAUrKyvExMQAKDvdoWTqx969e+Hl5QWlUolDhw5BCIGVK1eidevWUKlU6NSpE7799lutenfv3g1XV1eoVCr069cPWVlZ1ekCHDlyBD4+PmjcuDGsra0REBCAW7duAQD27NmDPn36wMrKCra2tnjhhReQmZkpHVtyHl9//TV8fX1hYmKCL7/8stL2YmJiYGVlhfj4eLi6usLExAQDBgzA1atXpTKZmZkYPnw47O3tYWZmhmeffRY//fSTVj3Ozs744IMPEBoaCktLS0ycOLFMWxqNBhMnToSrqyt+++03ANo/m5L4d+zYgX79+qFx48bo1KkT/ve//2nVs2nTJjg5OaFx48YYMWIEVq9eDSsrK5369+eff0a/fv1g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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# visualizing clearing outlier\n", "ax = sns.boxplot(data=X_train_capped, orient=\"h\", palette=\"Set2\")" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAAGdCAYAAAA7eUSzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABfK0lEQVR4nO3deVxU1f8/8NeAMIzsoCwaioogIq6koiYoGC6paKUiiYRpWi7kmmkftTK3cMk+oVksmn5oUflUmkoKuH1ERElNRCUJK4zcwI0BmfP7wx/3y8g21xAYeT0fj3k8Zu4995z3PVycN8dzz1UIIQSIiIiIiEgnBnUdABERERGRPmECTUREREQkAxNoIiIiIiIZmEATEREREcnABJqIiIiISAYm0EREREREMjCBJiIiIiKSgQk0EREREZEMjeo6AKKnkUajwZ9//glzc3MoFIq6DoeIiIh0IITA7du30axZMxgYVD7OzASa6An4888/4eTkVNdhEBER0WO4cuUKnnnmmUr3M4EmegLMzc0BPPwFtLCwqONoiIiISBcFBQVwcnKSvscrwwSa6AkonbZhYWFRYwm0EAJqtRpCCBQVFQEAjI2NYWJiwmkiRERENai671Um0ER6Qq1WIywsrNz2qKgomJiY1EFEREREDRNX4SAiIiIikoEJNBERERGRDEygiYiIiIhkYAJNRERERCQDE2giIiIiIhmYQBMRERERycAEmoiIiIhIBibQREREREQy8EEqRHpCCFHtfrVaDQBQKpV8OiEREdETwhFoIj1R+vjuypQ+qTAsLExKpImIiKjmMYEmIiIiIpKBCTQRERERkQxMoImIiIiIZGACTUREREQkAxPoGnL16lUMGDAApqamsLKyqutwygkNDUVgYGCtt+vr64vw8PAaqSs7OxsKhQLp6ek6HxMTE1Mvfx5ERESkv7iMXQ1Zs2YNcnNzkZ6eDktLy7oO56nk5OSE3NxcNGnSpEbrDQ0Nxa1btxAfH1+j9RIREdHTiQl0DcnKykK3bt3Qtm3bug7lqWVoaAgHB4e6DoOIiIgauKdmCoevry+mT5+OuXPnwsbGBg4ODli8eLG0PycnB8OHD4eZmRksLCwwatQo/PXXXzrXHxkZiTZt2sDY2Bhubm7YsmWLtM/Z2Rnbt2/H5s2boVAoEBoaWmVds2bNwtChQ6XPa9euhUKhwK5du6Rtbm5u2Lhxo/Q5Ojoa7u7uMDExQbt27fDpp59q1fnHH39g9OjRsLa2hq2tLYYPH47s7OxKY0hLS4OdnR2WLl0KAMjPz8ekSZNgZ2cHCwsL9O/fHz///LNUfvHixejcuTO2bNkCZ2dnWFpaYsyYMbh9+7ZU5u7duwgJCYGZmRkcHR0RERFRZT88ytnZGR9++CHCwsJgbm6OFi1a4LPPPpP2VzSF47vvvkPbtm2hUqnQr18/xMbGQqFQ4NatW1p17927F+7u7jAzM8PAgQORm5srnVdsbCz++9//QqFQQKFQICkpCUVFRZg6dSocHR1hYmICZ2dnLFu2TNb51Ba1Wo3CwkKttZ+re+gKERERPb6nJoEGgNjYWJiamiIlJQUrV67Ee++9h4SEBAghEBgYiBs3biA5ORkJCQnIysrC6NGjdap3586dmDFjBmbNmoWzZ8/i9ddfx6uvvorExEQAQGpqKgYOHIhRo0YhNzcX69atq7I+X19fHDp0CBqNBgCQnJyMJk2aIDk5GcDD+dQXLlyAj48PAGDTpk1YsGABli5dioyMDHz44Yd49913ERsbCwC4d+8e+vXrBzMzMxw8eBCHDx+WEsWKHr6RlJQEPz8/LFmyBAsWLIAQAkOGDMHVq1exe/dupKWloWvXrvDz88ONGzek47KyshAfH48ffvgBP/zwA5KTk7F8+XJp/5w5c5CYmIidO3di3759SEpKQlpamk59XCoiIgJeXl44deoU3njjDUyZMgXnz5+vsGx2djZeeuklBAYGIj09Ha+//joWLFhQrty9e/fw0UcfYcuWLTh48CBycnIwe/ZsAMDs2bMxatQoKanOzc1Fr1698PHHH+O7777D119/jczMTHz55ZdwdnauNG61Wo2CggKtV22ZMmUKwsLCMGXKFGlbdQ9dISIion9APCV8fHxEnz59tLY9++yzYt68eWLfvn3C0NBQ5OTkSPt++eUXAUAcP3682rp79eolJk6cqLXt5ZdfFoMHD5Y+Dx8+XIwfP16nWG/duiUMDAzEiRMnhEajEba2tmLZsmXi2WefFUIIsW3bNmFvby+Vd3JyEtu2bdOq4/333xfe3t5CCCG++OIL4ebmJjQajbRfrVYLlUol9u7dK4QQYvz48WL48OEiPj5emJuba9W3f/9+YWFhIQoLC7XaaNOmjdi4caMQQohFixaJxo0bi4KCAmn/nDlzRI8ePYQQQty+fVsYGxuLuLg4af/169eFSqUSM2bM0KlfWrZsKV555RXps0ajEXZ2diIyMlIIIcTly5cFAHHq1CkhhBDz5s0THTp00KpjwYIFAoC4efOmEEKI6OhoAUBcunRJKvPvf/9bq39L+6asadOmif79+2v1aVUWLVokAJR75efn63S8Lm7duiWCgoJ0et26davG2iUiImoo8vPzdfr+fqpGoDt27Kj12dHREXl5ecjIyICTkxOcnJykfe3bt4eVlRUyMjKqrTcjIwO9e/fW2ta7d2+djq2IpaUlOnfujKSkJJw5cwYGBgZ4/fXX8fPPP+P27dtISkqSRp///vtvXLlyBRMmTICZmZn0+uCDD5CVlQXg4XSMS5cuwdzcXNpvY2ODwsJCqQwApKSk4MUXX0RsbCyCgoKk7Wlpabhz5w5sbW212rh8+bLW8c7OzjA3N5c+l/Yv8HB0uqioCN7e3tJ+GxsbuLm5yeqbsj9DhUIBBwcHqY1HZWZm4tlnn9Xa1r1793LlGjdujDZt2lQYd2VCQ0ORnp4ONzc3TJ8+Hfv27auy/Pz585Gfny+9rly5UmX5mhQZGYmoqChERkZK24yNjWutfSIioobmqbqJ0MjISOuzQqGARqOBEAIKhaJc+cq2V+TRcnKOrYivry+SkpJgbGwMHx8fWFtbw8PDA0eOHEFSUpK09FvpNI9NmzahR48eWnUYGhpKZbp164atW7eWa6dp06bS+zZt2sDW1hZRUVEYMmSIlGRpNBo4OjoiKSmp3PFll4CrrH+BmptzW1Ubj6roZ1BRHBXVWV28Xbt2xeXLl/Hjjz/ip59+wqhRo+Dv749vv/22wvJKpRJKpbLKOp8UpVIJExMTrW3/5NokIiKiqj1VI9CVad++PXJycrRGBc+dO4f8/Hy4u7tXe7y7uzsOHz6ste3o0aM6HVuZ0nnQBw4cgK+vLwDAx8cHcXFxWvOf7e3t0bx5c/z6669wcXHRerVq1QrAw2Tv4sWLsLOzK1em7JJ6TZo0wYEDB6T538XFxdLxV69eRaNGjcodr+uScS4uLjAyMsKxY8ekbTdv3sSFCxceu4+q065dO6SmpmptO3HihOx6jI2NUVJSUm67hYUFRo8ejU2bNuGrr77C9u3bteaEExERUcPUIBJof39/dOzYEcHBwTh58iSOHz+OkJAQ+Pj4wMvLq9rj58yZg5iYGGzYsAEXL17E6tWrsWPHDulGtMfRt29f3L59G99//72UQPv6+uLLL79E06ZN0b59e6ns4sWLsWzZMqxbtw4XLlzAmTNnEB0djdWrVwMAgoOD0aRJEwwfPhyHDh3C5cuXkZycjBkzZuD333/XatfOzg4HDhzA+fPnERQUhAcPHsDf3x/e3t4IDAzE3r17kZ2djaNHj2LhwoU6J6RmZmaYMGEC5syZg/379+Ps2bMIDQ2FgcGTu8Ref/11nD9/HvPmzcOFCxfw9ddfIyYmBoC8EVhnZ2ecPn0amZmZuHbtGoqLi7FmzRrExcXh/PnzuHDhAr755hs4ODjwoSxERETUMBJohUKB+Ph4WFtbo2/fvvD390fr1q3x1Vdf6XR8YGAg1q1bh1WrVsHDwwMbN25EdHS0lPg+DktLS3Tp0gU2NjZSsvzcc89Bo9FIo8+lXnvtNXz++eeIiYmBp6cnfHx8EBMTI41AN27cGAcPHkSLFi0wcuRIuLu7IywsDPfv34eFhUW5th0cHHDgwAGcOXMGwcHB0Gg02L17N/r27YuwsDC4urpizJgxyM7Ohr29vc7ntGrVKvTt2xfDhg2Dv78/+vTpg27duj12H1WnVatW+Pbbb7Fjxw507NgRkZGR0ioccqZTTJw4EW5ubvDy8kLTpk1x5MgRmJmZYcWKFfDy8sKzzz6L7Oxs7N69+4n+QUBERET6QSFqavIqUT2wdOlSbNiwoVZv4qtIQUEBLC0tkZ+fX+EfMY8jPz9fa6m6UlFRUTAxMUFhYSHCwsK0thEREZHudP3+fqpuIqSG59NPP8Wzzz4LW1tbHDlyBKtWrcLUqVPrOiwiIiJ6ivH/owF4eHhoLd9W9lXRyhbV2bp1a6X1eXh4PIEzqP8OHTpUaZ+YmZk9dr0XL17E8OHD0b59e7z//vuYNWuW1hMoiYiIiGoaR6AB7N69W1qR4lFy5gCXGjZsWLkl50o9uqRaQ+Hl5aX1CO6asmbNGqxZs6bG6yUiIiKqDBNoAC1btqzR+szNzbUeOEKASqWCi4tLXYeh16p7OIpSqURUVJT0noiIiJ4MJtBEeqK6pfkUCgVvHCQiIqoFnANNRERERCQDE2giIiIiIhmYQBMRERERycAEmoiIiIhIBibQREREREQyMIEmIiIiIpKBCTQRERERkQxcB5pIT5Q+KEUIgaKiIgAPH67Ch6YQERHVLibQRHqi7INSVCpVHUdDRETUcHEKBxERERGRDEygiYiIiIhkYAJNRERERCQDE2giIiIiIhl4EyGRnhFCoLCwUGslDoVCAaVSCYVCUcfRERERPf2YQBPpGbVajQkTJpTbHhUVJa3SQURERE8Op3AQEREREcnABJqIiIiISAYm0EREREREMjCBJiIiIiKSgQk0EREREZEMTKCJiIiIiGRgAk1EREREJAMTaCIiIiIiGfggFSI9IYSAWq2GWq2utgwAPpmQiIjoCWECTaQn1Go1wsLCdC7DJxMSERE9GZzCQUREREQkAxNoIiIiIiIZmEATEREREcnABJqIiIiISAYm0Hrk6tWrGDBgAExNTWFlZVXX4ZQTGhqKwMDAJ1a/r68vwsPDZR2jUCgQHx//ROIhIiKihomrcOiRNWvWIDc3F+np6bC0tKzrcGrdjh07YGRkVKN1JiUloV+/frh582a9/KOEiIiI6h8m0HokKysL3bp1Q9u2bes6lDphY2NT1yEQERERcQqHHL6+vpg+fTrmzp0LGxsbODg4YPHixdL+nJwcDB8+HGZmZrCwsMCoUaPw119/6Vx/ZGQk2rRpA2NjY7i5uWHLli3SPmdnZ2zfvh2bN2+GQqFAaGholXXNmjULQ4cOlT6vXbsWCoUCu3btkra5ublh48aN0ufo6Gi4u7vDxMQE7dq1w6effqpV5x9//IHRo0fD2toatra2GD58OLKzsyuNIS0tDXZ2dli6dGm157548WJ07twZW7ZsgbOzMywtLTFmzBjcvn1bKvPoFI7c3FwMGTIEKpUKrVq1wrZt2+Ds7Iy1a9dq1X3t2jWMGDECjRs3Rtu2bfHdd98BALKzs9GvXz8AgLW1tVa/fvvtt/D09IRKpYKtrS38/f1x9+7das/jSRJCVLn/0YesVFeeiIiIHg8TaJliY2NhamqKlJQUrFy5Eu+99x4SEhIghEBgYCBu3LiB5ORkJCQkICsrC6NHj9ap3p07d2LGjBmYNWsWzp49i9dffx2vvvoqEhMTAQCpqakYOHAgRo0ahdzcXKxbt67K+nx9fXHo0CFoNBoAQHJyMpo0aYLk5GQAD+dTX7hwAT4+PgCATZs2YcGCBVi6dCkyMjLw4Ycf4t1330VsbCwA4N69e+jXrx/MzMxw8OBBHD58GGZmZhg4cCCKiorKtZ+UlAQ/Pz8sWbIECxYs0KkPsrKyEB8fjx9++AE//PADkpOTsXz58krLh4SE4M8//0RSUhK2b9+Ozz77DHl5eeXKLVmyBKNGjcLp06cxePBgBAcH48aNG3BycsL27dsBAJmZmVK/5ubmIigoCGFhYcjIyEBSUhJGjhxZZUKqVqtRUFCg9appFfVzWVOmTMGUKVN0Lk9ERESPh1M4ZOrYsSMWLVoEAGjbti0++eQT7N+/HwBw+vRpXL58GU5OTgCALVu2wMPDA6mpqXj22WerrPejjz5CaGgo3njjDQDAzJkzcezYMXz00Ufo168fmjZtCqVSCZVKBQcHh2rj7Nu3L27fvo1Tp06ha9euOHToEGbPno0dO3YAABITE2Fvb4927doBAN5//31ERERg5MiRAIBWrVrh3Llz2LhxI8aPH4+4uDgYGBjg888/lx4PHR0dDSsrKyQlJeH555+X2v7vf/+LcePGYePGjQgKCtK5bzUaDWJiYmBubg4AGDduHPbv31/hCPb58+fx008/ITU1FV5eXgCAzz//vMLpLaGhoVIcH374IdavX4/jx49j4MCB0rQQOzs7aQ50VlYWHjx4gJEjR6Jly5YAAE9PzypjX7ZsGZYsWaLzuRIREZH+4gi0TB07dtT67OjoiLy8PGRkZMDJyUlKngGgffv2sLKyQkZGRrX1ZmRkoHfv3lrbevfurdOxFbG0tETnzp2RlJSEM2fOwMDAAK+//jp+/vln3L59G0lJSdLo899//40rV65gwoQJMDMzk14ffPABsrKyADycjnHp0iWYm5tL+21sbFBYWCiVAYCUlBS8+OKLiI2NlZU8Aw+nqZQmz8D/9W1FMjMz0ahRI3Tt2lXa5uLiAmtr63Jly/7MTE1NYW5uXmm9ANCpUyf4+fnB09MTL7/8MjZt2oSbN29WGfv8+fORn58vva5cuVJl+cdhbGxc5f7IyEhERkbqXJ6IiIgeD0egZXp0FQiFQgGNRgMhhDQyW1Zl2yvyaDk5x1bE19cXSUlJMDY2ho+PD6ytreHh4YEjR44gKSlJmk9cOs1j06ZN6NGjh1YdhoaGUplu3bph69at5dpp2rSp9L5NmzawtbVFVFQUhgwZIiuJq6xvK1LZdIqKtsupF3h4zgkJCTh69Cj27duH9evXY8GCBUhJSUGrVq0qPEapVEKpVFZaZ02o7lp4tP1/cu0QERFR5TgCXUPat2+PnJwcrZHHc+fOIT8/H+7u7tUe7+7ujsOHD2ttO3r0qE7HVqZ0HvSBAwfg6+sLAPDx8UFcXJzW/Gd7e3s0b94cv/76K1xcXLRepQlj165dcfHiRdjZ2ZUrU3ZJvSZNmuDAgQPS/O/i4uLHjr8q7dq1w4MHD3Dq1Clp26VLl3Dr1i1Z9ZQm+CUlJVrbFQoFevfujSVLluDUqVMwNjbGzp07/3HcREREpP+YQNcQf39/dOzYEcHBwTh58iSOHz+OkJAQ+Pj4SHN0qzJnzhzExMRgw4YNuHjxIlavXo0dO3Zg9uzZjx1T6Tzo77//XkqgfX198eWXX6Jp06Zo3769VHbx4sVYtmwZ1q1bhwsXLuDMmTOIjo7G6tWrAQDBwcFo0qQJhg8fjkOHDuHy5ctITk7GjBkz8Pvvv2u1a2dnhwMHDuD8+fMICgrCgwcPHvscKtOuXTv4+/tj0qRJOH78OE6dOoVJkyZBpVLJGnlt2bIlFAoFfvjhB/z999+4c+cOUlJS8OGHH+LEiRPIycnBjh078Pfff/+jP2aIiIjo6cEEuoaUPvHO2toaffv2hb+/P1q3bo2vvvpKp+MDAwOxbt06rFq1Ch4eHti4cSOio6OlxPdxWFpaokuXLrCxsZGS5eeeew4ajUYafS712muv4fPPP0dMTAw8PT3h4+ODmJgYaQS6cePGOHjwIFq0aIGRI0fC3d0dYWFhuH//PiwsLMq17eDggAMHDuDMmTMIDg4uN8JbEzZv3gx7e3v07dsXI0aMwMSJE2Fubg4TExOd62jevDmWLFmCt99+G/b29pg6dSosLCxw8OBBDB48GK6urli4cCEiIiIwaNCgGj8HIiIi0j8KwcVi6Snx+++/w8nJCT/99BP8/PzqNJaCggJYWloiPz+/wj8wHkdhYSHCwsIq3R8VFQUAUpmoqChZf0wQERE1dLp+f/MmQtJbBw4cwJ07d+Dp6Ync3FzMnTsXzs7O6Nu3b12HRkRERE8xTuGoJR4eHlpLxJV9VbSyRXW2bt1aaX0eHh5P4Az+mZo+fwAoLi7GO++8Aw8PD4wYMQJNmzZFUlJSuVU3iIiIiGoSR6Brye7duytdkcLe3l52fcOGDSu35Fyp+phA1vT5A0BAQAACAgL+SVhEREREsnEONNET8CTmQAshoFaroVartR7ZXSoqKgpKpRJqtRrAw3WhuRY0ERGR7jgHmugpo1Aoqr0pUJcyRERE9M9wDjQRERERkQxMoImIiIiIZGACTUREREQkAxNoIiIiIiIZmEATEREREcnABJqIiIiISAYm0EREREREMnAdaCI9o1Qq8cUXX6CoqAgAYGxsDIVCAaVSWceRERERNQxMoIn0jEKhgEqlgkqlqutQiIiIGiRO4SAiIiIikoEJNBERERGRDEygiYiIiIhkYAJNRERERCQDE2giIiIiIhm4CgeRnhBCQK1WA3i4lJ1CoajjiIiIiBomjkAT6Qm1Wo2wsDCEhYVJiTQRERHVPibQRHqibNLMBJqIiKjuMIEmIiIiIpKBCTQRERERkQxMoImIiIiIZGACTUREREQkAxNoIiIiIiIZmEATEREREcnABJpIT2g0mgrfExERUe1iAk2kJ+7cuVPheyIiIqpdTKCJiIiIiGRgAk1EREREJAMTaCIiIiIiGZhAExERERHJoBcJdHZ2NhQKBdLT02u87qSkJCgUCty6davG667vdOlXhUKB+Pj4WouJdDNv3jyMHTsWY8eOretQiIiIGhy9SKCdnJyQm5uLDh061HUoDU5ubi4GDRpU12FQFZhEExER1a5/lEAXFRXVVBxVMjQ0hIODAxo1alThfiEEHjx4UCux1LTi4uI6aVfXn52DgwOUSuUTjoaIiIhIf8hKoH19fTF16lTMnDkTTZo0wYABA3Du3DkMHjwYZmZmsLe3x7hx43Dt2jXpmLt37yIkJARmZmZwdHREREQEfH19ER4eLpWpaJqAlZUVYmJiAJSfalA67WLv3r3w8vKCUqnEoUOHIITAypUr0bp1a6hUKnTq1AnffvutVr27d++Gq6srVCoV+vXrh+zsbDldgCNHjsDHxweNGzeGtbU1AgICcPPmTQDAnj170KdPH1hZWcHW1hYvvPACsrKypGNLz+Prr7+Gr68vTExM8OWXX1bZXkxMDKysrBAfHw9XV1eYmJhgwIABuHLlilQmKysLw4cPh729PczMzPDss8/ip59+0qrH2dkZH3zwAUJDQ2FpaYmJEyeWa0uj0WDixIlwdXXFb7/9BkD7Z1Ma/44dO9CvXz80btwYnTp1wv/+9z+tejZt2gQnJyc0btwYI0aMwOrVq2FlZaVT//7888/o168fzM3NYWFhgW7duuHEiRM12hdqtRpz586Fk5MTlEol2rZtiy+++ELaX901XR9xFJqIiKj2yB6Bjo2NRaNGjXDkyBEsX74cPj4+6Ny5M06cOIE9e/bgr7/+wqhRo6Tyc+bMQWJiInbu3Il9+/YhKSkJaWlpNRL83LlzsWzZMmRkZKBjx45YuHAhoqOjERkZiV9++QVvvfUWXnnlFSQnJwMArly5gpEjR2Lw4MFIT0/Ha6+9hrffflvn9tLT0+Hn5wcPDw/873//w+HDhzF06FCUlJQAePjHwsyZM5Gamor9+/fDwMAAI0aMKPfUuHnz5mH69OnIyMhAQEBAte3eu3cPS5cuRWxsLI4cOYKCggKMGTNG2n/nzh0MHjwYP/30E06dOoWAgAAMHToUOTk5WvWsWrUKHTp0QFpaGt59912tfUVFRRg1ahROnDiBw4cPo2XLlpXGs2DBAsyePRvp6elwdXVFUFCQ9D8AR44cweTJkzFjxgykp6djwIABWLp0abXnWCo4OBjPPPMMUlNTkZaWhrfffhtGRkY12hchISGIi4vDxx9/jIyMDGzYsAFmZmYAHk5Zqe6aroharUZBQYHWq6bNmzevyv1MoomIiGqJkMHHx0d07txZ+vzuu++K559/XqvMlStXBACRmZkpbt++LYyNjUVcXJy0//r160KlUokZM2ZI2wCInTt3atVjaWkpoqOjhRBCXL58WQAQp06dEkIIkZiYKACI+Ph4qfydO3eEiYmJOHr0qFY9EyZMEEFBQUIIIebPny/c3d2FRqOR9s+bN08AEDdv3qz2/IOCgkTv3r2rLVcqLy9PABBnzpzROo+1a9fqXEd0dLQAII4dOyZty8jIEABESkpKpce1b99erF+/XvrcsmVLERgYqFWmNJ5Dhw4Jf39/0bt3b3Hr1i2tMmV/NqXlP//8c2n/L7/8IgCIjIwMIYQQo0ePFkOGDNGqIzg4WFhaWup0vubm5iImJqbCfTXRF5mZmQKASEhIqLBsddd0ZRYtWiQAlHvl5+dXeoxcQUFB1b6IiIjo8eXn5+v0/S17BNrLy0t6n5aWhsTERJiZmUmvdu3aAXj4X+lZWVkoKiqCt7e3dIyNjQ3c3NzkNlttLOfOnUNhYSEGDBigFc/mzZulaRQZGRno2bMnFAqFdFzZ2KpTOgJdmaysLIwdOxatW7eGhYUFWrVqBQDlRoLLxq2LRo0aaR3Trl07WFlZISMjA8DDke+5c+eiffv2sLKygpmZGc6fP69zu0FBQbhz5w727dsHS0vLauPp2LGj9N7R0REAkJeXBwDIzMxE9+7dtco/+rkqM2fOxGuvvQZ/f38sX75cawoM8M/7Ij09HYaGhvDx8amw/equ6crMnz8f+fn50qvstBIiIiJ6ulR8V14VTE1NpfcajQZDhw7FihUrypVzdHTExYsXdapToVBACKG1TZeb6x6NBQB27dqF5s2ba5UrvQnu0TbkUqlUVe4fOnQonJycsGnTJjRr1gwajQYdOnQod8Ne2bh1VTbpf3TbnDlzsHfvXnz00UdwcXGBSqXCSy+9pHO7gwcPxpdffoljx46hf//+1cZSdkpFaQyl/S+EKBernH5fvHgxxo4di127duHHH3/EokWLEBcXhxEjRpRrsyxd+6K6n2F113RllErlE7/ZcsWKFVVO49i2bdsTbZ+IiIge+kercHTt2hW//PILnJ2d4eLiovUyNTWFi4sLjIyMcOzYMemYmzdv4sKFC1r1NG3aFLm5udLnixcv4t69e7Jiad++PZRKJXJycsrF4uTkJJUpGwuAcp+r0rFjR+zfv7/CfdevX0dGRgYWLlwIPz8/uLu7SzcX/lMPHjyQbqQDHo7y3rp1SxoZPXToEEJDQzFixAh4enrCwcFB1s2RU6ZMwfLlyzFs2DBpvvjjateuHY4fP661rWzsunB1dcVbb72Fffv2YeTIkYiOjpb2/dO+8PT0hEajqfQ8q7um6ysmz0RERLXnHyXQb775Jm7cuIGgoCAcP34cv/76K/bt24ewsDCUlJTAzMwMEyZMwJw5c7B//36cPXsWoaGhMDDQbrZ///745JNPcPLkSZw4cQKTJ0/WGuXUhbm5OWbPno233noLsbGxyMrKwqlTp/Dvf/8bsbGxAIDJkycjKysLM2fORGZmJrZt2yat9KGL+fPnIzU1FW+88QZOnz6N8+fPIzIyEteuXYO1tTVsbW3x2Wef4dKlSzhw4ABmzpwp6xwqY2RkhGnTpiElJQUnT57Eq6++ip49e0pTI1xcXLBjxw6kp6fj559/xtixY8vduFidadOm4YMPPsALL7yAw4cPP3as06ZNw+7du7F69WpcvHgRGzduxI8//ljhqPGj7t+/j6lTpyIpKQm//fYbjhw5gtTUVLi7u0tl/mlfODs7Y/z48QgLC0N8fDwuX76MpKQkfP311wCqv6aJiIiI/lEC3axZMxw5cgQlJSUICAhAhw4dMGPGDFhaWkpJ8qpVq9C3b18MGzYM/v7+6NOnD7p166ZVT0REBJycnNC3b1+MHTsWs2fPRuPGjWXH8/777+Nf//oXli1bBnd3dwQEBOD777+X5iK3aNEC27dvx/fff49OnTphw4YN+PDDD3Wu39XVFfv27cPPP/+M7t27w9vbG//973/RqFEjGBgYIC4uDmlpaejQoQPeeustrFq1SvY5VKRx48bSk+e8vb2hUqkQFxcn7V+zZg2sra3Rq1cvDB06FAEBAejatavsdsLDw7FkyRIMHjwYR48efaxYe/fujQ0bNmD16tXo1KkT9uzZg7feegsmJibVHmtoaIjr168jJCQErq6uGDVqFAYNGoQlS5ZIZWqiLyIjI/HSSy/hjTfeQLt27TBx4kTcvXsXgG7XdH3D0WciIqLapRD/dGLwY/D19UXnzp2xdu3a2m5a78TExCA8PFyvHzU+ceJEnD9/HocOHfpH9ehTXxQUFMDS0hL5+fmwsLCokTqvXLkizYFesWKFNDWJiIiIaoau39+ybyIkqs5HH32EAQMGwNTUFD/++CNiY2Px6aef1nVYRERERDWifv6fdB0ZNGiQ1vJlZV9ypnrU9zaftOPHj2PAgAHw9PTEhg0b8PHHH+O1114DAHh4eFR6vlu3bq3jyImIiIiqVydTOOqrP/74A/fv369wn42NDWxsbJ6KNuvSb7/9VukShfb29jA3N6/liJ4MTuEgIiLSP5zC8RgeXT/6aW2zLlX1iHCqWunjxh99T0RERLWLUziI9ETZVUDq64ogREREDQG/hYmIiIiIZGACTUREREQkAxNoIiIiIiIZmEATEREREcnABJqIiIiISAYm0EREREREMjCBJiIiIiKSgQk0kZ5QKpUVviciIqLaxScREukJpVKJqKgo6T0RERHVDSbQRHpCoVDAxMSkrsMgIiJq8DiFg4iIiIhIBibQREREREQyMIEmIiIiIpKBCTQRERERkQy8iZCIKiSEgFqtruswao0QAkVFRQAAY2NjKBSKOo6I5FAqlfyZEVGtYQJNRBVSq9UICwur6zCIdBIVFcVVaoio1nAKBxERERGRDByBJqJqze0RAmPDp/ufi6KSYqxM2QIAmNtjHIwNjeo4IqpOUckDrEzZXNdhEFED9HR/IxJRjTA2bNSgEkpjQ6MGdb5ERCQPp3AQEREREcnABJqIiIiISAYm0EREREREMjCBJiIiIiKSgTcREumJsg824UMjiIioIaov34UcgSbSE6UPNgkLC2tQTwgkIiIqVV++C5lAExERERHJwASaiIiIiEgGJtBERERERDIwgSYiIiIikoEJNOnE19cX4eHh9bqNmJgYWFlZ1Vg8RERERBVhAk16ydnZGWvXrtXaNnr0aFy4cKFuAiIiIqIGg+tA01NDpVJBpVLVdRhERET0lGMCTbIVFRVh4cKF2Lp1K27duoUOHTpgxYoV8PX1BQBcv34dU6dOxaFDh3Djxg20adMG77zzDoKCgqQ67t69iylTpmDHjh0wNzfH7NmzdW7f19cXv/32G9566y289dZbAB4urB4TE4Pw8HDcunULALB48WLEx8dj+vTpWLx4MW7cuIFx48bhk08+QUREBFavXg2NRoMZM2ZgwYIFUv35+fmYM2cO4uPjUVhYCC8vL6xZswadOnX65533DwghpPe1sfZl2TbKtk1UX9T27wQR1b368t3EBJpke/XVV5GdnY24uDg0a9YMO3fuxMCBA3HmzBm0bdsWhYWF6NatG+bNmwcLCwvs2rUL48aNQ+vWrdGjRw8AwJw5c5CYmIidO3fCwcEB77zzDtLS0tC5c+dq29+xYwc6deqESZMmYeLEiVWWzcrKwo8//og9e/YgKysLL730Ei5fvgxXV1ckJyfj6NGjCAsLg5+fH3r27AkhBIYMGQIbGxvs3r0blpaW2LhxI/z8/HDhwgXY2NhU2I5ardb6pS4oKNC9Q3VUVFQkvZ8yZUqN11+VYs0DKGFcq20SVadY80B6X9u/E0RU94qKiursf56ZQJMsWVlZ+M9//oPff/8dzZo1AwDMnj0be/bsQXR0ND788EM0b95ca0R52rRp2LNnD7755hv06NEDd+7cwRdffIHNmzdjwIABAIDY2Fg888wzOsVgY2MDQ0NDmJubw8HBocqyGo0GUVFRMDc3R/v27dGvXz9kZmZi9+7dMDAwgJubG1asWIGkpCT07NkTiYmJOHPmDPLy8qBUKgEAH330EeLj4/Htt99i0qRJFbazbNkyLFmyRKf4iYiISL8xgSZZTp48CSEEXF1dtbar1WrY2toCAEpKSrB8+XJ89dVX+OOPP6TRWVNTUwAPk/CioiJ4e3tLx9vY2MDNza3G43V2doa5ubn02d7eHoaGhjAwMNDalpeXBwBIS0vDnTt3pHMpdf/+fWRlZVXazvz58zFz5kzpc0FBAZycnGrqNAAAxsb/NwIcGRkpJfhPilqtlkb1jAz4TwXVP2Wvy9r4nSCiulf2u6ns92Jt47ciyaLRaGBoaIi0tDQYGhpq7TMzMwMAREREYM2aNVi7di08PT1hamqK8PBwaQpCbc5ZMjIy0vqsUCgq3KbRaAA8PD9HR0ckJSWVq6uqJfKUSuUT//JWKBRa7ZmYmDzR9iprm6i+qMvfCSKqe3X53cQEmmTp0qULSkpKkJeXh+eee67CMocOHcLw4cPxyiuvAHiYlF68eBHu7u4AABcXFxgZGeHYsWNo0aIFAODmzZu4cOECfHx8dIrD2NgYJSUlNXBG2rp27YqrV6+iUaNGcHZ2rvH6iYiISP9xHWiSxdXVFcHBwQgJCcGOHTtw+fJlpKamYsWKFdi9ezeAhwlyQkICjh49ioyMDLz++uu4evWqVIeZmRkmTJiAOXPmYP/+/Th79ixCQ0O1plVUx9nZGQcPHsQff/yBa9eu1dj5+fv7w9vbG4GBgdi7dy+ys7Nx9OhRLFy4ECdOnKixdoiIiEh/MYEm2aKjoxESEoJZs2bBzc0Nw4YNQ0pKijTn991330XXrl0REBAAX19fODg4IDAwUKuOVatWoW/fvhg2bBj8/f3Rp08fdOvWTecY3nvvPWRnZ6NNmzZo2rRpjZ2bQqHA7t270bdvX4SFhcHV1RVjxoxBdnY27O3ta6wdIiIi0l8KwQVeiWpcQUEBLC0tkZ+fDwsLixqps7CwEGFhYQCAqKioJz7fs2x7C3uFwdjQqJoj9FtRSTE+OBoFoGGc79Og7M+sNn4niKjuPenvQl2/vzkCTUREREQkAxNoqncOHToEMzOzSl9EREREdYmrcFC94+XlhfT09LoOg4iIiKhCTKCp3lGpVHBxcanrMIiIiIgqxASaSE8olUpERUVJ74mIiBqa+vJdyASaSE8oFAquMkBERA1affku5E2EREREREQyMIEmIiIiIpKBCTQRERERkQxMoImIiIiIZOBNhERUraKSB3UdwhNXVFJc4XuqvxrCdUlE9RMTaCKq1sqUzXUdQq1ambKlrkMgIqJ6jFM4iIiIiIhk4Ag0EVWo7GL1DYEQAkVFRQAAY2NjKBSKOo6I5ODDhYioNjGBJqIK1ZfF6muTSqWq6xCIiEgPcAoHEREREZEMTKCJiIiIiGRgAk1EREREJAMTaCIiIiIiGXgTIdFTQggBtVqt9bmiVSWUSiVXmCAiIvoHmEATPSXUajXCwsKqLRcVFdXgVtcgIiKqSZzCQUREREQkAxNooqdQ/4mN0X9iY+mzTyjXNyYiIqopnMJB9BQyNFJU+ZmIiIgeH0egiYiIiIhkYAJNRERERCQDE2giIiIiIhmYQBMRERERycCbCIn0TNkHpjzOQ1GEECgsLHzs44mIiBo6jkAT6ZnSB6aEhYVpPXlQV0VFRf/oeCIiooaOCTQRERERkQxMoImIiIiIZGACTUREREQkAxNoIiIiIiIZmEATEREREcnABJrg7OyMtWvX1lh92dnZUCgUSE9Pr7E6a5NCoUB8fHxdh0FERET1FNeBJqSmpsLU1LSuw6h1ixcvRnx8vN4m+kRERFQ3OALdQBQXF5fbVlRUBABo2rQpGjduXNshEREREeklJtB6as+ePejTpw+srKxga2uLF154AVlZWQD+bwrF119/DV9fX5iYmODLL79EaGgoAgMDsWzZMjRr1gyurq4AtKdwBAUFYcyYMVptFRcXo0mTJoiOjq62bbmSkpKgUCiwd+9edOnSBSqVCv3790deXh5+/PFHuLu7w8LCAkFBQbh37550nFqtxvTp02FnZwcTExP06dMHqamp5erdv38/vLy80LhxY/Tq1QuZmZkAgJiYGCxZsgQ///wzFAoFFAoFYmJipOOvXbuGESNGoHHjxmjbti2+++67xzq/J0EIIb1Xq9UoLCxEYWGh1kNRypap6JjKyhEREVH1mEDrqbt372LmzJlITU3F/v37YWBggBEjRkCj0Uhl5s2bh+nTpyMjIwMBAQEAgP379yMjIwMJCQn44YcfytUbHByM7777Dnfu3JG27d27F3fv3sWLL76oc9tyLV68GJ988gmOHj2KK1euYNSoUVi7di22bduGXbt2ISEhAevXr5fKz507F9u3b0dsbCxOnjwJFxcXBAQE4MaNG1r1LliwABEREThx4gQaNWqEsLAwAMDo0aMxa9YseHh4IDc3F7m5uRg9erR03JIlSzBq1CicPn0agwcPRnBwcLm6y1Kr1SgoKNB6PSml/3MAAFOmTJGeKjhlyhRpu+aB9jFlP4eHh1dYFxEREemGc6D1VGkyW+qLL76AnZ0dzp07BzMzMwAPE6WRI0dqlTM1NcXnn38OY2PjCusNCAiAqakpdu7ciXHjxgEAtm3bhqFDh8LCwqLatjt06PBY5/PBBx+gd+/eAIAJEyZg/vz5yMrKQuvWrQEAL730EhITEzFv3jzcvXsXkZGRiImJwaBBgwAAmzZtQkJCAr744gvMmTNHqnfp0qXw8fEBALz99tsYMmQICgsLoVKpYGZmhkaNGsHBwaFcPKGhoQgKCgIAfPjhh1i/fj2OHz+OgQMHVhj/smXLsGTJksc6dyIiItIvHIHWU1lZWRg7dixat24NCwsLtGrVCgCQk5MjlfHy8ip3nKenZ6XJMwAYGRnh5ZdfxtatWwE8HG3+73//i+DgYFlty9WxY0fpvb29PRo3biwlz6Xb8vLypPaLi4ulhLs07u7duyMjI6PSeh0dHQFAqkfXeExNTWFubl7lcfPnz0d+fr70unLlSrVtPK6yP7/IyEhERUUhKioKkZGR0naDR/40Lvu57IorVV0LREREVDGOQOupoUOHwsnJCZs2bUKzZs2g0WjQoUMHrf+Sr2hlDV1W2wgODoaPjw/y8vKQkJAAExMTaaRX17blMjIykt4rFAqtz6XbSqeIlM7bVSgUWmWEEOW2PVovAJ2mmlTVfkWUSiWUSmW19daEsueoVCphYmJSZZmKjqmsHBEREVWPI9B66Pr168jIyMDChQvh5+cHd3d33Lx5s8bq79WrF5ycnPDVV19h69atePnll6WRyifdti5cXFxgbGyMw4cPS9uKi4tx4sQJuLu761yPsbExSkpKnkSIRERE9BTjCLQesra2hq2tLT777DM4OjoiJycHb7/9do3Vr1AoMHbsWGzYsAEXLlxAYmJirbWtC1NTU0yZMgVz5syBjY0NWrRogZUrV+LevXuYMGGCzvU4Ozvj8uXLSE9PxzPPPANzc/NaG0UmIiIi/cURaD1kYGCAuLg4pKWloUOHDnjrrbewatWqGm0jODgY586dQ/PmzbXmGtdG27pYvnw5XnzxRYwbNw5du3bFpUuXsHfvXlhbW+tcx4svvoiBAweiX79+aNq0Kf7zn/88wYiJiIjoaaEQXAiWqMYVFBTA0tIS+fn50uolNaWwsFBaji8qKkqaA112+4A3Hs51T/j0LgCg/8TGOLDp4TrakZGR0pJ3ZY8nIiJq6HT9/uYINBERERGRDEyg6YmaPHkyzMzMKnxNnjy5rsMjIiIiko03EdIT9d5772H27NkV7qvpqQ1EREREtYEJND1RdnZ2sLOzq+swnipKpRJRUVHSe7mMjY3/0fFEREQNHRNoIj2jUCj+0Y1///R4IiKiho5zoImIiIiIZGACTUREREQkAxNoIiIiIiIZmEATEREREcnAmwiJnkIlxaLKz0RERPT4mEATPYVKH9tdKjnmfh1FQkRE9PThFA4iIiIiIhk4Ak30lCj7gBUAEEKgqKgIwMOHpygUCqkcERERPT4m0ERPiYoekKJSqeooGiIioqcXp3AQEREREcnABJqIiIiISAYm0EREREREMjCBJiIiIiKSgTcREukJIQTUajWAhytplK6qQURERLWLI9BEekKtViMsLAxhYWFSIk1ERES1jwk0kZ4omzQzgSYiIqo7TKCJiIiIiGRgAk1EREREJAMTaCIiIiIiGZhAExERERHJwASaiIiIiEgGJtBERERERDIwgSYiIiIikoEJNJGe0Gg0Fb4nIiKi2sUEmkhP3Llzp8L3REREVLuYQBMRERERycAEmoiIiIhIBibQREREREQyMIEmIiIiIpKBCTTVKl9fX4SHh9d1GERERESPjQk0VashJ72hoaEIDAys6zCIiIioHmECXU8VFRXVdQhEREREVAEm0PWEr68vpk6dipkzZ6JJkyYYMGAAzp07h8GDB8PMzAz29vYYN24crl27Vu6YqVOnwsrKCra2tli4cCGEEFKZoqIizJ07F82bN4epqSl69OiBpKQkaf/169cRFBSEZ555Bo0bN4anpyf+85//SPtDQ0ORnJyMdevWQaFQQKFQIDs7GwCqje/u3bsICQmBmZkZHB0dERERIatPcnNzMWTIEKhUKrRq1Qrbtm2Ds7Mz1q5dCwDIzs6GQqFAenq6dMytW7egUCi0zrG6OL/99lt4enpCpVLB1tYW/v7+uHv3LhYvXozY2Fj897//lc69bL1ERETUMDGBrkdiY2PRqFEjHDlyBMuXL4ePjw86d+6MEydOYM+ePfjrr78watSoCo9JSUnBxx9/jDVr1uDzzz+X9r/66qs4cuQI4uLicPr0abz88ssYOHAgLl68CAAoLCxEt27d8MMPP+Ds2bOYNGkSxo0bh5SUFADAunXr4O3tjYkTJyI3Nxe5ublwcnJCbm5utfHN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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# visualizing clearing outlier\n", "ax = sns.boxplot(data=X_test_capped, orient=\"h\", palette=\"Set2\")" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
no_of_weekend_nightsno_of_week_nightstype_of_meal_planrequired_car_parking_spacelead_timearrival_monthmarket_segment_typerepeated_guestavg_price_per_roomno_of_special_requests
184780.03.0Meal Plan 1020.09.0Online0.0136.672.0
115751.04.0Meal Plan 1011.07.0Offline0.085.000.0
361082.02.0Meal Plan 1024.012.0Online0.095.201.0
231510.02.0Meal Plan 10188.06.0Offline0.0130.000.0
193771.00.0Meal Plan 10286.010.0Offline0.090.000.0
\n", "
" ], "text/plain": [ " no_of_weekend_nights no_of_week_nights type_of_meal_plan \\\n", "18478 0.0 3.0 Meal Plan 1 \n", "11575 1.0 4.0 Meal Plan 1 \n", "36108 2.0 2.0 Meal Plan 1 \n", "23151 0.0 2.0 Meal Plan 1 \n", "19377 1.0 0.0 Meal Plan 1 \n", "\n", " required_car_parking_space lead_time arrival_month \\\n", "18478 0 20.0 9.0 \n", "11575 0 11.0 7.0 \n", "36108 0 24.0 12.0 \n", "23151 0 188.0 6.0 \n", "19377 0 286.0 10.0 \n", "\n", " market_segment_type repeated_guest avg_price_per_room \\\n", "18478 Online 0.0 136.67 \n", "11575 Offline 0.0 85.00 \n", "36108 Online 0.0 95.20 \n", "23151 Offline 0.0 130.00 \n", "19377 Offline 0.0 90.00 \n", "\n", " no_of_special_requests \n", "18478 2.0 \n", "11575 0.0 \n", "36108 1.0 \n", "23151 0.0 \n", "19377 0.0 " ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show new Xtrain clean data frame from outlier \n", "X_train_capped.head()" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
no_of_weekend_nightsno_of_week_nightstype_of_meal_planrequired_car_parking_spacelead_timearrival_monthmarket_segment_typerepeated_guestavg_price_per_roomno_of_special_requests
30522.03.0Meal Plan 10241.010.0Online0.0150.451.0
11240.03.0Not Selected015.04.0Online0.0117.670.0
40521.02.0Not Selected013.010.0Online0.0140.002.0
290350.02.0Meal Plan 104.012.0Online0.062.370.0
223622.06.0Meal Plan 205.02.0Online0.0146.000.0
\n", "
" ], "text/plain": [ " no_of_weekend_nights no_of_week_nights type_of_meal_plan \\\n", "3052 2.0 3.0 Meal Plan 1 \n", "1124 0.0 3.0 Not Selected \n", "4052 1.0 2.0 Not Selected \n", "29035 0.0 2.0 Meal Plan 1 \n", "22362 2.0 6.0 Meal Plan 2 \n", "\n", " required_car_parking_space lead_time arrival_month \\\n", "3052 0 241.0 10.0 \n", "1124 0 15.0 4.0 \n", "4052 0 13.0 10.0 \n", "29035 0 4.0 12.0 \n", "22362 0 5.0 2.0 \n", "\n", " market_segment_type repeated_guest avg_price_per_room \\\n", "3052 Online 0.0 150.45 \n", "1124 Online 0.0 117.67 \n", "4052 Online 0.0 140.00 \n", "29035 Online 0.0 62.37 \n", "22362 Online 0.0 146.00 \n", "\n", " no_of_special_requests \n", "3052 1.0 \n", "1124 0.0 \n", "4052 2.0 \n", "29035 0.0 \n", "22362 0.0 " ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show new Xtest clean data frame from outlier \n", "X_test_capped.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After handling outlier we will define our first pipeline that is our scaler using Standard Scaler, then we weill continue this project enter to the next step `Model Definition`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This project using standard scaler for scaling method because here we dont want to change our dataset into range value (0,1) using `Min-Max Scaler `and we will use `One Hot Encoder` as Encoding method for our dataset because here in our data columns there are nominal categorical features." ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
ColumnTransformer(remainder='passthrough',\n",
       "                  transformers=[('pipe_num',\n",
       "                                 Pipeline(steps=[('scaler', StandardScaler())]),\n",
       "                                 ['no_of_week_nights', 'lead_time',\n",
       "                                  'avg_price_per_room', 'arrival_month']),\n",
       "                                ('pipe_cat',\n",
       "                                 Pipeline(steps=[('encoder', OneHotEncoder())]),\n",
       "                                 ['market_segment_type', 'type_of_meal_plan'])])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "ColumnTransformer(remainder='passthrough',\n", " transformers=[('pipe_num',\n", " Pipeline(steps=[('scaler', StandardScaler())]),\n", " ['no_of_week_nights', 'lead_time',\n", " 'avg_price_per_room', 'arrival_month']),\n", " ('pipe_cat',\n", " Pipeline(steps=[('encoder', OneHotEncoder())]),\n", " ['market_segment_type', 'type_of_meal_plan'])])" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Define cat col,num col, dan numcat col\n", "num_col =['no_of_week_nights', 'lead_time','avg_price_per_room','arrival_month']\n", "cat_col= ['market_segment_type','type_of_meal_plan']\n", "num_cat_col=['required_car_parking_space','repeated_guest','no_of_special_requests']\n", "#Define num pipeline\n", "num_pipeline= Pipeline([\n", " ('scaler',StandardScaler())])\n", "#Define cat pipeline\n", "cat_pipeline= Pipeline([\n", " ('encoder',OneHotEncoder())])\n", "\n", "# Concate 2 pipeline\n", "preprocessing_pipeline = ColumnTransformer([\n", " ('pipe_num',num_pipeline,num_col),\n", " ('pipe_cat',cat_pipeline,cat_col)\n", "], remainder= 'passthrough')\n", "\n", "preprocessing_pipeline.fit(X_train_capped)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 6: Model Definition" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this stage we will choose the best model to use in the analysis from 5 models, namely support vector machine (SVM), K-nearest neighbors (KNN), Decision Tree, Random Forest, and Boosting using a pipeline using" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [], "source": [ "#Model Define\n", "svm_model = SVC()\n", "knn_model = KNeighborsClassifier()\n", "dt_model = DecisionTreeClassifier(random_state=10)\n", "rf_model = RandomForestClassifier(random_state=10)\n", "ada_model = AdaBoostClassifier()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 7: Model Evaluation" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "# Function untuk performance check dan juga metrics f1_score\n", "def performance_check(clf, X, y):\n", " y_pred = clf.predict(X)\n", " \n", "\n", " return f1_score(y, y_pred)" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('preprocessing_pipeline',\n",
       "                 ColumnTransformer(remainder='passthrough',\n",
       "                                   transformers=[('pipe_num',\n",
       "                                                  Pipeline(steps=[('scaler',\n",
       "                                                                   StandardScaler())]),\n",
       "                                                  ['no_of_week_nights',\n",
       "                                                   'lead_time',\n",
       "                                                   'avg_price_per_room',\n",
       "                                                   'arrival_month']),\n",
       "                                                 ('pipe_cat',\n",
       "                                                  Pipeline(steps=[('encoder',\n",
       "                                                                   OneHotEncoder())]),\n",
       "                                                  ['market_segment_type',\n",
       "                                                   'type_of_meal_plan'])])),\n",
       "                ('svm', SVC())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(steps=[('preprocessing_pipeline',\n", " ColumnTransformer(remainder='passthrough',\n", " transformers=[('pipe_num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['no_of_week_nights',\n", " 'lead_time',\n", " 'avg_price_per_room',\n", " 'arrival_month']),\n", " ('pipe_cat',\n", " Pipeline(steps=[('encoder',\n", " OneHotEncoder())]),\n", " ['market_segment_type',\n", " 'type_of_meal_plan'])])),\n", " ('svm', SVC())])" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Method 1 : Model training SVM using `Pipeline`\n", "pipe_svm = Pipeline([\n", " ('preprocessing_pipeline',preprocessing_pipeline),\n", " ('svm', SVC())])\n", "pipe_svm.fit(X_train_capped, y_train)" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('preprocessing_pipeline',\n",
       "                 ColumnTransformer(remainder='passthrough',\n",
       "                                   transformers=[('pipe_num',\n",
       "                                                  Pipeline(steps=[('scaler',\n",
       "                                                                   StandardScaler())]),\n",
       "                                                  ['no_of_week_nights',\n",
       "                                                   'lead_time',\n",
       "                                                   'avg_price_per_room',\n",
       "                                                   'arrival_month']),\n",
       "                                                 ('pipe_cat',\n",
       "                                                  Pipeline(steps=[('encoder',\n",
       "                                                                   OneHotEncoder())]),\n",
       "                                                  ['market_segment_type',\n",
       "                                                   'type_of_meal_plan'])])),\n",
       "                ('knn', KNeighborsClassifier())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(steps=[('preprocessing_pipeline',\n", " ColumnTransformer(remainder='passthrough',\n", " transformers=[('pipe_num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['no_of_week_nights',\n", " 'lead_time',\n", " 'avg_price_per_room',\n", " 'arrival_month']),\n", " ('pipe_cat',\n", " Pipeline(steps=[('encoder',\n", " OneHotEncoder())]),\n", " ['market_segment_type',\n", " 'type_of_meal_plan'])])),\n", " ('knn', KNeighborsClassifier())])" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Method 2 : Model training KNN using `Pipeline`\n", "pipe_knn = Pipeline([\n", " ('preprocessing_pipeline',preprocessing_pipeline),\n", " ('knn', KNeighborsClassifier())])\n", "pipe_knn.fit(X_train_capped, y_train)" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('preprocessing_pipeline',\n",
       "                 ColumnTransformer(remainder='passthrough',\n",
       "                                   transformers=[('pipe_num',\n",
       "                                                  Pipeline(steps=[('scaler',\n",
       "                                                                   StandardScaler())]),\n",
       "                                                  ['no_of_week_nights',\n",
       "                                                   'lead_time',\n",
       "                                                   'avg_price_per_room',\n",
       "                                                   'arrival_month']),\n",
       "                                                 ('pipe_cat',\n",
       "                                                  Pipeline(steps=[('encoder',\n",
       "                                                                   OneHotEncoder())]),\n",
       "                                                  ['market_segment_type',\n",
       "                                                   'type_of_meal_plan'])])),\n",
       "                ('dt', DecisionTreeClassifier())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(steps=[('preprocessing_pipeline',\n", " ColumnTransformer(remainder='passthrough',\n", " transformers=[('pipe_num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['no_of_week_nights',\n", " 'lead_time',\n", " 'avg_price_per_room',\n", " 'arrival_month']),\n", " ('pipe_cat',\n", " Pipeline(steps=[('encoder',\n", " OneHotEncoder())]),\n", " ['market_segment_type',\n", " 'type_of_meal_plan'])])),\n", " ('dt', DecisionTreeClassifier())])" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Method 3 : Model training Decision Tree using `Pipeline`\n", "pipe_dt = Pipeline([\n", " ('preprocessing_pipeline',preprocessing_pipeline),\n", " ('dt', DecisionTreeClassifier())])\n", "pipe_dt.fit(X_train_capped, y_train)" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('preprocessing_pipeline',\n",
       "                 ColumnTransformer(remainder='passthrough',\n",
       "                                   transformers=[('pipe_num',\n",
       "                                                  Pipeline(steps=[('scaler',\n",
       "                                                                   StandardScaler())]),\n",
       "                                                  ['no_of_week_nights',\n",
       "                                                   'lead_time',\n",
       "                                                   'avg_price_per_room',\n",
       "                                                   'arrival_month']),\n",
       "                                                 ('pipe_cat',\n",
       "                                                  Pipeline(steps=[('encoder',\n",
       "                                                                   OneHotEncoder())]),\n",
       "                                                  ['market_segment_type',\n",
       "                                                   'type_of_meal_plan'])])),\n",
       "                ('rf', RandomForestClassifier())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(steps=[('preprocessing_pipeline',\n", " ColumnTransformer(remainder='passthrough',\n", " transformers=[('pipe_num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['no_of_week_nights',\n", " 'lead_time',\n", " 'avg_price_per_room',\n", " 'arrival_month']),\n", " ('pipe_cat',\n", " Pipeline(steps=[('encoder',\n", " OneHotEncoder())]),\n", " ['market_segment_type',\n", " 'type_of_meal_plan'])])),\n", " ('rf', RandomForestClassifier())])" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Method 4 : Model training Random Forest using `Pipeline`\n", "pipe_rf = Pipeline([\n", " ('preprocessing_pipeline',preprocessing_pipeline),\n", " ('rf', RandomForestClassifier())])\n", "pipe_rf.fit(X_train_capped, y_train)" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('preprocessing_pipeline',\n",
       "                 ColumnTransformer(remainder='passthrough',\n",
       "                                   transformers=[('pipe_num',\n",
       "                                                  Pipeline(steps=[('scaler',\n",
       "                                                                   StandardScaler())]),\n",
       "                                                  ['no_of_week_nights',\n",
       "                                                   'lead_time',\n",
       "                                                   'avg_price_per_room',\n",
       "                                                   'arrival_month']),\n",
       "                                                 ('pipe_cat',\n",
       "                                                  Pipeline(steps=[('encoder',\n",
       "                                                                   OneHotEncoder())]),\n",
       "                                                  ['market_segment_type',\n",
       "                                                   'type_of_meal_plan'])])),\n",
       "                ('Ada', AdaBoostClassifier())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(steps=[('preprocessing_pipeline',\n", " ColumnTransformer(remainder='passthrough',\n", " transformers=[('pipe_num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['no_of_week_nights',\n", " 'lead_time',\n", " 'avg_price_per_room',\n", " 'arrival_month']),\n", " ('pipe_cat',\n", " Pipeline(steps=[('encoder',\n", " OneHotEncoder())]),\n", " ['market_segment_type',\n", " 'type_of_meal_plan'])])),\n", " ('Ada', AdaBoostClassifier())])" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Method 5 : Model training Ada Boost using `Pipeline`\n", "pipe_ada = Pipeline([\n", " ('preprocessing_pipeline',preprocessing_pipeline),\n", " ('Ada', AdaBoostClassifier())])\n", "pipe_ada.fit(X_train_capped, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before entering the next stage regarding combining the model we chose in the pipeline with hyperparameter tuning using the random search method, we will carry out cross validation for the five types of KNN, SVM,Decision Tree,Random Forest, and applying ensemble learning Boosting model in our best model to make our model stronger, stronger here means reduce the variance and bias of individual models, making the combined model more generalizable and better at handling different types of data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 8: Model Evaluation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cross Validation" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "#Define SKfold\n", "skfold = StratifiedKFold(n_splits=5)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "#Define Cross Validation for each model\n", "cv_svm_model = cross_val_score(pipe_svm, X_train_capped, y_train, cv=skfold, scoring= 'f1')\n", "cv_knn_model = cross_val_score(pipe_knn,X_train_capped, y_train, cv=skfold, scoring= 'f1')\n", "cv_dt_model = cross_val_score(pipe_dt, X_train_capped, y_train, cv=skfold, scoring= 'f1')\n", "cv_rf_model = cross_val_score(pipe_rf,X_train_capped, y_train, cv=skfold, scoring= 'f1')\n", "cv_ada_model = cross_val_score(pipe_ada,X_train_capped, y_train, cv=skfold, scoring= 'f1')" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "svm_model\n", "f1 score - All - Cross Validation: [0.87908325 0.88690163 0.88221406 0.88103992 0.88315076]\n", "f1 score - mean - Cross Validation: 0.8824779218918589\n", "f1 score - std - Cross validation: 0.0025955044753826497\n", "f1 score - Range of Test Set: 0.8798824174164762 - 0.8850734263672416\n", "--------------------------------------------------\n", "ada_model\n", "f1 score - All - Cross Validation: [0.86263441 0.87183608 0.86650615 0.8663459 0.87150689]\n", "f1 score - mean - Cross Validation: 0.8677658846275987\n", "f1 score - std - Cross validation: 0.0034784164883290432\n", "f1 score - Range of Test Set: 0.8642874681392697 - 0.8712443011159278\n", "--------------------------------------------------\n", "knn_model\n", "f1 score - All - Cross Validation: [0.88984881 0.89618074 0.89058934 0.8917609 0.88820293]\n", "f1 score - mean - Cross Validation: 0.8913165451494984\n", "f1 score - std - Cross validation: 0.0026920461225627495\n", "f1 score - Range of Test Set: 0.8886244990269356 - 0.8940085912720612\n", "--------------------------------------------------\n", "dt_model\n", "f1 score - All - Cross Validation: [0.8917547 0.89511828 0.88970991 0.89386857 0.89328389]\n", "f1 score - mean - Cross Validation: 0.8927470701797031\n", "f1 score - std - Cross validation: 0.001864282857667467\n", "f1 score - Range of Test Set: 0.8908827873220356 - 0.8946113530373706\n", "--------------------------------------------------\n", "rf_model\n", "f1 score - All - Cross Validation: [0.92309753 0.92204481 0.91872318 0.92183288 0.91896229]\n", "f1 score - mean - Cross Validation: 0.9209321396895096\n", "f1 score - std - Cross validation: 0.00176057672836292\n", "f1 score - Range of Test Set: 0.9191715629611467 - 0.9226927164178725\n", "--------------------------------------------------\n", "Best Model: rf_model\n", "Cross Val Mean from Best Model: 0.9209321396895096\n" ] } ], "source": [ "# Finding best model dengan for loop based on cross_val_score (mean)\n", "name_model= []\n", "cv_scores= 0\n", "#Zip untuk memanggil gabungan dari data di atas dan di bawah \n", "# untuk cv,nama metric\n", "for cv,name in zip([cv_svm_model,cv_ada_model,cv_knn_model,cv_dt_model,cv_rf_model],\n", " ['svm_model','ada_model','knn_model','dt_model','rf_model']): #isi dari nama kolom yang mau di looping\n", " #Format Output Looping\n", " print(name)\n", " print('f1 score - All - Cross Validation:', cv)\n", " print('f1 score - mean - Cross Validation:',cv.mean())\n", " print('f1 score - std - Cross validation:', cv.std())\n", " print('f1 score - Range of Test Set:',(cv.mean()-cv.std()), '-' ,(cv.mean()+cv.std()))\n", " print('-'*50)\n", "\n", "#Create a condition to find best model based on cv.mean ()\n", " if cv.mean() > cv_scores:\n", " cv_scores = cv.mean()\n", " name_model = name\n", "\n", " else:\n", " pass\n", "\n", "#Create a conclusion\n", "print('Best Model:', name_model)\n", "print('Cross Val Mean from Best Model:', cv_scores)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Based on the cross validation above our best model is `Random Forest` model" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "F1 Score - Train Set : 0.9946585272796643 \n", "\n", "Classification Report : \n", " precision recall f1-score support\n", "\n", " 0 0.99 0.98 0.99 8897\n", " 1 0.99 1.00 0.99 18309\n", "\n", " accuracy 0.99 27206\n", " macro avg 0.99 0.99 0.99 27206\n", "weighted avg 0.99 0.99 0.99 27206\n", " \n", "\n", "Confusion Matrix : \n", " \n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Check Performance Model against Train-Set\n", "\n", "y_pred_train = pipe_rf.predict(X_train_capped)\n", "\n", "print('F1 Score - Train Set : ', f1_score(y_train, y_pred_train), '\\n')\n", "print('Classification Report : \\n', classification_report(y_train, y_pred_train), '\\n')\n", "print('Confusion Matrix : \\n', ConfusionMatrixDisplay.from_estimator(pipe_rf, X_train_capped, y_train, cmap='Reds'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From information above we can said our best model in train set is perfect has 99 score" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "F1 Score - Test Set : 0.9242566243503451 \n", "\n", "Classification Report : \n", " precision recall f1-score support\n", "\n", " 0 0.87 0.81 0.84 2858\n", " 1 0.91 0.94 0.92 5757\n", "\n", " accuracy 0.90 8615\n", " macro avg 0.89 0.87 0.88 8615\n", "weighted avg 0.90 0.90 0.90 8615\n", " \n", "\n", "Confusion Matrix : \n", " \n" ] }, { "data": { "image/png": "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sAciOvec1xUCPz8/tWvXztthmFJERAR/MOGz+P1uXk1VGfix4OBgn/0g9xSWHQIAABICAABAQgAXBQUF6b777lNQUJC3QwE8jt9vmNl5PakQAAB4BhUCAABAQgAAAEgIAACASAgAAIBICOCCxx57TImJiQoODlZycrLee+89b4cEeMS7776rUaNGKT4+XhaLRevXr/d2SECzIyGAU9auXavMzEzNmTNHu3bt0pVXXqkRI0bom2++8XZogNsqKyt1ySWXaOnSpd4OBfAalh3CKSkpKbrsssu0bNky276kpCSNHTtW8+bN82JkgGdZLBatW7dOY8eO9XYoQLOiQoCfVVtbq507d2ro0KF2+4cOHarNmzd7KSoAgCeREOBnfffdd2poaFBsbKzd/tjYWBUVFXkpKgCAJ5EQwGk/fcS0YRg8dhoAfAQJAX5WdHS0WrRo0agaUFxc3KhqAAA4P5EQ4GcFBgYqOTlZGzdutNu/ceNG9e/f30tRAQA8yd/bAeD8MH36dKWnp6tPnz5KTU3VE088oW+++Ua33nqrt0MD3FZRUaHPP//c9rqgoEB5eXmKjIxU+/btvRgZ0HxYdginPfbYY1q4cKEKCwvVo0cPLV68WFdddZW3wwLc9s4772jgwIGN9k+cOFHZ2dnNHxDgBSQEAACAOQQAAICEAAAAiIQAAACIhAAAAIiEAAAAiIQAAACIhAAAAIiEAAAAiIQAcNvcuXN16aWX2l7fcMMNGjt2bLPH8dVXX8lisSgvL++MbTp27KglS5Y43Wd2drZatWrldmwWi0Xr1693ux8ATYeEAD7phhtukMVikcViUUBAgDp16qSZM2eqsrKyyd/74Ycfdvp2t858iANAc+DhRvBZw4cP1zPPPKO6ujq99957uvnmm1VZWally5Y1altXV6eAgACPvK/VavVIPwDQnKgQwGcFBQUpLi5OCQkJSktL0/XXX28rW58q8z/99NPq1KmTgoKCZBiGysrKNHnyZMXExCgiIkK//OUv9dFHH9n1O3/+fMXGxio8PFwZGRmqrq62O/7TIYMTJ05owYIFuuiiixQUFKT27dvrwQcflCQlJiZKknr37i2LxaIBAwbYznvmmWeUlJSk4OBgdevWTY899pjd+2zbtk29e/dWcHCw+vTpo127drn8M1q0aJF69uypsLAwJSQkaMqUKaqoqGjUbv369erSpYuCg4M1ZMgQHThwwO74q6++quTkZAUHB6tTp076y1/+ovr6epfjAeA9JAQwjZCQENXV1dlef/7553r++ef14osv2kr21157rYqKivT6669r586duuyyyzRo0CAdOXJEkvT888/rvvvu04MPPqgdO3aobdu2jT6of+ruu+/WggULdM8992jfvn167rnnFBsbK+nkh7okvfnmmyosLNRLL70kSVqxYoXmzJmjBx98UPn5+crKytI999yjlStXSpIqKys1cuRIde3aVTt37tTcuXM1c+ZMl38mfn5+euSRR7Rnzx6tXLlSb731lmbNmmXX5vjx43rwwQe1cuVKffDBByovL9eECRNsx9944w397ne/07Rp07Rv3z4tX75c2dnZtqQHwHnCAHzQxIkTjTFjxtheb9261YiKijLGjRtnGIZh3HfffUZAQIBRXFxsa/Pf//7XiIiIMKqrq+36uvDCC43ly5cbhmEYqampxq233mp3PCUlxbjkkktO+97l5eVGUFCQsWLFitPGWVBQYEgydu3aZbc/ISHBeO655+z23X///UZqaqphGIaxfPlyIzIy0qisrLQdX7Zs2Wn7+rEOHToYixcvPuPx559/3oiKirK9fuaZZwxJRm5urm1ffn6+IcnYunWrYRiGceWVVxpZWVl2/axatcpo27at7bUkY926dWd8XwDexxwC+KzXXntNLVu2VH19verq6jRmzBg9+uijtuMdOnRQmzZtbK937typiooKRUVF2fVTVVWlL774QpKUn5+vW2+91e54amqq3n777dPGkJ+fr5qaGg0aNMjpuEtKSnTgwAFlZGRo0qRJtv319fW2+Qn5+fm65JJLFBoaaheHq95++21lZWVp3759Ki8vV319vaqrq1VZWamwsDBJkr+/v/r06WM7p1u3bmrVqpXy8/N1+eWXa+fOndq+fbtdRaChoUHV1dU6fvy4XYwAzl0kBPBZAwcO1LJlyxQQEKD4+PhGkwZPfeCdcuLECbVt21bvvPNOo77OduldSEiIy+ecOHFC0slhg5SUFLtjLVq0kCQZhnFW8fzY119/rWuuuUa33nqr7r//fkVGRur9999XRkaG3dCKdHLZ4E+d2nfixAn95S9/0XXXXdeoTXBwsNtxAmgeJATwWWFhYbroooucbn/ZZZepqKhI/v7+6tix42nbJCUlKTc3V7///e9t+3Jzc8/YZ+fOnRUSEqL//ve/uvnmmxsdDwwMlHTyG/UpsbGxuuCCC/Tll1/q+uuvP22/3bt316pVq1RVVWVLOhzFcTo7duxQfX29HnroIfn5nZxO9PzzzzdqV19frx07dujyyy+XJO3fv19Hjx5Vt27dJJ38ue3fv9+lnzWAcw8JAfCDwYMHKzU1VWPHjtWCBQvUtWtXHTp0SK+//rrGjh2rPn366I477tDEiRPVp08f/eIXv9Dq1au1d+9ederU6bR9BgcHa/bs2Zo1a5YCAwN1xRVXqKSkRHv37lVGRoZiYmIUEhKinJwctWvXTsHBwbJarZo7d66mTZumiIgIjRgxQjU1NdqxY4dKS0s1ffp0paWlac6cOcrIyNCf//xnffXVV/q///s/l673wgsvVH19vR599FGNGjVKH3zwgR5//PFG7QICAjR16lQ98sgjCggI0O23365+/frZEoR7771XI0eOVEJCgn7zm9/Iz89PH3/8sXbv3q0HHnjA9f8QALyCVQbADywWi15//XVdddVVuummm9SlSxdNmDBBX331lW1VwPjx43Xvvfdq9uzZSk5O1tdff60//OEPDvu95557NGPGDN17771KSkrS+PHjVVxcLOnk+Pwjjzyi5cuXKz4+XmPGjJEk3XzzzXryySeVnZ2tnj176uqrr1Z2drZtmWLLli316quvat++ferdu7fmzJmjBQsWuHS9l156qRYtWqQFCxaoR48eWr16tebNm9eoXWhoqGbPnq20tDSlpqYqJCREa9assR0fNmyYXnvtNW3cuFF9+/ZVv379tGjRInXo0MGleAB4l8XwxGAkAAA4r1EhAAAAJAQAAICEAAAAiIQAAACIhAAAAIiEAAAAiIQAAACIhAAAAIiEAAAAiIQAAACIhAAAAEj6/yY+8qw2rfTrAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Check Performance Model against Test-Set\n", "\n", "y_pred_test = pipe_rf.predict(X_test_capped)\n", "\n", "print('F1 Score - Test Set : ', f1_score(y_test, y_pred_test), '\\n')\n", "print('Classification Report : \\n', classification_report(y_test, y_pred_test), '\\n')\n", "print('Confusion Matrix : \\n', ConfusionMatrixDisplay.from_estimator(pipe_rf, X_test_capped, y_test, cmap='Reds'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From information above we can see that our best model in test set is high too 92 for the score\n" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Baseline (Default Hyperparameter)
test - accuracy_score0.896808
test - f1_score0.924257
test - precision0.907023
test - recall0.942157
train - accuracy0.992796
train - f1_score0.994659
train - precision0.992603
train - recall0.996723
\n", "
" ], "text/plain": [ " Baseline (Default Hyperparameter)\n", "test - accuracy_score 0.896808\n", "test - f1_score 0.924257\n", "test - precision 0.907023\n", "test - recall 0.942157\n", "train - accuracy 0.992796\n", "train - f1_score 0.994659\n", "train - precision 0.992603\n", "train - recall 0.996723" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save Classification Report into a Dictionary\n", "\n", "all_reports = {}\n", "def performance_report(all_reports, y_train, y_pred_train, y_test, y_pred_test, name):\n", " score_reports = {\n", " 'train - precision' : precision_score(y_train, y_pred_train),\n", " 'train - recall' : recall_score(y_train, y_pred_train),\n", " 'train - accuracy' : accuracy_score(y_train, y_pred_train),\n", " 'train - f1_score' : f1_score(y_train, y_pred_train),\n", " 'test - precision' : precision_score(y_test, y_pred_test),\n", " 'test - recall' : recall_score(y_test, y_pred_test),\n", " 'test - accuracy_score' : accuracy_score(y_test, y_pred_test),\n", " 'test - f1_score' : f1_score(y_test, y_pred_test),\n", " }\n", " all_reports[name] = score_reports\n", " return all_reports\n", "\n", "all_reports = performance_report(all_reports, y_train, y_pred_train, y_test, y_pred_test, 'Baseline (Default Hyperparameter)')\n", "pd.DataFrame(all_reports)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "now we will combine our best model with hyperparameter tuning random search to see the different before and after the model getting process with hyperparameter tuning, it expected will increase our best model F1_score " ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
RandomizedSearchCV(cv=5,\n",
       "                   estimator=Pipeline(steps=[('preprocessing_pipeline',\n",
       "                                              ColumnTransformer(remainder='passthrough',\n",
       "                                                                transformers=[('pipe_num',\n",
       "                                                                               Pipeline(steps=[('scaler',\n",
       "                                                                                                StandardScaler())]),\n",
       "                                                                               ['no_of_week_nights',\n",
       "                                                                                'lead_time',\n",
       "                                                                                'avg_price_per_room',\n",
       "                                                                                'arrival_month']),\n",
       "                                                                              ('pipe_cat',\n",
       "                                                                               Pipeline(steps=[('encoder',\n",
       "                                                                                                OneHotEncoder())]),\n",
       "                                                                               ['market_segment_type',\n",
       "                                                                                'type_of_meal_plan'])])),\n",
       "                                             ('rf', RandomForestClassifier())]),\n",
       "                   param_distributions={'rf__max_depth': [1, 2, 3, 4, 5],\n",
       "                                        'rf__n_estimators': [1, 10, 100],\n",
       "                                        'rf__random_state': [42]},\n",
       "                   random_state=42, scoring='f1')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "RandomizedSearchCV(cv=5,\n", " estimator=Pipeline(steps=[('preprocessing_pipeline',\n", " ColumnTransformer(remainder='passthrough',\n", " transformers=[('pipe_num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['no_of_week_nights',\n", " 'lead_time',\n", " 'avg_price_per_room',\n", " 'arrival_month']),\n", " ('pipe_cat',\n", " Pipeline(steps=[('encoder',\n", " OneHotEncoder())]),\n", " ['market_segment_type',\n", " 'type_of_meal_plan'])])),\n", " ('rf', RandomForestClassifier())]),\n", " param_distributions={'rf__max_depth': [1, 2, 3, 4, 5],\n", " 'rf__n_estimators': [1, 10, 100],\n", " 'rf__random_state': [42]},\n", " random_state=42, scoring='f1')" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Pipeline Random Forest\n", "random_search_params = {'rf__n_estimators':[1,10,100],\n", " 'rf__max_depth':[1,2,3,4,5],\n", " 'rf__random_state':[42]}\n", "\n", "random_rf = RandomizedSearchCV(pipe_rf,param_distributions=random_search_params, n_iter=10,cv=5,random_state=42, scoring= 'f1')\n", "random_rf.fit(X_train_capped, y_train)" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(steps=[('preprocessing_pipeline',\n",
       "                 ColumnTransformer(remainder='passthrough',\n",
       "                                   transformers=[('pipe_num',\n",
       "                                                  Pipeline(steps=[('scaler',\n",
       "                                                                   StandardScaler())]),\n",
       "                                                  ['no_of_week_nights',\n",
       "                                                   'lead_time',\n",
       "                                                   'avg_price_per_room',\n",
       "                                                   'arrival_month']),\n",
       "                                                 ('pipe_cat',\n",
       "                                                  Pipeline(steps=[('encoder',\n",
       "                                                                   OneHotEncoder())]),\n",
       "                                                  ['market_segment_type',\n",
       "                                                   'type_of_meal_plan'])])),\n",
       "                ('rf', RandomForestClassifier(max_depth=5, random_state=42))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "Pipeline(steps=[('preprocessing_pipeline',\n", " ColumnTransformer(remainder='passthrough',\n", " transformers=[('pipe_num',\n", " Pipeline(steps=[('scaler',\n", " StandardScaler())]),\n", " ['no_of_week_nights',\n", " 'lead_time',\n", " 'avg_price_per_room',\n", " 'arrival_month']),\n", " ('pipe_cat',\n", " Pipeline(steps=[('encoder',\n", " OneHotEncoder())]),\n", " ['market_segment_type',\n", " 'type_of_meal_plan'])])),\n", " ('rf', RandomForestClassifier(max_depth=5, random_state=42))])" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get Best Hyperparameters\n", "\n", "best_params = random_rf.best_estimator_\n", "best_params" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train\n", " precision recall f1-score support\n", "\n", " 0 0.86 0.52 0.65 8897\n", " 1 0.80 0.96 0.87 18309\n", "\n", " accuracy 0.81 27206\n", " macro avg 0.83 0.74 0.76 27206\n", "weighted avg 0.82 0.81 0.80 27206\n", "\n", "\n", "Test\n", " precision recall f1-score support\n", "\n", " 0 0.85 0.51 0.64 2858\n", " 1 0.80 0.95 0.87 5757\n", "\n", " accuracy 0.81 8615\n", " macro avg 0.82 0.73 0.75 8615\n", "weighted avg 0.81 0.81 0.79 8615\n", "\n" ] } ], "source": [ "#Classification Report\n", "y_pred_train = best_params.predict(X_train_capped)\n", "y_pred_test = best_params.predict(X_test_capped)\n", "\n", "print('Train')\n", "print(classification_report(y_train, y_pred_train))\n", "print('')\n", "\n", "print('Test')\n", "print(classification_report(y_test, y_pred_test))" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "F1 Score - Test Set : 0.8689120809614168 \n", "\n", "Classification Report : \n", " precision recall f1-score support\n", "\n", " 0 0.85 0.51 0.64 2858\n", " 1 0.80 0.95 0.87 5757\n", "\n", " accuracy 0.81 8615\n", " macro avg 0.82 0.73 0.75 8615\n", "weighted avg 0.81 0.81 0.79 8615\n", " \n", "\n", "Confusion Matrix : \n", " \n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Check Performance Model against Test-Set\n", "\n", "y_pred_test = best_params.predict(X_test)\n", "\n", "print('F1 Score - Test Set : ', f1_score(y_test, y_pred_test), '\\n')\n", "print('Classification Report : \\n', classification_report(y_test, y_pred_test), '\\n')\n", "print('Confusion Matrix : \\n', ConfusionMatrixDisplay.from_estimator(best_params, X_test, y_test, cmap='Reds'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the confusion metrics above we gain the information that our model test F1_Score is 87% that is good enough to be applied in the real case of hotel reservation, the confusion metrics above contain information like:\n", "1. True Negatif (TN): the prediction said that there are `1462` visitors predicted will cancel their booking and in the real fact True so it is good because the prediction and the real fact is same\n", "2. False Negatif (FN): the prediction said that there are `262` visitors predicted will cancel their booking and in real fact is not true or they not canceled their booking so that is not good because it can be said miss prediction and it can be as improvement to the next modeling to reduce this value of False Negatif, but if we look at the confusion metrics the False Negatif is the lowest value that indicate that this modeling is good enough but still need imporovment\n", "3. False Positif (FP): the prediction said that there are `1396` visitors predicted will not canceled their booking but in real fact is they canceled their booking so that is not good too like False Negatif because it is miss prediction.\n", "4. True Positif (TP): prediction said that there are `5496` visitors predicted will not canceled their booking but in real fact is true so it is good prediction and the value is the most than the other so that it is still good modeling like i said before" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Baseline (Default Hyperparameter)Random Search
train - precision0.9926030.803865
train - recall0.9967230.958763
train - accuracy0.9927960.814820
train - f1_score0.9946590.874508
test - precision0.9070230.797417
test - recall0.9421570.954490
test - accuracy_score0.8968080.807545
test - f1_score0.9242570.868912
\n", "
" ], "text/plain": [ " Baseline (Default Hyperparameter) Random Search\n", "train - precision 0.992603 0.803865\n", "train - recall 0.996723 0.958763\n", "train - accuracy 0.992796 0.814820\n", "train - f1_score 0.994659 0.874508\n", "test - precision 0.907023 0.797417\n", "test - recall 0.942157 0.954490\n", "test - accuracy_score 0.896808 0.807545\n", "test - f1_score 0.924257 0.868912" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save Classification Report into a Dictionary\n", "\n", "all_reports = performance_report(all_reports, y_train, y_pred_train, y_test, y_pred_test, 'Random Search')\n", "pd.DataFrame(all_reports)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the classification report it indicated that using hyperparameter in our best model decrese from our baseline model without using hyperparameter tuning, good news from our model has good fit data because there are no gap value of F1_score in train set dan test set or we can said the value is the same 87 that is good enough, good fit, and more consistant to be applied in real case although the baseline model have higher score than using hyperparameter tuning, so here in this project use best params as the best model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 9: Model Saving" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [], "source": [ "# Save file inference\n", "with open('best_param.pkl', 'wb') as file_1:\n", " pickle.dump(best_params, file_1)" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [], "source": [ "# Save file preprocessing\n", "with open('preprocessing_pipeline.pkl', 'wb') as file_2:\n", " pickle.dump(preprocessing_pipeline, file_2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 10: Model Inference" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Model Inference in notebook entitled PIM2_inf_Allen" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bab 11: Conclusion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Looking to EDA: \n", "- Visitors that not canceled their booking is bigger than canceled their booking 67.2% to 32.8%. We can take a look the comparison between the \n", "visitors that not canceled and canceled in how they chose meal plan, the meal plan 1 is occupied the first place\n", "- Market segment of booking status majority from online\n", "- The most chose room type is room type 1\n", "- Visitors activity in reservation hotel, crowded in October 2018\n", "### Cross Validation and Best Model:\n", "- After doing cross validation, Random Forest become the best model\n", "- Baseline Model getting value of F1_Score higher than using hyperparameter tuning\n", "- This project chose best params with hyperparameter tuning with random search although the value 0f F1_score decrease but the result is more `goodfit` because the train set dan test set is the same and dont have a gap with value of F1_Score 87 that is high and good enough as model learning to do a prediction but still have a lot of improvement for next model learning\n", "### Confusion Metric:\n", "1. True Negatif (TN): the prediction said that there are `1462` visitors predicted will cancel their booking and in the real fact True so it is good because the prediction and the real fact is same\n", "2. False Negatif (FN): the prediction said that there are `262` visitors predicted will cancel their booking and in real fact is not true or they not canceled their booking so that is not good because it can be said miss prediction and it can be as improvement to the next modeling to reduce this value of False Negatif, but if we look at the confusion metrics the False Negatif is the lowest value that indicate that this modeling is good enough but still need imporovment\n", "3. False Positif (FP): the prediction said that there are `1396` visitors predicted will not canceled their booking but in real fact is they canceled their booking so that is not good too like False Negatif because it is miss prediction.\n", "4. True Positif (TP): prediction said that there are `5496` visitors predicted will not canceled their booking but in real fact is true so it is good prediction and the value is the most than the other so that it is still good modeling like i said before\n", "### Insight Business \n", "- Based on the model inference this model is ready to predict customer or visitors about hotel reservation to detect the visitors want cancel or not their reservation, it is for sure will make effective and efficiency for hotel to prepare the stratetgy to reduce and minimalize the business loss by predicting the visitors by their activity and anticipate by giving their another option to make them not cancel their booking \n", "- Increasing services in Online platform because the most used by visitors is online platform\n", "- Giving improvement like promo, discount, or renovation or renew the decoration of the hotel in the end of the year because it is time that is suitable for booking a hotel\n", "### Improvement Model:\n", "- Updating the visitors activity to get best prediction\n", "- Increasing model in hyperparameter Tuning\n", "- Handling Imbalance data to get better result" ] } ], "metadata": { "kernelspec": { "display_name": "base", "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.5" } }, "nbformat": 4, "nbformat_minor": 2 }