{ "cells": [ { "cell_type": "code", "execution_count": 1047, "metadata": { "id": "8U7DoWI_0rDf" }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "# importing all ML models\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.ensemble import RandomForestClassifier\n", "from xgboost import XGBClassifier\n", "\n", "# importing validation matrices\n", "from sklearn.model_selection import cross_val_score\n", "from sklearn.metrics import accuracy_score, confusion_matrix, classification_report\n", "from imblearn.over_sampling import SMOTE\n", "\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.impute import SimpleImputer\n", "from sklearn.compose import ColumnTransformer\n", "from sklearn.preprocessing import StandardScaler, OneHotEncoder\n", "from sklearn.model_selection import train_test_split, GridSearchCV\n", "from sklearn.model_selection import RandomizedSearchCV\n" ] }, { "cell_type": "markdown", "metadata": { "id": "3QTyIaIa0ihY" }, "source": [ "# ***1. Loaded the Dataset***" ] }, { "cell_type": "code", "execution_count": 1048, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 444 }, "id": "Enxn6omy02ht", "outputId": "4266eb09-4fc4-43a5-db0c-431f5459bc81" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "summary": "{\n \"name\": \"df\",\n \"rows\": 1000,\n \"fields\": [\n {\n \"column\": \"last_message_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14,\n \"min\": 1,\n \"max\": 50,\n \"num_unique_values\": 50,\n \"samples\": [\n 38,\n 7,\n 16\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"response_time_gap\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 20.747842272124352,\n \"min\": 0.0408296840877433,\n \"max\": 71.91900088102133,\n \"num_unique_values\": 1000,\n \"samples\": [\n 55.73144406261403,\n 56.70038067244471,\n 3.043873292045981\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"initiator\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"them\",\n \"me\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"conversation_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 58,\n \"min\": 1,\n \"max\": 200,\n \"num_unique_values\": 197,\n \"samples\": [\n 33,\n 19\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"reply_ratio\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.2865558833356494,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 101,\n \"samples\": [\n 0.92,\n 0.77\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"avg_response_time\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 34.81413164210275,\n \"min\": 1.076649177314788,\n \"max\": 119.96324897231614,\n \"num_unique_values\": 1000,\n \"samples\": [\n 118.03906892391228,\n 49.6300149512071\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"message_tone\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"enthusiastic\",\n \"neutral\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"emoji_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3,\n \"min\": 0,\n \"max\": 10,\n \"num_unique_values\": 11,\n \"samples\": [\n 5,\n 7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"question_asked\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 1,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"time_of_day\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"night\",\n \"day\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"seen_ignored\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"past_ghosting_history\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"reply\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ghosted\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 1,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", "type": "dataframe", "variable_name": "df" }, "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
last_message_lengthresponse_time_gapinitiatorconversation_lengthreply_ratioavg_response_timemessage_toneemoji_countquestion_askedtime_of_dayseen_ignoredpast_ghosting_historyreplyghosted
0479.474770me160.30119.597983enthusiastic70day1110
1126.082656me1660.8638.200045neutral40night0010
22771.585346me2000.1563.836544neutral31day1001
3144.256288them1600.9830.483516enthusiastic90night0110
44666.767645them570.39106.084704neutral61night0101
.............................................
995316.236081them1300.0491.787843dry41night1101
9963361.276902them320.0385.399233enthusiastic11day1001
9974951.260416me580.2947.659409neutral90night0110
9981049.751866them1520.9412.120685enthusiastic61day0110
999113.450147them1330.5795.841864enthusiastic70day0010
\n", "

1000 rows × 14 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", " \n", " \n", "
\n", "\n", "
\n", "
\n" ], "text/plain": [ " last_message_length response_time_gap initiator conversation_length \\\n", "0 47 9.474770 me 16 \n", "1 1 26.082656 me 166 \n", "2 27 71.585346 me 200 \n", "3 14 4.256288 them 160 \n", "4 46 66.767645 them 57 \n", ".. ... ... ... ... \n", "995 31 6.236081 them 130 \n", "996 33 61.276902 them 32 \n", "997 49 51.260416 me 58 \n", "998 10 49.751866 them 152 \n", "999 1 13.450147 them 133 \n", "\n", " reply_ratio avg_response_time message_tone emoji_count \\\n", "0 0.30 119.597983 enthusiastic 7 \n", "1 0.86 38.200045 neutral 4 \n", "2 0.15 63.836544 neutral 3 \n", "3 0.98 30.483516 enthusiastic 9 \n", "4 0.39 106.084704 neutral 6 \n", ".. ... ... ... ... \n", "995 0.04 91.787843 dry 4 \n", "996 0.03 85.399233 enthusiastic 1 \n", "997 0.29 47.659409 neutral 9 \n", "998 0.94 12.120685 enthusiastic 6 \n", "999 0.57 95.841864 enthusiastic 7 \n", "\n", " question_asked time_of_day seen_ignored past_ghosting_history reply \\\n", "0 0 day 1 1 1 \n", "1 0 night 0 0 1 \n", "2 1 day 1 0 0 \n", "3 0 night 0 1 1 \n", "4 1 night 0 1 0 \n", ".. ... ... ... ... ... \n", "995 1 night 1 1 0 \n", "996 1 day 1 0 0 \n", "997 0 night 0 1 1 \n", "998 1 day 0 1 1 \n", "999 0 day 0 0 1 \n", "\n", " ghosted \n", "0 0 \n", "1 0 \n", "2 1 \n", "3 0 \n", "4 1 \n", ".. ... \n", "995 1 \n", "996 1 \n", "997 0 \n", "998 0 \n", "999 0 \n", "\n", "[1000 rows x 14 columns]" ] }, "execution_count": 1048, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('ghosting_dataset2.csv')\n", "df" ] }, { "cell_type": "code", "execution_count": 1049, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "53L4RI-u02fW", "outputId": "b1b71e26-fc8b-4b0d-f53b-a72f4d57d5cf" }, "outputs": [ { "data": { "text/plain": [ "(1000, 14)" ] }, "execution_count": 1049, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.shape" ] }, { "cell_type": "code", "execution_count": 1050, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 523 }, "id": "fB5LEbzf02dG", "outputId": "708a7b1f-bb1f-4f7f-95f9-0a5e75cf8e81" }, "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", "
0
last_message_length0
response_time_gap0
initiator0
conversation_length0
reply_ratio0
avg_response_time0
message_tone0
emoji_count0
question_asked0
time_of_day0
seen_ignored0
past_ghosting_history0
reply0
ghosted0
\n", "

" ], "text/plain": [ "last_message_length 0\n", "response_time_gap 0\n", "initiator 0\n", "conversation_length 0\n", "reply_ratio 0\n", "avg_response_time 0\n", "message_tone 0\n", "emoji_count 0\n", "question_asked 0\n", "time_of_day 0\n", "seen_ignored 0\n", "past_ghosting_history 0\n", "reply 0\n", "ghosted 0\n", "dtype: int64" ] }, "execution_count": 1050, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# are there any missing values?\n", "df.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 1051, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "_jwyKZsk02an", "outputId": "8d68aaa2-acad-49cc-e004-13de5d7ec7ff" }, "outputs": [ { "data": { "text/plain": [ "np.int64(0)" ] }, "execution_count": 1051, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# are there any duplicated valueS?\n", "df.duplicated().sum()" ] }, { "cell_type": "code", "execution_count": 1052, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "lnzeDj9P02YO", "outputId": "9411ba73-aa09-43c4-ff0a-1812e68f97dd" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1000 entries, 0 to 999\n", "Data columns (total 14 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 last_message_length 1000 non-null int64 \n", " 1 response_time_gap 1000 non-null float64\n", " 2 initiator 1000 non-null object \n", " 3 conversation_length 1000 non-null int64 \n", " 4 reply_ratio 1000 non-null float64\n", " 5 avg_response_time 1000 non-null float64\n", " 6 message_tone 1000 non-null object \n", " 7 emoji_count 1000 non-null int64 \n", " 8 question_asked 1000 non-null int64 \n", " 9 time_of_day 1000 non-null object \n", " 10 seen_ignored 1000 non-null int64 \n", " 11 past_ghosting_history 1000 non-null int64 \n", " 12 reply 1000 non-null int64 \n", " 13 ghosted 1000 non-null int64 \n", "dtypes: float64(3), int64(8), object(3)\n", "memory usage: 109.5+ KB\n" ] } ], "source": [ "df.info()" ] }, { "cell_type": "code", "execution_count": 1053, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 321 }, "id": "tWQ-tskS02Vl", "outputId": "c6c39b35-b752-432a-c3ca-b3cddf4dc26e" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "summary": "{\n \"name\": \"df\",\n \"rows\": 8,\n \"fields\": [\n {\n \"column\": \"last_message_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 345.45110196965885,\n \"min\": 1.0,\n \"max\": 1000.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 25.441,\n 25.0,\n 1000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"response_time_gap\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 342.2602120099457,\n \"min\": 0.0408296840877433,\n \"max\": 1000.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 35.96304099577197,\n 36.209343988116984,\n 1000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"conversation_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 325.5925762808701,\n \"min\": 1.0,\n \"max\": 1000.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 102.333,\n 105.0,\n 1000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"reply_ratio\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 353.38804225110795,\n \"min\": 0.0,\n \"max\": 1000.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 0.49979999999999997,\n 0.49,\n 1000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"avg_response_time\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 335.58338364081345,\n \"min\": 1.076649177314788,\n \"max\": 1000.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 60.12308745313454,\n 59.64628830498514,\n 1000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"emoji_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 351.94939486088026,\n \"min\": 0.0,\n \"max\": 1000.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 4.939,\n 5.0,\n 1000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"question_asked\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 353.40220167048295,\n \"min\": 0.0,\n \"max\": 1000.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 0.498,\n 1.0,\n 0.5002461856388789\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"seen_ignored\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 353.350651032831,\n \"min\": 0.0,\n \"max\": 1000.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 0.519,\n 1.0,\n 0.49988887654046626\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"past_ghosting_history\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 353.3514417508797,\n \"min\": 0.0,\n \"max\": 1000.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 0.503,\n 1.0,\n 0.5002411830719641\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"reply\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 353.40877264163873,\n \"min\": 0.0,\n \"max\": 1000.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 0.382,\n 1.0,\n 0.486119648144686\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ghosted\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 353.40452998707025,\n \"min\": 0.0,\n \"max\": 1000.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 0.454,\n 1.0,\n 0.4981286301068543\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", "type": "dataframe" }, "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", "
last_message_lengthresponse_time_gapconversation_lengthreply_ratioavg_response_timeemoji_countquestion_askedseen_ignoredpast_ghosting_historyreplyghosted
count1000.0000001000.0000001000.0000001000.0000001000.0000001000.0000001000.0000001000.0000001000.0000001000.000001000.000000
mean25.44100035.963041102.3330000.49980060.1230874.9390000.4980000.5190000.5030000.382000.454000
std14.58503520.74784258.8403630.28655634.8141323.0813590.5002460.4998890.5002410.486120.498129
min1.0000000.0408301.0000000.0000001.0766490.0000000.0000000.0000000.0000000.000000.000000
25%13.00000018.38858350.0000000.25750029.4208612.0000000.0000000.0000000.0000000.000000.000000
50%25.00000036.209344105.0000000.49000059.6462885.0000000.0000001.0000001.0000000.000000.000000
75%38.00000054.561851154.0000000.74250090.9551977.0000001.0000001.0000001.0000001.000001.000000
max50.00000071.919001200.0000001.000000119.96324910.0000001.0000001.0000001.0000001.000001.000000
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", "
\n" ], "text/plain": [ " last_message_length response_time_gap conversation_length \\\n", "count 1000.000000 1000.000000 1000.000000 \n", "mean 25.441000 35.963041 102.333000 \n", "std 14.585035 20.747842 58.840363 \n", "min 1.000000 0.040830 1.000000 \n", "25% 13.000000 18.388583 50.000000 \n", "50% 25.000000 36.209344 105.000000 \n", "75% 38.000000 54.561851 154.000000 \n", "max 50.000000 71.919001 200.000000 \n", "\n", " reply_ratio avg_response_time emoji_count question_asked \\\n", "count 1000.000000 1000.000000 1000.000000 1000.000000 \n", "mean 0.499800 60.123087 4.939000 0.498000 \n", "std 0.286556 34.814132 3.081359 0.500246 \n", "min 0.000000 1.076649 0.000000 0.000000 \n", "25% 0.257500 29.420861 2.000000 0.000000 \n", "50% 0.490000 59.646288 5.000000 0.000000 \n", "75% 0.742500 90.955197 7.000000 1.000000 \n", "max 1.000000 119.963249 10.000000 1.000000 \n", "\n", " seen_ignored past_ghosting_history reply ghosted \n", "count 1000.000000 1000.000000 1000.00000 1000.000000 \n", "mean 0.519000 0.503000 0.38200 0.454000 \n", "std 0.499889 0.500241 0.48612 0.498129 \n", "min 0.000000 0.000000 0.00000 0.000000 \n", "25% 0.000000 0.000000 0.00000 0.000000 \n", "50% 1.000000 1.000000 0.00000 0.000000 \n", "75% 1.000000 1.000000 1.00000 1.000000 \n", "max 1.000000 1.000000 1.00000 1.000000 " ] }, "execution_count": 1053, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "code", "execution_count": 1054, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 226 }, "id": "UvZzCzMx1pqO", "outputId": "0623508f-1103-4c49-87d4-19d8b5b5682b" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "summary": "{\n \"name\": \"df\",\n \"rows\": 1000,\n \"fields\": [\n {\n \"column\": \"last_message_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14,\n \"min\": 1,\n \"max\": 50,\n \"num_unique_values\": 50,\n \"samples\": [\n 38,\n 7,\n 16\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"response_time_gap\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 20.747842272124352,\n \"min\": 0.0408296840877433,\n \"max\": 71.91900088102133,\n \"num_unique_values\": 1000,\n \"samples\": [\n 55.73144406261403,\n 56.70038067244471,\n 3.043873292045981\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"initiator\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"them\",\n \"me\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"conversation_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 58,\n \"min\": 1,\n \"max\": 200,\n \"num_unique_values\": 197,\n \"samples\": [\n 33,\n 19\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"reply_ratio\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.2865558833356494,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 101,\n \"samples\": [\n 0.92,\n 0.77\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"avg_response_time\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 34.81413164210275,\n \"min\": 1.076649177314788,\n \"max\": 119.96324897231614,\n \"num_unique_values\": 1000,\n \"samples\": [\n 118.03906892391228,\n 49.6300149512071\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"message_tone\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"enthusiastic\",\n \"neutral\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"emoji_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3,\n \"min\": 0,\n \"max\": 10,\n \"num_unique_values\": 11,\n \"samples\": [\n 5,\n 7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"question_asked\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 1,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"time_of_day\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"night\",\n \"day\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"seen_ignored\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"past_ghosting_history\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"reply\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ghosted\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 1,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", "type": "dataframe", "variable_name": "df" }, "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", "
last_message_lengthresponse_time_gapinitiatorconversation_lengthreply_ratioavg_response_timemessage_toneemoji_countquestion_askedtime_of_dayseen_ignoredpast_ghosting_historyreplyghosted
0479.474770me160.30119.597983enthusiastic70day1110
1126.082656me1660.8638.200045neutral40night0010
22771.585346me2000.1563.836544neutral31day1001
3144.256288them1600.9830.483516enthusiastic90night0110
44666.767645them570.39106.084704neutral61night0101
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", "
\n" ], "text/plain": [ " last_message_length response_time_gap initiator conversation_length \\\n", "0 47 9.474770 me 16 \n", "1 1 26.082656 me 166 \n", "2 27 71.585346 me 200 \n", "3 14 4.256288 them 160 \n", "4 46 66.767645 them 57 \n", "\n", " reply_ratio avg_response_time message_tone emoji_count question_asked \\\n", "0 0.30 119.597983 enthusiastic 7 0 \n", "1 0.86 38.200045 neutral 4 0 \n", "2 0.15 63.836544 neutral 3 1 \n", "3 0.98 30.483516 enthusiastic 9 0 \n", "4 0.39 106.084704 neutral 6 1 \n", "\n", " time_of_day seen_ignored past_ghosting_history reply ghosted \n", "0 day 1 1 1 0 \n", "1 night 0 0 1 0 \n", "2 day 1 0 0 1 \n", "3 night 0 1 1 0 \n", "4 night 0 1 0 1 " ] }, "execution_count": 1054, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 1055, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "wHyFcHmp02TN", "outputId": "c982a019-c516-47ec-fc30-055e5f48008f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1000 entries, 0 to 999\n", "Data columns (total 14 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 last_message_length 1000 non-null int64 \n", " 1 response_time_gap 1000 non-null int32 \n", " 2 initiator 1000 non-null object \n", " 3 conversation_length 1000 non-null int64 \n", " 4 reply_ratio 1000 non-null float64\n", " 5 avg_response_time 1000 non-null float64\n", " 6 message_tone 1000 non-null object \n", " 7 emoji_count 1000 non-null int64 \n", " 8 question_asked 1000 non-null int64 \n", " 9 time_of_day 1000 non-null object \n", " 10 seen_ignored 1000 non-null int64 \n", " 11 past_ghosting_history 1000 non-null int64 \n", " 12 reply 1000 non-null int64 \n", " 13 ghosted 1000 non-null int64 \n", "dtypes: float64(2), int32(1), int64(8), object(3)\n", "memory usage: 105.6+ KB\n" ] } ], "source": [ "# converting the response_time_gap col(float) --> into int datatype --> represents hours\n", "df['response_time_gap'] = df['response_time_gap'].astype(np.int32)\n", "df.info()\n", "\n" ] }, { "cell_type": "code", "execution_count": 1056, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "t46B_c1_2LTm", "outputId": "3b18c0b9-dfb0-4055-cc22-ad24c4ca90c3" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1000 entries, 0 to 999\n", "Data columns (total 14 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 last_message_length 1000 non-null int64 \n", " 1 response_time_gap 1000 non-null int32 \n", " 2 initiator 1000 non-null object \n", " 3 conversation_length 1000 non-null int64 \n", " 4 reply_ratio 1000 non-null float64\n", " 5 avg_response_time 1000 non-null int32 \n", " 6 message_tone 1000 non-null object \n", " 7 emoji_count 1000 non-null int64 \n", " 8 question_asked 1000 non-null int64 \n", " 9 time_of_day 1000 non-null object \n", " 10 seen_ignored 1000 non-null int64 \n", " 11 past_ghosting_history 1000 non-null int64 \n", " 12 reply 1000 non-null int64 \n", " 13 ghosted 1000 non-null int64 \n", "dtypes: float64(1), int32(2), int64(8), object(3)\n", "memory usage: 101.7+ KB\n" ] } ], "source": [ "# converting the avg_response_time col(float) --> into int datatype --> represents minutes\n", "df['avg_response_time'] = df['avg_response_time'].astype(np.int32)\n", "df.info()" ] }, { "cell_type": "code", "execution_count": 1057, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 226 }, "id": "gpSq0K4T02Ql", "outputId": "e16779e0-6504-4682-f8fc-de9554e2926d" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "summary": "{\n \"name\": \"df\",\n \"rows\": 1000,\n \"fields\": [\n {\n \"column\": \"last_message_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14,\n \"min\": 1,\n \"max\": 50,\n \"num_unique_values\": 50,\n \"samples\": [\n 38,\n 7,\n 16\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"response_time_gap\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 72,\n \"samples\": [\n 66,\n 27,\n 30\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"initiator\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"them\",\n \"me\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"conversation_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 58,\n \"min\": 1,\n \"max\": 200,\n \"num_unique_values\": 197,\n \"samples\": [\n 33,\n 19\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"reply_ratio\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.2865558833356494,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 101,\n \"samples\": [\n 0.92,\n 0.77\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"avg_response_time\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 119,\n \"samples\": [\n 105,\n 65\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"message_tone\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"enthusiastic\",\n \"neutral\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"emoji_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3,\n \"min\": 0,\n \"max\": 10,\n \"num_unique_values\": 11,\n \"samples\": [\n 5,\n 7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"question_asked\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 1,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"time_of_day\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"night\",\n \"day\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"seen_ignored\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"past_ghosting_history\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"reply\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 0,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ghosted\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 1,\n \"num_unique_values\": 2,\n \"samples\": [\n 1,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", "type": "dataframe", "variable_name": "df" }, "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", "
last_message_lengthresponse_time_gapinitiatorconversation_lengthreply_ratioavg_response_timemessage_toneemoji_countquestion_askedtime_of_dayseen_ignoredpast_ghosting_historyreplyghosted
0479me160.30119enthusiastic70day1110
1126me1660.8638neutral40night0010
22771me2000.1563neutral31day1001
3144them1600.9830enthusiastic90night0110
44666them570.39106neutral61night0101
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", "
\n" ], "text/plain": [ " last_message_length response_time_gap initiator conversation_length \\\n", "0 47 9 me 16 \n", "1 1 26 me 166 \n", "2 27 71 me 200 \n", "3 14 4 them 160 \n", "4 46 66 them 57 \n", "\n", " reply_ratio avg_response_time message_tone emoji_count question_asked \\\n", "0 0.30 119 enthusiastic 7 0 \n", "1 0.86 38 neutral 4 0 \n", "2 0.15 63 neutral 3 1 \n", "3 0.98 30 enthusiastic 9 0 \n", "4 0.39 106 neutral 6 1 \n", "\n", " time_of_day seen_ignored past_ghosting_history reply ghosted \n", "0 day 1 1 1 0 \n", "1 night 0 0 1 0 \n", "2 day 1 0 0 1 \n", "3 night 0 1 1 0 \n", "4 night 0 1 0 1 " ] }, "execution_count": 1057, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 1058, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 523 }, "id": "tT0uFnmC02LW", "outputId": "d3e89f01-41b9-4eef-ff7b-d11dde9d2517" }, "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", "
0
last_message_length50
response_time_gap72
initiator2
conversation_length197
reply_ratio101
avg_response_time119
message_tone3
emoji_count11
question_asked2
time_of_day2
seen_ignored2
past_ghosting_history2
reply2
ghosted2
\n", "

" ], "text/plain": [ "last_message_length 50\n", "response_time_gap 72\n", "initiator 2\n", "conversation_length 197\n", "reply_ratio 101\n", "avg_response_time 119\n", "message_tone 3\n", "emoji_count 11\n", "question_asked 2\n", "time_of_day 2\n", "seen_ignored 2\n", "past_ghosting_history 2\n", "reply 2\n", "ghosted 2\n", "dtype: int64" ] }, "execution_count": 1058, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# displaying unique values\n", "df.nunique()" ] }, { "cell_type": "code", "execution_count": 1059, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "dMc9tAsz2111", "outputId": "0eeea7b7-36d8-4ed1-e107-77949b396824" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "initiator : ['me' 'them']\n", "--------------------------------------------------\n", "message_tone : ['enthusiastic' 'neutral' 'dry']\n", "--------------------------------------------------\n", "question_asked : [0 1]\n", "--------------------------------------------------\n", "time_of_day : ['day' 'night']\n", "--------------------------------------------------\n", "seen_ignored : [1 0]\n", "--------------------------------------------------\n", "past_ghosting_history : [1 0]\n", "--------------------------------------------------\n", "reply : [1 0]\n", "--------------------------------------------------\n", "ghosted : [0 1]\n", "--------------------------------------------------\n" ] } ], "source": [ "# displaying all those unique values the occur in the cols --> except for ID, age and result\n", "\n", "for col in df.columns:\n", " numerical_cols = ['last_message_length', 'response_time_gap', 'conversation_length', 'reply_ratio', 'avg_response_time', 'emoji_count']\n", " if col not in numerical_cols:\n", " print(f'{col} : {df[col].unique()}')\n", " # separating it by hyphen(-)\n", " print(\"-\"*50)" ] }, { "cell_type": "markdown", "metadata": { "id": "RG7UfNDi3nrV" }, "source": [ "# ***Exploratoy Data Analysis***" ] }, { "cell_type": "markdown", "metadata": { "id": "ZfKnkP8s3qo1" }, "source": [ "Univariate Analysis\n", "\n", "Numerical cols\n" ] }, { "cell_type": "code", "execution_count": 1060, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "pFtafQx23kqt", "outputId": "944a87f4-4c0a-4505-c81a-b638cffd8bb5" }, "outputs": [ { "data": { "text/plain": [ "array([[,\n", " ,\n", " ],\n", " [,\n", " ,\n", " ],\n", " [,\n", " ,\n", " ],\n", " [,\n", " , ]], dtype=object)" ] }, "execution_count": 1060, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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4zDN2THSle2qM2x9Ula/NWnSpFSfhYeHl7oU/sx9kYpydZw63z6R9Edu7BNVbdwjLADl5+erU6dOioqK0pQpU5SWlqbw8HB98cUXuueee1RSUmJv++STT2rIkCF67733tHz5ct1xxx2aOnWqNmzYUGojW1G269+dnW7+/016bXG+/vrrSkxMLNXuzLPJxowZoz59+mjx4sVatmyZJkyYoKlTp+rjjz/WpZdeKovForfeeksbNmzQ+++/r2XLlummm27Sk08+qQ0bNigyMlL/+c9/dOWVV6pjx4567rnnlJSUpNDQUM2ePVvz5893OW9b/DfccIMGDx5cZpuWLVu6vNwzl9+iRQs99dRTZc4/e+fmfP3tbt7+PABVw5lHpEtKSmSxWPTRRx+Vuc2IjIy0/+6N8ao859ueOTPGlJSUKD4+XvPmzStzWee7x9eFcmUsPnM77Yu4d+3apa5du6pJkyZ66qmnlJKSorCwMC1ZskRPP/20w/cYAPAFZ77ntm3bVvXr19fChQt1/fXX6/3339eJEyd03XXX2du4sr8j/XECQFlPbTzfGFkZtqvl9dmFcnWcYp8oMFAIC0CrV6/WwYMH9c4776hjx4726bt37y6zfYsWLdSiRQvdf//9+vTTT9WuXTs9//zzeuihhySp1FFWb7FdxhcfH69u3bo51f6uu+7SXXfdpR07duiSSy7Rk08+qTfeeMPepm3btmrbtq0efvhhzZ8/X4MGDdKbb76pm2++WW+//bbCw8O1bNkyhxshzp492+Fz6tWrp5KSEu3evdvhzIMznxQj/bHRrVGjhoqLi52K31VpaWn673//q65du7rlbxQfH6/w8PBSeUilc5N8t14A8B9paWkyxig1NdV+Bs+5nG+8kv53dP1M33//vapVq2b/MlytWjVt3769VLvvvvtOQUFBpQ4kOOtcY0xaWppWrFihdu3aORQDK8Kb2193xe3KGPP++++rsLBQ//73vx2OpJd3GebOnTtljHHol++//16SHG4yDSAwxcXFKSoqSlu3bi23Tb169codF2zzK6J///565plnVFBQoAULFqh+/fpq27atfb6r+zvncq4x0pXtqrNjjK1Ptm/fbr81i8327dsr3Geucuf4alOvXj32iao4Lo0MQLaq85lV5lOnTum5555zaFdQUKDTp087TGvRooWCgoIcLueoXr268vPzPRdwObKyshQVFaVHHnmkzHuu2B47e/z4cZ08edJhXlpammrUqGHP4/fffy9Vdbdd821rExwcLIvF4vAI3z179pR6+mJWVpYklerPGTNmOLwODg5Wdna23n777TIH3gt9bG7//v21d+9evfTSS6XmnThxQseOHXNpecHBwerWrZsWL16sffv22afv3LlTH330Uan2vlovAPiPq6++WsHBwZo8eXKpbbQxRgcPHpTk/HglSevXr3e4/+LPP/+s9957Tz169FBwcLCCg4PVo0cPvffeew6XzeXl5Wn+/Plq3769oqKiXMrDmTGmf//+Ki4u1oMPPljq/adPn3Zpe1q9enVJ8so22F1xuzLGlPU95vDhw6UOTNns27dP7777rv11QUGBXnvtNV1yySVlnmEBILAEBQWpX79+ev/997Vp06ZS840x6t27tz777DOtX7/ePv3YsWN68cUXVb9+fV188cUV+uzrrrtOhYWFmjt3rpYuXar+/fs7zHd2f+dcnBkjXdmuOvsdv3Xr1oqPj9fzzz/vMBZ/9NFH+vbbb3XFFVecdxnu4M7x1SYrK0vr16/Xli1b7NMOHTpU5lln7BNVTpwRFoD+8pe/qGbNmho8eLDuuOMOWSwWvf7666W+pH/88ccaNWqUrr32Wl100UU6ffq0Xn/9dXsBxyY9PV0rVqzQU089peTkZKWmppZ6tLwnREVFadasWfrb3/6mP//5zxowYIDi4uL0008/6cMPP1S7du30z3/+U99//726du2q/v376+KLL1ZISIjeffdd5eXlacCAAZKkuXPn6rnnntNVV12ltLQ0HTlyRC+99JKioqLUu3dvSX/c2PGpp55Sz549df311+vAgQOaOXOmGjZsqK+++sqhP7KzszV9+nQdPHhQbdu21Zo1a+xHn888KvDoo49q1apVysjI0PDhw3XxxRfr0KFD+uKLL7RixQodOnSowv3zt7/9TQsXLtStt96qVatWqV27diouLtZ3332nhQsXatmyZWXeEPRcJk2apOXLl6tdu3a67bbbVFxcrH/+859q3ry5w0Bg6wdfrBcA/EdaWpoeeughjR8/Xnv27FG/fv1Uo0YN7d69W++++65GjBihu+++2+nxSpKaN2+urKws3XHHHbJarfaDFpMnT7a3eeihh5STk6P27dvr9ttvV0hIiF544QUVFhZq2rRpLufhzBjTqVMn3XLLLZo6daq2bNmiHj16KDQ0VDt27NCiRYv0zDPP6JprrnHq82wPA7jvvvs0YMAAhYaGqk+fPvYCmTu5M25nx5gePXooLCxMffr00S233KKjR4/qpZdeUnx8vPbv319quRdddJGGDRumzz//XAkJCXr11VeVl5dXbuEMQOB55JFHtHz5cnXq1EkjRoxQ06ZNtX//fi1atEjr1q3Tvffeq3/961/q1auX7rjjDsXGxmru3LnavXu33n777TIvR3TGn//8ZzVs2FD33XefCgsLHS6LlJzf3zkXZ8ZIV7ar6enpmjVrlh566CE1bNhQ8fHxpc74kqTQ0FA99thjGjp0qDp16qSBAwcqLy9PzzzzjOrXr68777yzQn3mKneOUzbjxo3TG2+8oe7du2v06NGqXr26Xn75ZdWtW1eHDh1y2N9ztr/gZV58QiV8yPZ4VtujXD/55BPTtm1bExERYZKTk824cePMsmXLHB55+8MPP5ibbrrJpKWlmfDwcBMbG2suv/xys2LFCodlf/fdd6Zjx44mIiLCSHJ4LPu57N6920gyjz/+uMN026N3z37Ery2Hsx9rvGrVKpOVlWWio6NNeHi4SUtLM0OGDDGbNm0yxhjz22+/mZEjR5omTZqY6tWrm+joaJORkWEWLlxoX8YXX3xhBg4caOrWrWusVquJj483f/3rX+3LsHnllVdMo0aNjNVqNU2aNDGzZ882EydOLPVY92PHjpmRI0ea2NhYExkZafr162e2b99uJJlHH33UoW1eXp4ZOXKkSUlJMaGhoSYxMdF07drVvPjii071o02nTp1KPZr31KlT5rHHHjPNmjUzVqvV1KxZ06Snp5vJkyebw4cP29tJMiNHjiy1zHr16pX6e65cudJceumlJiwszKSlpZmXX37Z3HXXXSY8PNyhXXnrha2/fv31V4f2Z6+jAAJLedsGY4x5++23Tfv27U316tVN9erVTZMmTczIkSPN9u3bjTHOj1e2bd0bb7xh35Zfeuml9nHvTF988YXJysoykZGRplq1aubyyy83n376qUObc41LZ46nzo4xxhjz4osvmvT0dBMREWFq1KhhWrRoYcaNG2f27dvnSneaBx980PzpT38yQUFBDtvWs7fr5eVQ3t9j8ODBpnr16h6L29kx5t///rdp2bKlCQ8PN/Xr1zePPfaYefXV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miSLxeLw06RJE/t8f8sX5+av45QnBdqY4C2BsP31pL179+qGG25QrVq1FBERoRYtWmjTpk32+f723Qz+g3HIEd/TyuaO/c9Dhw5p0KBBioqKUkxMjIYNG6ajR496MQvPO18/DRkypNT61bNnT4c2/t5P7voe99NPP+mKK65QtWrVFB8fr//7v//T6dOnXY7H7wphCxYs0NixYzVx4kR98cUXatWqlbKysnTgwAFfh3bBjh07platWmnmzJllzp82bZqeffZZPf/889q4caOqV6+urKwsnTx50suRuseaNWs0cuRIbdiwQTk5OSoqKlKPHj107Ngxe5s777xT77//vhYtWqQ1a9Zo3759uvrqq30YdcXVqVNHjz76qDZv3qxNmzapS5cu6tu3r7755htJ/pXrmT7//HO98MILatmypcN0f8y3WbNm2r9/v/1n3bp19nn+mC/K5s/jlCcF2pjgDYG0/fWE33//Xe3atVNoaKg++ugjbdu2TU8++aRq1qxpb+Nv383gHxiHysb3tNLcsf85aNAgffPNN8rJydEHH3ygtWvXasSIEd5KwSvO10+S1LNnT4f161//+pfDfH/vJ3d8jysuLtYVV1yhU6dO6dNPP9XcuXM1Z84cPfDAA64HZPxMmzZtzMiRI+2vi4uLTXJyspk6daoPo3I/Sebdd9+1vy4pKTGJiYnm8ccft0/Lz883VqvV/Otf//JBhO534MABI8msWbPGGPNHfqGhoWbRokX2Nt9++62RZNavX++rMN2qZs2a5uWXX/bbXI8cOWIaNWpkcnJyTKdOnczf//53Y4x//m0nTpxoWrVqVeY8f8wX5QuUccrTAnFMcKdA2v56yj333GPat29f7vxA+G6GqolxqDS+p51fRfY/t23bZiSZzz//3N7mo48+MhaLxezdu9drsXvT2f1kjDGDBw82ffv2Lfc9gdhPFfket2TJEhMUFGRyc3PtbWbNmmWioqJMYWGhS5/vV2eEnTp1Sps3b1a3bt3s04KCgtStWzetX7/eh5F53u7du5Wbm+uQe3R0tDIyMvwm98OHD0uSYmNjJUmbN29WUVGRQ85NmjRR3bp1q3zOxcXFevPNN3Xs2DFlZmb6ba4jR47UFVdc4ZCX5L9/2x07dig5OVkNGjTQoEGD9NNPP0ny33xRWiCPU+4WSGOCJwTa9tcT/v3vf6t169a6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xnriiScczh4+1+eXN36cbwy0WCw6duyY5s6dax+TKuPVQnAvDrmh0rr22mvVqFEjPfLIIzLG6OGHH9aECRPUv39/3Xzzzfr11181Y8YMdezYUV9++aViYmLs7/3999/Vu3dv9e/fXwMHDtTChQt12223KSwszGHH40zXXHONRo4cqXnz5unSSy91mDdv3jx17txZf/rTn1zK4fbbb1dcXJweeOAB+9kDn3/+uT799FMNGDBAderU0Z49ezRr1ix17txZ27ZtU7Vq1dSxY0fdcccdevbZZ/WPf/xDTZs2lST7v2c7ceKEOnfurJ07d2rUqFFKTU3VokWLNGTIEOXn5+vvf/+7S3EDgLc5s21s3bq1GjRooIULF2rw4MEO71+wYIFq1qyprKwsSdKXX36pnj17KikpSZMnT1ZxcbGmTJmiuLi4CsV3+vRpZWVlqX379nriiSdUrVo1SdItt9yiOXPmaOjQobrjjju0e/du/fOf/9SXX36pTz75RKGhoTpw4IB69OihuLg43XvvvYqJidGePXv0zjvvlPqc1157TUeOHNHIkSN18uRJPfPMM+rSpYu+/vprJSQkSJJWrFihXr16qUGDBpo0aZJOnDihGTNmqF27dvriiy9Uv359h2X2799fqampmjp1qr744gu9/PLLio+P12OPPSZJ+uabb/TXv/5VLVu21JQpU2S1WrVz50598skn9mWUlJToyiuv1Lp16zRixAg1bdpUX3/9tZ5++ml9//33Tt9b5ZZbbtG+ffuUk5Oj119/3en+v+6669S0aVM9+uij+vDDD/XQQw8pNjZWL7zwgrp06aLHHntM8+bN0913363LLrtMHTt2dGvcAOANeXl5atu2rSwWi0aNGqW4uDh99NFHGjZsmAoKCjRmzBh726lTpyoiIkL33nuvdu7cqRkzZig0NFRBQUH6/fffNWnSJG3YsEFz5sxRamqqHnjgAft7b775Zs2dO1fXXHON7rrrLm3cuFFTp07Vt99+q3fffdetORUXF+uvf/2rVq5cqQEDBujvf/+7jhw5opycHG3dulVpaWkyxujKK6/UqlWrNGzYMF1yySVatmyZ/u///k979+7V008/XeHPP98Y+Prrr+vmm29WmzZtNGLECElSWlqaW3JHJWaASmbixIlGkhk4cKB92p49e0xwcLB5+OGHHdp+/fXXJiQkxGF6p06djCTz5JNP2qcVFhaaSy65xMTHx5tTp04ZY4zZvXu3kWRmz55tbzdw4ECTnJxsiouL7dO++OKLUu3OZ/bs2UaSad++vTl9+rTDvOPHj5dqv379eiPJvPbaa/ZpixYtMpLMqlWrSrXv1KmT6dSpk/319OnTjSTzxhtv2KedOnXKZGZmmsjISFNQUOB07ADgC85uG8ePH29CQ0PNoUOH7NMKCwtNTEyMuemmm+zT+vTpY6pVq2b27t1rn7Zjxw4TEhJiXP36M3jwYCPJ3HvvvQ7T//Of/xhJZt68eQ7Tly5d6jD93XffNZLM559/Xu5n2MakiIgI88svv9inb9y40Ugyd955p32abTw7ePCgfdp///tfExQUZG688Ub7NNt4ema/GGPMVVddZWrVqmV//fTTTxtJ5tdffy03vtdff90EBQWZ//znPw7Tn3/+eSPJfPLJJ+W+92wjR44s928gyUycOLFUDiNGjLBPO336tKlTp46xWCzm0UcftU///fffTUREhBk8eLBH4gYATxs2bJhJSkoyv/32m8P0AQMGmOjoaHP8+HGzatUqI8k0b97cvl9jzB/7MRaLxfTq1cvhvZmZmaZevXr211u2bDGSzM033+zQ7u677zaSzMcff2yfdvY+R1n7T+fz6quvGknmqaeeKjWvpKTEGGPM4sWLjSTz0EMPOcy/5pprjMViMTt37jzv55c3fpxvDDTGmOrVqzuMHfB/XBqJSuvWW2+1//7OO++opKRE/fv312+//Wb/SUxMVKNGjbRq1SqH94aEhOiWW26xvw4LC9Mtt9yiAwcOaPPmzeV+5o033qh9+/Y5LG/evHmKiIhQdna2yzkMHz681DX0ERER9t+Liop08OBBNWzYUDExMfriiy9c/gzpjydwJSYmauDAgfZpoaGhuuOOO3T06FGtWbOmQssFAG9xdtt43XXXqaioyOFsquXLlys/P1/XXXedpD+OPq9YsUL9+vVTcnKyvV3Dhg3Vq1evCsd42223ObxetGiRoqOj1b17d4exKT09XZGRkfaxxHbG8gcffKCioqJzfka/fv0czj5u06aNMjIytGTJEknS/v37tWXLFg0ZMkSxsbH2di1btlT37t3t7c505ngqSR06dNDBgwdVUFDgEN97772nkpKSMuNatGiRmjZtqiZNmjjk2qVLF0kqNQ67280332z/PTg4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t97SJ598ounTp1fo/mYA4E3ObhttrrvuOj3wwAMKDw/XsGHDSl22OGnSJC1fvlzt2rXTbbfdZv+C3bx5c23ZssUtMXfq1Em33HKLpk6dqi1btqhHjx4KDQ3Vjh07tGjRIj3zzDO65pprNHfuXD333HO66qqrlJaWpiNHjuill15SVFRUqcJVw4YN1b59e912220qLCzU9OnTVatWLY0bN87e5vHHH1evXr2UmZmpYcOG6cSJE5oxY4aio6M1adIkl/OYMmWK1q5dqyuuuEL16tXTgQMH9Nxzz6lOnTpq3769JOlvf/ubFi5cqFtvvVWrVq1Su3btVFxcrO+++04LFy7UsmXL1Lp1a6c+z3ZA6o477lBWVpaCg4MdzuhzJ3fGDQCe9uijj2rVqlXKyMjQ8OHDdfHFF+vQoUP64osvtGLFijIPXLiqVatWGjx4sF588UXl5+erU6dO+uyzzzR37lz169dPl19+uRsy+Z8bb7xRr732msaOHavPPvtMHTp00LFjx7RixQrdfvvt6tu3r/r06aPLL79c9913n/bs2aNWrVpp+fLleu+99zRmzBilpaXZl3fzzTfr0Ucf1c0336zWrVtr7dq19it/Kio9PV0rVqzQU089peTkZKWmpiojI+NCU0dl5vXnVALnYXvUbVmPcX/77bdN+/btTfXq1U316tVNkyZNzMiRI8327dvtbTp16mSaNWtmNm3aZDIzM014eLipV6+e+ec//+mwrHM9fnf//v0mODjYXHTRRRXKYfbs2UaS+fzzz0vN+/33383QoUNN7dq1TWRkpMnKyjLfffedqVevXqnH9r700kumQYMGJjg42Egyq1atsud45qOMjTEmLy/PvtywsDDTokULlx5tDAC+5Mq20RhjduzYYSQZSWbdunVlLnPlypXm0ksvNWFhYSYtLc28/PLL5q677jLh4eEuxTZ48GBTvXr1cue/+OKLJj093URERJgaNWqYFi1amHHjxpl9+/YZY4z54osvzMCBA03dunWN1Wo18fHx5q9//avZtGmTfRm2Menxxx83Tz75pElJSTFWq9V06NDB/Pe//y31mStWrDDt2rUzERERJioqyvTp08ds27bNoU1546ltjNq9e7e9n/r27WuSk5NNWFiYSU5ONgMHDjTff/+9w/tOnTplHnvsMdOsWTNjtVpNzZo1TXp6upk8ebI5fPiw0/15+vRpM3r0aBMXF2csFos58+uoJDNx4sTz5lDe38T2HcATcQOAN+Tl5ZmRI0ealJQUExoaahITE03Xrl3Niy++aIwxZtWqVUaSWbRokcP7ytv/KGs7WlRUZCZPnmxSU1NNaGioSUlJMePHjzcnT550eO/Z+xzn2n86l+PHj5v77rvP/nmJiYnmmmuuMbt27bK3OXLkiLnzzjtNcnKyCQ0NNY0aNTKPP/64KSkpKbWsYcOGmejoaFOjRg3Tv39/c+DAAafHj7PHQGOM+e6770zHjh1NRESEkVTm9w74F4sx3CUO/qVz58767bffyjyl2Fm//fabkpKS9MADD2jChAlujA4A4Ev9+vXTN998U+a9uHxpz549Sk1N1eOPP+5whjMAAL7SoUMHWa1WrVixwtehAG7FPcKAMsyZM0fFxcX629/+5utQAAAVdOLECYfXO3bs0JIlS9S5c2ffBAQAQBWyf/9+1a5d29dhAG7HPcKAM3z88cfatm2bHn74YfXr16/UEyZPnDihw4cPn3MZsbGxCgsL82CUAABnNGjQQEOGDFGDBg30448/atasWQoLC7Pfb+vw4cOlimVnS0xM9EaofoH+BAD/8Omnn+qdd97Rrl27dM8995TZ5tSpU+e9Z1l0dLRTT1UGvI1CGHCGKVOm6NNPP1W7du00Y8aMUvMXLFigoUOHnnMZq1at4mwDAKgEevbsqX/961/Kzc2V1WpVZmamHnnkETVq1EiS9Pe//11z58495zK4g4Tz6E8A8A8vvfSSPvroI40ZM6bcfZ9PP/30vDfWnz17toYMGeKBCIELwz3CABfs379f33zzzTnbpKenq2bNml6KCABQUdu2bdO+ffvO2aZbt25eiqbqoz8BIHD8/vvv2rx58znbNGvWTElJSV6KCHAehTAAAAAAAAAEBG6WDwAAAAAAgIBQJe8RVlJSon379qlGjRqyWCy+DgcAfMIYoyNHjig5OVlBQRzX8AXGIwBgPKoMGI8AwPnxqEoWwvbt26eUlBRfhwEAlcLPP/+sOnXq+DqMgMR4BAD/w3jkO4xHAPA/5xuPqmQhrEaNGpL+SC4qKsql9xYVFWn58uXq0aOHQkNDPRFepRAoeUrk6q8CJdcLybOgoEApKSn2bSK8z9XxyF/Wa/KoPPwhB4k8KhtX82A88r2K7h/5yzrrDHL1P4GSp0SuznJ2PKqShTDb6b5RUVEVKoRVq1ZNUVFRfr0CBUqeErn6q0DJ1R15cgmE77g6HvnLek0elYc/5CCRR2VT0TwYj3ynovtH/rLOOoNc/U+g5CmRq6vONx5xET8AAAAAAAACAoUwAAAAAAAABAQKYQAAAAAAAAgIFMIAAAAAAAAQEKrkzfKBsjSftEyFxd69SeueR6/w6ucBQFVU/94PffK5bKMBAAAujLe/x1mDjaa18exncEYYAAAAAAAAAgKFMAAAAAAAAAQECmEAAAAAAAAICBTCAAAAAKAC1q5dqz59+ig5OVkWi0WLFy92mD9kyBBZLBaHn549ezq0OXTokAYNGqSoqCjFxMRo2LBhOnr0qBezAIDAQiEMAAAAACrg2LFjatWqlWbOnFlum549e2r//v32n3/9618O8wcNGqRvvvlGOTk5+uCDD7R27VqNGDHC06EDQMDiqZEAAAAAUAG9evVSr169ztnGarUqMTGxzHnffvutli5dqs8//1ytW7eWJM2YMUO9e/fWE088oeTkZLfHDACBjkKYn2s+aZkKiy1e/UweVw8AAAD8YfXq1YqPj1fNmjXVpUsXPfTQQ6pVq5Ykaf369YqJibEXwSSpW7duCgoK0saNG3XVVVf5KmwA8FsUwgAAAIBKpv69H3r9MzmY6X49e/bU1VdfrdTUVO3atUv/+Mc/1KtXL61fv17BwcHKzc1VfHy8w3tCQkIUGxur3NzccpdbWFiowsJC++uCggJJUlFRkYqKipyOz9bWlfdUVeTqfwIlT8m3uVqDjXc/L+iPz6tIrs6+h0IYcAG8/SXVGmw0rY1XPxIAAAAVNGDAAPvvLVq0UMuWLZWWlqbVq1era9euFV7u1KlTNXny5FLTly9frmrVqrm8vJycnArHUtWQq/8JlDwl3+Tqq/3PiuR6/Phxp9pRCAMAAAAAL2jQoIFq166tnTt3qmvXrkpMTNSBAwcc2pw+fVqHDh0q975ikjR+/HiNHTvW/rqgoEApKSnq0aOHoqKinI6nqKhIOTk56t69u0JDQ11PqAohV/8TKHlKvs21+aRlXv08a5DRg61LKpSr7ezY86EQBgAA/NL5ztq1nWXrzvtpcmkZgHP55ZdfdPDgQSUlJUmSMjMzlZ+fr82bNys9PV2S9PHHH6ukpEQZGRnlLsdqtcpqtZaaHhoaWqGd5Iq+ryoiV/8TKHlKvsnV2/cct6lIrs62pxAGAGfgcteqYe3atXr88ce1efNm7d+/X++++6769etnn2+M0cSJE/XSSy8pPz9f7dq106xZs9SoUSN7m0OHDmn06NF6//33FRQUpOzsbD3zzDOKjIz0Wh7cAwgAqrajR49q586d9te7d+/Wli1bFBsbq9jYWE2ePFnZ2dlKTEzUrl27NG7cODVs2FBZWVmSpKZNm6pnz54aPny4nn/+eRUVFWnUqFEaMGAAT4wEAA+hEAYAqHKOHTumVq1a6aabbtLVV19dav60adP07LPPau7cuUpNTdWECROUlZWlbdu2KTw8XJI0aNAg7d+/Xzk5OSoqKtLQoUM1YsQIzZ8/39vpAHASxWNUNps2bdLll19uf227XHHw4MGaNWuWvvrqK82dO1f5+flKTk5Wjx499OCDDzqczTVv3jyNGjVKXbt2tR+YefbZZ72eCwAECpcLYf5yFB4AUHX16tVLvXr1KnOeMUbTp0/X/fffr759+0qSXnvtNSUkJGjx4sUaMGCAvv32Wy1dulSff/65/ZH1M2bMUO/evfXEE09wFB4A4JTOnTvLmPKfqLZs2fnvrRMbG8tBGADwIpcLYRyFBwBUZrt371Zubq66detmnxYdHa2MjAytX79eAwYM0Pr16xUTE2MvgklSt27dFBQUpI0bN+qqq64qc9kX+rj6sx997e3HUZ/52e5YhrPL8kWezrA9ntv2rzt4+7HmvnycujtvnvvHjXGl9ClLVVhS/r1IrMFu+0inudK37vx7+HL74Goevlj/AACoKJcLYRyFBwBUZrm5uZKkhIQEh+kJCQn2ebm5uYqPj3eYHxISotjYWHubsrjrcfW2x0H74v5wS5YscduynH2sdWW/D96DrUvctix39q8r/OVx6u78W7hLRf6m7vh7VIbtg7N5OPu4egAAKgO33iPMU0fhL/QI/Jl8deTUN48cde9Rbmf56mi4L3L1NluOgXDk1Vf/V719BP5C/qaBsB5UNhf6uPqzH33t7bHBXWyPtZ6wKeicZ+9Udp7IY+ukLLcsx1n+8jj1yrxOufI3deffwxfbB1uurubh7OPqAQCoDNxaCPPUUXh3HYE/k7ePnPrqaLgvjqz66mh4ZTyK7Cm+OPLvK4Hyf7UieXIEvmyJiYmSpLy8PPvj6W2vL7nkEnubAwcOOLzv9OnTOnTokP39ZXHX4+pt7X31OGp3KSyxVPkcJPfm4avHt/vL49Qr4zpVkX51x9/DF/1wdszO5uGr9R4AgIqoEk+NvNAj8Gfy1ZFT35wR5psjq746Gl4ZjyK7m6/+rt7+m0qB93+1InlyBL5sqampSkxM1MqVK+2Fr4KCAm3cuFG33XabJCkzM1P5+fnavHmz0tPTJUkff/yxSkpKlJGR4avQAQAAAHiYWwthnjoK764j8O56b0X46uimL46s+uqoYGU8iuwp3s7Vl0d6A+X/akXyDOQj8EePHtXOnTvtr3fv3q0tW7YoNjZWdevW1ZgxY/TQQw+pUaNG9ge3JCcn259y3LRpU/Xs2VPDhw/X888/r6KiIo0aNUoDBgzgXpUAAACAHwty58LOPApvYzsKn5mZKcnxKLwNR+EBAK7YtGmTLr30Ul166aWSpLFjx+rSSy/VAw88IEkaN26cRo8erREjRuiyyy7T0aNHtXTpUvvTiyVp3rx5atKkibp27arevXurffv2evHFF32SDwAAAADvcPmMMI7CA/Cm5pOWBcyZfnBe586dZUz5DzawWCyaMmWKpkyZUm6b2NhYzZ8/3xPhAQAAAKikXC6Ebdq0SZdffrn9te3eXYMHD9acOXM0btw4HTt2TCNGjFB+fr7at29f5lH4UaNGqWvXrgoKClJ2draeffZZN6QDAAAQeDhoAAAA4ByXC2EchQcAAECgqH/vh063tQYbTWtDYRIAgMrMrfcIAwAAAAAAACorCmEAAAAAAAAICBTCAAAAAAAAEBAohAEAAAAAACAgUAgDAAAAAABAQKAQBgAAAAAAgIBAIQwAAAAAAAABIcTXAfhK80nLVFhs8XUYfqn+vR969fOswUbT2nj1IwEAAAAAQBXEGWEAAAAAAAAICBTCAAAAAAAAEBAC9tJIAM7z9uWuEpe8AgAAAADcjzPCAAAAAAAAEBAohAEAAAAAACAgUAgDAAAAAABAQOAeYQAAAG7i7Xsqcj9FAAAA13BGGAAAAAAAAAIChTAAAAAAAAAEBAphAAAAAAAACAgUwgAAAAAAABAQKIQBAAAAAAAgIFAIAwD4pfr168tisZT6GTlypCSpc+fOpebdeuutPo4aAAAAgCeF+DoAAAA84fPPP1dxcbH99datW9W9e3dde+219mnDhw/XlClT7K+rVavm1RgBAAAAeJfbzwjjCDwAoDKIi4tTYmKi/eeDDz5QWlqaOnXqZG9TrVo1hzZRUVE+jBgAAACAp7n9jDCOwAMAKptTp07pjTfe0NixY2WxWOzT582bpzfeeEOJiYnq06ePJkyYcM4xqbCwUIWFhfbXBQUFkqSioiIVFRWdNw5bG9u/1mBToXx8zRpkHP6tqvwhD3/IQSKPyuLsbZQz2zVX2gEAUBm4vRAWFxfn8PrRRx8t9wg8AADesHjxYuXn52vIkCH2addff73q1aun5ORkffXVV7rnnnu0fft2vfPOO+UuZ+rUqZo8eXKp6cuXL3fpoE5OTo4kaVob53OojB5sXeLrENzCH/Lwhxwk8vC1JUuWOLy2bavO5/jx454IBwAAj/DoPcIqyxH4M9mPwlfRI3XOqupHJF1Brv4pUHK15VeRo+kcgXfeK6+8ol69eik5Odk+bcSIEfbfW7RooaSkJHXt2lW7du1SWlpamcsZP368xo4da39dUFCglJQU9ejRw6nLKouKipSTk6Pu3bsrNDRUzSctu4CsfMcaZPRg6xJN2BSkwhLL+d9QSflDHv6Qg0QelcXWSVmSSm+rzsf23RwAfKH5pGUqLPbuNnfPo1d49fPgXh4thFW2I/BnqqpH6lwVKHlK5OqvAiVXZ4+6n4kj8M758ccftWLFinOOM5KUkZEhSdq5c2e5hTCr1Sqr1VpqemhoqFM7i2e39/aXNncrLLFU+Rwk/8jDH3KQyMPXzt6OObttc2X752/Wrl2rxx9/XJs3b9b+/fv17rvvql+/fvb5xhhNnDhRL730kvLz89WuXTvNmjVLjRo1src5dOiQRo8erffff19BQUHKzs7WM888o8jISB9kBAD+z6OFsMpyBP5MtiNcVfVInbOq+hFJV5CrfwqUXG15OnvU/UwcgXfO7NmzFR8fryuuOPeRuy1btkiSkpKSvBAVAMAfHDt2TK1atdJNN92kq6++utT8adOm6dlnn9XcuXOVmpqqCRMmKCsrS9u2bVN4eLgkadCgQdq/f79ycnJUVFSkoUOHasSIEZo/f7630wGAgOCxQlhlPAJ/pqp6pM5VgZKnRK7+KlByrcj2LJCPwDurpKREs2fP1uDBgxUS8r8hb9euXZo/f7569+6tWrVq6auvvtKdd96pjh07qmXLlj6MGABQlfTq1Uu9evUqc54xRtOnT9f999+vvn37SpJee+01JSQkaPHixRowYIC+/fZbLV26VJ9//rlat24tSZoxY4Z69+6tJ554wuGEAgCAe3isEMYReACAr61YsUI//fSTbrrpJofpYWFhWrFihaZPn65jx44pJSVF2dnZuv/++30UKQDA3+zevVu5ubnq1q2bfVp0dLQyMjK0fv16DRgwQOvXr1dMTIy9CCZJ3bp1U1BQkDZu3KirrrrKF6EDFVL/3g+9+nnWYFPlHzwE3/BIIYwj8ACAyqBHjx4ypvQDF1JSUrRmzRofRAQACBS5ubmSpISEBIfpCQkJ9nm5ubmKj493mB8SEqLY2Fh7m7K462FitraB8AAecvU8a7B3H3Lly4drNb7vA69+3h+3U/HN+uurv6snHybmkUIYR+ABAAAAwDPc/TCxijy0p6oiV8/x1dlZgfJwLck366+v/q6efJiYRwphHIEHAAAAEMgSExMlSXl5eQ63gcnLy9Mll1xib3PgwAGH950+fVqHDh2yv78s7nqYmO1BYhV5aE9VQ66e13zSMq99lhQ4D9eSLuwBWxfKV39XTz5MzKNPjQQAAACAQJSamqrExEStXLnSXvgqKCjQxo0bddttt0mSMjMzlZ+fr82bNys9PV2S9PHHH6ukpMT+ULGyuPthYhfyELKqxtu5evu+WdL/7p3l7Vx99YCrQHm4luSb/6u+6ltPPkyMQhgAAAAAVMDRo0e1c+dO++vdu3dry5Ytio2NVd26dTVmzBg99NBDatSokVJTUzVhwgQlJyerX79+kqSmTZuqZ8+eGj58uJ5//nkVFRVp1KhRGjBgAE+MBAAPoRAGAAAAABWwadMmXX755fbXtssVBw8erDlz5mjcuHE6duyYRowYofz8fLVv315Lly5VeHi4/T3z5s3TqFGj1LVrVwUFBSk7O1vPPvus13MBgEBBIQwAAAAAKqBz585l3hvZxmKxaMqUKZoyZUq5bWJjYzV//nxPhOe05pOW+f2lZbbLBQEgyNcBAAAAAAAAAN5AIQwAAAAAAAABgUIYAAAAAAAAAgKFMAAAAAAAAAQECmEAAAAAAAAICDw1EgAAAAAAoJILhCe8egOFMAAAAAAA/AxFE6BsXBoJAAAAAACAgEAhDAAAAAAAAAGBQhgAAAAAAAACAoUwAAAAAAAABAQKYQAAAAAAAAgIFMIAAAAAAAAQECiEAQAAAAAAICBQCAMAAAAAAEBAoBAGAAAAAACAgEAhDADglyZNmiSLxeLw06RJE/v8kydPauTIkapVq5YiIyOVnZ2tvLw8H0YMAAAAwNMohAEA/FazZs20f/9++8+6devs8+688069//77WrRokdasWaN9+/bp6quv9mG0AAAAADzN7YUwjsADACqLkJAQJSYm2n9q164tSTp8+LBeeeUVPfXUU+rSpYvS09M1e/Zsffrpp9qwYYOPowYAAADgKR45I4wj8ACAymDHjh1KTk5WgwYNNGjQIP3000+SpM2bN6uoqEjdunWzt23SpInq1q2r9evX+ypcAAAAAB4W4pGF/v8j8GezHYGfP3++unTpIkmaPXu2mjZtqg0bNqht27aeCAcAEIAyMjI0Z84cNW7cWPv379fkyZPVoUMHbd26Vbm5uQoLC1NMTIzDexISEpSbm1vuMgsLC1VYWGh/XVBQIEkqKipSUVHReWOytbH9aw02rqZVKViDjMO/VZU/5OEPOUjkUVmcvY1yZrvmSjugMmg+aZkKiy2+DgOAD3mkEGY7Ah8eHq7MzExNnTpVdevWPe8R+PIKYRe643Em+85HFf2C4qyq/kXMFeTqnwIlV1t+FdmJYMfj3Hr16mX/vWXLlsrIyFC9evW0cOFCRUREVGiZU6dO1eTJk0tNX758uapVq+b0cnJyciRJ09pUKIxK48HWJb4OwS38IQ9/yEEiD19bsmSJw2vbtup8jh8/7olwAADwCLcXwjxxBN5dOx5nqqpfUFwVKHlK5OqvAiVXZ3c2zsSOh2tiYmJ00UUXaefOnerevbtOnTql/Px8hzEpLy+vzDOabcaPH6+xY8faXxcUFCglJUU9evRQVFTUeWMoKipSTk6OunfvrtDQUDWftOyCcvIVa5DRg61LNGFTkApLqu5RdX/Iwx9ykMijstg6KUtS6W3V+dgOUgMAUBW4vRDmiSPwF7rjcSbbwF5Vv6A4q6p/EXMFufqnQMnVlqezOxtnYsfDNUePHtWuXbv0t7/9Tenp6QoNDdXKlSuVnZ0tSdq+fbt++uknZWZmlrsMq9Uqq9VaanpoaKhLfz9b+6p+aUZhiaXK5yD5Rx7+kINEHr529nbM2W2bq+MXAAC+5JFLI8/kjiPw7trxOFNV/YLiqkDJUyJXfxUouVZke8aOx7ndfffd6tOnj+rVq6d9+/Zp4sSJCg4O1sCBAxUdHa1hw4Zp7Nixio2NVVRUlEaPHq3MzEzuVwkAAAD4MY88NfJMtiPwSUlJDkfgbZw5Ag8AgKt++eUXDRw4UI0bN1b//v1Vq1YtbdiwQXFxcZKkp59+Wn/961+VnZ2tjh07KjExUe+8846PowYAAADgSW4/I4wj8ACAyuDNN9885/zw8HDNnDlTM2fO9FJEAAAAAHzN7YUw2xH4gwcPKi4uTu3bty91BD4oKEjZ2dkqLCxUVlaWnnvuOXeHAQAAAAAAADhweyGMI/AAAAAAAACojDx+jzAAAAAAAACgMqAQBgAAAAAAgIBAIQwAAAAAAAABgUIYAAAAAAAAAgKFMAAAAAAAAAQECmEAAAAAAAAICBTCAAAAAAAAEBAohAEAAACAh0yaNEkWi8Xhp0mTJvb5J0+e1MiRI1WrVi1FRkYqOztbeXl5PowYAPwbhTAAAAAA8KBmzZpp//799p9169bZ59155516//33tWjRIq1Zs0b79u3T1Vdf7cNoAcC/hfg6AAAAAADwZyEhIUpMTCw1/fDhw3rllVc0f/58denSRZI0e/ZsNW3aVBs2bFDbtm29HSoA+D3OCAMAAAAAD9qxY4eSk5PVoEEDDRo0SD/99JMkafPmzSoqKlK3bt3sbZs0aaK6detq/fr1vgoXAPwaZ4QBAAAAgIdkZGRozpw5aty4sfbv36/JkyerQ4cO2rp1q3JzcxUWFqaYmBiH9yQkJCg3N7fcZRYWFqqwsND+uqCgQJJUVFSkoqIip2OztbUGGRcyqppsOZKr/wiUPKXAzNWVbZmNs++hEAYAAAAAHtKrVy/77y1btlRGRobq1aunhQsXKiIiokLLnDp1qiZPnlxq+vLly1WtWjWXl/dg65IKxVEVkav/CZQ8pcDKNScnx+X3HD9+3Kl2FMIAAAAAwEtiYmJ00UUXaefOnerevbtOnTql/Px8h7PC8vLyyrynmM348eM1duxY++uCggKlpKSoR48eioqKcjqWoqIi5eTkaMKmIBWWWCqUT1VhDTJ6sHUJufqRQMlTCsxcu3fvrtDQUJfeazs79nwohAEAAACAlxw9elS7du3S3/72N6Wnpys0NFQrV65Udna2JGn79u366aeflJmZWe4yrFarrFZrqemhoaEu7zhKUmGJRYXF/r1zbUOu/idQ8pQCK9eKbM+cbU8hDAAAAAA85O6771afPn1Ur1497du3TxMnTlRwcLAGDhyo6OhoDRs2TGPHjlVsbKyioqI0evRoZWZm8sRIAPAQCmEAAAAA4CG//PKLBg4cqIMHDyouLk7t27fXhg0bFBcXJ0l6+umnFRQUpOzsbBUWFiorK0vPPfecj6MGAP9FIQwAAAAAPOTNN9885/zw8HDNnDlTM2fO9FJEABDYgnwdAAAAAAAAAOANFMIAAAAAAAAQECiEAQAAAAAAICC4vRA2depUXXbZZapRo4bi4+PVr18/bd++3aFN586dZbFYHH5uvfVWd4cCAAhgjEcAAAAAzub2QtiaNWs0cuRIbdiwQTk5OSoqKlKPHj107Ngxh3bDhw/X/v377T/Tpk1zdygAgADGeAQAAADgbG5/auTSpUsdXs+ZM0fx8fHavHmzOnbsaJ9erVo1JSYmuvvjAQCQxHgEAAAAoDS3F8LOdvjwYUlSbGysw/R58+bpjTfeUGJiovr06aMJEyaoWrVqng4HABCg3DEeFRYWqrCw0P66oKBAklRUVKSioqLzxmBrY/vXGmxcT6QSsAYZh3+rKn/Iwx9ykMijsjh7G+XMds2VdgAAVAYeLYSVlJRozJgxateunZo3b26ffv3116tevXpKTk7WV199pXvuuUfbt2/XO++8U+ZyLnTH40z2nY8q+gXFWVX9i5gryNU/BUqutvwqshPBjofz3DUeTZ06VZMnTy41ffny5S4dzMnJyZEkTWvjYiKVzIOtS3wdglv4Qx7+kINEHr62ZMkSh9e2bdX5HD9+3BPhAADgER4thI0cOVJbt27VunXrHKaPGDHC/nuLFi2UlJSkrl27ateuXUpLSyu1HHfteJypqn5BcVWg5CmRq78KlFyd3dk4EzseznPXeDR+/HiNHTvW/rqgoEApKSnq0aOHoqKizhtHUVGRcnJy1L17d4WGhqr5pGUXkJXvWIOMHmxdogmbglRYYvF1OBXmD3n4Qw4SeVQWWydlSSq9rTof20FqAACqAo8VwkaNGqUPPvhAa9euVZ06dc7ZNiMjQ5K0c+dOj+x4nMk2sFfVLyjOqupfxFxBrv4pUHK15enszsaZ2PFwjjvHI6vVKqvVWmp6aGioS38/W/vC4qq9bheWWKp8DpJ/5OEPOUjk4Wtnb8ec3ba5On4BAOBLbi+EGWM0evRovfvuu1q9erVSU1PP+54tW7ZIkpKSksqc764djzNV1S8orgqUPCVy9VeBkmtFtmfseJybJ8YjAAAAAFWb2wthI0eO1Pz58/Xee++pRo0ays3NlSRFR0crIiJCu3bt0vz589W7d2/VqlVLX331le6880517NhRLVu2dHc4AIAAxXgEAAAA4GxuL4TNmjVLktS5c2eH6bNnz9aQIUMUFhamFStWaPr06Tp27JhSUlKUnZ2t+++/392hAAACGOMRAAAAgLN55NLIc0lJSdGaNWvc/bEAADhgPAIAAABwtiBfBwAAAAAAAAB4A4UwAAAAAAAABAQKYQAAAAAAAAgIFMIAAAAAAAAQECiEAQAAAAAAICBQCAMAAAAAAEBAoBAGAAAAAACAgEAhDAAAAAAAAAGBQhgAAAAAAAACAoUwAAAAAAAABAQKYQAAAAAAAAgIFMIAAAAAAAAQECiEAQAAAAAAICBQCAMAAAAAAEBAoBAGAAAAAACAgEAhDAAAAAAAAAGBQhgAAAAAAAACAoUwAAAAAAAABAQKYQAAAAAAAAgIFMIAAAAAAAAQECiEAQAAAAAAICBQCAMAAAAAAEBA8GkhbObMmapfv77Cw8OVkZGhzz77zJfhAAACEGMRAKAyYDwCAO/wWSFswYIFGjt2rCZOnKgvvvhCrVq1UlZWlg4cOOCrkAAAAYaxCABQGTAeAYD3+KwQ9tRTT2n48OEaOnSoLr74Yj3//POqVq2aXn31VV+FBAAIMIxFAIDKgPEIALzHJ4WwU6dOafPmzerWrdv/AgkKUrdu3bR+/XpfhAQACDCMRQCAyoDxCAC8K8QXH/rbb7+puLhYCQkJDtMTEhL03XfflWpfWFiowsJC++vDhw9Lkg4dOqSioiKXPruoqEjHjx9XSFGQikssFYi+aggpMTp+vMTv85TI1V8FSq62PA8ePKjQ0FCX3nvkyBFJkjHGE6H5PVfHIunCxyPbGGT7e4ecPnYBGfiOv/z/9Ic8/CEHiTwqi4MHD0oqva06H8ajC+OL8cgmUPaNpKr//9MVgZJroOQpBWauntw/8kkhzFVTp07V5MmTS01PTU31QTRVx/W+DsCLyNU/BUquF5rnkSNHFB0d7ZZYcG6MR//jL/8//SEPf8hBIo/KoPaTF/Z+xiPvYTyqmKr8/9NVgZJroOQpkasrzjce+aQQVrt2bQUHBysvL89hel5enhITE0u1Hz9+vMaOHWt/XVJSokOHDqlWrVqyWFyrhhYUFCglJUU///yzoqKiKpZAFRAoeUrk6q8CJdcLydMYoyNHjig5OdlD0fk3V8ci6cLHI39Zr8mj8vCHHCTyqGxczYPx6ML4Yjyy8Zd11hnk6n8CJU+JXJ3l7Hjkk0JYWFiY0tPTtXLlSvXr10/SHxvvlStXatSoUaXaW61WWa1Wh2kxMTEXFENUVJTfr0BS4OQpkau/CpRcK5onR94rztWxSHLfeOQv6zV5VB7+kINEHpWNK3kwHlWcL8cjG39ZZ51Brv4nUPKUyNUZzoxHPrs0cuzYsRo8eLBat26tNm3aaPr06Tp27JiGDh3qq5AAAAGGsQgAUBkwHgGA9/isEHbdddfp119/1QMPPKDc3FxdcsklWrp0aambRAIA4CmMRQCAyoDxCAC8x6c3yx81alS5p/t6itVq1cSJE0udSuxvAiVPiVz9VaDkGih5VmbeHIv85e9NHpWHP+QgkUdl4y95VDXsG3kWufqfQMlTIld3sxiecwwAAAAAAIAAEOTrAAAAAAAAAABvoBAGAAAAAACAgEAhDAAAAAAAAAHBLwthM2fOVP369RUeHq6MjAx99tln52y/aNEiNWnSROHh4WrRooWWLFnipUgvjCt5vvTSS+rQoYNq1qypmjVrqlu3buftl8rE1b+pzZtvvimLxaJ+/fp5NkA3cjXX/Px8jRw5UklJSbJarbrooouqxDrsap7Tp09X48aNFRERoZSUFN155506efKkl6KtuLVr16pPnz5KTk6WxWLR4sWLz/ue1atX689//rOsVqsaNmyoOXPmeDxOeEdFt2W+MHXqVF122WWqUaOG4uPj1a9fP23fvt2hzcmTJzVy5EjVqlVLkZGRys7OVl5eno8ids6jjz4qi8WiMWPG2KdVlTz27t2rG264QbVq1VJERIRatGihTZs22ecbY/TAAw8oKSlJERER6tatm3bs2OHDiB0VFxdrwoQJSk1NVUREhNLS0vTggw/qzNvVVsYczrcddybmQ4cOadCgQYqKilJMTIyGDRumo0ePejGLc+dRVFSke+65Ry1atFD16tWVnJysG2+8Ufv27at0ecC9qtK4VFHOjGf+qKzxzp+cb0z0F86MnVWVO8bXCjN+5s033zRhYWHm1VdfNd98840ZPny4iYmJMXl5eWW2/+STT0xwcLCZNm2a2bZtm7n//vtNaGio+frrr70cuWtczfP66683M2fONF9++aX59ttvzZAhQ0x0dLT55ZdfvBy561zN1Wb37t3mT3/6k+nQoYPp27evd4K9QK7mWlhYaFq3bm169+5t1q1bZ3bv3m1Wr15ttmzZ4uXIXeNqnvPmzTNWq9XMmzfP7N692yxbtswkJSWZO++808uRu27JkiXmvvvuM++8846RZN59991ztv/hhx9MtWrVzNixY822bdvMjBkzTHBwsFm6dKl3AobHVHRb5itZWVlm9uzZZuvWrWbLli2md+/epm7duubo0aP2NrfeeqtJSUkxK1euNJs2bTJt27Y1f/nLX3wY9bl99tlnpn79+qZly5bm73//u316Vcjj0KFDpl69embIkCFm48aN5ocffjDLli0zO3futLd59NFHTXR0tFm8eLH573//a6688kqTmppqTpw44cPI/+fhhx82tWrVMh988IHZvXu3WbRokYmMjDTPPPOMvU1lzOF823FnYu7Zs6dp1aqV2bBhg/nPf/5jGjZsaAYOHFhp8sjPzzfdunUzCxYsMN99951Zv369adOmjUlPT3dYRmXIA+5T1calinJmPPM35Y13/sKZMdFfODN2VlXuGF8ryu8KYW3atDEjR460vy4uLjbJyclm6tSpZbbv37+/ueKKKxymZWRkmFtuucWjcV4oV/M82+nTp02NGjXM3LlzPRWi21Qk19OnT5u//OUv5uWXXzaDBw+uMoUwV3OdNWuWadCggTl16pS3QnQLV/McOXKk6dKli8O0sWPHmnbt2nk0TndzphA2btw406xZM4dp1113ncnKyvJgZPCGC91u+9qBAweMJLNmzRpjzB87zv+vvfsOj6pM/z/+SZ0QktBTkFBFqYoGgQgKIhIhFhYUC2LAhhCQsouAjV5kLSiGIiqwX1BcVCyIQECQpSkG2EVABGmumAAiBAmkzfP7w19mHULJTJKZZM77dV25dJ55zpz7ngznzrnPmXOCgoLM4sWLHXN2795tJJlNmzZ5K8yLOn36tGnYsKFJTU017du3d+wYlJc8RowYYdq1a3fR5+12u4mOjjZ///vfHWMnT540NpvNvPfee54I8bISExPNI4884jTWvXt306tXL2NM+cjh/O14UWLetWuXkWS2bNnimPPFF18YPz8/8/PPP3ss9j8rSj365ptvjCRz6NAhY0zZzAPFU97rkrvOr2e+5mL1zpdcrib6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ffzxx94OA24K9HYAQGnauHGjxo4dqz59+qhy5cpOz+3Zs0f+/vSCAQDlw80336yzZ88qODjY26EAAC4jKytLY8eOlaQycYZUSdq1a5fGjh2rDh06qG7duk7PrVy50jtBucnd2jpp0iTdc8896tatW+kEhlJFFwCWZbPZFBQU5O0wAAAoEn9/f4WEhJTpgzhnzpzxdggAAC8KDg4uVwdsylJtpYZ6jvd/2/AJ69ev1w033KCQkBA1aNBAs2fPdlyzSrr0taX8/Pw0ZswYp7Gff/5ZjzzyiKKiomSz2dS0aVO98847hZadPn26mjZtqtDQUFWpUkUtW7bUu+++K+mPa2YNHz5cklSvXj35+fnJz8/PcQrvha4/sn//ft17772qWrWqQkND1aZNG33++edOcwq+R/7Pf/5TEydOVK1atRQSEqJbb71V+/btc+l9O3HihP72t7+pefPmCgsLU0REhLp06aJ///vfLuV6MYcOHdKVV16pZs2aKSMjQ5J08uRJDRkyRLGxsbLZbLryyiv14osvym63Oy178uRJ9enTR5UqVVLlypWVlJTEV0wBlHunT5/WkCFDVLduXdlsNkVGRuq2227T1q1bHXO+/vpr3X777apUqZJCQ0PVvn17bdiwodBrFaVWlWTNuNh1TFJSUlS/fn1VqFBBrVq10r/+9a9C12hxNY7FixcrLi5OFSpUUPXq1fXQQw/p559/dprTp08fhYWF6ccff1TXrl0VHh6uXr16SZLsdrumTZumpk2bKiQkRFFRUerXr59+++03p9cwxmjChAmqVauWQkNDdcstt2jnzp0uvS8AUBQF+ybff/+9evbsqYiICFWrVk2DBw/WuXPnHPPmzp2rjh07KjIyUjabTU2aNNHMmTMLvd63336rhIQEVa9eXRUqVFC9evX0yCOPSPpj36dGjRqSpLFjxzr2Q87f57mUQ4cO6a677lLFihUVGRmpoUOHasWKFRe9ntWuXbt0yy23KDQ0VFdccYWmTp1aaM7Ro0f16KOPKioqSiEhIbr22ms1f/78QvMWLVqkuLg4hYeHKyIiQs2bN9drr70mSZo3b57uvfdeSdItt9ziyK0gpuLWn6LUNFesX79erVq1UkhIiOrXr69//OMfTs9fqLbu3btXPXr0UHR0tEJCQlSrVi3df//9OnXqlKQ/9l/PnDmj+fPnO/L/837l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DzlfnTp1tGvXLhljnF7H1bsNn/+a//nPf2S3250OYFxoXyc4OFh33nmn7rzzTtntdg0YMECzZ8/W888/ryuvvLJYuV0qPqlka1pxNG/eXM2bN9dzzz2njRs3qm3btpo1a5YmTJgg6cInetSoUUOhoaEX3af09/dXbGxskdZ///33a9iwYXrvvfd09uxZBQUF6b777iteUnDgq5EoloCAACUkJOjjjz/W4cOHHeO7d+/WihUrHI8jIiJUvXp1xzWoCsyYMaPQ6/Xo0UMffvihvvvuu0LrO3bsmOP/C47IFwgODlaTJk1kjHF8V79ixYqSCjfgLqRr16765ptvnG5He+bMGb355puqW7eumjRpctnXcFVAQEChIxKLFy8udIv6ouRawM/PT2+++abuueceJSUl6dNPP3U817NnT23atMnpd1Pg5MmTysvLk/THe5GXl+d0q+j8/HxNnz7dvUQBoAzIz88v9NWGyMhI1axZU9nZ2YqLi1ODBg300ksv6ffffy+0fEENcqVWlaaWLVuqWrVqmjNnjmP7Lf3x9Ql3G0ktW7ZUZGSkZs2a5fQVny+++EK7d+9WYmLiZV+jZ8+eys/P1/jx4ws9l5eX56jJnTp1UlBQkKZPn+5UCwvuYAwApSElJcXpccHft126dHGcQfTnbdKpU6c0d+5cp2V+++23Qn/DF5xJXLDtLLiLblH2Q86XkJCgn3/+2env+HPnzmnOnDkuv1aBrl27Kj09Xe+//75jLC8vT9OnT1dYWJjat28vqfB+h7+/v6MJVZCbK/tYRVUaNc0dmZmZTuuX/miK+fv7O9XFihUrFso/ICBAnTt31ieffOL4qq30x52m3333XbVr167QpWsupnr16urSpYsWLFighQsX6vbbby90ogTcxxlhKLaxY8dq+fLluummmzRgwADHBrVp06b6z3/+45j32GOPacqUKXrsscfUsmVLrVu3Tj/88EOh15syZYrWrFmj1q1b6/HHH1eTJk104sQJbd26VatWrdKJEyckSZ07d1Z0dLTatm2rqKgo7d69W2+88YYSExMVHh4uSYqLi5MkPfvss7r//vsVFBSkO++807Hx/rORI0fqvffeU5cuXfTUU0+patWqmj9/vg4cOKAPP/yw0Fc/SsIdd9yhcePGqW/fvrrxxhu1Y8cOLVy40OnIeFFz/TN/f38tWLBA3bp1U8+ePbVs2TJ17NhRw4cP16effqo77rjDcevgM2fOaMeOHfrggw908OBBVa9eXXfeeafatm2rkSNH6uDBg2rSpIk++uijIn03HgDKqtOnT6tWrVq65557dO211yosLEyrVq3Sli1b9PLLL8vf319vvfWWunTpoqZNm6pv37664oor9PPPP2vNmjWKiIjQZ599Jqnotao0BQcHa8yYMRo0aJA6duyonj176uDBg5o3b94Fry1TFEFBQXrxxRfVt29ftW/fXg888IAyMjL02muvqW7duho6dOhlX6N9+/bq16+fJk+erO3bt6tz584KCgrS3r17tXjxYr322mu65557VKNGDf3tb3/T5MmTdccdd6hr167atm2bvvjiC/7YB1BqDhw4oLvuuku33367Nm3apAULFujBBx/Utddeq5CQEMfZUP369dPvv/+uOXPmKDIyUr/88ovjNebPn68ZM2boL3/5ixo0aKDTp09rzpw5ioiIUNeuXSX98ZW3Jk2a6P3339dVV12lqlWrqlmzZmrWrNllY+zXr5/eeOMNPfDAAxo8eLBiYmK0cOFCx7dA3Nm+P/HEE5o9e7b69OmjtLQ01a1bVx988IE2bNigadOmOfYpHnvsMZ04cUIdO3ZUrVq1dOjQIU2fPl0tWrRwXE+sRYsWCggI0IsvvqhTp07JZrOpY8eOioyMdDmuAqVR09zx5ZdfauDAgbr33nt11VVXKS8vT//3f//nOAhWIC4uTqtWrdIrr7yimjVrql69emrdurUmTJig1NRUtWvXTgMGDFBgYKBmz56t7OxsTZ061aVYHn74Yd1zzz2SdMGDSygGj9+nEj7pq6++MnFxcSY4ONjUr1/fzJo1y3GL4gJZWVnm0UcfNZUqVTLh4eGmZ8+e5ujRoxe8rXBGRoZJTk42sbGxJigoyERHR5tbb73VvPnmm445s2fPNjfffLOpVq2asdlspkGDBmb48OHm1KlTTq81fvx4c8UVVxh/f38jyRw4cMAY88ctdc+/5e2PP/5o7rnnHlO5cmUTEhJiWrVqZZYuXeo0p+AWu+ffUvfAgQNGkpk7d26R37dz586Zv/71ryYmJsZUqFDBtG3b1mzatKnQbYeLkmvB+33s2DHHWFZWlmnfvr0JCwszmzdvNsYYc/r0aTNq1Chz5ZVXmuDgYFO9enVz4403mpdeesnk5OQ4lv31119N7969TUREhKlUqZLp3bu343bCruQIAGVFdna2GT58uLn22mtNeHi4qVixorn22mvNjBkznOZt27bNdO/e3bHNrVOnjunZs6dZvXq107yi1KqSrBnn3+K9wOuvv27q1KljbDabadWqldmwYYOJi4szt99+u9txvP/+++a6664zNpvNVK1a1fTq1cv897//dZqTlJRkKlaseNF433zzTRMXF2cqVKhgwsPDTfPmzc3TTz9tjhw54piTn59vxo4d66iDHTp0MN99990FazQAFEfB38q7du0y99xzjwkPDzdVqlQxAwcONGfPnnXM+/TTT80111xjQkJCTN26dc2LL75o3nnnHaf9iK1bt5oHHnjA1K5d29hsNhMZGWnuuOMO8+233zqtc+PGjY59pAvt81zK/v37TWJioqlQoYKpUaOG+etf/2o+/PBDI8nxd70xxrRv3940bdq00PJJSUmmTp06TmMZGRmmb9++pnr16iY4ONg0b9680Pb/gw8+MJ07dzaRkZEmODjY1K5d2/Tr18/88ssvTvPmzJlj6tevbwICApxq0/n7Ma7Wn6LUtKKoU6eOSUxMLDR+sfgK4t+/f7955JFHTIMGDUxISIipWrWqueWWW8yqVaucXuf77783N998s6lQoYKR5FSztm7dahISEkxYWJgJDQ01t9xyi9m4caPT8nPnzjWSzJYtWy6aQ3Z2tqlSpYqpVKmS02cUxednjIev0grLGDNmjMaOHevxCwEDAGBldrtdNWrUUPfu3Yv1NRoA8CUF+ybHjh0rt2edTps2TUOHDtV///tfXXHFFd4OxyOsXNPy8vJUs2ZN3XnnnYWuKY3i4RphAAAA5dS5c+cKHXD6xz/+oRMnTqhDhw7eCQoAUGxnz551enzu3DnNnj1bDRs29NkmGDXN2ccff6xjx47p4Ycf9nYoPodrhAGl4OzZs5e9nlbVqlUVHBzsoYgAAGVVcWrG5s2bNXToUN17772qVq2atm7dqrffflvNmjXTvffeW1ohAwDckJOTc9lrSFaqVEkVKlRQ9+7dVbt2bbVo0UKnTp3SggUL9P3332vhwoUeitbzilLTjh07pvz8/Iu+RnBwsKpWreqpkEvF119/rf/85z8aP368rrvuOseNDFByaIQBpeD9999X3759LzlnzZo1ljyyAQBwVpyaUbduXcXGxur111/XiRMn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b7/9pq5du6pnz5564IEH9M9//lP9+/dXcHCwHnnkkQuu75577lFycrIWLlyo6667zum5hQsXqkOHDrriiitKM2UAQCnatm2bbr/9dsXExGjs2LHKz8/XuHHjVKNGjUJz169fr48++kgDBgxQeHi4Xn/9dfXo0UOHDx9WtWrVJEk7d+7UTTfdpIiICD399NMKCgrS7Nmz1aFDB3311Vdq3bq1pD8O8EyePFmPPfaYWrVqpczMTH377bfaunWrbrvtNvXr109HjhxRamqq/u///q9QLP369dO8efPUt29fPfXUUzpw4IDeeOMNbdu2TRs2bFBQUJAk6YUXXtCECRPUtWtXde3aVVu3blXnzp2Vk5NTiu8qAABAKTCAhYwePdpIMg888IBj7ODBgyYgIMBMnDjRae6OHTtMYGCg03j79u2NJPPyyy87xrKzs02LFi1MZGSkycnJMcYYc+DAASPJzJ071zHvgQceMDVr1jT5+fmOsa1btxaaBwAof+68804TGhpqfv75Z8fY3r17TWBgoPnzn1uSTHBwsNm3b59j7N///reRZKZPn+4Y69atmwkODjY//vijY+zIkSMmPDzc3HzzzY6xa6+91iQmJl4ytuTkZHOhP/n+9a9/GUlm4cKFTuPLly93Gj969KgJDg42iYmJxm63O+Y988wzRpJJSkq65PoBAADKEr4aCUt68sknHf//0UcfyW63q2fPnjp+/LjjJzo6Wg0bNtSaNWuclg0MDFS/fv0cj4ODg9WvXz8dPXpUaWlpF13nww8/rCNHjji93sKFC1WhQgX16NGjBLMDAHhSfn6+Vq1apW7duqlmzZqO8SuvvFJdunQpNL9Tp05q0KCB4/E111yjiIgI7d+/3/F6K1euVLdu3VS/fn3HvJiYGD344INav369MjMzJUmVK1fWzp07tXfvXpfjXrx4sSpVqqTbbrvNqf7FxcUpLCzMUa9WrVqlnJwcDRo0yOlrlUOGDHF5nQAAAN5GIwyWVK9ePcf/7927V8YYNWzYUDVq1HD62b17t44ePeq0bM2aNVWxYkWnsauuukqSdPDgwYuu87bbblNMTIwWLlwo6Y/rsrz33nu6++67FR4eXkKZAQA87ejRozp79qyuvPLKQs9daKx27dqFxqpUqeK4LtexY8eUlZWlq6++utC8xo0by263O65hOW7cOJ08eVJXXXWVmjdvruHDh+s///lPkeLeu3evTp06pcjIyEL17/fff3fUv0OHDkmSGjZs6LR8jRo1VKVKlSKtCwAAoKzgGmGwpAoVKjj+3263y8/PT1988YUCAgIKzQ0LCyuRdQYEBOjBBx/UnDlzNGPGDG3YsEFHjhzRQw89VCKvDwAoHy5Ua6Q/Lkjvqptvvlk//vijPvnkE61cuVJvvfWWXn31Vc2aNUuPPfbYJZe12+2KjIx0HKA534WubwYAAFDe0QiD5TVo0EDGGNWrV89xZtelHDlyRGfOnHE6K+yHH36QJNWtW/eSyz788MN6+eWX9dlnn+mLL75QjRo1lJCQUKz4AQDeFRkZqZCQEO3bt6/Qcxcau5waNWooNDRUe/bsKfTc999/L39/f8XGxjrGqlatqr59+6pv3776/fffdfPNN2vMmDGORtiF7lop/VH/Vq1apbZt2zodIDpfnTp1JP1xBtmfv6p57NixQneXBAAAKOv4aiQsr3v37goICNDYsWMLHY03xujXX391GsvLy9Ps2bMdj3NycjR79mzVqFFDcXFxl1zXNddco2uuuUZvvfWWPvzwQ91///0KDKQfDQDlWUBAgDp16qSPP/5YR44ccYzv27dPX3zxhVuv17lzZ33yySdOX7nPyMjQu+++q3bt2ikiIkKSCtWosLAwXXnllcrOznaMFRy4OXnypNPcnj17Kj8/X+PHjy8UQ15enmN+p06dFBQUpOnTpzvVyWnTprmcGwAAgLexBw7La9CggSZMmKBRo0bp4MGD6tatm8LDw3XgwAEtWbJETzzxhP72t7855tesWVMvvviiDh48qKuuukrvv/++tm/frjfffNNxm/lLefjhhx2vx9ciAcA3jBkzRitXrlTbtm3Vv39/5efn64033lCzZs20fft2l19vwoQJSk1NVbt27TRgwAAFBgZq9uzZys7O1tSpUx3zmjRpog4dOiguLk5Vq1bVt99+qw8++EADBw50zCk4SPPUU08pISFBAQEBuv/++9W+fXv169dPkydP1vbt29W5c2cFBQVp7969Wrx4sV577TXdc889qlGjhv72t79p8uTJuuOOO9S1a1dt27ZNX3zxhapXr17s9w4AAMCTaIQBkkaOHKmrrrpKr776qsaOHStJio2NVefOnXXXXXc5za1SpYrmz5+vQYMGac6cOYqKitIbb7yhxx9/vEjr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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# performing univariate analysis\n", "df.hist(figsize=(15,10))" ] }, { "cell_type": "code", "execution_count": 1061, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 847 }, "id": "0OsEQcg702I_", "outputId": "1fbca4b6-54b2-4d38-a367-a7f3935c5177" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 1061, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABMIAAAMtCAYAAAB9wt15AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAeZJJREFUeJzs3XmcVnXdP/73wAzDLAzIDsomJqASCCaSlhgiopGWLYoVmmmZaIqaWS6g3eltapY31VdL8FZJs1zKSsV9A0MURWUXlwLElXEAxxk4vz/8zXUzss3AXMNcc57Px4PHcJ3rnPP5nPM+2/Wac53JS5IkCQAAAABo5lrs7A4AAAAAQGMQhAEAAACQCoIwAAAAAFJBEAYAAABAKgjCAAAAAEgFQRgAAAAAqSAIAwAAACAV8nd2B7bHhg0bYvny5dGmTZvIy8vb2d0BAAAAYCdKkiQ++OCD6N69e7RoseX7vnIyCFu+fHn06NFjZ3cDAAAAgCbkjTfeiN12222L7+dkENamTZuI+HjhysrKdnJvGkZVVVXcf//9cdhhh0VBQcHO7g5boE5NnxrlBnXKDerU9KlRblCn3KBOTZ8a5QZ1yg3NsU7l5eXRo0ePTGa0JTkZhNV8HbKsrKxZBWHFxcVRVlbWbDbC5kidmj41yg3qlBvUqelTo9ygTrlBnZo+NcoN6pQbmnOdtvUILQ/LBwAAACAVBGEAAAAApIIgDAAAAIBUEIQBAAAAkAqCMAAAAABSQRAGAAAAQCoIwgAAAABIBUEYAAAAAKkgCAMAAAAgFQRhAAAAAKSCIAwAAACAVBCEAQAAAJAKgjAAAAAAUkEQBgAAAEAqCMIAAAAASAVBGAAAAACpIAgDAAAAIBUEYQAAAACkgiAMAAAAgFQQhAEAAACQCoIwAAAAAFJBEAYAAABAKgjCAAAAAEgFQRgAAAAAqSAIAwAAACAVBGEAAAAApIIgDAAAAIBUEIQBAAAAkAqCMAAAAABSoV5B2GWXXRaf+cxnok2bNtG5c+c4+uijY+HChbXG+fDDD+O0006LDh06RGlpaRxzzDHx5ptv1hrn9ddfjyOPPDKKi4ujc+fOce6550Z1dfWOLw0AAAAAbEG9grBHH300TjvttJg1a1bMmDEjqqqq4rDDDos1a9ZkxjnrrLPib3/7W9x+++3x6KOPxvLly+MrX/lK5v3169fHkUceGR999FE89dRTceONN8a0adPioosuarilAgAAAIBPyK/PyPfee2+t19OmTYvOnTvHnDlz4vOf/3ysXr06/vCHP8T06dPjC1/4QkRETJ06NQYMGBCzZs2KAw44IO6///54+eWX44EHHoguXbrE4MGD49JLL43zzjsvJk2aFK1atdqk3crKyqisrMy8Li8vj4iIqqqqqKqqqvdCN0U1y9Fclqe5UqfGtXbt2k3uOt2WinWV8dS8pdGm3awoLSqsd5v9+vWL4uLiek9H/diXcoM6NX1qlBvUKTeoU9OnRrlBnXJDc6xTXZclL0mSZHsbWbJkSXzqU5+KefPmxT777BMPPfRQjBw5Mt57771o165dZrxevXrFmWeeGWeddVZcdNFF8de//jXmzp2beX/ZsmWx++67x7PPPhv77rvvJu1MmjQpJk+evMnw6dOn+8AKzdjSpUvj7LPPbtQ2r7rqqujbt2+jtgkAAMCOWbt2bYwbNy5Wr14dZWVlWxyvXneEbWzDhg1x5plnxoEHHhj77LNPRESsXLkyWrVqVSsEi4jo0qVLrFy5MjNOly5dNnm/5r3NOf/882PixImZ1+Xl5dGjR4847LDDtrpwuaSqqipmzJgRo0aNioKCgp3dHbZAnRrX2rVr46CDDqrXNItWrI5z73w5fvHlvWLPbm3r3aY7whqHfSk3qFPTp0a5QZ1ygzo1fWqUG9QpNzTHOtV8e3BbtjsIO+200+LFF1+MJ554YntnUWeFhYVRWLjpV5wKCgqaTcFqNMdlao7UqXG0bds29t9//3pN0+q1d6Jw5kexz+AhMbhXhyz1jIZiX8oN6tT0qVFuUKfcoE5NnxrlBnXKDc2pTnVdjno9LL/GhAkT4p577omHH344dtttt8zwrl27xkcffRTvv/9+rfHffPPN6Nq1a2acT/4VyZrXNeMAAAAAQEOrVxCWJElMmDAh7rzzznjooYeiT58+td4fOnRoFBQUxIMPPpgZtnDhwnj99ddj+PDhERExfPjwmDdvXqxatSozzowZM6KsrCz22muvHVkWAAAAANiien018rTTTovp06fH3XffHW3atMk806tt27ZRVFQUbdu2jZNOOikmTpwY7du3j7Kysjj99NNj+PDhccABB0RExGGHHRZ77bVXfOtb34orrrgiVq5cGRdccEGcdtppm/36IwAAAAA0hHoF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P/7xj+S1115Lnn766U3q1aZNm+Syyy5LFi5cmDn/1GzvdVlPW9vOkiRJli9fnuTn5ydXX311smzZsuSFF15IpkyZkqnLto4ZW7Ola4Dx48cnRx11VGa8gw8+OGnTpk1y6aWXZs7xLVu2TMaMGZNcd911yaJFi5JTTz016dChQ7JmzZokSZLkvffe2+w+0adPn6R///7JvffemyxdujSZOnVqUlhYmDzyyCOZ89ABBxyQPPHEE8mzzz6b7LHHHsnBBx+cHHbYYcmzzz6bPPbYY0mHDh2Syy+/PNO/M844I+nevfsWz2+fPJbVtPPee+9tcx0999xzSWFhYXLqqacmc+fOTV588cXk2muvTd566606tf3J81iSJMmdd96ZbHzZuK1t4P3330+GDx+enHzyyZn9srq6ept939ipp56a9OzZM3nggQeSF154IfniF79Y6zpo42NvjbZt2yZTp05NkmTHruPWrl2bnH322cnee++d6f/atWs3abeioiLp1q1bZj08+OCDmfNsjboc87dmR66ZN96OPvzww+TLX/5ysu+++2bOGds6nqxfvz7ZZ599kpEjRyZz585NHn300WTffffd7Lr/pK0dB7Z1DGioc+nWbHx+qK6uTvr165eMGjUqmTt3bvL4448n+++/f63lrFmX/fv3T+65555k4cKFyVe/+tWkV69eSVVVVZIkSfLMM88kLVq0SC655JJk4cKFydSpU5OioqLMNlnTbllZWXLllVcmS5YsyfwrKSlJ+vbtm5SUlCRf+9rXkgEDBiSf+9znMss0ZsyYZLfddkuuvvrq5K677koGDhyYtGjRIhkwYECdtoXt+fz0s5/9LGnfvn1yxx13JPPnz0++//3vJ2VlZZsca7d2DVWXc8qWrtXren5Pko/3y9122y2ZPn16snjx4uSMM85ISktLM8v5yiuvJAUFBck555yTLFiwIPnjH/+Y7LrrrnU+rk6dOjUpKChIDj300GT27NnJnDlzkgEDBiTjxo3LjLPxeWhr2/+WrmHrejwpLS1NvvWtbyUvvvhi8uKLLyZvvPFG0qJFi+Rf//pXZrxnn302ycvLS5YuXbrNZduSXLhubK62lQP06tUrad++fTJlypTM5+YWLVpkrpu3tS1t7/lvW59Pb7vttqSwsDD5/e9/nyxYsCD56U9/mrRp0yYZNGhQY6/CbdppQdgnzZ49O4mIzAY/duzY5MQTT9zsuJ+8OKyL8ePHJ7169UrWr1+fGdavX7/kc5/7XOZ1dXV1UlJSkvzxj39MkiRJbrrppqRfv361PuRUVlYmRUVFyX333Ze88847SUQkjzzyyGbbbNOmTZ0u6msceeSRydlnn50kSZKUl5cnBQUFye233555//3330+Ki4sz6/C1115LWrZsmfznP/+pNZ+RI0cm559//jbb++SF7siRI5Of//zntca56aabkm7duiVJ8n9B2AUXXJAkSZJceumlyciRI5OISP75z38mSfLxRWtEJAsXLkzmzJmTREQyYcKEWieZmnbHjx+ftG/fPvMBpFevXsn++++flJaWJuvXr08++OCDJCJqbQcfffRR0r179+SKK65IkuT/Phg88MADmXH+/ve/JxGRrFu3LkmSrdfhpJNOSk455ZRawx5//PGkRYsWmem35pMn4c2t14svvjgpLi5OysvLM8NGjx6d9O7de5Pt8bLLLsv0oaysLPnwww9rzbtv377J//t//6/WsPLy8qSwsDC5/vrrM8OGDRuWnHbaacl1112X7LLLLklFRUVy4IEHJoMGDUr+/ve/Jy1atEhWrlyZJMn/7RsfffRR0qZNm+Rvf/tb8rWvfS35xje+kURE8v3vfz8ZNGhQcskll2Tmve+++ybDhg2r1a/p06fX6tell16aDB8+PEmS/9tnr7nmmlrjDBw4MHOxXRennXZacswxx2Ref/KD78Zt1RwffvKTn2yyH0+ZMiWznSXJx9v2QQcdVGs+n/nMZ5LzzjuvTv3a+EJ5W8eNmn736tWr1ofCmnWeJEkyf/78JCKS2bNnZ95fvHhxEhGbXPR98oPI5ra3c889Nxk2bFhy8MEHJ/vuu29m+KWXXpocdthhtaZ/4403MvtwzboZMGBAreU577zzal14f3I/2GuvvZL//u//zrweO3ZsncLlmvY27uOW3H777UmHDh0yrzf3wf2Tfbv//vuTli1bJq+//nrm/ZdeeimJiFoXj1vz1ltvJRGRzJs3L1m1alWSn5+fPPbYY5n3hw8fntlu6lrHrYmI5Mwzz6w1bFvH6quuuirZc889k48++miz8+zVq1dy+OGH1xr2jW98I/PBui7raWvbWZIkmeP/q6++utk+bOuYsTVbugbYXBC28X5dc47/1re+lRm2YsWKJCKSmTNnZvrwyX1iyZIlSUQkt956a63hJ510UnLcccdt9jxU84ucjT+AfO9730tGjx6dJMnHF6gFBQXJLbfcknn/k+e3HQnCjjvuuOTAAw/c7Ht1abuuQdjWtoEk2fp137Z88MEHSatWrZI//elPmWHvvPNOUlRUVOcgbEev4y6++OLNXrxv3O7G59kaWzrPbumYX1/bc838+OOPJyNHjkwOOuig5P3338+8v63jyX333Zfk5+fXutb85z//WacgbGvHgW0dAxriXLotG58f/vnPfyb5+fmZX2omSZLMmDFjs0HY73//+8w4NcfG+fPnJ0mSJOPGjUtGjRpVq51zzz032WuvvWq1e/TRR9cap+Z6dONzbs316Nlnn5307dt3k3NVzTkmm5+funTpkvziF7/IvK6urk569uy51WNtktS+hqrLOWVr1+p1Ob8nSVLrM0qSfHys2/gzynnnnZfss88+tebx05/+tF5BWEQkS5YsyQybMmVK0qVLl8zrjc9D2zoPbu4atq7Hky5dumQC4RpjxozJ/IIwSZLk9NNPT0aMGLHN5dqaXLhubI7qkgP06tUr+eY3v5l5f8OGDUnnzp2T3/72t0mSbHtb2p7zX10+nw4fPjz5wQ9+UOv9YcOGNckgbKd9NXLOnDkxduzY6NmzZ7Rp0yYOPvjgiIjMbdqnnnpq3HrrrTF48OD40Y9+FE899dQOt7n33ntHixb/t8hdunSJgQMHZl63bNkyOnTokLnd/Pnnn48lS5ZEmzZtorS0NEpLS6N9+/bx4YcfxtKlS6N9+/ZxwgknxOjRo2Ps2LHxq1/9qtbtsRMnTozvfve7ceihh8bll1+e+TpNxMe3pl966aUxcODAaN++fZSWlsZ9992XWf5XXnklqqqqYv/9989M07Zt2+jXr1/m9bx582L9+vWx5557ZvpXWloajz76aK226ur555+PSy65pNa8Tj755FixYkWtr3N8+tOfzoxf8/Wfo48+OkpLSzO3ZC5dujQGDRoUI0eOzNzWeuONN2a+llFj0KBBUVxcnHn92c9+NioqKuKNN96IV155JSKi1tczCgoKYv/994/58+fXmk9NnyIiunXrFhGRqePW6vD888/HtGnTai3z6NGjY8OGDbFs2bJ6r8Mt6d27d7Rp0ybzukuXLrHXXnttsj1uvO1VVFREhw4davVt2bJlm9R2/vz5UVlZGSNHjswMW7hwYWY9DRo0KEpKSjLb0oEHHhgbNmyImTNnxsknnxx33HFH/Oc//4lddtklKioq4vXXX49u3bpl+jJ8+PA4/vjjY/r06RERccABB8T8+fPj+OOPj4iPv7qydOnSOOmkk2r19Wc/+9kmfd1vv/1qvT7jjDPiZz/7WRx44IFx8cUXxwsvvFDr/SlTpsTQoUOjU6dOme2rZh+pq/nz58fw4cNrfaXnwAMPjIqKivj3v/+dGbbxNhQRtdZBfWzruFFj7733jpYtW262vYULF0Z+fn4MGTIk8/4ee+wRu+yyS5368MntbeN5Dx06tFZfH3744Vp169+/f0RErb4ecMABtdbf8OHDY/HixbF+/frNtv/d734381WMN998M/75z3/Gd77znTr1/ZN9rPHAAw/EyJEjY9ddd402bdrEt771rXjnnXdqHZu2Zf78+dGjR4/o0aNHZthee+0V7dq12+SYUmPx4sVx3HHHxe677x5lZWWZr6C+/vrr0alTpzjssMPilltuiYiIZcuWxcyZMzP7xo7WscYn95ttHau/9rWvxbp162L33XePk08+Oe68885aX3OK+LiGn3xdsw7qup62tp3VHP8HDhwYX/va1+L666/PHP/rc8zYURvv1zXn+I3P+126dImIqHXs/eQ+UTP+CSecUGv4//7v/9bq78ZtdenSJYqLi2P33XevNaymnaVLl0ZVVVUceOCBmfe3dH7bHnPnzq11TthYQ7a9tW1gRy1dujQ++uijGDZsWGZY+/bta10HbcuOXsfVxcbn2Ro159mNH9OwtWP+tjTENfNxxx0Xa9asifvvv7/Wc4y2dTypOR507949M80njx9bsqXjQF2OAQ1xLq2PhQsXRo8ePWo9/23ja/CNbe2ac/78+bX2rYiPt4dPnjM3d1yfNm1aPP7447F48eJo06ZN5nq0d+/e8eqrr2aWs2Zb+MxnPpOZPhufn1avXh1vvvlmrfXQsmXLzZ6jt3YNVZdzytau1etj436UlJREWVlZrWurjddZxJZrvCXFxcXRt2/fzOutbW9bOw9uSV2PJwMHDtzkWV0nn3xy/PGPf4wPP/wwPvroo5g+fXq9rr22JBeuG5ubuuQAEbW397y8vOjatWut/W5r29L2nP/q8vl0/vz5tc7bEXU/ZzS2nRKErVmzJkaPHh1lZWVxyy23xOzZs+POO++MiI8fwhcRMWbMmMzzl5YvXx4jR46Mc845Z4fa/eQDhvPy8jY7bMOGDRERUVFREUOHDo25c+fW+rdo0aIYN25cRERMnTo1Zs6cGZ/97Gfjtttuiz333DNmzZoVER8/P+Oll16KI488Mh566KHYa6+9Msv5i1/8In71q1/FeeedFw8//HDMnTs3Ro8enVn+uqioqIiWLVvGnDlzavVv/vz5tZ6lVJ/5TZ48uda85s2bF4sXL47WrVtvsh4rKipi7NixUVpampnukEMOiWOOOSY+//nPR8uWLWPGjBlx8cUXR0TEddddF/369Yu33npri33Iz9/07zfU1GNrNq5jzYG3Zrqt1aGioiK+973v1Vrm559/PhYvXlzrRLejtmfb69at2ybb3sKFC+Pcc8+tNd32Ppj/5z//ecydOzf233//+PznPx9z586NDh06xEcffVSrLxEfX0AvXLgwnn322VixYkV8+OGH8Y1vfCPT14iI66+/vlZfX3zxxcy+UGPjg3HExye+V155Jb71rW/FvHnzYr/99otrr702IiJuvfXWOOecc+Kkk06K+++/P+bOnRsnnnhivfaR+thaPeqjLseNhmxvc7Y2741rULMPf7KvNc+D2V7f/va345VXXomZM2fGzTffHH369InPfe5zdZ7+k9vJq6++Gl/84hfj05/+dPzlL3+JOXPmZJ5pla3tocbYsWPj3Xffjeuvvz6efvrpePrpp2u1e/zxx8ef//znqKqqiunTp8fAgQNrBS0N4ZPrY1vH6h49esTChQvjN7/5TRQVFcUPfvCD+PznP1/n5+bU1da2s5rj/z//+c/Ya6+94tprr41+/frFsmXL6nXMyEYft3a+2Nw+8b//+78REXHnnXfWGv7yyy9nnhP2yba2dYzPth39gy0tWrTY5Hkum9t+duYy1rS3tX7u6HVcQ9reddVQ18xHHHFEvPDCC5s8z6qu137bY0vHgRdffDEitn4MaArn0i3Z2jGkrjZ3XP/e974X++23Xxx11FG1rkc3DufGjBlTa1uomU82Pz/VxY7WYWvX6o3Zj+2Z/yePQTW2dh7cUZ/cfiI+vl4pLCyMO++8M/72t79FVVVVfPWrX23QtprqdWNa7ej2Xt/zX30+n+aCnRKELViwIN555524/PLL43Of+1z0799/s2l6p06dYvz48XHzzTfHNddck7nbqCYB31Kq3FCGDBkSixcvjs6dO8cee+xR69/Gv03bd9994/zzz4+nnnoq9tlnn8ydMxERe+65Z5x11llx//33x1e+8pVM2v3kk0/GUUcdFd/85jdj0KBBsfvuu8eiRYsy0+2+++5RUFBQ6+G1q1evrjXOvvvuG+vXr49Vq1Zt0r/t+YtGQ4YMiYULF24yrz322KPWnUsbj//SSy9FixYtokuXLrHHHnvE0KFDY9GiRZmDZl5eXuZDz2OPPRatWrWK559/PlO7559/PtatW5eZ52uvvRalpaXRo0eP6Nu3b+Tl5cUbb7yReb+qqipmz54de+21V72WbUt1GDJkSLz88subXea6/FWUVq1aZWU7HDJkSKxcuTLy8/M36VfHjh1rjfupT30qioqK4sEHH8wM69evX8yePTsGDBgQzz//fKxZsyazLT355JPRokWLeOmll+KMM86I3XbbLdq0aROFhYW1HnZZY9asWbHbbrvFwQcfHLfccks8+uij0aNHj+jcuXNEfHyXQ/fu3eOVV17ZpK81D2bdmh49esT3v//9uOOOO+Lss8+O66+/PtPPz372s/GDH/wg9t1339hjjz02+Q1hXdb/gAEDYubMmbUuVJ588slo06ZN7LbbbtvsX33V9bixNf369Yvq6up47rnnMsOWLFmyyW8SCwoKdmj7q9mHe/fuvUlfN77wqQl/asyaNSs+9alP1fot/MY6dOgQRx99dEydOjWmTZsWJ5544nb3MeLjuyE2bNgQV111VRxwwAGx5557xvLly2uNU9dt4Y033qh1THn55Zfj/fff3+wx5Z133omFCxfGBRdcECNHjowBAwZsUoOjjjoqPvzww7j33ntj+vTpmbvBIupex/qqy7G6qKgoxo4dG7/+9a/jkUceiZkzZ8a8efMy8/jkhc6sWbNiwIABEVH/9bQleXl5ceCBB8bkyZPjueeei1atWsWdd965w8eMbF4DbG6fGD16dBQWFsZbb721SX83vsOhPvr27RutWrWKJ598MjNse89vm/PpT3+61jmhvm136tQpPvjgg1p/3GDuRn+ApK525BzZt2/fKCgoqHX8ee+992pdB3Xq1KnWb7AXL15c6y7RHb2Oq+txpeY8W6PmPFufu9e2ZEevmWuceuqpcfnll8eXvvSlePTRRzPDt3U8qTkebLye6xMUbu448OSTT27zGNAQ59L66NevX7zxxhu1HuC+8TV4XQ0YMKDWvhXx8faw5557bvGcGfF/16NFRUUxf/78Wss7Z86c6N27d6xfv77WtpCXl7fZP+7UUJ+f2rZtG126dKm1HtavXx/PPvtsnaavUddzypau1RvqWrtfv361/lhWxPbVuD62dB6M2Pxy7cjxJD8/P8aPHx9Tp06NqVOnxrHHHtvgf8U+V64bc11dcoBtqeu2VJ/zX10+nw4YMGCz9W+KdkoQ1rNnz2jVqlVce+218corr8Rf//rXuPTSS2uNc9FFF8Xdd98dS5YsiZdeeinuueeezEV6586do6ioKO6999548803Y/Xq1Vnp5/HHHx8dO3aMo446Kh5//PFYtmxZPPLII3HGGWfEv//971i2bFmcf/75MXPmzHjttdfi/vvvj8WLF8eAAQNi3bp1MWHChHjkkUfitddeiyeffDITTER8HF7MmDEjnnrqqZg/f35873vfq3XybdOmTYwfPz7OPffcePjhh+Oll16Kk046KVq0aJH57dOee+4Zxx9/fHz729+OO+64I5YtWxb/+te/4rLLLou///3v9V7eiy66KP73f/83Jk+eHC+99FLMnz8/br311rjgggs2O/5pp50W7777bqxduzZeeeWVWLp0aQwYMCBefPHFOPfcc+P222+P4447LnMCvueee+Ktt96KfffdNyoqKmLFihVRWVkZ48ePj5dffjnWrVsX9957b0yYMCFatGgRJSUl0aFDh5gxY0bce++98fLLL8fJJ58ca9eujZNOOqlOy7StOpx33nnx1FNPxYQJEzK/0bj77rtjwoQJdZp/796947HHHov//Oc/mw2Rttehhx4aw4cPj6OPPjruv//+ePXVV+Opp56Kn/70p5ucxFu3bh3nnXde/OhHP8p8VWfMmDHx//7f/4skSTJfeXnuueeioqIiTj/99PjWt74V/fr1i5tuuilWr16d+StDmzth3n777XHDDTfEoYceGtdff328+eabcdppp9UaZ/LkyXHZZZfFr3/961i0aFHMmzcvpk6dGldfffVWl/PMM8+M++67L5YtWxbPPvtsPPzww7X2kWeeeSbuu+++WLRoUVx44YWbXLD07t07XnjhhVi4cGG8/fbbm71j4Qc/+EG88cYbcfrpp8eCBQvi7rvvjosvvjgmTpy42YB3R23ruFEX/fv3j0MPPTROOeWU+Ne//hXPPfdcnHLKKVFUVFTrVvPevXvHgw8+GCtXrtyucKVmHz7uuONi9uzZsXTp0rjvvvvixBNPrHXye/3112PixImxcOHC+OMf/xjXXntt/PCHP9zqvL/73e/GjTfeGPPnz4/x48fXu28b22OPPaKqqipzzrjpppvid7/7Xa1xevfuHRUVFfHggw/G22+/vdmvTB566KExcODAOP744+PZZ5+Nf/3rX/Htb387Dj744E2+phIRscsuu0SHDh3iuuuuiyVLlsRDDz0UEydOrDVOSUlJHH300XHhhRfG/Pnz47jjjsu8V9c61te2jtXTpk2LP/zhD/Hiiy/GK6+8EjfffHMUFRVFr169MvN48skn44orrohFixbFlClT4vbbb8/UtL7raXOefvrp+PnPfx7PPPNMvP7663HHHXfEW2+9ldm/t/eYEZHda4DN7RNPPfVU9OvXL84666y48cYbY+nSpfHss8/GtddeGzfeeON2tVNSUhKnnnpqnHvuudt9ftua888/P2bPnh0/+MEP4oUXXogFCxbEb3/723j77bfr1PawYcOiuLg4fvKTn8TSpUtj+vTptf4SY1317t07nn766Xj11Vfj7bffrtdvqktLS+Okk06Kc889Nx566KF48cUX44QTTqh13P7CF74Q//M//xPPPfdcPPPMM/H973+/1m/Id+Q6rqb/y5Yti7lz58bbb78dlZWVm/Tz+OOPj9atW8f48ePjxRdfjIcffjhznq356u2O2NFr5o2dfvrp8bOf/Sy++MUvxhNPPJGZdmvHk0MPPTT23HPPGD9+fDz//PPx+OOPx09/+tM69X1rx4FtHQMa4lxaH6NGjYq+ffvG+PHj44UXXognn3wysw7qc7w+++yz48EHH4xLL700Fi1aFDfeeGP8z//8zzbvyqq5Hl28eHG8+uqrceKJJ8ZvfvObOOyww+Laa6+Nc889N77whS9EXl5enH/++XH33Xdn/mr0xhr689Ppp58el112Wdx9992xcOHC+OEPfxjvvfdevdbJts4p27pWr8v5vS6+973vxYIFC+K8886LRYsWxZ/+9Kdafwm2oW3rPLi5a9gdPZ5897vfjYceeijuvfferHy1MFeuG3NdXXKAbdnWtrQ957+6fD794Q9/GDfccENMnTo1Fi1aFBdffHG89NJLWVtXO6QxH0i28UNTp0+fnvTu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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# box-plot --> for identifying outliers\n", "df.boxplot(figsize=(15,10))" ] }, { "cell_type": "code", "execution_count": 1062, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 210 }, "id": "lt7-M-gD8wZu", "outputId": "d9024b80-8417-42a9-d973-5b016e90d8ba" }, "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", "
count
replyghosted
01454
10382
00164
\n", "

" ], "text/plain": [ "reply ghosted\n", "0 1 454\n", "1 0 382\n", "0 0 164\n", "Name: count, dtype: int64" ] }, "execution_count": 1062, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.loc[(df['reply'] == 1) & (df['ghosted'] == 1), 'ghosted'] = 0\n", "df[['reply', 'ghosted']].value_counts()" ] }, { "cell_type": "code", "execution_count": 1062, "metadata": { "id": "_Y7a_uJC8wTe" }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 1062, "metadata": { "id": "2itFO6au8wRW" }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 1062, "metadata": { "id": "AkMQaWHX8wO3" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "id": "YGrVrV0zt_xZ" }, "source": [ "# ***Feature Engineering***" ] }, { "cell_type": "code", "execution_count": 1063, "metadata": { "id": "hJMgkZDct_gx" }, "outputs": [], "source": [ "df['effort_score'] = df['last_message_length'] + df['emoji_count']\n", "\n", "df['is_fast_replier'] = df['avg_response_time'] < 30\n", "\n", "df['is_long_gap'] = df['response_time_gap'] > 24\n", "\n", "df['engagement_score'] = df['reply_ratio'] * df['conversation_length']\n", "\n", "df['late_night_risk'] = (df['time_of_day'] == 'night') & (df['response_time_gap'] > 12)\n", "\n", "df['ghost_risk_combo'] = (\n", " (df['response_time_gap'] > 24) &\n", " (df['reply_ratio'] < 0.4)\n", ").astype(int)\n", "\n", "df['effort_mismatch'] = (\n", " (df['last_message_length'] > 20) &\n", " (df['reply_ratio'] < 0.3)\n", ").astype(int)\n", "\n", "df['seen_delay'] = (\n", " (df['seen_ignored'] == 1) &\n", " (df['response_time_gap'] > 12)\n", ").astype(int)\n", "\n", "df['low_engagement'] = (\n", " (df['emoji_count'] == 0) &\n", " (df['message_tone'] == 'dry')\n", ").astype(int)\n" ] }, { "cell_type": "code", "execution_count": 1064, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "z2JgtSMut_eT", "outputId": "a08e50c5-bcd6-4c99-b87f-e70f57ba5971" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "variable_name": "df" }, "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", "
last_message_lengthresponse_time_gapinitiatorconversation_lengthreply_ratioavg_response_timemessage_toneemoji_countquestion_askedtime_of_day...ghostedeffort_scoreis_fast_replieris_long_gapengagement_scorelate_night_riskghost_risk_comboeffort_mismatchseen_delaylow_engagement
0479me160.30119enthusiastic70day...054FalseFalse4.80False0000
1126me1660.8638neutral40night...05FalseTrue142.76True0000
22771me2000.1563neutral31day...130FalseTrue30.00False1110
3144them1600.9830enthusiastic90night...023FalseFalse156.80False0000
44666them570.39106neutral61night...152FalseTrue22.23True1000
\n", "

5 rows × 23 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", "
\n" ], "text/plain": [ " last_message_length response_time_gap initiator conversation_length \\\n", "0 47 9 me 16 \n", "1 1 26 me 166 \n", "2 27 71 me 200 \n", "3 14 4 them 160 \n", "4 46 66 them 57 \n", "\n", " reply_ratio avg_response_time message_tone emoji_count question_asked \\\n", "0 0.30 119 enthusiastic 7 0 \n", "1 0.86 38 neutral 4 0 \n", "2 0.15 63 neutral 3 1 \n", "3 0.98 30 enthusiastic 9 0 \n", "4 0.39 106 neutral 6 1 \n", "\n", " time_of_day ... ghosted effort_score is_fast_replier is_long_gap \\\n", "0 day ... 0 54 False False \n", "1 night ... 0 5 False True \n", "2 day ... 1 30 False True \n", "3 night ... 0 23 False False \n", "4 night ... 1 52 False True \n", "\n", " engagement_score late_night_risk ghost_risk_combo effort_mismatch \\\n", "0 4.80 False 0 0 \n", "1 142.76 True 0 0 \n", "2 30.00 False 1 1 \n", "3 156.80 False 0 0 \n", "4 22.23 True 1 0 \n", "\n", " seen_delay low_engagement \n", "0 0 0 \n", "1 0 0 \n", "2 1 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", "[5 rows x 23 columns]" ] }, "execution_count": 1064, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": { "id": "-onBpYZ70rtI" }, "source": [ "# Split data into training and testing sets\n" ] }, { "cell_type": "code", "execution_count": 1065, "metadata": { "id": "FTBjAn5E017t" }, "outputs": [], "source": [ "# performing OHE on categorical cols --> because our input cols are categorical\n", "# label encoding is used when our output cols are categorical --> we cannot use it here\n", "# ordinal encoding is used when we have hierarchy in our data --> we cannnot use it here as well\n", "\n", "from sklearn.model_selection import train_test_split\n", "X_train_reply, X_test_reply, y_train_reply, y_test_reply = train_test_split(df.drop('reply',axis=1), df['reply'], test_size=0.2, random_state=42)" ] }, { "cell_type": "code", "execution_count": 1066, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "KdzhFdj2fItw", "outputId": "1c74c2d6-5ac9-4f11-a534-8116fc17f2b9" }, "outputs": [ { "data": { "text/plain": [ "((800, 22), (200, 22))" ] }, "execution_count": 1066, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train_reply.shape, X_test_reply.shape," ] }, { "cell_type": "code", "execution_count": 1067, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "tb4UD5LcvgEx", "outputId": "8117ea1b-70d5-4e70-f58f-db72917d32ff" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "variable_name": "df" }, "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", "
last_message_lengthresponse_time_gapinitiatorconversation_lengthreply_ratioavg_response_timemessage_toneemoji_countquestion_askedtime_of_day...ghostedeffort_scoreis_fast_replieris_long_gapengagement_scorelate_night_riskghost_risk_comboeffort_mismatchseen_delaylow_engagement
0479me160.30119enthusiastic70day...054FalseFalse4.80False0000
1126me1660.8638neutral40night...05FalseTrue142.76True0000
22771me2000.1563neutral31day...130FalseTrue30.00False1110
3144them1600.9830enthusiastic90night...023FalseFalse156.80False0000
44666them570.39106neutral61night...152FalseTrue22.23True1000
\n", "

5 rows × 23 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", "
\n" ], "text/plain": [ " last_message_length response_time_gap initiator conversation_length \\\n", "0 47 9 me 16 \n", "1 1 26 me 166 \n", "2 27 71 me 200 \n", "3 14 4 them 160 \n", "4 46 66 them 57 \n", "\n", " reply_ratio avg_response_time message_tone emoji_count question_asked \\\n", "0 0.30 119 enthusiastic 7 0 \n", "1 0.86 38 neutral 4 0 \n", "2 0.15 63 neutral 3 1 \n", "3 0.98 30 enthusiastic 9 0 \n", "4 0.39 106 neutral 6 1 \n", "\n", " time_of_day ... ghosted effort_score is_fast_replier is_long_gap \\\n", "0 day ... 0 54 False False \n", "1 night ... 0 5 False True \n", "2 day ... 1 30 False True \n", "3 night ... 0 23 False False \n", "4 night ... 1 52 False True \n", "\n", " engagement_score late_night_risk ghost_risk_combo effort_mismatch \\\n", "0 4.80 False 0 0 \n", "1 142.76 True 0 0 \n", "2 30.00 False 1 1 \n", "3 156.80 False 0 0 \n", "4 22.23 True 1 0 \n", "\n", " seen_delay low_engagement \n", "0 0 0 \n", "1 0 0 \n", "2 1 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", "[5 rows x 23 columns]" ] }, "execution_count": 1067, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 1068, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 178 }, "id": "y0DXw6oBh1OQ", "outputId": "20e6583b-a89f-415b-e035-9ee59d36cca3" }, "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", "
proportion
ghosted
00.546
10.454
\n", "

" ], "text/plain": [ "ghosted\n", "0 0.546\n", "1 0.454\n", "Name: proportion, dtype: float64" ] }, "execution_count": 1068, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['reply'].value_counts(normalize=True)\n", "df['ghosted'].value_counts(normalize=True)" ] }, { "cell_type": "code", "execution_count": 1069, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 210 }, "id": "iUDMAS5-jMwv", "outputId": "789183f2-e74a-406d-e317-d994a96f8afe" }, "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", "
reply
message_tone
dry0.344828
enthusiastic0.496970
neutral0.307692
\n", "

" ], "text/plain": [ "message_tone\n", "dry 0.344828\n", "enthusiastic 0.496970\n", "neutral 0.307692\n", "Name: reply, dtype: float64" ] }, "execution_count": 1069, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.groupby('message_tone')['reply'].mean()" ] }, { "cell_type": "markdown", "metadata": { "id": "0t1qlxyY0yt4" }, "source": [ "# ***2. Define Preprocessing Steps***\n" ] }, { "cell_type": "code", "execution_count": 1070, "metadata": { "id": "w_ZaYtpy079o" }, "outputs": [], "source": [ "numerical_features = ['last_message_length', 'response_time_gap','conversation_length','reply_ratio',\n", " 'avg_response_time','emoji_count','effort_score','engagement_score','ghost_risk_combo','effort_mismatch','seen_delay','low_engagement']\n", "categorical_features = ['initiator','message_tone','time_of_day','is_fast_replier','is_long_gap','late_night_risk']" ] }, { "cell_type": "code", "execution_count": 1071, "metadata": { "id": "e4QUAXQ5077D" }, "outputs": [], "source": [ "# Create transformers for numerical data (impute missing values, then scale)\n", "numerical_transformer = Pipeline(steps=[\n", " ('imputer', SimpleImputer(strategy='median')),\n", " ('scaler', StandardScaler())\n", "])" ] }, { "cell_type": "code", "execution_count": 1072, "metadata": { "id": "6CVZAPef074_" }, "outputs": [], "source": [ "# Create transformers for categorical data (impute missing values, then one-hot encode)\n", "categorical_transformer = Pipeline(steps=[\n", " ('imputer', SimpleImputer(strategy='most_frequent')),\n", " ('onehot', OneHotEncoder(handle_unknown='ignore'))\n", "])\n" ] }, { "cell_type": "code", "execution_count": 1073, "metadata": { "id": "Nm_d2P0M070Q" }, "outputs": [], "source": [ "# Bundle preprocessing for numerical and categorical data\n", "preprocessor = ColumnTransformer(\n", " transformers=[\n", " ('num', numerical_transformer, numerical_features),\n", " ('cat', categorical_transformer, categorical_features)\n", " ],\n", " remainder='passthrough' # Keep other columns if any\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "Tjexzfzr2HHv" }, "source": [ "## ***3. Create the Full Pipeline***" ] }, { "cell_type": "code", "execution_count": 1074, "metadata": { "id": "vB5BtmaS2Sv3" }, "outputs": [], "source": [ "# Bundle preprocessing and the final ML model\n", "pipeline = Pipeline(steps=[\n", " ('preprocessor', preprocessor), # Data transformation\n", " ('clf', LogisticRegression()) # ML model\n", "])" ] }, { "cell_type": "markdown", "metadata": { "id": "NL13jjbD2di_" }, "source": [ "## ***4. Train the model***" ] }, { "cell_type": "code", "execution_count": 1075, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ND94PqQA_Xie", "outputId": "8cdae746-e327-4ef2-a06d-752684caa0ac" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model Accuracy: 0.90\n" ] } ], "source": [ "pipeline.fit(X_train_reply, y_train_reply) # Automatically scales AND trains\n", "accuracy = pipeline.score(X_test_reply, y_test_reply)\n", "print(f\"Model Accuracy: {accuracy:.2f}\")" ] }, { "cell_type": "code", "execution_count": 1076, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7kzLznHsm9HV", "outputId": "05759ac6-1afb-45c0-a8a4-e6404280c552" }, "outputs": [ { "data": { "text/plain": [ "array([0.9 , 0.90625, 0.8875 , 0.8875 , 0.875 ])" ] }, "execution_count": 1076, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#printing cross-val-score\n", "cross_val_score(pipeline, X_train_reply, y_train_reply, cv=5)" ] }, { "cell_type": "code", "execution_count": 1077, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "JY6ASyDyAqs2", "outputId": "f0db6501-21a0-4e3f-ebbf-c8181e2b950a" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 0.98 0.85 0.91 124\n", " 1 0.80 0.97 0.88 76\n", "\n", " accuracy 0.90 200\n", " macro avg 0.89 0.91 0.90 200\n", "weighted avg 0.91 0.90 0.90 200\n", "\n" ] } ], "source": [ "# genrating validation matrices\n", "y_pred = pipeline.predict(X_test_reply)\n", "print(classification_report(y_test_reply, y_pred))\n" ] }, { "cell_type": "markdown", "metadata": { "id": "hvpfICR0A0Kt" }, "source": [ "# ***Random Forest***" ] }, { "cell_type": "code", "execution_count": 1078, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "mzsGQ8Gu_Jat", "outputId": "cba100b2-ac3a-4485-d067-d4d274eea3d9" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting 5 folds for each of 20 candidates, totalling 100 fits\n", "Best RF F1 Score: 0.8804\n", "Best RF Params: {'clf__n_estimators': 400, 'clf__min_samples_split': 2, 'clf__min_samples_leaf': 2, 'clf__max_features': 'log2', 'clf__max_depth': 20, 'clf__bootstrap': True}\n", "Test Set F1 Score: 0.8810\n", " precision recall f1-score support\n", "\n", " 0 0.98 0.85 0.91 124\n", " 1 0.80 0.97 0.88 76\n", "\n", " accuracy 0.90 200\n", " macro avg 0.89 0.91 0.90 200\n", "weighted avg 0.91 0.90 0.90 200\n", "\n" ] } ], "source": [ "pipeline1 = Pipeline(steps=[\n", " ('preprocessor', preprocessor), # Data transformation\n", " ('clf', RandomForestClassifier(n_estimators=500, min_samples_split=2, min_samples_leaf=4, max_features=None, max_depth=40, bootstrap=True)) # ML model\n", "])\n", "\n", "rf_param_dist = {\n", " 'clf__n_estimators': [100, 200, 400, 500],\n", " 'clf__max_depth': [10, 20, 30, 40, None],\n", " 'clf__min_samples_split': [2, 5, 10],\n", " 'clf__min_samples_leaf': [1, 2, 4],\n", " 'clf__bootstrap': [True, False],\n", " 'clf__max_features': ['sqrt', 'log2', None]\n", "}\n", "\n", "# 2. Initialize RandomizedSearchCV\n", "# n_iter=20 will randomly pick 20 combinations to test\n", "random_search_rf = RandomizedSearchCV(\n", " estimator=pipeline1,\n", " param_distributions=rf_param_dist,\n", " n_iter=20,\n", " scoring='f1',\n", " cv=5,\n", " verbose=1,\n", " random_state=42,\n", " n_jobs=-1\n", ")\n", "\n", "# 3. Fit the model\n", "random_search_rf.fit(X_train_reply, y_train_reply)\n", "\n", "# 4. View results\n", "print(f\"Best RF F1 Score: {random_search_rf.best_score_:.4f}\")\n", "print(f\"Best RF Params: {random_search_rf.best_params_}\")\n", "\n", "# 5. Evaluate on test set\n", "test_f1 = random_search_rf.score(X_test_reply, y_test_reply)\n", "print(f\"Test Set F1 Score: {test_f1:.4f}\")\n", "\n", "#printing cross-val-score\n", "cross_val_score(pipeline1, X_train_reply, y_train_reply, cv=5)\n", "cross_val_score\n", "\n", "#confusion matrix\n", "y_pred = random_search_rf.predict(X_test_reply)\n", "print(classification_report(y_test_reply, y_pred))\n" ] }, { "cell_type": "code", "execution_count": 1079, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "oZeJOs0F_hZH", "outputId": "d2bdc472-0eeb-4bd1-bcb5-803c070411d4" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model Accuracy: 0.90\n" ] } ], "source": [ "pipeline1.fit(X_train_reply, y_train_reply) # Automatically scales AND trains\n", "accuracy = pipeline1.score(X_test_reply, y_test_reply)\n", "print(f\"Model Accuracy: {accuracy:.2f}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "nLz5OoFOBDL9" }, "source": [ "# ***XGBOostClassifier***" ] }, { "cell_type": "code", "execution_count": 1080, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "IUTDKoNm_NLt", "outputId": "cd248bac-2e16-4087-abc5-6a8518a2b045" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting 5 folds for each of 50 candidates, totalling 250 fits\n", "Best XGB F1 Score: 0.8755\n", "Best XGB Params: {'clf__subsample': 0.7, 'clf__n_estimators': 200, 'clf__max_depth': 3, 'clf__learning_rate': 0.01, 'clf__gamma': 0.1, 'clf__colsample_bytree': 0.7}\n", "Test Set F1 Score: 0.8706\n", " precision recall f1-score support\n", "\n", " 0 0.98 0.85 0.91 124\n", " 1 0.80 0.97 0.88 76\n", "\n", " accuracy 0.90 200\n", " macro avg 0.89 0.91 0.90 200\n", "weighted avg 0.91 0.90 0.90 200\n", "\n" ] } ], "source": [ "pipeline2 = Pipeline(steps=[\n", " ('preprocessor', preprocessor), # Data transformation\n", " ('clf', XGBClassifier(subsample=0.7, n_estimators=200, max_depth=3, learning_rate=0.01, gamma=0.3,\n", " colsample_bytree=1.0)) # ML model\n", "\n", "])\n", "\n", "# 1. Define the parameter distributions with the 'clf__' prefix\n", "# This matches the 'clf' step name in your pipeline2\n", "xgb_param_dist = {\n", " 'clf__n_estimators': [200, 300, 500],\n", " 'clf__max_depth': [3, 5, 7],\n", " 'clf__learning_rate': [0.01, 0.05, 0.1],\n", " 'clf__subsample': [0.7, 0.9, 1.0],\n", " 'clf__colsample_bytree': [0.7, 0.9, 1.0],\n", " 'clf__gamma': [0, 0.1, 0.3]\n", "}\n", "\n", "# 2. Setup the Randomized Search\n", "# n_iter=50 will test 50 random combinations out of the 729 possible\n", "random_search_xgb = RandomizedSearchCV(\n", " estimator=pipeline2,\n", " param_distributions=xgb_param_dist,\n", " n_iter=50,\n", " scoring='f1',\n", " cv=5,\n", " verbose=1,\n", " random_state=42,\n", " n_jobs=-1\n", ")\n", "\n", "# 3. Run the search on your training data\n", "random_search_xgb.fit(X_train_reply, y_train_reply)\n", "\n", "# 4. Results\n", "print(f\"Best XGB F1 Score: {random_search_xgb.best_score_:.4f}\")\n", "print(f\"Best XGB Params: {random_search_xgb.best_params_}\")\n", "\n", "# 5. Final evaluation on the test set\n", "test_f1 = random_search_xgb.score(X_test_reply, y_test_reply)\n", "print(f\"Test Set F1 Score: {test_f1:.4f}\")\n", "\n", "#printing cross-val-score\n", "cross_val_score(pipeline2, X_train_reply, y_train_reply, cv=5)\n", "cross_val_score\n", "\n", "#confusion matrix\n", "y_pred = random_search_rf.predict(X_test_reply)\n", "print(classification_report(y_test_reply, y_pred))" ] }, { "cell_type": "code", "execution_count": 1081, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "oyoISOk1_ht1", "outputId": "38ab0b4b-dfab-4166-936d-d4820ab26fd7" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model Accuracy: 0.89\n" ] } ], "source": [ "pipeline2.fit(X_train_reply, y_train_reply) # Automatically scales AND trains\n", "accuracy = pipeline2.score(X_test_reply, y_test_reply)\n", "print(f\"Model Accuracy: {accuracy:.2f}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "JVAr1vxj2hyz" }, "source": [ "## ***5. Evaluate the model***" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "slj2HcORAqlQ" }, "outputs": [], "source": [ "# importing my random Forest model --> 90% accuracy\n", "import joblib\n", "joblib.dump(random_search_rf, 'random_forest_model.pkl')" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }