├── LEVEL 1 TASK 1 Data Exploration and Preprocessing └── DATAEXPLORATION AND PREPROCESSING .ipynb ├── LEVEL 1 TASK 2 Descriptive Analysis └── DESCRIPTIVE ANALYSIS.ipynb ├── LEVEL 1 TASK 3 Geospatial Analysis └── GEOSPATIAL ANALYSIS.ipynb ├── LEVEL 2 TASK 2 Price Range Analysis └── PRICE RANGE ANALYSIS.ipynb ├── LEVEL 2 TASK 1 Table Booking and Online Delivery └── TABLE BOOKING AND ONLINE DELEIVERY.ipynb ├── LEVEL 2 TASK 3Feature Engineering └── FEATURE ENGINEERING.ipynb ├── LEVEL 3 TASK 1 Predictive Modeling └── PREDICTIVE MODELING.ipynb ├── LEVEL 3 TASK 2 Customer Preference Analysis └── CUSTOMER PREFERANCE ANALYSIS.ipynb ├── LICENSE └── README.md /LEVEL 1 TASK 1 Data Exploration and Preprocessing/DATAEXPLORATION AND PREPROCESSING .ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "#### Data Exploration and Preprocessing " 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "here First, we need to load the data using Pandas" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 33, 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "import pandas as pd\n", 24 | "import matplotlib.pyplot as plt\n", 25 | "import warnings\n", 26 | "warnings.filterwarnings('ignore')\n", 27 | "import seaborn as sns\n", 28 | "file_path = r'C:\\Users\\Lenovo\\Documents\\GitHub\\TheUltimate pandas bootcamp\\Cognifyz-Data-Mastery-Program\\DATASETS\\Dataset .csv'\n", 29 | "DATASET = pd.read_csv(file_path)" 30 | ] 31 | }, 32 | { 33 | "cell_type": "markdown", 34 | "metadata": {}, 35 | "source": [ 36 | "Display the first few rows to get a sense of the data" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 9, 42 | "metadata": {}, 43 | "outputs": [ 44 | { 45 | "name": "stdout", 46 | "output_type": "stream", 47 | "text": [ 48 | "Initial preview of the dataset:\n", 49 | " Restaurant ID Restaurant Name Country Code City \\\n", 50 | "0 6317637 Le Petit Souffle 162 Makati City \n", 51 | "1 6304287 Izakaya Kikufuji 162 Makati City \n", 52 | "2 6300002 Heat - Edsa Shangri-La 162 Mandaluyong City \n", 53 | "3 6318506 Ooma 162 Mandaluyong City \n", 54 | "4 6314302 Sambo Kojin 162 Mandaluyong City \n", 55 | "\n", 56 | " Address \\\n", 57 | "0 Third Floor, Century City Mall, Kalayaan Avenu... \n", 58 | "1 Little Tokyo, 2277 Chino Roces Avenue, Legaspi... \n", 59 | "2 Edsa Shangri-La, 1 Garden Way, Ortigas, Mandal... \n", 60 | "3 Third Floor, Mega Fashion Hall, SM Megamall, O... \n", 61 | "4 Third Floor, Mega Atrium, SM Megamall, Ortigas... \n", 62 | "\n", 63 | " Locality \\\n", 64 | "0 Century City Mall, Poblacion, Makati City \n", 65 | "1 Little Tokyo, Legaspi Village, Makati City \n", 66 | "2 Edsa Shangri-La, Ortigas, Mandaluyong City \n", 67 | "3 SM Megamall, Ortigas, Mandaluyong City \n", 68 | "4 SM Megamall, Ortigas, Mandaluyong City \n", 69 | "\n", 70 | " Locality Verbose Longitude Latitude \\\n", 71 | "0 Century City Mall, Poblacion, Makati City, Mak... 121.027535 14.565443 \n", 72 | "1 Little Tokyo, Legaspi Village, Makati City, Ma... 121.014101 14.553708 \n", 73 | "2 Edsa Shangri-La, Ortigas, Mandaluyong City, Ma... 121.056831 14.581404 \n", 74 | "3 SM Megamall, Ortigas, Mandaluyong City, Mandal... 121.056475 14.585318 \n", 75 | "4 SM Megamall, Ortigas, Mandaluyong City, Mandal... 121.057508 14.584450 \n", 76 | "\n", 77 | " Cuisines ... Currency Has Table booking \\\n", 78 | "0 French, Japanese, Desserts ... Botswana Pula(P) Yes \n", 79 | "1 Japanese ... Botswana Pula(P) Yes \n", 80 | "2 Seafood, Asian, Filipino, Indian ... Botswana Pula(P) Yes \n", 81 | "3 Japanese, Sushi ... Botswana Pula(P) No \n", 82 | "4 Japanese, Korean ... Botswana Pula(P) Yes \n", 83 | "\n", 84 | " Has Online delivery Is delivering now Switch to order menu Price range \\\n", 85 | "0 No No No 3 \n", 86 | "1 No No No 3 \n", 87 | "2 No No No 4 \n", 88 | "3 No No No 4 \n", 89 | "4 No No No 4 \n", 90 | "\n", 91 | " Aggregate rating Rating color Rating text Votes \n", 92 | "0 4.8 Dark Green Excellent 314 \n", 93 | "1 4.5 Dark Green Excellent 591 \n", 94 | "2 4.4 Green Very Good 270 \n", 95 | "3 4.9 Dark Green Excellent 365 \n", 96 | "4 4.8 Dark Green Excellent 229 \n", 97 | "\n", 98 | "[5 rows x 21 columns]\n" 99 | ] 100 | } 101 | ], 102 | "source": [ 103 | "print(\"Initial preview of the dataset:\")\n", 104 | "print(DATASET.head())" 105 | ] 106 | }, 107 | { 108 | "cell_type": "markdown", 109 | "metadata": {}, 110 | "source": [ 111 | "`We use pd.read_csv() to read the data and print(df.head()) to check the top 5 rows, ensuring we know what kind of data we're dealing with.`" 112 | ] 113 | }, 114 | { 115 | "cell_type": "markdown", 116 | "metadata": {}, 117 | "source": [ 118 | "### **Understanding the Structure of the Data**\n", 119 | "\n", 120 | "Now, let’s see how many rows and columns we have and the data types" 121 | ] 122 | }, 123 | { 124 | "cell_type": "code", 125 | "execution_count": 13, 126 | "metadata": {}, 127 | "outputs": [ 128 | { 129 | "name": "stdout", 130 | "output_type": "stream", 131 | "text": [ 132 | "Summary of the dataset:\n", 133 | "The dataset contains 9551 rows and 21 columns.\\n\n" 134 | ] 135 | } 136 | ], 137 | "source": [ 138 | "print(\"Summary of the dataset:\")\n", 139 | "print(f'The dataset contains {DATASET.shape[0]} rows and {DATASET.shape[1]} columns.\\\\n')" 140 | ] 141 | }, 142 | { 143 | "cell_type": "code", 144 | "execution_count": 14, 145 | "metadata": {}, 146 | "outputs": [ 147 | { 148 | "name": "stdout", 149 | "output_type": "stream", 150 | "text": [ 151 | "Information about the dataset:\n", 152 | "\n", 153 | "RangeIndex: 9551 entries, 0 to 9550\n", 154 | "Data columns (total 21 columns):\n", 155 | " # Column Non-Null Count Dtype \n", 156 | "--- ------ -------------- ----- \n", 157 | " 0 Restaurant ID 9551 non-null int64 \n", 158 | " 1 Restaurant Name 9551 non-null object \n", 159 | " 2 Country Code 9551 non-null int64 \n", 160 | " 3 City 9551 non-null object \n", 161 | " 4 Address 9551 non-null object \n", 162 | " 5 Locality 9551 non-null object \n", 163 | " 6 Locality Verbose 9551 non-null object \n", 164 | " 7 Longitude 9551 non-null float64\n", 165 | " 8 Latitude 9551 non-null float64\n", 166 | " 9 Cuisines 9542 non-null object \n", 167 | " 10 Average Cost for two 9551 non-null int64 \n", 168 | " 11 Currency 9551 non-null object \n", 169 | " 12 Has Table booking 9551 non-null object \n", 170 | " 13 Has Online delivery 9551 non-null object \n", 171 | " 14 Is delivering now 9551 non-null object \n", 172 | " 15 Switch to order menu 9551 non-null object \n", 173 | " 16 Price range 9551 non-null int64 \n", 174 | " 17 Aggregate rating 9551 non-null float64\n", 175 | " 18 Rating color 9551 non-null object \n", 176 | " 19 Rating text 9551 non-null object \n", 177 | " 20 Votes 9551 non-null int64 \n", 178 | "dtypes: float64(3), int64(5), object(13)\n", 179 | "memory usage: 1.5+ MB\n", 180 | "None\n" 181 | ] 182 | } 183 | ], 184 | "source": [ 185 | "print(\"Information about the dataset:\")\n", 186 | "print(DATASET.info())" 187 | ] 188 | }, 189 | { 190 | "cell_type": "markdown", 191 | "metadata": {}, 192 | "source": [ 193 | " `df.shape` tells us the size, and `df.info()` gives a summary, including data types and non-null counts" 194 | ] 195 | }, 196 | { 197 | "cell_type": "markdown", 198 | "metadata": {}, 199 | "source": [ 200 | "We have a solid overview of dataset, which contains 9551 rows and 21 columns. The columns include information about restaurants, such as `Restaurant ID, Restaurant Name, Country Code, City, Cuisines, Average Cost for two, and more.` Let’s continue with our `Level 1 Task 1: Data Exploration and Preprocessing` by addressing missing values and preparing the data." 201 | ] 202 | }, 203 | { 204 | "cell_type": "markdown", 205 | "metadata": {}, 206 | "source": [ 207 | "### **Checking for Missing Values**\n", 208 | "Missing data can affect analysis and model performance, so let’s identify and handle them" 209 | ] 210 | }, 211 | { 212 | "cell_type": "code", 213 | "execution_count": 15, 214 | "metadata": {}, 215 | "outputs": [ 216 | { 217 | "name": "stdout", 218 | "output_type": "stream", 219 | "text": [ 220 | "Count of missing values in each column\n", 221 | "Restaurant ID 0\n", 222 | "Restaurant Name 0\n", 223 | "Country Code 0\n", 224 | "City 0\n", 225 | "Address 0\n", 226 | "Locality 0\n", 227 | "Locality Verbose 0\n", 228 | "Longitude 0\n", 229 | "Latitude 0\n", 230 | "Cuisines 9\n", 231 | "Average Cost for two 0\n", 232 | "Currency 0\n", 233 | "Has Table booking 0\n", 234 | "Has Online delivery 0\n", 235 | "Is delivering now 0\n", 236 | "Switch to order menu 0\n", 237 | "Price range 0\n", 238 | "Aggregate rating 0\n", 239 | "Rating color 0\n", 240 | "Rating text 0\n", 241 | "Votes 0\n", 242 | "dtype: int64\n" 243 | ] 244 | } 245 | ], 246 | "source": [ 247 | "print(\"Count of missing values in each column\")\n", 248 | "print(DATASET.isnull().sum())" 249 | ] 250 | }, 251 | { 252 | "cell_type": "markdown", 253 | "metadata": {}, 254 | "source": [ 255 | "**Handling Missing Values**:\n", 256 | "\n", 257 | "- **Numerical Columns**: Fill with the mean or median.\n", 258 | "- **Categorical Columns**: Fill with the mode." 259 | ] 260 | }, 261 | { 262 | "cell_type": "markdown", 263 | "metadata": {}, 264 | "source": [ 265 | "#### Checking for missing values " 266 | ] 267 | }, 268 | { 269 | "cell_type": "code", 270 | "execution_count": 18, 271 | "metadata": {}, 272 | "outputs": [ 273 | { 274 | "name": "stdout", 275 | "output_type": "stream", 276 | "text": [ 277 | "Count of missing values in each column\n", 278 | "Cuisines 9\n", 279 | "dtype: int64\n" 280 | ] 281 | } 282 | ], 283 | "source": [ 284 | "missing_values = DATASET.isnull().sum()\n", 285 | "print(\"Count of missing values in each column\")\n", 286 | "print(missing_values[missing_values > 0])" 287 | ] 288 | }, 289 | { 290 | "cell_type": "markdown", 291 | "metadata": {}, 292 | "source": [ 293 | "This will show columns that have missing values and how many values are missing." 294 | ] 295 | }, 296 | { 297 | "cell_type": "markdown", 298 | "metadata": {}, 299 | "source": [ 300 | "**Cuisines**: Since this column has `9`missing values, we can fill them with a placeholder like \"Unknown\" or the mode (most common value):" 301 | ] 302 | }, 303 | { 304 | "cell_type": "code", 305 | "execution_count": 21, 306 | "metadata": {}, 307 | "outputs": [], 308 | "source": [ 309 | "DATASET['Cuisines'].fillna('Unknown', inplace=True)" 310 | ] 311 | }, 312 | { 313 | "cell_type": "markdown", 314 | "metadata": {}, 315 | "source": [ 316 | "### **Data Type Conversion**\n", 317 | "\n", 318 | "Its important to see that the data types for columns are appropriate. For instance, `Country Code` can be an integer, but `Has Table booking` may be better represented as a boolean." 319 | ] 320 | }, 321 | { 322 | "cell_type": "markdown", 323 | "metadata": {}, 324 | "source": [ 325 | "#### Convert `Has Table booking` and `Has Online delivery` to boolean" 326 | ] 327 | }, 328 | { 329 | "cell_type": "code", 330 | "execution_count": 26, 331 | "metadata": {}, 332 | "outputs": [], 333 | "source": [ 334 | "DATASET['Has Table booking'] = DATASET['Has Table booking'].apply(lambda x: True if x == 'Yes' else False)\n", 335 | "DATASET['Has Online delivery'] = DATASET['Has Online delivery'].apply(lambda x: True if x == 'Yes' else False)" 336 | ] 337 | }, 338 | { 339 | "cell_type": "markdown", 340 | "metadata": {}, 341 | "source": [ 342 | "#### Verify data types" 343 | ] 344 | }, 345 | { 346 | "cell_type": "code", 347 | "execution_count": 27, 348 | "metadata": {}, 349 | "outputs": [ 350 | { 351 | "name": "stdout", 352 | "output_type": "stream", 353 | "text": [ 354 | "Updated data types:\n", 355 | "Restaurant ID int64\n", 356 | "Restaurant Name object\n", 357 | "Country Code int64\n", 358 | "City object\n", 359 | "Address object\n", 360 | "Locality object\n", 361 | "Locality Verbose object\n", 362 | "Longitude float64\n", 363 | "Latitude float64\n", 364 | "Cuisines object\n", 365 | "Average Cost for two int64\n", 366 | "Currency object\n", 367 | "Has Table booking bool\n", 368 | "Has Online delivery bool\n", 369 | "Is delivering now object\n", 370 | "Switch to order menu object\n", 371 | "Price range int64\n", 372 | "Aggregate rating float64\n", 373 | "Rating color object\n", 374 | "Rating text object\n", 375 | "Votes int64\n", 376 | "dtype: object\n" 377 | ] 378 | } 379 | ], 380 | "source": [ 381 | "print(\"Updated data types:\")\n", 382 | "print(DATASET.dtypes)" 383 | ] 384 | }, 385 | { 386 | "cell_type": "markdown", 387 | "metadata": {}, 388 | "source": [ 389 | "### **Distribution of the Target Variable**\n", 390 | "\n", 391 | "Now, let's check the distribution of the target variable (`Aggregate rating`):" 392 | ] 393 | }, 394 | { 395 | "cell_type": "markdown", 396 | "metadata": {}, 397 | "source": [ 398 | "Plot the distribution of the `Aggregate rating`" 399 | ] 400 | }, 401 | { 402 | "cell_type": "code", 403 | "execution_count": 34, 404 | "metadata": {}, 405 | "outputs": [ 406 | { 407 | "data": { 408 | "image/png": "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zvr16+17GV988UUmTZpEr1696Nq1Kzt37qRr166kpKRkW8/Ro0f59ddfueeeewgLCyM6OpovvviCtm3bsm/fPkJCQm76/q9cuZLu3bvTpEkTXn/9daxWq70U/fHHHzRr1uyGr/W1XCnDpUqVyjb9s88+o06dOvTu3RtnZ2d+++03nnjiCWw2GyNHjgRg6tSpPPnkk3h7e/Pyyy8D3PR75eLFi3Tr1o2+ffsyYMAA5s6dywsvvEC9evXo3r07kPUHhA4dOhAZGcno0aMJDg5m5syZrFq16pafn4iUMIaIiFzXtGnTDMD466+/rjuPn5+f0ahRI/vt119/3fjnj9f333/fAIyYmJjrLuOvv/4yAGPatGlX3de2bVsDMD7//PNr3te2bVv77VWrVhmAUb58eSMhIcE+ffbs2QZgfPDBB/ZpoaGhxtChQ2+6zBtlGzp0qBEaGmq//euvvxqA8eabb2abr3///obFYjEOHz5snwYYrq6u2abt3LnTAIyPPvroqnX909SpUw3A+OGHH+zT0tLSjPDwcMPb2zvbcw8NDTV69ux5w+X905133mm0bNnSfvvLL780nJ2djXPnzmWbr169ekaFChWMS5cu2aetXr3aALK9Jj///LMBGFOnTrVPy8zMNDp06HDV6zp06FADMP7zn/9kW9cff/xhAMaMGTOyTV+yZEm26VFRUYazs7Nx9913Z5tv3LhxBpDt/U5JSTEyMzOzzXfs2DHDzc3NmDBhgn3a9d5/m81mVKtWzejataths9ns05OSkoywsDCjc+fOxo0cO3bMAIzx48cbMTExRlRUlPHHH38Yt99+uwEYc+bMyTZ/UlLSVcvo2rWrUaVKlWzT6tSpk237veLK98aqVavs0658b33//ff2aampqUZwcLDRr18/+7TJkycbgPHrr7/apyUnJxs1a9a8apkiIv+kwwhFRPLI29v7hqMS+vv7AzB//nxsNluu1uHm5sbw4cNzPP8DDzyAj4+P/Xb//v0pV64cv//+e67Wn1O///47Tk5OPPXUU9mmP/PMMxiGcdXIfp06deK2226z365fvz6+vr4cPXr0pusJDg5m0KBB9mkuLi489dRTJCYmsmbNmlzlP3/+PEuXLs223H79+mGxWJg9e7Z92tmzZ9m9ezcPPPAA3t7e9ult27a9alCHJUuW4OLikm3Pp9Vqte+NuZbHH3882+05c+bg5+dH586diY2NtX81adIEb29v+x6WFStWkJGRwRNPPJHt8U8++eRV63Bzc7MPFJGZmcn58+fth7hu27btutmu2LFjB4cOHWLw4MGcP3/enuny5ct07NiRtWvX5mh7f/311ylbtizBwcG0bt2a/fv3M3ny5KsGePnnHtn4+HhiY2Np27YtR48eJT4+/qbruR5vb+9s54y5urrSrFmzbNvgkiVLKF++PL1797ZPc3d3v+7ebBGRK1S2RETyKDExMVux+bd7772Xli1b8tBDDxEUFMTAgQOZPXv2LRWv8uXL39JgGNWqVct222KxULVq1Zuer5RXJ06cICQk5KrXo1atWvb7/6lSpUpXLaNUqVJXnYd0rfVUq1btqlHlrreenPrpp59IT0+nUaNGHD58mMOHD3PhwgWaN2/OjBkzsq0foGrVqlct49/TTpw4Qbly5eyHA15vviucnZ2pUKFCtmmHDh0iPj6ewMBAypYtm+0rMTGRc+fO3TBX6dKlrzosz2az8f7771OtWjXc3NwICAigbNmy7Nq1K0fl5dChQwAMHTr0qkxff/01qampOVrOI488QkREBL/99htjxowhOTmZzMzMq+Zbv349nTp1wsvLC39/f8qWLWs/dzEvZatChQpXnWP5723wxIkT3HbbbVfNd733UETkCp2zJSKSB6dPnyY+Pv6GH7o8PDxYu3Ytq1atYtGiRSxZsoSffvqJDh06sGzZMpycnG66nls5zyqnrnfh5czMzBxlyg/XW49h0lVJrhSqli1bXvP+o0ePUqVKFYdm+OcepytsNhuBgYHZCt8/3ew8tGt56623ePXVV3nwwQd54403KF26NFarlaeffjpHfwi4Ms+7775Lw4YNrznPP/f6XU+1atXo1KkTAHfeeSdOTk785z//oX379vYRQI8cOULHjh2pWbMmU6ZMoWLFiri6uvL777/z/vvv53qPMRS+bVBEiheVLRGRPPjf//4HQNeuXW84n9VqpWPHjnTs2JEpU6bw1ltv8fLLL7Nq1So6dep03eKTW1f2OlxhGAaHDx/Odj2wUqVKERcXd9VjT5w4ka1Q3Eq20NBQli9fzqVLl7Lt3fr777/t9+eH0NBQdu3ahc1my1ZM8rKeY8eOsWHDBkaNGkXbtm2z3Wez2bj//vuZOXMmr7zyin35hw8fvmo5/54WGhrK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q6sdbyy8fJclJyeHmpoaSktLOXHiBBUVFdTW1jrGhxIXF0dMTAxJSUns2rWLjo4Ovv76awoKCmhqanLEttlsVFZWcuLECVatWkVra6tT7PDwcKqqqjh69CgHDhwgNTWVUaNGOeUKDQ1l7969nDp1ip6eHgCWL1/Opk2bKCoq4vvvv+fo0aNs2bKFwsLCYe1lTEwMkZGRrF692rGepqYm6urqOH78OC+//PKgAig0NJTW1lba2to4ffo0Fy9eHFbOy65mf0REZPhUbImIyDWz2WzExcVd8ahgcnIyTU1NtLa2EhYWxkcffcS2bduIjIxk3bp1jrcRenl5ATB9+nTKy8spLS1l8uTJ7Ny5k9zc3L88igeXirWamhoefPBBnn76ae68806efPJJfvrpJ2655RYAUlNTWbZsGXl5eURFRdHe3s7ChQudYttsNnp6eoiKimLBggW88MILjB8/3ilXSUkJu3fvJjg4mHvuuQeAhIQEduzYwa5du4iOjub+++/nzTffJCQkZNj7mZuby/r16+ns7CQzM5M5c+aQkpLCtGnT6O7udrrLBZCRkYHVamXq1KkEBATQ2Ng47JxwdfsjIiLDZzHmD+/mFRERuUGKi4spLy+ns7NzyDkZGRkcO3aMhoaG654/Pj6ewMBAqqqqrnvsfwPtj4jIyOmZLRERuSHKysqIjo5m7NixNDY2smbNGp5//nmnOW+88Qbx8fH4+PhQW1tLZWUlZWVlI8597tw5ysvLSUhIwM3Njc2bN7Nnzx6nHxH+L9P+iIi4hu5siYjIDZGbm8vWrVs5c+YMEydOZMGCBSxbtgx39///32/evHnU19fT29vLpEmTyMnJISsra8S5z58/z2OPPcbhw4e5cOECVquVwsLCK75B8L9I+yMi4hoqtkRERERERFxAL8gQERERERFxARVbIiIiIiIiLqBiS0RERERExAVUbImIiIiIiLiAii0REREREREXULElIiIiIiLiAiq2REREREREXEDFloiIiIiIiAv8Dw3f+2o01VmZAAAAAElFTkSuQmCC", 409 | "text/plain": [ 410 | "
" 411 | ] 412 | }, 413 | "metadata": {}, 414 | "output_type": "display_data" 415 | } 416 | ], 417 | "source": [ 418 | "plt.figure(figsize=(10, 6))\n", 419 | "sns.histplot(DATASET['Aggregate rating'], bins=20, kde=True, color='green')\n", 420 | "plt.title('Distribution of Aggregate Rating')\n", 421 | "plt.xlabel('Aggregate Rating')\n", 422 | "plt.ylabel('Frequency')\n", 423 | "plt.grid(True)\n", 424 | "plt.show()" 425 | ] 426 | }, 427 | { 428 | "cell_type": "markdown", 429 | "metadata": {}, 430 | "source": [ 431 | "This histogram with a kernel density estimate (KDE) gives a smooth curve showing the distribution of ratings." 432 | ] 433 | }, 434 | { 435 | "cell_type": "markdown", 436 | "metadata": {}, 437 | "source": [ 438 | "### **Class Imbalance Check**\n", 439 | "\n", 440 | "Finally, we are going to check there is a class imbalance in the `Aggregate rating`:" 441 | ] 442 | }, 443 | { 444 | "cell_type": "code", 445 | "execution_count": 32, 446 | "metadata": {}, 447 | "outputs": [ 448 | { 449 | "name": "stdout", 450 | "output_type": "stream", 451 | "text": [ 452 | "Class distribution for `Aggregate rating`:\n", 453 | "Aggregate rating\n", 454 | "0.0 2148\n", 455 | "3.2 522\n", 456 | "3.1 519\n", 457 | "3.4 498\n", 458 | "3.3 483\n", 459 | "3.5 480\n", 460 | "3.0 468\n", 461 | "3.6 458\n", 462 | "3.7 427\n", 463 | "3.8 400\n", 464 | "2.9 381\n", 465 | "3.9 335\n", 466 | "2.8 315\n", 467 | "4.1 274\n", 468 | "4.0 266\n", 469 | "2.7 250\n", 470 | "4.2 221\n", 471 | "2.6 191\n", 472 | "4.3 174\n", 473 | "4.4 144\n", 474 | "2.5 110\n", 475 | "4.5 95\n", 476 | "2.4 87\n", 477 | "4.6 78\n", 478 | "4.9 61\n", 479 | "2.3 47\n", 480 | "4.7 42\n", 481 | "2.2 27\n", 482 | "4.8 25\n", 483 | "2.1 15\n", 484 | "2.0 7\n", 485 | "1.9 2\n", 486 | "1.8 1\n", 487 | "Name: count, dtype: int64\n" 488 | ] 489 | } 490 | ], 491 | "source": [ 492 | "print(\"Class distribution for `Aggregate rating`:\")\n", 493 | "print(DATASET['Aggregate rating'].value_counts())" 494 | ] 495 | } 496 | ], 497 | "metadata": { 498 | "kernelspec": { 499 | "display_name": "Python 3", 500 | "language": "python", 501 | "name": "python3" 502 | }, 503 | "language_info": { 504 | "codemirror_mode": { 505 | "name": "ipython", 506 | "version": 3 507 | }, 508 | "file_extension": ".py", 509 | "mimetype": "text/x-python", 510 | "name": "python", 511 | "nbconvert_exporter": "python", 512 | "pygments_lexer": "ipython3", 513 | "version": "3.11.9" 514 | } 515 | }, 516 | "nbformat": 4, 517 | "nbformat_minor": 2 518 | } 519 | -------------------------------------------------------------------------------- /LEVEL 2 TASK 2 Price Range Analysis/PRICE RANGE ANALYSIS.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "` Price Range for the restaurants, focusing on the most common price range, average rating for each range, and identifying the color that represents the highest average rating.`" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "### **Price Range Analysis**\n", 15 | "\n", 16 | "1. **Determine the Most Common Price Range**\n", 17 | "2. **Calculate the Average Rating for Each Price Range**\n", 18 | "3. **Identify the Color Representing the Highest Average Rating Among Different Price Ranges**" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 1, 24 | "metadata": {}, 25 | "outputs": [], 26 | "source": [ 27 | "import pandas as pd\n", 28 | "import matplotlib.pyplot as plt\n", 29 | "import warnings\n", 30 | "warnings.filterwarnings('ignore')\n", 31 | "import seaborn as sns\n", 32 | "file_path = r'C:\\Users\\abhis\\Documents\\GitHub\\walmart sales forecasting\\Cognifyz-Data-Mastery-Program\\DATASETS\\Dataset .csv'\n", 33 | "DATASET = pd.read_csv(file_path)" 34 | ] 35 | }, 36 | { 37 | "cell_type": "markdown", 38 | "metadata": {}, 39 | "source": [ 40 | "> Create price range categories based on 'Average Cost for two'" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 2, 46 | "metadata": {}, 47 | "outputs": [], 48 | "source": [ 49 | "DATASET['Price Range Category'] = pd.cut(DATASET['Average Cost for two'], bins=[0, 500, 1000, 1500, 5000], labels=['Low', 'Medium', 'High', 'Very High'])" 50 | ] 51 | }, 52 | { 53 | "cell_type": "markdown", 54 | "metadata": {}, 55 | "source": [ 56 | "> Count the frequency of each price range" 57 | ] 58 | }, 59 | { 60 | "cell_type": "code", 61 | "execution_count": 3, 62 | "metadata": {}, 63 | "outputs": [ 64 | { 65 | "name": "stdout", 66 | "output_type": "stream", 67 | "text": [ 68 | "Most common price range:\n", 69 | "Price Range Category\n", 70 | "Low 6056\n", 71 | "Medium 2302\n", 72 | "High 591\n", 73 | "Very High 552\n", 74 | "Name: count, dtype: int64\n" 75 | ] 76 | } 77 | ], 78 | "source": [ 79 | "most_common_price_range = DATASET['Price Range Category'].value_counts()\n", 80 | "print(\"Most common price range:\")\n", 81 | "print(most_common_price_range)" 82 | ] 83 | }, 84 | { 85 | "cell_type": "code", 86 | "execution_count": 4, 87 | "metadata": {}, 88 | "outputs": [ 89 | { 90 | "data": { 91 | "image/png": "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Mm75qYsA8E+wsgUAt4muXbvedMxjjz2mhg0b6vnnn9fhw4dVuXJlffPNN/ryyy81cOBAlS5dWpI0evRorV27Vi1atFBYWJhOnTqlt956S8WLFzcfBFG6dGkFBARo1qxZ8vX1lbe3t2rVqpXjvTXXxs+bN08dOnRQ+fLl1aVLF1WoUEHp6enauHGjFixYoG7dukmSKleurK5du+qdd97RuXPnVL9+fW3evFlz5sxRmzZt1LBhQ+e8aU4wYsQI/e9//1OzZs00YMAAFSpUSHPmzFFSUpIWLlzotMv5rNCwYUM9/fTTmj59ug4cOKCmTZsqKytL69atU8OGDdWvXz+VLl1aY8aMUVxcnA4fPqw2bdrI19dXSUlJWrRokXr16qUhQ4bc0vGHDh2q9u3bKz4+Xn369FHLli31+eef6z//+Y9atGihpKQkzZo1S+Hh4XZhyRGvvvqqWrdurTp16qh79+46e/as3nzzTVWoUMFuzvr166t3794aN26ctm/friZNmsjNzU0HDhzQggULNG3atBveCwkAViFsAUA+4uLiosWLF2vkyJGaP3++Zs+erZIlS2rixInmk/4kqVWrVjp8+LA++OAD/f777ypSpIjq16+vl19+2XzIhJubm+bMmaO4uDj16dNHGRkZmj179g3D1rV5d+zYoYkTJ+rLL7/UzJkz5eHhoUqVKmny5Mnq2bOnOfa9997Tfffdp/j4eC1atEjBwcGKi4u75UvKrBIUFKSNGzdq+PDheuONN3TlyhVVqlRJX3311W21Ancjs2fPVqVKlfT+++9r6NCh8vf3V40aNey+D23EiBG6//77NXXqVHMVLDQ0VE2aNFGrVq1u+dht27ZV6dKlNWnSJPXs2VPdunVTcnKy3n77ba1YsULh4eH6+OOPtWDBAvNLqh312GOP6X//+59GjRqlESNGqGzZsoqPj9ecOXO0e/duu7GzZs1S9erV9fbbb+u5555TgQIFVLJkST311FOqU6fOLZ8nANwqm/FP7hIGAADIA1WqVFHRokW1cuXKvC4FAG7o9r02AgAA3PWuXr2qjIwMu7aEhAT99NNPatCgQd4UBQC5xMoWAAC4bR0+fFiRkZF66qmnFBISor1792rWrFny9/fXrl27VLhw4bwuEQBuiHu2AADAbeuee+5R9erV9d577+n06dPy9vZWixYtNH78eIIWgNse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ePLkSfn5+eW4qiVJHh4e8vDwcMr5AQAAALg73dKj3w8dOqT+/fsrMjJSkZGRGjBggA4dOuSUgrKyspSWlqbq1avLzc1Nq1atMvv27dunI0eOKCIiQpIUERGhnTt36tSpU+aYlStXys/PT+Hh4eaY6+e4NubaHAAAAABgBYfD1ooVKxQeHq7NmzerUqVKqlSpkr7//ns9+OCDWrlypUNzxcXFae3atTp8+LB27typuLg4JSQkqHPnzvL391d0dLQGDRqk1atXa+vWrerevbsiIiJUu3ZtSVKTJk0UHh6up59+Wj/99JNWrFihF154QTExMebKVJ8+ffTLL79o2LBh2rt3r9566y19+umnio2NdfTUAQAAACDXHL6McMSIEYqNjdX48eOztQ8fPlyPPvporuc6deqUunTpohMnTsjf31+VKlXSihUrzDmmTp0qFxcXtWvXTmlpaYqKitJbb71l7u/q6qolS5aob9++ioiIkLe3t7p27arRo0ebY0qVKqWlS5cqNjZW06ZNU/HixfXee+8pKirK0VMHAAAAgFzL1fdsXc/T01M7d+5U2bJl7dr379+vSpUq6cqVK04t8HbA92whP+N7tgAAAJzHkWzg8GWERYsW1fbt27O1b9++3bIvOgYAAACA/Mbhywh79uypXr166ZdfftHDDz8sSdqwYYNee+01u8elAwAAAMDdzOGw9eKLL8rX11eTJ09WXFycJCkkJESjRo3SgAEDnF4gAAAAAORHDoctm82m2NhYxcbG6vz585IkX19fpxcGAAAAAPmZw2HreoQsAAAAAMjZLX2pMQAAAADg7xG2AAAAAMAChC0AAAAAsIBDYevq1atq3LixDhw4YFU9AAAAAHBHcChsubm5aceOHVbVAgAAAAB3DIcvI3zqqaf0/vvvW1ELAAAAANwxHH70e0ZGhj744AN9++23ql69ury9ve36p0yZ4rTiAAAAACC/cjhs7dq1S9WqVZMk7d+/367PZrM5pyoAAAAAyOccDlurV6+2og4AAAAAuKPc8qPfDx48qBUrVujy5cuSJMMwnFYUAAAAAOR3DoetP/74Q40bN9b999+v5s2b68SJE5Kk6OhoDR482OkFAgAAAEB+5HDYio2NlZubm44cOaKCBQua7R06dNDy5cudWhwAAAAA5FcO37P1zTffaMWKFSpevLhde9myZfXrr786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4uPjdf3X1S5YsECZmZnq1KmTDh06pKZNm6pdu3basWOH5s+fr/Xr12cLUpMmTVLlypX1448/6sUXX1SPHj00b948paWlmWM+/vhj3XvvvWrUqJFTzyMpKUmPP/642rRpo59++km9e/fW888/n23cpUuXNGnSJH300Udau3atjhw5oiFDhji1ljuaAeSRrl27Gq1bt87W/txzzxnlypUzsrKyzLYZM2YYPj4+RmZmpmEYhlGtWjVj4sSJhmEYRps2bYyxY8ca7u7uxvnz541jx44Zkoz9+/f/K+cBGMb//TyfOnXK8PDwMA4fPmwcPnzY8PT0NE6fPm20bt3a6Nq1q3HlyhWjYMGCxsaNG+32j46ONjp16mQYhmHExcUZ4eHhdv3Dhw83JBlnz541DMMwZs+ebfj7+2c7/vWeffZZo379+uZ2/fr1jUceecTczsjIMLy9vY2nn37abDtx4oQhyUhMTPwH7wZwc127djVcXV0Nb29vu5enp6f5s/7Xn/NatWoZMTExdvPUqVPHqFy5st28YWFhRkZGhtnWvn17o0OHDlafEu4iP//8syHJWL16tdlWt25d46mnnjIM488/03v16mW3z7p16wwXFxfj8uXLhmEYRlhYmNGmTRu7MZcvXzbuueceY/78+WZbpUqVjFGjRt2wltmzZxuSsn2WvL29DUnGokWLDMMwjKSkJEOS8eOPPxqG8effKxUqVLCb6/nnn8/2d40k4+DBg+aYGTNmGEFBQTd/k2AYhmGwsoXbzs8//6yIiAjZbDazrU6dOrpw4YJ5fXT9+vWVkJAgwzC0bt06tW3bVuXLl9f69eu1Zs0ahYSEqGzZsnl1CriLFS1aVC1atFB8fLxmz56tFi1aqEiRImb/wYMHdenSJT366KPy8fExXx9++KEOHTok6c/PQK1atezmjYiIcEp9199H4OrqqsKFC6tixYpmW1BQkCTp1KlTTjke8HcaNmyo7du3273ee++9G47ft2+fHnroIbu2v25L0oMPPihXV1dzu1ixYvxMw6keeOABPfzww/rggw8k/fln+7p168xLCH/66SfFx8fb/TkfFRWlrKwsJSUlmfPUqFHDbl5PT089/fTT5rzbtm3Trl27bvqAJV9f32yfpZs9dXDfvn2qWbOmXVtOn6eCBQuqdOnS5jafJ8dwhxzypQYNGuiDDz7QTz/9JDc3Nz3wwANq0KCBEhISdPbsWdWvXz+vS8Rd7JlnnjEvFZkxY4Zd34ULFyRJS5cu1b333mvX5+HhccvHdHFxsbucRVKO96i4ubnZbdtsNru2a//JkZWVdcu1ALnl7e2tMmXK2LXl9NABR+X0c87PNJwtOjpa/fv314wZMzR79myVLl3a/PfHhQsX1Lt3bw0YMCDbftc/MMnb2ztbf48ePVSlShUdO3ZMs2fPVqNGjRQWFva3tbi4uGT7LDlLTp+nv/59gxtjZQu3nfLlyysxMdHug7xhwwb5+vqqePHikv7vvq2pU6eaf7BdC1sJCQncr4U81bRpU6Wnp+vq1auKioqy6wsPD5eHh4eOHDmiMmXK2L1CQ0Ml/fkZ2Lx5s91+mzZt+ttjFi1aNNsNy458lwqQH5QrV05btmyxa/vrNvBveeKJJ+Ti4qJ58+bpww8/1DPPPGP+h1W1atW0Z8+ebH/OlylTRu7u7n87b8WKFVWjRg29++67mjdvnp555hlL6i9Xrpx++OEHuzY+T85H2EKeSklJybbk3atXLx09elT9+/fX3r179eWXX+qll17SoEGD5OLy54/sPffco0qVKmnu3LlmsKpXr562bdum/fv3s7KFPOXq6qqff/5Ze/bssbuUSfrzUo8hQ4YoNjZWc+bM0aFDh7Rt2za98cYbmjNnjiSpT58+OnDggIYOHap9+/Zp3rx5N725v1GjRvrhhx/04Ycf6sCBA3rppZe0a9cuq04RyBP9+/fX+++/rzlz5ujAgQMaM2aMduzYYXfZOfBv8fHxUYcOHRQXF6cTJ07YXeo3fPhwbdy4Uf369dP27dt14MABffnll9kekHEjPXr00Pjx42UYhv7zn/9YUn/v3r21d+9eDR8+XPv379enn35q/l3DZ8p5CFvIUwkJCapatard65VXXtHXX3+tzZs3q3LlyurTp4+io6P1wgsv2O1bv359ZWZmmmGrUKFCCg8PV3BwsMqVK5cHZwP8Hz8/P/n5+eXY98orr+jFF1/UuHHjVL58eTVt2lRLly5VqVKlJP15icnChQv1xRdfqHLlypo1a5ZeffXVvz1eVFSUXnzxRQ0bNkw1a9bU+fPn1aVLF6efF5CXOnfurLi4OA0ZMkTVqlVTUlKSunXrJk9Pz7wuDXep6OhonT17VlFRUQoJCTHbK1WqpDVr1mj//v2qW7euqlatqpEjR9qN+TudOnVSgQIF1KlTJ8t+vkuVKqXPPvtMn3/+uSpVqqSZM2eaTyP8J5e1w57N4KJLAACQTz366KMKDg7WRx99lNelAE5z+PBhlS5dWlu2bFG1atX+teOOHTtWs2bN0tGjR/+1Y97peEAGAADIFy5duqRZs2YpKipKrq6u+t///qdvv/1WK1euzOvSAKe4evWq/vjjD73wwguqXbu25UHrrbfeUs2aNVW4cGFt2LBBEydOzPWljsgdwhYAAMgXbDabvv76a40dO1ZXrlxRuXLltHDhQkVGRuZ1aYBTbNiwQQ0bNtT999+vzz77zPLjXbv38cyZMypRooQGDx6suLg4y497N+EyQgAAAACwAA/IAAAAAAALELYAAAAAwAKELQAAAACwAGELAAAAACxA2AIAAAAACxC2AAD/SMmSJfX666/ndRkAANx2CFsAAElSt27dZLPZZLPZ5O7urjJlymj06NHKyMj42/22bNmiXr16WVZXfHy8WZeLi4uKFSumDh066MiRI5Yd0wo//vij2rdvr6CgIHl6eqps2bLq2bOn9u/fn+s5unXrpjZt2lhXJADAqQhbAABT06ZNdeLECR04cECDBw/WqFGjNHHixBzHpqenS5KKFi2qggULWlqXn5+fTpw4od9++00LFy7Uvn371L59e0uP6UxLlixR7dq1lZaWprlz5+rnn3/Wxx9/LH9/f7344ot5Xd4tMQzjpkEcAO52hC0AgMnDw0PBwcEKCwtT3759FRkZqcWLF0v6v1WVsWPHKiQkROXKlZOU/TLCc+fOqXfv3uYKToUKFbRkyRKzf/369apbt668vLwUGhqqAQMG6OLFi39bl81mU3BwsIoVK6aHH35Y0dHR2rx5s1JTU80xw4cP1/3336+CBQvqvvvu04svvqirV6+a/aNGjVKVKlX00UcfqWTJkvL391fHjh11/vx5c8z58+fVuXNneXt7q1ixYpo6daoaNGiggQMHmmPS0tI0ZMgQ3XvvvfL29latWrWUkJBww9ovXbqk7t27q3nz5lq8eLEiIyNVqlQp1apVS5MmTdLbb78tScrMzFR0dLRKlSolLy8vlStXTtOmTbOrf86cOfryyy/Nlb5rxz169KieeOIJBQQEqFChQmrdurUOHz5s7puRkaEBAwYoICBAhQsX1vDhw9W1a1e7VbK0tDQNGDBAgYGB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", 92 | "text/plain": [ 93 | "
" 94 | ] 95 | }, 96 | "metadata": {}, 97 | "output_type": "display_data" 98 | } 99 | ], 100 | "source": [ 101 | "plt.figure(figsize=(10, 5))\n", 102 | "sns.barplot(x=most_common_price_range.index, y=most_common_price_range.values, palette='Set2')\n", 103 | "plt.title('Most Common Price Range')\n", 104 | "plt.xlabel('Price Range Category')\n", 105 | "plt.ylabel('Number of Restaurants')\n", 106 | "plt.show()" 107 | ] 108 | }, 109 | { 110 | "cell_type": "markdown", 111 | "metadata": {}, 112 | "source": [ 113 | "- The `pd.cut()` function is used to create price range categories.\n", 114 | "- `value_counts()` calculates the frequency of each price range, showing which one is most common." 115 | ] 116 | }, 117 | { 118 | "cell_type": "markdown", 119 | "metadata": {}, 120 | "source": [ 121 | " Calculate average rating for each price range category" 122 | ] 123 | }, 124 | { 125 | "cell_type": "code", 126 | "execution_count": 6, 127 | "metadata": {}, 128 | "outputs": [ 129 | { 130 | "name": "stdout", 131 | "output_type": "stream", 132 | "text": [ 133 | "Average rating for each price range:\n", 134 | "Price Range Category\n", 135 | "Low 2.32\n", 136 | "Medium 3.06\n", 137 | "High 3.64\n", 138 | "Very High 3.67\n", 139 | "Name: Aggregate rating, dtype: float64\n" 140 | ] 141 | } 142 | ], 143 | "source": [ 144 | "avg_rating_per_price_range = DATASET.groupby('Price Range Category')['Aggregate rating'].mean().round(2)\n", 145 | "\n", 146 | "print(\"Average rating for each price range:\")\n", 147 | "print(avg_rating_per_price_range)" 148 | ] 149 | }, 150 | { 151 | "cell_type": "code", 152 | "execution_count": 7, 153 | "metadata": {}, 154 | "outputs": [ 155 | { 156 | "data": { 157 | "image/png": "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j6czrgXi/Pnz29v27dunTp06qXfv3urZs6ciIiKyXDY1NVUNGjTQnj171L17d1WtWlWnTp3S4sWLdfToUYWEhDh9fmXXtWBz/Xt58+bN2rBhg5577jkVK1ZMiYmJmjp1qho3bqzdu3fLz8/PYR39+/dX3rx5NXLkSCUmJmry5Mnq16+fZs+ebe8THR2t9957T88884wiIyO1fft2RUZGZnoe6cKFC2rUqJGOHTum3r17q3jx4tqwYYOio6N1/PjxB3KwDgCSDADcQ7/88ouRZJYvX26MMSYjI8MUK1bMDBw40N5n2bJlRpL5z3/+47DsU089ZUqXLm2fnjFjhvHw8DBr16516Ddt2jQjyaxfv97eJsl4eHiY3377LVNNFy5ccJi+fPmyqVixomnatKm97ddffzWSzKBBgxz6RkVFGUlm5MiR9rYePXqYwoULm1OnTjn0fe6550xwcHCm7d2oRIkS5oknnjAnT540J0+eNDt37jSdO3c2kkzfvn1vWbsxxowbN87YbDZz6NAhe1vfvn3NzX7k31j/yJEjjSTTvXt3h35t2rQx+fPnt087c0xuJqt9GjRokJHk8P+akpJiSpUqZUqWLGnS09ONMcasXLnSSDKlS5e+7TG9fns3e33zzTf2ftk9rg0bNjSBgYEObcb89b6+JrvH82a6du1q/P397e+HAwcOmHfeecfYbDZTqVIle78SJUoYSeaHH37ItI4SJUqYrl272qfffPNNI8nMnz8/U99rtTtzfmW37gkTJhibzWYqVqzocIyyOt4bN240ksxXX31lb4uJiTGSTLNmzRyWHzx4sPH09DTnzp0zxhjzxx9/mFy5cpnWrVs7rHPUqFFGksOxePvtt42/v7+Jj4936Pvaa68ZT09Pc/jw4VvuJ4C/J26HA3BPxcXFqWDBgmrSpImkv26P6dixo2bNmqX09HRJUtOmTRUSEuLwqe7Zs2e1fPlydezY0d42Z84clS9fXuXKldOpU6fsr6ZNm0qSVq5c6bDtRo0aqUKFCplq8vX1ddhOUlKSGjRooC1bttjbr906949//MNh2f79+ztMG2M0b948PfPMMzLGONQVGRmppKQkh/XezH//+1+FhoYqNDRUjzzyiGbMmKFu3brp/fffv2nt58+f16lTp1S3bl0ZY7R169bbbudWbhwtrUGDBjp9+rT9drPsHhNnff/996pZs6bq169vbwsICFCvXr2UmJio3bt3O/Tv2rWrw3G4nVatWmn58uWZXtfek1L2juvJkye1Zs0ade/eXcWLF3fYxvW39l1zu+N5K+fPn7e/H8LDw/XPf/5TderU0YIFCxz6lSpVSpGRkbdd37x581S5cuVMV9Wur93Z8ys7dQ8dOlT16tXTokWLHI7R9cf7ypUrOn36tMLDw5UnT54sz5devXo5LN+gQQOlp6fr0KFDkqQVK1bo6tWr2XpvzpkzRw0aNFDevHkd9rNZs2ZKT0/XmjVrbrufAP5+uB0OwD2Tnp6uWbNmqUmTJjp48KC9vVatWpo4caJWrFihJ554Qrly5VK7du00c+ZMpaWlydvbW/Pnz9eVK1ccQtD+/fu1Z88ehYaGZrm9EydOOEyXKlUqy35LlizRmDFjtG3bNodnHa7/I+vQoUPy8PDItI4bR7U7efKkzp07p08//VSffvppturKSq1atTRmzBilp6dr165dGjNmjM6ePZvpVq/Dhw/rzTff1OLFi3X27FmHeUlJSbfdzq3c+If9tduXzp49q6CgoGwfE2cdOnQoy6HTy5cvb59fsWJFe/vN/l9vplixYmrWrNkt+2TnuF57puX6Wm7ldsfzVnx8fPSf//xH0l8jrpUqVUrFihXL1C+7xyIhIUHt2rW7ZR9nz6+sXF/30aNH9d577+nEiROZQuvFixc1btw4xcTE6NixYzLG2Odl9T6+1bGUZA9DN74X8+XLl+mW0v3792vHjh13tZ8A/n4IQQDumZ9++knHjx/XrFmzshzWNy4uTk888YQk6bnnntMnn3yipUuXqnXr1vr2229Vrlw5Va5c2d4/IyNDjzzyiCZNmpTl9sLCwhyms7pasHbtWrVs2VINGzbUxx9/rMKFCyt37tyKiYnRzJkznd7Haw9Sv/jii+ratWuWfSpVqnTb9YSEhNj/UI+MjFS5cuXUokULffjhhxoyZIikv0Ll448/rjNnzmj48OEqV66c/P39dezYMUVFRd31Q92enp5Ztl//B+r9wJmrQNmRU8f1bo6np6fnbYOb5Npj4ez5lZUb6772Xu7du7cWL15sb+/fv79iYmI0aNAg1alTR8HBwbLZbHruueeyPN6ufG9mZGTo8ccf17Bhw7Kcfz8PnQ7gzhGCANwzcXFxKlCggH2ksuvNnz9fCxYs0LRp0+Tr66uGDRuqcOHCmj17turXr6+ffvop04hbZcqU0fbt2/XYY49leftRdsybN08+Pj5atmyZwzDCMTExDv1KlCihjIwMHTx4UGXLlrW3HzhwwKFfaGioAgMDlZ6enq0/WrPr6aefVqNGjfTOO++od+/e8vf3186dOxUfH6/p06c7DCywfPnyTMvf6fG5lewekztZ7759+zK179271z4/J2X3uJYuXVqStGvXrhytJyeUKVPmtnW74vy6UeHChTV48GCNHj1aP//8s2rXri1Jmjt3rrp27aqJEyfa+166dEnnzp27o+1ce48cOHDA4erY6dOnM13ZK1OmjFJTU116vgK4//FMEIB74uLFi5o/f75atGihZ599NtOrX79+SklJsX867OHhoWeffVb/+c9/NGPGDF29etXhVjjpr9G2jh07ps8++yzL7Z0/f/62dXl6espms9mfR5L+Gr3qxpGvrj1n8fHHHzu0f/TRR5nW165dO82bNy/LPzJvHMbXGcOHD9fp06ft+3vt0/DrP/02xujDDz/MtKy/v78k3fEflVnJ7jFx1lNPPaVNmzZp48aN9rbz58/r008/VcmSJbN8rsuVsntcQ0ND1bBhQ3355Zc6fPiww7z77WrZjdq1a6ft27dneqZI+v+1u+L8ykr//v3l5+en8ePH29s8PT0zHbOPPvrI4bx0xmOPPaZcuXJp6tSpDu3//ve/M/Xt0KGDNm7cqGXLlmWad+7cOV29evWOagBwf+NKEIB7YvHixUpJSVHLli2znF+7dm2FhoYqLi7OHnY6duyojz76SCNHjtQjjzxifybkms6dO+vbb79Vnz59tHLlStWrV0/p6enau3evvv32W/v3pdzK008/rUmTJql58+Z6/vnndeLECU2ZMkXh4eHasWOHvV+1atXUrl07TZ48WadPn7YPBx0fHy/J8UrL+PHjtXLlStWqVUs9e/ZUhQoVdObMGW3ZskU//vijzpw5c0fH8Mknn1TFihU1adIk9e3bV+XKlVOZMmU0dOhQHTt2TEFBQZo3b16mT7qv1S9JAwYMUGRkpDw9Pe1Djd8pZ46JM1577TV98803evLJJzVgwADly5dP06dP18GDBzVv3rxbfhFqdsTHx+vrr7/O1F6wYEE9/vjjTh3Xf/3rX6pfv76qVq2qXr16qVSpUkpMTNR3332nbdu23VWdOenVV1/V3Llz1b59e3Xv3l3VqlXTmTNntHjxYk2bNk2VK1d2yfmVlfz586tbt276+OOPtWfPHpUvX14tWrTQjBkzFBwcrAoVKmjjxo368ccfHYb/dkbBggU1cOBATZw4US1btlTz5s21fft2LV26VCEhIQ7vzVdffVWLFy9WixYtFBUVpWrVqun8+fPauXOn5s6dq8TERIWEhNxRHQDuY24YkQ6ABT3zzDPGx8fHnD9//qZ9oqKiTO7cue1DS2dkZJiwsDAjyYwZMybLZS5fvmzeffdd8/DDDxtvb2+TN29eU61aNTN69GiTlJRk76cshmK+5osvvjBly5Y13t7eply5ciYmJsY+rPH1zp8/b/r27Wvy5ctnAgICTOvWrc2+ffuMJDN+/HiHvn/++afp27evCQsLM7lz5zaFChUyjz32mPn0009ve6xKlChhnn766SznxcbGGkkmJibGGGPM7t27TbNmzUxAQIAJCQkxPXv2NNu3b3foY4wxV69eNf379zehoaHGZrM57JtuMkT2yZMnHbZ9bXjigwcP3tExycrN/l8SEhLMs88+a/LkyWN8fHxMzZo1zZIlSxz6XBsie86cObfdzvXbu9mrUaNG9n7ZPa7GGLNr1y7Tpk0be60RERFmxIgR9vnOHM+sXBtq+nZu9b65cYhsY4w5ffq06devnylatKjx8vIyxYoVM127dnUY2j2755ezdSckJBhPT097TWfPnjXdunUzISEhJiAgwERGRpq9e/dmqvvaMdu8ebPD+q69F1auXGlvu3r1qhkxYoQpVKiQ8fX1NU2bNjV79uwx+fPnN3369HFYPiUlxURHR5vw8HDj5eVlQkJCTN26dc2ECRPM5cuXb7mfAP6ebMbc59fsAeA+tm3bNj366KP6+uuv9cILL7i7nPsCxwT3q3Pnzilv3rwaM2ZMpmcMAVgLzwQBQDZdvHgxU9vkyZPl4eGhhg0buqEi9+OY4H51s/emJDVu3PjeFgPgvsMzQQCQTe+9955+/fVXNWnSRLly5dLSpUu1dOlS9erVK1vDBT+IOCa4X82ePVuxsbF66qmnFBAQoHXr1umbb77RE088oXr16rm7PABuxu1wAJBNy5cv1+jRo7V7926lpqaqePHi6ty5s15//XXlymXNz5Q4JrhfbdmyRcOGDdO2bduUnJysggULql27dhozZowCAgLcXR4AN3NrCBo1apRGjx7t0BYREWH/LggAAAAAcDW3f0z38MMP68cff7RP88khAAAAgJzk9sSRK1cuFSpUyN1lAAAAALAIt4eg/fv3q0iRIvLx8VGdOnU0btw4FS9ePMu+aWlpSktLs09nZGTozJkzyp8//x1/KR8AAACAvz9jjFJSUlSkSJHbfrG2W58JWrp0qVJTUxUREaHjx49r9OjROnbsmHbt2qXAwMBM/bN6hggAAAAArjly5IiKFSt2yz731ehw586dU4kSJTRp0iT16NEj0/wbrwQlJSWpePHiOnLkiIKCgu5lqQAAAADuI8nJyQoLC9O5c+cUHBx8y75uvx3uenny5NFDDz2kAwcOZDnf29tb3t7emdqDgoIIQQAAAACy9ZjMrW+Wu8dSU1OVkJCgwoULu7sUAAAAAA8ot4agoUOHavXq1UpMTNSGDRvUpk0beXp6qlOnTu4sCwAAAMADzK23wx09elSdOnXS6dOnFRoaqvr16+vnn39WaGioO8sCAAAA8ABzawiaNWuWOzcPAAAAwILuq2eCAAAAACCnEYIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWAohCAAAAIClEIIAAAAAWMp9E4LG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gJzidAjy9vZWcnJypvb4+HiFhoa6pCgAAAAAyClOh6CWLVvqrbfe0pUrVyRJNptNhw8f1vDhw9WuXTuXFwgAAAAAruR0CJo4caJSU1NVoEABXbx4UY0aNVJ4eLgCAwM1duzYnKgRAAAAAFzG6dHhgoODtXz5cq1bt047duxQamqqqlatqmbNmuVEfQAAAADgUk6HoGvq16+v+vXru7IWAAAAAMhxToegf/3rX1m222w2+fj4KDw8XA0bNpSnp+ddFwcAAAAAruZ0CPrggw908uRJXbhwQXnz5pUknT17Vn5+fgoICNCJEydUunRprVy5UmFhYS4vGAAAAADuhtMDI7zzzjuqUaOG9u/fr9OnT+v06dOKj49XrVq19OGHH+rw4cMqVKiQBg8enBP1AgAAAMBdcfpK0BtvvKF58+apTJky9rbw8HBNmDBB7dq10++//6733nuP4bIBAAAA3JecvhJ0/PhxXb16NVP71atX9ccff0iSihQpopSUlLuvDgAAAABczOkQ1KRJE/Xu3Vtbt261t23dulUvv/yymjZtKknauXOnSpUq5boqAQAAAMBFnA5BX3zxhfLly6dq1arJ29tb3t7eql69uvLly6cvvvhCkhQQEKCJEye6vFgAAAAAuFtOPxNUqFAhLV++XHv37lV8fLwkKSIiQhEREfY+TZo0cV2F99hvh8+6uwRYxMPF87q7BAAAAEu64y9LLVeunMqVK+fKWgAAAAAgx91RCDp69KgWL16sw4cP6/Llyw7zJk2a5JLCAAAAACAnOB2CVqxYoZYtW6p06dLau3evKlasqMTERBljVLVq1ZyoEQAAAABcxumBEaKjozV06FDt3LlTPj4+mjdvno4cOaJGjRqpffv2OVEjAAAAALiM0yFoz5496tKliyQpV65cunjxogICAvTWW2/p3XffdXmBAAAAAOBKTocgf39/+3NAhQsXVkJCgn3eqVOnXFcZAAAAAOQAp58Jql27ttatW6fy5cvrqaee0iuvvKKdO3dq/vz5ql27dk7UCAAAAAAu43QImjRpklJTUyVJo0ePVmpqqmbPnq2yZcsyMhwAAACA+55TISg9PV1Hjx5VpUqVJP11a9y0adNypDAAAAAAyAlOPRPk6empJ554QmfPns2pegAAAAAgRzk9MELFihX1+++/50QtAAAAAJDjnA5BY8aM0dChQ7VkyRIdP35cycnJDi8AAAAAuJ85PTDCU089JUlq2bKlbDabvd0YI5vNpvT0dNdVBwAAAAAu5nQIWrlyZU7UAQAAAAD3hNMhqFGjRjlRBwAAAADcE04/EyRJa9eu1Ysvvqi6devq2LFjkqQZM2Zo3bp1Li0OAAAAAFzN6RA0b948RUZGytfXV1u2bFFaWpokKSkpSe+8847LCwQAAAAAV7qj0eGmTZumzz77TLlz57a316tXT1u2bHFpcQAAAADgak6HoH379qlhw4aZ2oODg3Xu3DlX1AQAAAAAOcbpEFSoUCEdOHAgU/u6detUunRplxQFAAAAADnF6RDUs2dPDRw4UP/3f/8nm82m//3vf4qLi9PQoUP18ssvO7WucePGqUaNGgoMDFSBAgXUunVr7du3z9mSAAAAACDbnB4i+7XXXlNGRoYee+wxXbhwQQ0bNpS3t7eGDh2q/v37O7Wu1atXq2/fvqpRo4auXr2qf/7zn3riiSe0e/du+fv7O1saAAAAANyW0yHIZrPp9ddf16uvvqoDBw4oNTVVFSpUUEBAgNMb/+GHHxymY2NjVaBAAf36669ZPncEAAAAAHfL6RD09ddfq23btvLz81OFChVcWkxSUpIkKV++fFnOT0tLsw/JLUnJycku3T4AAACAB5/TzwQNHjxYBQoU0PPPP6/vv/9e6enpLikkIyNDgwYNUr169VSxYsUs+4wbN07BwcH2V1hYmEu2DQAAAMA6nA5Bx48f16xZs2Sz2dShQwcVLlxYffv21YYNG+6qkL59+2rXrl2aNWvWTftER0crKSnJ/jpy5MhdbRMAAACA9Th9O1yuXLnUokULtWjRQhcuXNCCBQs0c+ZMNWnSRMWKFVNCQoLTRfTr109LlizRmjVrVKxYsZv28/b2lre3t9PrBwAAAIBrnA5B1/Pz81NkZKTOnj2rQ4cOac+ePU4tb4xR//79tWDBAq1atUqlSpW6m3IAAAAA4LbuKARduwIUFxenFStWKCwsTJ06ddLcuXOdWk/fvn01c+ZMLVq0SIGBgfrjjz8kScHBwfL19b2T0gAAAADglpwOQc8995yWLFkiPz8/dejQQSNGjFCdOnXuaONTp06VJDVu3NihPSYmRlFRUXe0TgAAAAC4FadDkKenp7799ltFRkbK09PTYd6uXbtuOrJbVowxzm4eAAAAAO6K0yEoLi7OYTolJUXffPONPv/8c/36668uGzIbAAAAAHKC00NkX7NmzRp17dpVhQsX1oQJE9S0aVP9/PPPrqwNAAAAAFzOqStBf/zxh2JjY/XFF18oOTlZHTp0UFpamhYuXKgKFSrkVI0AAAAA4DLZvhL0zDPPKCIiQjt27NDkyZP1v//9Tx999FFO1gYAAAAALpftK0FLly7VgAED9PLLL6ts2bI5WRMAAAAA5JhsXwlat26dUlJSVK1aNdWqVUv//ve/derUqZysDQAAAABcLtshqHbt2vrss890/Phx9e7dW7NmzVKRIkWUkZGh5cuXKyUlJSfrBAAAAACXcHp0OH9/f3Xv3l3r1q3Tzp079corr2j8+PEqUKCAWrZsmRM1AgAAAIDL3PEQ2ZIUERGh9957T0ePHtU333zjqpoAAAAAIMfcVQi6xtPTU61bt9bixYtdsToAAAAAyDEuCUEAAAAA8HdBCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKYQgAAAAAJZCCAIAAABgKW4NQWvWrNEzzzyjIkWKyGazaeHChe4sBwAAAIAFuDUEnT9/XpUrV9aUKVPcWQYAAAAAC8nlzo0/+eSTevLJJ91ZAgAAAACLcWsIclZaWprS0tLs08nJyW6sBgAAAMDf0d9qYIRx48YpODjY/goLC3N3SQAAAAD+Zv5WISg6OlpJSUn215EjR9xdEgAAAIC/mb/V7XDe3t7y9vZ2dxkAAAAA/sb+VleCAAAAAOBuufVKUGpqqg4cOGCfPnjwoLZt26Z8+fKpePHibqwMAAAAwIPKrSHol19+UZMmTezTQ4YMkSR17dpVsbGxbqoKAAAAwIPMrSGocePGMsa4swQAAAAAFsMzQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFLuixA0ZcoUlSxZUj4+PqpVq5Y2bdrk7pIAAAAAPKDcHoJmz56tIUOGaOTIkdqyZYsqV66syMhInThxwt2lAQAAAHgAuT0ETZo0ST179lS3bt1UoUIFTZs2TX5+fvryyy/dXRoAAACAB1Aud2788uXL+vXXXxUdHW1v8/DwULNmzbRx48ZM/dPS0pSWlmafTkpKkiQlJye7rKbUFNetC7iV5GRPd5eQpYvnU91dAizClT+7Xe3KxfPuLgEWcT+fB+mXL7q7BFiEq86Da+sxxty2r1tD0KlTp5Senq6CBQs6tBcsWFB79+7N1H/cuHEaPXp0pvawsLAcqxEAkDP6ubsA4D4w51V3VwC4X/CMQS5dX0pKioKDg2/Zx60hyFnR0dEaMmSIfTojI0NnzpxR/vz5ZbPZ3FiZdSUnJyssLExHjhxRUFCQu8sB3ILzAOA8ADgH3M8Yo5SUFBUpUuS2fd0agkJCQuTp6ak///zTof3PP/9UoUKFMvX39vaWt7e3Q1uePHlyskRkU1BQECc8LI/zAOA8ADgH3Ot2V4CucevACF5eXqpWrZpWrFhhb8vIyNCKFStUp04dN1YGAAAA4EHl9tvhhgwZoq5du6p69eqqWbOmJk+erPPnz6tbt27uLg0AAADAA8jtIahjx446efKk3nzzTf3xxx+qUqWKfvjhh0yDJeD+5O3trZEjR2a6TRGwEs4DgPMA4Bz4e7GZ7IwhBwAAAAAPCLd/WSoAAAAA3EuEIAAAAACWQggCAAAAYCmEIAC4Q6tWrZLNZtO5c+ckSbGxsXx3GSzhTt7rUVFRat26dY7UA/ydJSYmymazadu2bdleht83d48QhEz4RYUHRVRUlGw2m/r06ZNpXt++fWWz2RQVFeWy7XXs2FHx8fEuWx/gDjf7HXB96Oe9jvvRM888o+bNm2c5b+3atbLZbNqxY8c9q+dWQcVms2nhwoWSpLCwMB0/flwVK1a8Z7WBEATgARcWFqZZs2bp4sWL9rZLly5p5syZKl68uEu35evrqwIFCrh0ncD9iPc67kc9evTQ8uXLdfTo0UzzYmJiVL16dVWqVMnp9V6+fNkV5d2Up6enChUqpFy53P7NNZZCCIJTVq9erZo1a8rb21uFCxfWa6+9pqtXr0qSlixZojx58ig9PV2StG3bNtlsNr322mv25V966SW9+OKLbqkd1lS1alWFhYVp/vz59rb58+erePHievTRR+1tGRkZGjdunEqVKiVfX19VrlxZc+fOdVjX999/r4ceeki+vr5q0qSJEhMTHebf+KlfVp+oDxo0SI0bN7ZPN27cWP3799egQYOUN29eFSxYUJ999pn9S6MDAwMVHh6upUuX3vWxAFwlq0+4x4wZowIFCigwMFAvvfSSXnvtNVWpUiXTshMmTFDhwoWVP39+9e3bV1euXLk3ReOB16JFC4WGhio2NtahPTU1VXPmzFGPHj0kSevWrVODBg3k6+ursLAwDRgwQOfPn7f3L1mypN5++2116dJFQUFB6tWrl5o2bap+/fo5rPfkyZPy8vLSihUr7qrurG6HW7x4scqWLSsfHx81adJE06dPd7j9+pply5apfPnyCggIUPPmzXX8+PG7qsVKCEHItmPHjumpp55SjRo1tH37dk2dOlVffPGFxowZI0lq0KCBUlJStHXrVkl/BaaQkBCtWrXKvo7Vq1c7/AEI3Avdu3dXTEyMffrLL79Ut27dHPqMGzdOX331laZNm6bffvtNgwcP1osvvqjVq1dLko4cOaK2bdvqmWee0bZt2+x/5LnC9OnTFRISok2bNql///56+eWX1b59e9WtW1dbtmzRE088oc6dO+vChQsu2R7ganFxcRo7dqzeffdd/frrrypevLimTp2aqd/KlSuVkJCglStXavr06YqNjc30Bytwp3LlyqUuXbooNjZW138N5pw5c5Senq5OnTopISFBzZs3V7t27bRjxw7Nnj1b69atyxRwJkyYoMqVK2vr1q0aMWKEXnrpJc2cOVNpaWn2Pl9//bWKFi2qpk2bunQ/Dh48qGeffVatW7fW9u3b1bt3b73++uuZ+l24cEETJkzQjBkztGbNGh0+fFhDhw51aS0PNAPcoGvXrqZVq1aZ2v/5z3+aiIgIk5GRYW+bMmWKCQgIMOnp6cYYY6pWrWref/99Y4wxrVu3NmPHjjVeXl4mJSXFHD161Egy8fHx92Q/gGvv5RMnThhvb2+TmJhoEhMTjY+Pjzl58qRp1aqV6dq1q7l06ZLx8/MzGzZscFi+R48eplOnTsYYY6Kjo02FChUc5g8fPtxIMmfPnjXGGBMTE2OCg4Mzbf96AwcONI0aNbJPN2rUyNSvX98+ffXqVePv7286d+5sbzt+/LiRZDZu3HgXRwPInq5duxpPT0/j7+/v8PLx8bG/3298r9eqVcv07dvXYT316tUzlStXdlhviRIlzNWrV+1t7du3Nx07dszpXYKF7Nmzx0gyK1eutLc1aNDAvPjii8aYv36u9+rVy2GZtWvXGg8PD3Px4kVjjDElSpQwrVu3duhz8eJFkzdvXjN79mx7W6VKlcyoUaNuWktMTIyRlOlc8vf3N5LMggULjDHGHDx40EgyW7duNcb89bulYsWKDut6/fXXM/2+kWQOHDhg7zNlyhRTsGDB2x8kGGOM4UoQsm3Pnj2qU6eObDabva1evXpKTU2133/bqFEjrVq1SsYYrV27Vm3btlX58uW1bt06rV69WkWKFFHZsmXdtQuwqNDQUD399NOKjY1VTEyMnn76aYWEhNjnHzhwQBcuXNDjjz+ugIAA++urr75SQkKCpL/e/7Vq1XJYb506dVxS3/X3qHt6eip//vx65JFH7G0FCxaUJJ04ccIl2wNup0mTJtq2bZvD6/PPP79p/3379qlmzZoObTdOS9LDDz8sT09P+3ThwoV5X8OlypUrp7p16+rLL7+U9NfP97Vr19pvhdu+fbtiY2MdftZHRkYqIyNDBw8etK+nevXqDuv18fFR586d7evdsmWLdu3addvBdQIDAzOdS7cbBW7fvn2qUaOGQ1tW55Ofn5/KlCljn+Z8cg5PYMGlGjdurC+//FLbt29X7ty5Va5cOTVu3FirVq3S2bNn1ahRI3eXCIvq3r27/XaHKVOmOMxLTU2VJH333XcqWrSowzxvb+873qaHh4fDLRmSsnz+IXfu3A7TNpvNoe3aBw8ZGRl3XAvgDH9/f4WHhzu0ZfWwubOyeq/zvoar9ejRQ/3799eUKVMUExOjMmXK2P/+SE1NVe/evTVgwIBMy10/WI6/v3+m+S+99JKqVKmio0ePKiYmRk2bNlWJEiVuWYuHh0emc8lVsjqfbvydg5vjShCyrXz58tq4caPDCbZ+/XoFBgaqWLFikv7/c0EffPCB/QfOtRC0atUqngeC2zRv3lyXL1/WlStXFBkZ6TCvQoUK8vb21uHDhxUeHu7wCgsLk/TX+3/Tpk0Oy/3888+33GZoaGimh1Sd+R4I4O8iIiJCmzdvdmi7cRq4Vzp06CAPDw/NnDlTX331lbp3727/MKlq1aravXt3pp/14eHh8vLyuuV6H3nkEVWvXl2fffaZZs6cqe7du+dI/REREfrll18c2jifXI8QhCwlJSVlunTbq1cvHTlyRP3799fevXu1aNEijRw5UkOGDJGHx19vpbx586pSpUqKi4uzB56GDRtqy5Ytio+P50oQ3MbT01N79uzR7t27HW7Hkf66XWHo0KEaPHiwpk+froSEBG3ZskUfffSRpk+fLknq06eP9u/fr1dffVX79u3TzJkzb/tAd9OmTfXLL7/oq6++0v79+zVy5Ejt2rUrp3YRcJv+/fvriy++0PTp07V//36NGTNGO3bscLh9GrhXAgIC1LFjR0VHR+v48eMOt6wNHz5cGzZsUL9+/bRt2zbt379fixYtyjQwws289NJLGj9+vIwxatOmTY7U37t3b+3du1fDhw9XfHy8vv32W/vvG84p1yEEIUurVq3So48+6vB6++239f3332vTpk2qXLmy+vTpox49euiNN95wWLZRo0ZKT0+3h6B8+fKpQoUKKlSokCIiItywN8BfgoKCFBQUlOW8t99+WyNGjNC4ceNUvnx5NW/eXN99951KlSol6a/bJObNm6eFCxeqcuXKmjZtmt55551bbi8yMlIjRozQsGHDVKNGDaWkpKhLly4u3y/A3V544QVFR0dr6NChqlq1qg4ePKioqCj5+Pi4uzRYVI8ePXT27FlFRkaqSJEi9vZKlSpp9erVio+PV4MGDfToo4/qzTffdOhzK506dVKuXLnUqVOnHHt/lypVSnPnztX8+fNVqVIlTZ061T463N3cog1HNsPNgwAAwMUef/xxFSpUSDNmzHB3KYDLJCYmqkyZMtq8ebOqVq16z7Y7duxYTZs2TUeOHLln23zQMTACAAC4KxcuXNC0adMUGRkpT09PffPNN/rxxx+1fPlyd5cGuMSVK1d0+vRpvfHGG6pdu3aOB6CPP/5YNWrUUP78+bV+/Xq9//772b5lD9lDCAIAAHfFZrPp+++/19ixY3Xp0iVFRERo3rx5atasmbtLA1xi/fr1atKkiR566CHNnTs3x7d37dm6M2fOqHjx4nrllVcUHR2d49u1Em6HAwAAAGApDIwAAAAAwFIIQQAAAAAshRAEAAAAwFIIQQAAAAAshRAEAAAAwFIIQQDwACpZsqQmT57s7jIAALgvEYIA4D4WFRUlm80mm80mLy8vhYeH66233tLVq1dvudzmzZvVq1evHKsrNjbWXpeHh4cKFy6sjh076vDhwzm2zZywdetWtW/fXgULFpSPj4/Kli2rnj17Kj4+PtvriIqKUuvWrXOuSACAyxGCAOA+17x5cx0/flz79+/XK6+8olGjRun999/Psu/ly5clSaGhofLz88vRuoKCgnT8+HEdO3ZM8+bN0759+9S+ffsc3aYrLVmyRLVr11ZaWpri4uK0Z88eff311woODtaIESPcXd4dMcbcNiADAAhBAHDf8/b2VqFChVSiRAm9/PLLatasmRYvXizp/1+FGDt2rIoUKaKIiAhJmW+HO3funHr37m2/4lGxYkUtWbLEPn/dunVq0KCBfH19FRYWpgEDBuj8+fO3rMtms6lQoUIqXLiw6tatqx49emjTpk1KTk629xk+fLgeeugh+fn5qXTp0hoxYoSuXLlinz9q1ChVqVJFM2bMUMmSJRUcHKznnntOKSkp9j4pKSl64YUX5O/vr8KFC+uDDz5Q48aNNWjQIHuftLQ0DR06VEWLFpW/v79q1aqlVatW3bT2CxcuqFu3bnrqqae0ePFiNWvWTKVKlVKtWrU0YcIEffLJJ5Kk9PR09ejRQ6VKlZKvr68iIiL04YcfOtQ/ffp0LVq0yH5l7Np2jxw5og4dOihPnjzKly+fWrVqpcTERPuyV69e1YABA5QnTx7lz59fw4cPV9euXR2uKqWlpWnAgAEqUKCAfHx8VL9+fW3evNk+f9WqVbLZbFq6dKmqVasmb29vff311/Lw8NAvv/zisM+TJ09WiRIllJGRccv/VwCwAkIQAPzN+Pr62q/4SNKKFSu0b98+LV++3CHYXJORkaEnn3xS69ev19dff63du3dr/Pjx8vT0lCQlJCSoefPmateunXbs2KHZs2dr3bp16tevX7ZrOnHihBYsWCBPT0/7eiUpMDBQsbGx2r17tz788EN99tln+uCDDxyWTUhI0MKFC7VkyRItWbJEq1ev1vjx4+3zhwwZovXr12vx4sVavny51q5dqy1btjiso1+/ftq4caNmzZqlHTt2qH379mrevLn279+fZb3Lli3TqVOnNGzYsCzn58mTx37sihUrpjlz5mj37t1688039c9//lPffvutJGno0KHq0KGD/Wrd8ePHVbduXV25ckWRkZEKDAzU2rVrtX79egUEBKh58+b2/7t3331XcXFxiomJ0fr165WcnKyFCxc61DFs2DDNmzdP06dP15YtWxQeHq7IyEidOXPGod9rr72m8ePHa8+ePWrZsqWaNWummJgYhz4xMTGKioqShwe/+gFABgBw3+ratatp1aqVMcaYjIwMs3z5cuPt7W2GDh1qn1+wYEGTlpbmsFyJEiXMBx98YIwxZtmyZcbDw8Ps27cvy2306NHD9OrVy6Ft7dq1xsPDw1y8eDHLZWJiYowk4+/vb/z8/IwkI8kMGDDglvvz/vvvm2rVqtmnR44cafz8/ExycrK97dVXXzW1atUyxhiTnJxscufObebMmWOff+7cOePn52cGDhxojDHm0KFDxtPT0xw7dsxhW4899piJjo7Oso53333XSDJnzpy5Zb1Z6du3r2nXrp19+vr/o2tmzJhh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", 158 | "text/plain": [ 159 | "
" 160 | ] 161 | }, 162 | "metadata": {}, 163 | "output_type": "display_data" 164 | } 165 | ], 166 | "source": [ 167 | "plt.figure(figsize=(10, 5))\n", 168 | "sns.barplot(x=avg_rating_per_price_range.index, y=avg_rating_per_price_range.values, palette='Blues')\n", 169 | "plt.title('Average Rating for Each Price Range')\n", 170 | "plt.xlabel('Price Range Category')\n", 171 | "plt.ylabel('Average Rating')\n", 172 | "plt.ylim(0, 5) # Setting limit for ratings (typically from 0 to 5)\n", 173 | "plt.show()" 174 | ] 175 | }, 176 | { 177 | "cell_type": "markdown", 178 | "metadata": {}, 179 | "source": [ 180 | "- The `groupby()` method groups the data by `Price Range Category` and calculates the mean `Aggregate rating`.\n", 181 | "- The bar chart helps visualize the average ratings across price ranges." 182 | ] 183 | }, 184 | { 185 | "cell_type": "markdown", 186 | "metadata": {}, 187 | "source": [ 188 | "> Find the color associated with the highest average rating in each price range" 189 | ] 190 | }, 191 | { 192 | "cell_type": "code", 193 | "execution_count": 8, 194 | "metadata": {}, 195 | "outputs": [], 196 | "source": [ 197 | "highest_avg_color_per_price_range = DATASET.groupby('Price Range Category')['Rating color'].agg(lambda x: x.value_counts().idxmax())" 198 | ] 199 | }, 200 | { 201 | "cell_type": "code", 202 | "execution_count": 9, 203 | "metadata": {}, 204 | "outputs": [ 205 | { 206 | "name": "stdout", 207 | "output_type": "stream", 208 | "text": [ 209 | "Color representing the highest average rating for each price range:\n", 210 | "Price Range Category\n", 211 | "Low Orange\n", 212 | "Medium Orange\n", 213 | "High Yellow\n", 214 | "Very High Yellow\n", 215 | "Name: Rating color, dtype: object\n" 216 | ] 217 | } 218 | ], 219 | "source": [ 220 | "print(\"Color representing the highest average rating for each price range:\")\n", 221 | "print(highest_avg_color_per_price_range)" 222 | ] 223 | }, 224 | { 225 | "cell_type": "code", 226 | "execution_count": 10, 227 | "metadata": {}, 228 | "outputs": [ 229 | { 230 | "data": { 231 | "image/png": "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/qPy5curQYMG2erfu3dvTZs2TS+++KIGDx6s//73v4qMjNTvv/+e5bXvN2/eVLNmzXT06FENGDBA5cqV09y5c9WjRw9dvXrVIpxJUlRUlG7duqXXXntNLi4uKlKkiE3bdffuXZ0+fVqFCxe2aO/bt6+io6PVs2dPDRo0SMePH9cPP/ygnTt3atOmTRaXlRw5ckSdO3fW66+/ru7duysqKkodO3bUypUr9fTTT1ss9x//+Id8fHz00Ucf6fr165Kk6dOnq3v37goLC9OXX36pGzduaPz48WrUqJF27txp/iO+Q4cO2r9/vwYOHKiAgACdP39eMTExiouLM/fJ7rIkKSUlRWFhYapXr56+/vprrV69WqNHj1aFChXUr18/+fj4aPz48erXr59eeOEFtW/fXpJUrVq1LF/TjRs3asGCBfrHP/4hT09Pfffdd+rQoYPi4uJUtGhRSdLOnTvVqlUrlShRQp9++qlSUlI0fPhwc1DLrosXL9rU/37Lli1T586dVbVqVUVGRurKlSvq1auXSpUqlWH/WbNm6dq1a+rbt69MJpO++uortW/fXn/88Yd5f9i/f78aNmyoUqVK6b333pO7u7t+/vlnhYeHa/78+XrhhRck3QudkZGR6t27t+rWravExERt375dO3bs0NNPP62+ffvqzz//VExMjKZPn57tbfrvf/+ro0ePKioqSs7Ozmrfvr1mzpyp999/X5LUunVreXh46Oeff1bTpk0t5p0zZ46efPJJBQcH27QtaTLat7dt26bNmzerS5cuKl26tE6cOKHx48erWbNmOnDggAoWLCjp3h/AzZs3l8lk0rBhw+Tu7q7JkydneImbLft4dqWFkAffB7799lu1bdtWL7/8sm7fvq3Zs2erY8eOWrp0qVq3bm2uJ+3/8bXXXpMkVahQIcv1HT16VC+++KJ69eql7t27a+rUqerRo4dCQkL05JNP2vyaZCYlJUWtWrVS/fr19dVXX2nlypX6+OOPdffuXQ0fPlwmk0mvvPKKvvrqK12+fNni/fM///mPEhMTLc7IZNedO3d06tQp8/GeJqP369TU1HTz79mzR40bN5aTk5Nee+01BQQE6NixY/rPf/6jzz//XJJ07tw51a9f3/xljY+Pj1asWKFevXopMTFRb775ps11Z/Z5MHfuXN24cUP9+vVT0aJFtXXrVn3//fc6ffq0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S7p3ud60adO0Zs0a/f777zIMw3yZ3sNsS2bmzZun7t27a/To0ea2W7du6erVqxb9ypYtm63/i9zYxyVp5MiRWrhwoT7//HNNmDBBkjR//ny5urpq1apVFgMyREVFpZs/N46T7L4mWUlNTdUff/xhPsskZfzeVKRIEbVu3VozZ87Uyy+/rE2bNmns2LEPXftfkbbvZfVFnY+Pjzw9PZWSkpKj+0FGnwd79+7V4cOHNW3aNEVERJj7ZueS4MyULVtWa9eu1Y0bNyzOOj34f5tTxyHwV3GPE2CjoUOHyt3dXb1799a5c+fSTT927Ji+/fZbSdJzzz0nSek+eL/55htJMo9GlZHnnntO8fHxmjNnjrnt7t27+v777+Xh4ZFuJLCc8O677+rSpUv68ccfJd37xj4lJUWfffZZur53795N90ffn3/+aTFSYGJion766SfVqFHD6o9phoWFycvLS1988YXu3LmTbvqFCxck3fsh2lu3bllMq1Chgjw9Pc2XEGV3WbZI+1B/cJv/irRL7BYtWqQ///zT3H706FGtWLEix9aTlZIlSyo4OFg//fSTkpKSzO3r1q3T3r17H2qZvr6+atasmSZOnKizZ8+mm37/63/p0iWLaR4eHgoMDLS4HCztd5Cy89ovXLhQ169fV//+/fXiiy+me7Rp00bz5883L79ly5YqUqSI5syZozlz5qhu3boWl1HZsi1ZcXR0THcW5fvvv083NHNYWJi2bNmiXbt2mdsuX76c7qxvbuzj0r1jqUOHDoqOjjbfl+jo6CiTyWRR64kTJ7Ro0aJ087u7u+foMSJl/zWx5ocffjD/2zAM/fDDD3JycjJfppmmW7duOnDggN555x05OjqqS5cuf6n+h+Xj46MmTZpo6tSpiouLs5iWti85OjqqQ4cOmj9/foYB62H3Ayn950HaGaT792PDMMyfdw8jLCxMd+7cMa9Duhdy036CIE1OHYfAX8UZJ8BGFSpU0KxZs9S5c2dVrlxZERERCg4O1u3bt7V582bzkOGSVL16dXXv3l2TJk3S1atX1bRpU23dulXTpk1TeHi4+VvvjLz22muaOHGievTood9++00BAQGaN2+e+RvQ7A5QYYtnn31WwcHB+uabb9S/f381bdpUffv2VWRkpHbt2qVnnnlGTk5OOnLkiObOnatvv/3W4lv9J554Qr169dK2bdtU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ihUrtHLlSkn3Rr7bvHmzBgwYoF27dunIkSNavHixTYNDSJK/v79eeOEFffTRR5KkihUrKi4uTrNnz9axY8f03XffZRhSsuLp6anu3bvrnXfe0dq1a7V//3716tVLDg4OMplMku6dPXr55ZcVERGhBQsW6Pjx49q6dasiIyO1bNmyDJfr7u6uyZMna9myZWrbtq1Wr16tEydOaPv27Ro6dKhef/118zZs375dq1at0uHDh/Xhhx9ajGon3bvUcM+ePTp06JAuXryoO3fu6OWXX1axYsXUrl07bdiwQcePH1dsbKwGDRqk06dPS5IGDhyoyMhILV68WIcOHdIbb7yhK1eumLfL3d1d/fr10zvvvKOVK1fqwIED6tOnj27cuKFevXpZfe0qV66s+vXr691331XXrl2tnnkEgMcFwQkAkKn58+erTp066tq1q6pUqaKhQ4eaz5JUq1ZN69at0+HDh9W4cWPVrFlTH330kUqWLGnzet566y0tW7ZMW7duVdu2bfXWW29pwIABqlGjhjZv3vxQv4/0zTffKDQ0VG3atFHLli3VsGFDVa5cWa6uruY+UVFRioiI0ODBgxUUFKTw8HCLs1QZadeunTZv3iwnJye99NJLqlSpkrp27aqEhASNGDFCktS3b1+1b99enTt3Vr169XTp0iWLs0+S1KdPHwUFBal27dry8fHRpk2bVLBgQa1fv15lypRR+/btVblyZfXq1Uu3bt0yn4FKCzQREREKDQ2Vh4eHwsLCLLZr5MiR6tChg7p166ZatWrp6NGjWrVqlQoXLpyt165Xr166ffu2Xn311Wy/3gDwqDMZttzpCgDA39T169dVqlQpjR49OltnXv4uUlNTVblyZXXq1EmfffZZjizzs88+09y5c7Vnz54cWR4APAq4xwkA8EjauXOnDh48qLp16yohIUHDhw+XdO+M0d/ZyZMn9csvv6hp06ZKTk7WDz/8oOPHj+ull176y8tOSkrSiRMn9MMPP5jPngEA7uFSPQDAI+vrr79W9erV1bJlS12/fl0bNmxQsWLF7F3WX+Lg4KDo6GjVqVNHDRs21N69e7V69epMh3+3xYABAxQSEqJmzZpxmR4APIBL9QAAAADACs44AQAAAIAVBCcAAAAAsILgBAAAAABWEJwAAAAAwAqCEwAAAABYQXACAAAAACsITgAAAABgBcEJAAAAAKz4f+wQowG/g8ekAAAAAElFTkSuQmCC", 232 | "text/plain": [ 233 | "
" 234 | ] 235 | }, 236 | "metadata": {}, 237 | "output_type": "display_data" 238 | } 239 | ], 240 | "source": [ 241 | "plt.figure(figsize=(10, 5))\n", 242 | "sns.barplot(x=highest_avg_color_per_price_range.index, y=avg_rating_per_price_range.values, palette=highest_avg_color_per_price_range.values)\n", 243 | "plt.title('Color Representing Highest Average Rating by Price Range')\n", 244 | "plt.xlabel('Price Range Category')\n", 245 | "plt.ylabel('Average Rating')\n", 246 | "plt.show()" 247 | ] 248 | }, 249 | { 250 | "cell_type": "markdown", 251 | "metadata": {}, 252 | "source": [ 253 | "- `groupby()` is used with `agg()` to find the most common `Rating color` for each `Price Range Category`.\n", 254 | "- The bar chart uses colors representing the highest average rating for better visualization." 255 | ] 256 | } 257 | ], 258 | "metadata": { 259 | "kernelspec": { 260 | "display_name": "Python 3", 261 | "language": "python", 262 | "name": "python3" 263 | }, 264 | "language_info": { 265 | "codemirror_mode": { 266 | "name": "ipython", 267 | "version": 3 268 | }, 269 | "file_extension": ".py", 270 | "mimetype": "text/x-python", 271 | "name": "python", 272 | "nbconvert_exporter": "python", 273 | "pygments_lexer": "ipython3", 274 | "version": "3.12.5" 275 | } 276 | }, 277 | "nbformat": 4, 278 | "nbformat_minor": 2 279 | } 280 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 M. Dinesh 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![image](https://github.com/user-attachments/assets/c2b2da51-f1d1-4d22-b3d9-c9d47b3110e7) 2 | 3 | 4 | ``` 5 | 📦 Data Science Internship Project 6 | │ 7 | ├── 📄 LICENSE 8 | ├── 📄 README.md 9 | │ 10 | ├── 📁 LEVEL 1 - Data Exploration and Preprocessing 11 | │ ├── 📄 DATAEXPLORATION AND PREPROCESSING.ipynb 12 | │ ├── 📄 DESCRIPTIVE ANALYSIS.ipynb 13 | │ ├── 📄 GEOSPATIAL ANALYSIS.ipynb 14 | │ └── 🌐 restaurant_map.html 15 | │ 16 | ├── 📁 LEVEL 2 - Advanced Analysis 17 | │ ├── 📄 TABLE BOOKING AND ONLINE DELEIVERY.ipynb 18 | │ ├── 📄 PRICE RANGE ANALYSIS.ipynb 19 | │ └── 📄 FEATURE ENGINEERING.ipynb 20 | │ 21 | ├── 📁 LEVEL 3 - Modeling and Visualization 22 | │ ├── 📄 PREDICTIVE MODELING.ipynb 23 | │ ├── 📄 CUSTOMER PREFERANCE ANALYSIS.ipynb 24 | │ ├── 📄 Data Visualization.ipynb 25 | │ ├── 📊 average_rating_by_cuisine.png 26 | │ ├── 📊 boxplot_ratings_by_cuisine.png 27 | │ ├── 📊 correlation_heatmap.png 28 | │ ├── 📊 jointplot_votes_rating.png 29 | │ ├── 📊 pair_plot.png 30 | │ ├── 📊 pairplot_votes_rating.png 31 | │ ├── 📊 rating_distribution_boxplot.png 32 | │ ├── 📊 rating_distribution_histogram.png 33 | │ ├── 📊 swarmplot_ratings_cuisines.png 34 | │ ├── 📊 top_cuisines_avg_rating.png 35 | │ ├── 📊 violinplot_votes_by_rating.png 36 | │ ├── 📊 votes_vs_aggregate_rating.png 37 | │ └── 🌐 bubble_chart_votes_rating.html 38 | │ 39 | └── 📁 DATASETS 40 | └── (Dataset files) 41 | 42 | ``` 43 | 44 | 45 | ## 📚 Libraries Used 46 | 47 | - **Folium** 🗺️: For creating interactive maps to visualize restaurant locations. 48 | - **Pandas** 🐼: For data manipulation and processing. 49 | - **Matplotlib** 📊: For plotting static graphs to visualize restaurant distributions. 50 | - **Seaborn** 🎨: For enhanced visualizations and creating scatter plots. 51 | - **Scikit-learn** 🤖: For applying machine learning algorithms like KMeans clustering to group restaurant locations. 52 | 53 | 🚀 **Workflow Overview :** 54 | 55 | ### **1. Data Loading and Preprocessing** 🧹 56 | 57 | We begin by loading the data and cleaning it. The dataset contains several cuisines with aggregate ratings, votes, and cuisine names. We clean the data, fill missing values, and prepare it for further analysis. 58 | 59 | ```python 60 | import pandas as pd 61 | import numpy as np 62 | 63 | # Load the dataset 64 | cuisine_data = pd.read_csv("Cuisine_Rating_Votes.csv") 65 | 66 | # Fill missing values 67 | cuisine_data.fillna(method='ffill', inplace=True) 68 | 69 | # Summary of the dataset 70 | cuisine_data.info() 71 | ``` 72 | 73 | - **Missing Values Handling**: The `fillna(method='ffill')` method is used to forward-fill any missing values. 74 | - **Dataset Overview**: We get a basic overview of the dataset with `info()` to understand its structure. 75 | 76 | --- 77 | 78 | ### **2. Exploratory Data Analysis (EDA)** 🔍 79 | 80 | #### **Cuisines with Consistent Ratings** 💯 81 | 82 | Next, we identify the cuisines that have consistent ratings by calculating the standard deviation of the aggregate ratings. 83 | 84 | ```python 85 | # Calculate standard deviation of ratings for each cuisine 86 | rating_std = cuisine_data.groupby('Cuisines')['Aggregate rating'].std() 87 | 88 | # Cuisines with lowest standard deviation (consistent ratings) 89 | consistent_cuisines = rating_std.sort_values().head(10) 90 | ``` 91 | 92 | - **Consistent Ratings**: Cuisines like `Italian`, `Hawaiian`, and `American` are identified as having the most consistent ratings, with low standard deviation. 93 | 94 | #### **Top Cuisines by Average Rating** 🌟 95 | 96 | We then calculate the average rating for each cuisine to find out which ones have the best average rating. 97 | 98 | ```python 99 | # Calculate the average rating by cuisine 100 | avg_rating_by_cuisine = cuisine_data.groupby('Cuisines')['Aggregate rating'].mean() 101 | 102 | # Top 10 cuisines with highest average ratings 103 | top_cuisines = avg_rating_by_cuisine.sort_values(ascending=False).head(10) 104 | ``` 105 | 106 | - **Top Cuisines**: This code highlights the cuisines with the highest average ratings, such as `Italian`, `Hawaiian`, and `American`. 107 | 108 | #### **Cuisines Rated by the Most People** 👥 109 | 110 | We now identify which cuisines have the most number of ratings, as more ratings usually indicate more popularity. 111 | 112 | ```python 113 | # Count the number of ratings for each cuisine 114 | ratings_count = cuisine_data.groupby('Cuisines')['Votes'].sum() 115 | 116 | # Top 10 cuisines rated by the most people 117 | top_cuisines_by_votes = ratings_count.sort_values(ascending=False).head(10) 118 | ``` 119 | 120 | - **Most Rated Cuisines**: The most rated cuisines are those that have the highest number of votes, such as `American` and `Italian`. 121 | 122 | --- 123 | 124 | ### **3. Data Visualization** 📊 125 | 126 | #### **Distribution of Aggregate Ratings** 📉 127 | 128 | We visualize the distribution of ratings using a histogram to see the overall spread. 129 | 130 | ```python 131 | import seaborn as sns 132 | import matplotlib.pyplot as plt 133 | 134 | # Histogram for Aggregate Ratings 135 | sns.histplot(cuisine_data['Aggregate rating'], kde=True) 136 | plt.title('Distribution of Aggregate Ratings') 137 | plt.xlabel('Rating') 138 | plt.ylabel('Frequency') 139 | plt.show() 140 | ``` 141 | 142 | - **Histogram**: The histogram shows the distribution of ratings across all cuisines, with a clear concentration of ratings between 4 and 5. 143 | 144 | #### **Votes vs. Aggregate Rating** 📈 145 | 146 | We use a scatter plot to visualize how the number of votes relates to the aggregate ratings. 147 | 148 | ```python 149 | sns.scatterplot(x=cuisine_data['Votes'], y=cuisine_data['Aggregate rating']) 150 | plt.title('Votes vs. Aggregate Rating') 151 | plt.xlabel('Number of Votes') 152 | plt.ylabel('Aggregate Rating') 153 | plt.show() 154 | ``` 155 | 156 | - **Scatter Plot**: The plot shows that as the number of votes increases, the aggregate rating generally increases, with some outliers. 157 | 158 | #### **Cuisines with the Most Consistent Ratings** 📏 159 | 160 | We create a bar plot to display the cuisines with the most consistent ratings. 161 | 162 | ```python 163 | sns.barplot(x=consistent_cuisines.index, y=consistent_cuisines.values) 164 | plt.title('Cuisines with Most Consistent Ratings') 165 | plt.xlabel('Cuisine') 166 | plt.ylabel('Standard Deviation of Ratings') 167 | plt.xticks(rotation=90) 168 | plt.show() 169 | ``` 170 | 171 | - **Bar Plot**: The plot highlights the top cuisines with the lowest standard deviations in their ratings, indicating consistency. 172 | 173 | --- 174 | 175 | ### **4. Clustering Cuisines** 🤖 176 | 177 | We apply KMeans clustering to group cuisines based on their `Votes` and `Aggregate rating` values. This allows us to find patterns in how cuisines are rated and voted upon. 178 | 179 | ```python 180 | from sklearn.preprocessing import StandardScaler 181 | from sklearn.cluster import KMeans 182 | 183 | # Select relevant features for clustering 184 | X = cuisine_data[['Votes', 'Aggregate rating']] 185 | 186 | # Normalize the data 187 | scaler = StandardScaler() 188 | X_scaled = scaler.fit_transform(X) 189 | 190 | # Apply KMeans clustering 191 | kmeans = KMeans(n_clusters=3, random_state=0) 192 | cuisine_data['Cluster'] = kmeans.fit_predict(X_scaled) 193 | 194 | # Visualizing the clusters 195 | sns.scatterplot(x=X_scaled[:, 0], y=X_scaled[:, 1], hue=cuisine_data['Cluster'], palette='viridis') 196 | plt.title('Clustering of Cuisines Based on Votes and Ratings') 197 | plt.xlabel('Normalized Votes') 198 | plt.ylabel('Normalized Aggregate Rating') 199 | plt.show() 200 | ``` 201 | 202 | - **Clustering**: We use KMeans clustering to categorize cuisines into three groups based on their vote count and rating. 203 | - **Visualization**: The scatter plot visualizes how different cuisines are clustered based on these features. 204 | 205 | --- 206 | 207 | ### **5. Insights and Summary** 💡 208 | 209 | From the analysis, we gain the following insights: 210 | 211 | - **Top Rated Cuisines**: `Italian`, `American`, and `Hawaiian` are among the top-rated cuisines. 212 | - **Consistency**: Cuisines with low standard deviation in ratings, like `Italian`, `American`, and `Mexican`, are highly consistent in their ratings. 213 | - **Popularity**: Cuisines with the most votes are generally those that have more global recognition, such as `Italian` and `American`. 214 | - **Cluster Groupings**: Clustering based on `Votes` and `Aggregate rating` reveals that cuisines like `Italian` and `Mexican` form their own clusters based on higher ratings and votes. 215 | 216 | --- 217 | 218 | ## 🛠️ **Libraries Used** 219 | 220 | - **Pandas**: For data manipulation and analysis. 221 | - **Matplotlib & Seaborn**: For static and visualizations. 222 | - **Scikit-learn**: For clustering techniques. 223 | - **NumPy**: For numerical operations. 224 | - **Plotly**: For creating interactive visualizations. 225 | 226 | 227 | This provides an in-depth analysis of cuisine ratings, votes, and how they correlate with each other. By using clustering techniques, we uncover hidden patterns and gain insights into which cuisines are consistently rated highly and which ones are most popular based on votes. The combination of data cleaning, EDA, and clustering makes this analysis a comprehensive exploration of the cuisine ratings dataset. 228 | 229 | 230 | 231 | 232 | To include the image from your GitHub repository and create a small-size dashboard for **Vites vs Aggregate Rating** in your README, here's how you can modify it: 233 | 234 | --- 235 | 236 | ### 📊 **Vites vs Aggregate Rating Dashboard** 🚀 237 | 238 | The following visualization showcases the relationship between the **number of votes (Vites)** and **Aggregate Rating** for each cuisine. It helps us understand how higher ratings correlate with more votes, providing insights into the popularity and consistency of cuisines. 239 | 240 | #### **Visualization** 🖼️ 241 | 242 | You can view the plot below, which visualizes the correlation between `Votes` and `Aggregate Rating` for each cuisine: 243 | 244 | ![Vites vs Aggregate Rating](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/Capture.PNG?raw=true) 245 | 246 | 247 | 248 | ## 📊 **Data Visualization Gallery** 🚀 249 | 250 | ### Here are various visualizations for better understanding of data: 251 | 252 | | ![Average Rating by Cuisine](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/average_rating_by_cuisine.png?raw=true) | ![Boxplot Ratings by Cuisine](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/boxplot_ratings_by_cuisine.png?raw=true) | 253 | | --- | --- | 254 | | **Average Rating by Cuisine** | **Boxplot Ratings by Cuisine** | 255 | 256 | | ![Correlation Heatmap](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/correlation_heatmap.png?raw=true) | ![Jointplot Votes vs Rating](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/jointplot_votes_rating.png?raw=true) | 257 | | --- | --- | 258 | | **Correlation Heatmap** | **Jointplot Votes vs Rating** | 259 | 260 | 261 | | ![Pair Plot](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/pair_plot.png?raw=true) | ![Pairplot Votes vs Rating](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/pairplot_votes_rating.png?raw=true) | 262 | | --- | --- | 263 | | **Pair Plot** | **Pairplot Votes vs Rating** | 264 | 265 | 266 | | ![Rating Distribution Boxplot](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/rating_distribution_boxplot.png?raw=true) | ![Rating Distribution Histogram](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/rating_distribution_histogram.png?raw=true) | 267 | | --- | --- | 268 | | **Rating Distribution Boxplot** | **Rating Distribution Histogram** | 269 | 270 | | ![Swarmplot Ratings by Cuisines](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/swarmplot_ratings_cuisines.png?raw=true) | ![Top Cuisines Average Rating](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/top_cuisines_avg_rating.png?raw=true) | 271 | | --- | --- | 272 | | **Swarmplot Ratings by Cuisines** | **Top Cuisines Average Rating** | 273 | 274 | 275 | | ![Violinplot Votes by Rating](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/violinplot_votes_by_rating.png?raw=true) | ![Votes vs Aggregate Rating](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/votes_vs_aggregate_rating.png?raw=true) | 276 | | --- | --- | 277 | | **Violinplot Votes by Rating** | **Votes vs Aggregate Rating** | 278 | 279 | | ![Votes vs Rating Scatter](https://github.com/rubydamodar/Cognifyz-Data-Mastery-Program/blob/main/LEVEL%203%20TASK%203%20Data%20Visualization/votes_vs_rating_scatter.png?raw=true) | | 280 | | --- | --- | 281 | | **Votes vs Rating Scatter** | | 282 | 283 | --------------------------------------------------------------------------------