Depression.ipynb (116030B)
1 { 2 "cells": [ 3 { 4 "cell_type": "markdown", 5 "metadata": {}, 6 "source": [ 7 "This is a stupid dataset to do ML with because it seems they used an algorithm to calculate the depression scores and those scores are not self set. " 8 ] 9 }, 10 { 11 "cell_type": "code", 12 "execution_count": 1524, 13 "metadata": {}, 14 "outputs": [ 15 { 16 "data": { 17 "text/html": [ 18 "<div>\n", 19 "<style scoped>\n", 20 " .dataframe tbody tr th:only-of-type {\n", 21 " vertical-align: middle;\n", 22 " }\n", 23 "\n", 24 " .dataframe tbody tr th {\n", 25 " vertical-align: top;\n", 26 " }\n", 27 "\n", 28 " .dataframe thead th {\n", 29 " text-align: right;\n", 30 " }\n", 31 "</style>\n", 32 "<table border=\"1\" class=\"dataframe\">\n", 33 " <thead>\n", 34 " <tr style=\"text-align: right;\">\n", 35 " <th></th>\n", 36 " <th>1. Age</th>\n", 37 " <th>2. Gender</th>\n", 38 " <th>3. University</th>\n", 39 " <th>4. Department</th>\n", 40 " <th>5. Academic Year</th>\n", 41 " <th>6. Current CGPA</th>\n", 42 " <th>7. Did you receive a waiver or scholarship at your university?</th>\n", 43 " <th>1. In a semester, how often you felt nervous, anxious or on edge due to academic pressure?</th>\n", 44 " <th>2. In a semester, how often have you been unable to stop worrying about your academic affairs?</th>\n", 45 " <th>3. In a semester, how often have you had trouble relaxing due to academic pressure?</th>\n", 46 " <th>...</th>\n", 47 " <th>2. In a semester, how often have you been feeling down, depressed or hopeless?</th>\n", 48 " <th>3. In a semester, how often have you had trouble falling or staying asleep, or sleeping too much?</th>\n", 49 " <th>4. In a semester, how often have you been feeling tired or having little energy?</th>\n", 50 " <th>5. In a semester, how often have you had poor appetite or overeating?</th>\n", 51 " <th>6. In a semester, how often have you been feeling bad about yourself - or that you are a failure or have let yourself or your family down?</th>\n", 52 " <th>7. In a semester, how often have you been having trouble concentrating on things, such as reading the books or watching television?</th>\n", 53 " <th>8. In a semester, how often have you moved or spoke too slowly for other people to notice? Or you've been moving a lot more than usual because you've been restless?</th>\n", 54 " <th>9. In a semester, how often have you had thoughts that you would be better off dead, or of hurting yourself?</th>\n", 55 " <th>Depression Value</th>\n", 56 " <th>Depression Label</th>\n", 57 " </tr>\n", 58 " </thead>\n", 59 " <tbody>\n", 60 " <tr>\n", 61 " <th>0</th>\n", 62 " <td>18-22</td>\n", 63 " <td>Female</td>\n", 64 " <td>Independent University, Bangladesh (IUB)</td>\n", 65 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 66 " <td>Fourth Year or Equivalent</td>\n", 67 " <td>2.50 - 2.99</td>\n", 68 " <td>No</td>\n", 69 " <td>1</td>\n", 70 " <td>1</td>\n", 71 " <td>1</td>\n", 72 " <td>...</td>\n", 73 " <td>2</td>\n", 74 " <td>1</td>\n", 75 " <td>1</td>\n", 76 " <td>2</td>\n", 77 " <td>1</td>\n", 78 " <td>1</td>\n", 79 " <td>1</td>\n", 80 " <td>1</td>\n", 81 " <td>11</td>\n", 82 " <td>Moderate Depression</td>\n", 83 " </tr>\n", 84 " <tr>\n", 85 " <th>1</th>\n", 86 " <td>18-22</td>\n", 87 " <td>Male</td>\n", 88 " <td>Independent University, Bangladesh (IUB)</td>\n", 89 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 90 " <td>First Year or Equivalent</td>\n", 91 " <td>3.80 - 4.00</td>\n", 92 " <td>No</td>\n", 93 " <td>2</td>\n", 94 " <td>2</td>\n", 95 " <td>1</td>\n", 96 " <td>...</td>\n", 97 " <td>1</td>\n", 98 " <td>1</td>\n", 99 " <td>1</td>\n", 100 " <td>1</td>\n", 101 " <td>1</td>\n", 102 " <td>1</td>\n", 103 " <td>1</td>\n", 104 " <td>1</td>\n", 105 " <td>9</td>\n", 106 " <td>Mild Depression</td>\n", 107 " </tr>\n", 108 " <tr>\n", 109 " <th>2</th>\n", 110 " <td>18-22</td>\n", 111 " <td>Male</td>\n", 112 " <td>Independent University, Bangladesh (IUB)</td>\n", 113 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 114 " <td>First Year or Equivalent</td>\n", 115 " <td>3.00 - 3.39</td>\n", 116 " <td>No</td>\n", 117 " <td>2</td>\n", 118 " <td>1</td>\n", 119 " <td>1</td>\n", 120 " <td>...</td>\n", 121 " <td>0</td>\n", 122 " <td>2</td>\n", 123 " <td>3</td>\n", 124 " <td>2</td>\n", 125 " <td>2</td>\n", 126 " <td>2</td>\n", 127 " <td>2</td>\n", 128 " <td>1</td>\n", 129 " <td>16</td>\n", 130 " <td>Moderately Severe Depression</td>\n", 131 " </tr>\n", 132 " <tr>\n", 133 " <th>3</th>\n", 134 " <td>18-22</td>\n", 135 " <td>Male</td>\n", 136 " <td>Independent University, Bangladesh (IUB)</td>\n", 137 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 138 " <td>First Year or Equivalent</td>\n", 139 " <td>3.40 - 3.79</td>\n", 140 " <td>No</td>\n", 141 " <td>2</td>\n", 142 " <td>1</td>\n", 143 " <td>1</td>\n", 144 " <td>...</td>\n", 145 " <td>1</td>\n", 146 " <td>1</td>\n", 147 " <td>1</td>\n", 148 " <td>1</td>\n", 149 " <td>1</td>\n", 150 " <td>1</td>\n", 151 " <td>1</td>\n", 152 " <td>1</td>\n", 153 " <td>9</td>\n", 154 " <td>Mild Depression</td>\n", 155 " </tr>\n", 156 " <tr>\n", 157 " <th>4</th>\n", 158 " <td>18-22</td>\n", 159 " <td>Male</td>\n", 160 " <td>Independent University, Bangladesh (IUB)</td>\n", 161 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 162 " <td>First Year or Equivalent</td>\n", 163 " <td>3.40 - 3.79</td>\n", 164 " <td>No</td>\n", 165 " <td>1</td>\n", 166 " <td>1</td>\n", 167 " <td>1</td>\n", 168 " <td>...</td>\n", 169 " <td>1</td>\n", 170 " <td>1</td>\n", 171 " <td>1</td>\n", 172 " <td>1</td>\n", 173 " <td>1</td>\n", 174 " <td>1</td>\n", 175 " <td>1</td>\n", 176 " <td>1</td>\n", 177 " <td>9</td>\n", 178 " <td>Mild Depression</td>\n", 179 " </tr>\n", 180 " </tbody>\n", 181 "</table>\n", 182 "<p>5 rows × 39 columns</p>\n", 183 "</div>" 184 ], 185 "text/plain": [ 186 " 1. Age 2. Gender 3. University \\\n", 187 "0 18-22 Female Independent University, Bangladesh (IUB) \n", 188 "1 18-22 Male Independent University, Bangladesh (IUB) \n", 189 "2 18-22 Male Independent University, Bangladesh (IUB) \n", 190 "3 18-22 Male Independent University, Bangladesh (IUB) \n", 191 "4 18-22 Male Independent University, Bangladesh (IUB) \n", 192 "\n", 193 " 4. Department 5. Academic Year \\\n", 194 "0 Engineering - CS / CSE / CSC / Similar to CS Fourth Year or Equivalent \n", 195 "1 Engineering - CS / CSE / CSC / Similar to CS First Year or Equivalent \n", 196 "2 Engineering - CS / CSE / CSC / Similar to CS First Year or Equivalent \n", 197 "3 Engineering - CS / CSE / CSC / Similar to CS First Year or Equivalent \n", 198 "4 Engineering - CS / CSE / CSC / Similar to CS First Year or Equivalent \n", 199 "\n", 200 " 6. Current CGPA \\\n", 201 "0 2.50 - 2.99 \n", 202 "1 3.80 - 4.00 \n", 203 "2 3.00 - 3.39 \n", 204 "3 3.40 - 3.79 \n", 205 "4 3.40 - 3.79 \n", 206 "\n", 207 " 7. Did you receive a waiver or scholarship at your university? \\\n", 208 "0 No \n", 209 "1 No \n", 210 "2 No \n", 211 "3 No \n", 212 "4 No \n", 213 "\n", 214 " 1. In a semester, how often you felt nervous, anxious or on edge due to academic pressure? \\\n", 215 "0 1 \n", 216 "1 2 \n", 217 "2 2 \n", 218 "3 2 \n", 219 "4 1 \n", 220 "\n", 221 " 2. In a semester, how often have you been unable to stop worrying about your academic affairs? \\\n", 222 "0 1 \n", 223 "1 2 \n", 224 "2 1 \n", 225 "3 1 \n", 226 "4 1 \n", 227 "\n", 228 " 3. In a semester, how often have you had trouble relaxing due to academic pressure? \\\n", 229 "0 1 \n", 230 "1 1 \n", 231 "2 1 \n", 232 "3 1 \n", 233 "4 1 \n", 234 "\n", 235 " ... \\\n", 236 "0 ... \n", 237 "1 ... \n", 238 "2 ... \n", 239 "3 ... \n", 240 "4 ... \n", 241 "\n", 242 " 2. In a semester, how often have you been feeling down, depressed or hopeless? \\\n", 243 "0 2 \n", 244 "1 1 \n", 245 "2 0 \n", 246 "3 1 \n", 247 "4 1 \n", 248 "\n", 249 " 3. In a semester, how often have you had trouble falling or staying asleep, or sleeping too much? \\\n", 250 "0 1 \n", 251 "1 1 \n", 252 "2 2 \n", 253 "3 1 \n", 254 "4 1 \n", 255 "\n", 256 " 4. In a semester, how often have you been feeling tired or having little energy? \\\n", 257 "0 1 \n", 258 "1 1 \n", 259 "2 3 \n", 260 "3 1 \n", 261 "4 1 \n", 262 "\n", 263 " 5. In a semester, how often have you had poor appetite or overeating? \\\n", 264 "0 2 \n", 265 "1 1 \n", 266 "2 2 \n", 267 "3 1 \n", 268 "4 1 \n", 269 "\n", 270 " 6. In a semester, how often have you been feeling bad about yourself - or that you are a failure or have let yourself or your family down? \\\n", 271 "0 1 \n", 272 "1 1 \n", 273 "2 2 \n", 274 "3 1 \n", 275 "4 1 \n", 276 "\n", 277 " 7. In a semester, how often have you been having trouble concentrating on things, such as reading the books or watching television? \\\n", 278 "0 1 \n", 279 "1 1 \n", 280 "2 2 \n", 281 "3 1 \n", 282 "4 1 \n", 283 "\n", 284 " 8. In a semester, how often have you moved or spoke too slowly for other people to notice? Or you've been moving a lot more than usual because you've been restless? \\\n", 285 "0 1 \n", 286 "1 1 \n", 287 "2 2 \n", 288 "3 1 \n", 289 "4 1 \n", 290 "\n", 291 " 9. In a semester, how often have you had thoughts that you would be better off dead, or of hurting yourself? \\\n", 292 "0 1 \n", 293 "1 1 \n", 294 "2 1 \n", 295 "3 1 \n", 296 "4 1 \n", 297 "\n", 298 " Depression Value Depression Label \n", 299 "0 11 Moderate Depression \n", 300 "1 9 Mild Depression \n", 301 "2 16 Moderately Severe Depression \n", 302 "3 9 Mild Depression \n", 303 "4 9 Mild Depression \n", 304 "\n", 305 "[5 rows x 39 columns]" 306 ] 307 }, 308 "execution_count": 1524, 309 "metadata": {}, 310 "output_type": "execute_result" 311 } 312 ], 313 "source": [ 314 "import pandas as pd\n", 315 "\n", 316 "df = pd.read_csv('../datasets/depression/Depression.csv')\n", 317 "df.head()" 318 ] 319 }, 320 { 321 "cell_type": "code", 322 "execution_count": 1525, 323 "metadata": {}, 324 "outputs": [ 325 { 326 "data": { 327 "text/plain": [ 328 "5. Academic Year\n", 329 "First Year or Equivalent 592\n", 330 "Third Year or Equivalent 552\n", 331 "Fourth Year or Equivalent 392\n", 332 "Second Year or Equivalent 370\n", 333 "Other 71\n", 334 "Name: count, dtype: int64" 335 ] 336 }, 337 "execution_count": 1525, 338 "metadata": {}, 339 "output_type": "execute_result" 340 } 341 ], 342 "source": [ 343 "df['5. Academic Year'].value_counts()" 344 ] 345 }, 346 { 347 "cell_type": "code", 348 "execution_count": 1526, 349 "metadata": {}, 350 "outputs": [ 351 { 352 "data": { 353 "text/plain": [ 354 "5. Academic Year\n", 355 "1 592\n", 356 "3 552\n", 357 "4 392\n", 358 "2 370\n", 359 "5 71\n", 360 "Name: count, dtype: int64" 361 ] 362 }, 363 "execution_count": 1526, 364 "metadata": {}, 365 "output_type": "execute_result" 366 } 367 ], 368 "source": [ 369 "def toNum( year : str):\n", 370 " if 'First' in year:\n", 371 " return 1\n", 372 " if 'Second' in year:\n", 373 " return 2\n", 374 " if 'Third' in year:\n", 375 " return 3\n", 376 " if 'Fourth' in year:\n", 377 " return 4\n", 378 " return 5\n", 379 "\n", 380 "\n", 381 "\n", 382 "df['5. Academic Year'] = df['5. Academic Year'].apply(toNum)\n", 383 "df['5. Academic Year'].value_counts()" 384 ] 385 }, 386 { 387 "cell_type": "code", 388 "execution_count": 1527, 389 "metadata": {}, 390 "outputs": [ 391 { 392 "data": { 393 "text/plain": [ 394 "6. Current CGPA\n", 395 "3.00 - 3.39 572\n", 396 "3.40 - 3.79 551\n", 397 "2.50 - 2.99 368\n", 398 "3.80 - 4.00 237\n", 399 "Other 168\n", 400 "Below 2.50 81\n", 401 "Name: count, dtype: int64" 402 ] 403 }, 404 "execution_count": 1527, 405 "metadata": {}, 406 "output_type": "execute_result" 407 } 408 ], 409 "source": [ 410 "df['6. Current CGPA'].value_counts()" 411 ] 412 }, 413 { 414 "cell_type": "code", 415 "execution_count": 1528, 416 "metadata": {}, 417 "outputs": [], 418 "source": [ 419 "def toVal(cgpa : str):\n", 420 " if '3.00' in cgpa:\n", 421 " return 3\n", 422 " if '3.40' in cgpa:\n", 423 " return 3.4\n", 424 " if 'Below 2.50' in cgpa:\n", 425 " return 2.0\n", 426 " if '3.80' in cgpa:\n", 427 " return 3.8\n", 428 " if '2.5' in cgpa:\n", 429 " return 2.5\n", 430 " return 3 # Guess that other should go here.\n", 431 "\n", 432 "df['6. Current CGPA'] = df['6. Current CGPA'].apply(toVal)" 433 ] 434 }, 435 { 436 "cell_type": "code", 437 "execution_count": 1529, 438 "metadata": {}, 439 "outputs": [ 440 { 441 "data": { 442 "text/plain": [ 443 "6. Current CGPA\n", 444 "3.0 740\n", 445 "3.4 551\n", 446 "2.5 368\n", 447 "3.8 237\n", 448 "2.0 81\n", 449 "Name: count, dtype: int64" 450 ] 451 }, 452 "execution_count": 1529, 453 "metadata": {}, 454 "output_type": "execute_result" 455 } 456 ], 457 "source": [ 458 "df['6. Current CGPA'].value_counts()" 459 ] 460 }, 461 { 462 "cell_type": "code", 463 "execution_count": 1530, 464 "metadata": {}, 465 "outputs": [], 466 "source": [ 467 "df['7. Did you receive a waiver or scholarship at your university?'] = (df['7. Did you receive a waiver or scholarship at your university?'] == 'Yes').astype(int)" 468 ] 469 }, 470 { 471 "cell_type": "code", 472 "execution_count": 1531, 473 "metadata": {}, 474 "outputs": [ 475 { 476 "data": { 477 "text/plain": [ 478 "7. Did you receive a waiver or scholarship at your university?\n", 479 "0 1571\n", 480 "1 406\n", 481 "Name: count, dtype: int64" 482 ] 483 }, 484 "execution_count": 1531, 485 "metadata": {}, 486 "output_type": "execute_result" 487 } 488 ], 489 "source": [ 490 "df['7. Did you receive a waiver or scholarship at your university?'].value_counts()" 491 ] 492 }, 493 { 494 "cell_type": "code", 495 "execution_count": 1532, 496 "metadata": {}, 497 "outputs": [], 498 "source": [ 499 "df['2. Gender'] = (df['2. Gender'] == 'Male').astype(int)" 500 ] 501 }, 502 { 503 "cell_type": "code", 504 "execution_count": 1533, 505 "metadata": {}, 506 "outputs": [ 507 { 508 "data": { 509 "text/html": [ 510 "<div>\n", 511 "<style scoped>\n", 512 " .dataframe tbody tr th:only-of-type {\n", 513 " vertical-align: middle;\n", 514 " }\n", 515 "\n", 516 " .dataframe tbody tr th {\n", 517 " vertical-align: top;\n", 518 " }\n", 519 "\n", 520 " .dataframe thead th {\n", 521 " text-align: right;\n", 522 " }\n", 523 "</style>\n", 524 "<table border=\"1\" class=\"dataframe\">\n", 525 " <thead>\n", 526 " <tr style=\"text-align: right;\">\n", 527 " <th></th>\n", 528 " <th>1. Age</th>\n", 529 " <th>2. Gender</th>\n", 530 " <th>3. University</th>\n", 531 " <th>4. Department</th>\n", 532 " <th>5. Academic Year</th>\n", 533 " <th>6. Current CGPA</th>\n", 534 " <th>7. Did you receive a waiver or scholarship at your university?</th>\n", 535 " <th>1. In a semester, how often you felt nervous, anxious or on edge due to academic pressure?</th>\n", 536 " <th>2. In a semester, how often have you been unable to stop worrying about your academic affairs?</th>\n", 537 " <th>3. In a semester, how often have you had trouble relaxing due to academic pressure?</th>\n", 538 " <th>...</th>\n", 539 " <th>2. In a semester, how often have you been feeling down, depressed or hopeless?</th>\n", 540 " <th>3. In a semester, how often have you had trouble falling or staying asleep, or sleeping too much?</th>\n", 541 " <th>4. In a semester, how often have you been feeling tired or having little energy?</th>\n", 542 " <th>5. In a semester, how often have you had poor appetite or overeating?</th>\n", 543 " <th>6. In a semester, how often have you been feeling bad about yourself - or that you are a failure or have let yourself or your family down?</th>\n", 544 " <th>7. In a semester, how often have you been having trouble concentrating on things, such as reading the books or watching television?</th>\n", 545 " <th>8. In a semester, how often have you moved or spoke too slowly for other people to notice? Or you've been moving a lot more than usual because you've been restless?</th>\n", 546 " <th>9. In a semester, how often have you had thoughts that you would be better off dead, or of hurting yourself?</th>\n", 547 " <th>Depression Value</th>\n", 548 " <th>Depression Label</th>\n", 549 " </tr>\n", 550 " </thead>\n", 551 " <tbody>\n", 552 " <tr>\n", 553 " <th>0</th>\n", 554 " <td>18-22</td>\n", 555 " <td>0</td>\n", 556 " <td>Independent University, Bangladesh (IUB)</td>\n", 557 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 558 " <td>4</td>\n", 559 " <td>2.5</td>\n", 560 " <td>0</td>\n", 561 " <td>1</td>\n", 562 " <td>1</td>\n", 563 " <td>1</td>\n", 564 " <td>...</td>\n", 565 " <td>2</td>\n", 566 " <td>1</td>\n", 567 " <td>1</td>\n", 568 " <td>2</td>\n", 569 " <td>1</td>\n", 570 " <td>1</td>\n", 571 " <td>1</td>\n", 572 " <td>1</td>\n", 573 " <td>11</td>\n", 574 " <td>Moderate Depression</td>\n", 575 " </tr>\n", 576 " <tr>\n", 577 " <th>1</th>\n", 578 " <td>18-22</td>\n", 579 " <td>1</td>\n", 580 " <td>Independent University, Bangladesh (IUB)</td>\n", 581 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 582 " <td>1</td>\n", 583 " <td>3.8</td>\n", 584 " <td>0</td>\n", 585 " <td>2</td>\n", 586 " <td>2</td>\n", 587 " <td>1</td>\n", 588 " <td>...</td>\n", 589 " <td>1</td>\n", 590 " <td>1</td>\n", 591 " <td>1</td>\n", 592 " <td>1</td>\n", 593 " <td>1</td>\n", 594 " <td>1</td>\n", 595 " <td>1</td>\n", 596 " <td>1</td>\n", 597 " <td>9</td>\n", 598 " <td>Mild Depression</td>\n", 599 " </tr>\n", 600 " <tr>\n", 601 " <th>2</th>\n", 602 " <td>18-22</td>\n", 603 " <td>1</td>\n", 604 " <td>Independent University, Bangladesh (IUB)</td>\n", 605 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 606 " <td>1</td>\n", 607 " <td>3.0</td>\n", 608 " <td>0</td>\n", 609 " <td>2</td>\n", 610 " <td>1</td>\n", 611 " <td>1</td>\n", 612 " <td>...</td>\n", 613 " <td>0</td>\n", 614 " <td>2</td>\n", 615 " <td>3</td>\n", 616 " <td>2</td>\n", 617 " <td>2</td>\n", 618 " <td>2</td>\n", 619 " <td>2</td>\n", 620 " <td>1</td>\n", 621 " <td>16</td>\n", 622 " <td>Moderately Severe Depression</td>\n", 623 " </tr>\n", 624 " <tr>\n", 625 " <th>3</th>\n", 626 " <td>18-22</td>\n", 627 " <td>1</td>\n", 628 " <td>Independent University, Bangladesh (IUB)</td>\n", 629 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 630 " <td>1</td>\n", 631 " <td>3.4</td>\n", 632 " <td>0</td>\n", 633 " <td>2</td>\n", 634 " <td>1</td>\n", 635 " <td>1</td>\n", 636 " <td>...</td>\n", 637 " <td>1</td>\n", 638 " <td>1</td>\n", 639 " <td>1</td>\n", 640 " <td>1</td>\n", 641 " <td>1</td>\n", 642 " <td>1</td>\n", 643 " <td>1</td>\n", 644 " <td>1</td>\n", 645 " <td>9</td>\n", 646 " <td>Mild Depression</td>\n", 647 " </tr>\n", 648 " <tr>\n", 649 " <th>4</th>\n", 650 " <td>18-22</td>\n", 651 " <td>1</td>\n", 652 " <td>Independent University, Bangladesh (IUB)</td>\n", 653 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 654 " <td>1</td>\n", 655 " <td>3.4</td>\n", 656 " <td>0</td>\n", 657 " <td>1</td>\n", 658 " <td>1</td>\n", 659 " <td>1</td>\n", 660 " <td>...</td>\n", 661 " <td>1</td>\n", 662 " <td>1</td>\n", 663 " <td>1</td>\n", 664 " <td>1</td>\n", 665 " <td>1</td>\n", 666 " <td>1</td>\n", 667 " <td>1</td>\n", 668 " <td>1</td>\n", 669 " <td>9</td>\n", 670 " <td>Mild Depression</td>\n", 671 " </tr>\n", 672 " </tbody>\n", 673 "</table>\n", 674 "<p>5 rows × 39 columns</p>\n", 675 "</div>" 676 ], 677 "text/plain": [ 678 " 1. Age 2. Gender 3. University \\\n", 679 "0 18-22 0 Independent University, Bangladesh (IUB) \n", 680 "1 18-22 1 Independent University, Bangladesh (IUB) \n", 681 "2 18-22 1 Independent University, Bangladesh (IUB) \n", 682 "3 18-22 1 Independent University, Bangladesh (IUB) \n", 683 "4 18-22 1 Independent University, Bangladesh (IUB) \n", 684 "\n", 685 " 4. Department 5. Academic Year \\\n", 686 "0 Engineering - CS / CSE / CSC / Similar to CS 4 \n", 687 "1 Engineering - CS / CSE / CSC / Similar to CS 1 \n", 688 "2 Engineering - CS / CSE / CSC / Similar to CS 1 \n", 689 "3 Engineering - CS / CSE / CSC / Similar to CS 1 \n", 690 "4 Engineering - CS / CSE / CSC / Similar to CS 1 \n", 691 "\n", 692 " 6. Current CGPA \\\n", 693 "0 2.5 \n", 694 "1 3.8 \n", 695 "2 3.0 \n", 696 "3 3.4 \n", 697 "4 3.4 \n", 698 "\n", 699 " 7. Did you receive a waiver or scholarship at your university? \\\n", 700 "0 0 \n", 701 "1 0 \n", 702 "2 0 \n", 703 "3 0 \n", 704 "4 0 \n", 705 "\n", 706 " 1. In a semester, how often you felt nervous, anxious or on edge due to academic pressure? \\\n", 707 "0 1 \n", 708 "1 2 \n", 709 "2 2 \n", 710 "3 2 \n", 711 "4 1 \n", 712 "\n", 713 " 2. In a semester, how often have you been unable to stop worrying about your academic affairs? \\\n", 714 "0 1 \n", 715 "1 2 \n", 716 "2 1 \n", 717 "3 1 \n", 718 "4 1 \n", 719 "\n", 720 " 3. In a semester, how often have you had trouble relaxing due to academic pressure? \\\n", 721 "0 1 \n", 722 "1 1 \n", 723 "2 1 \n", 724 "3 1 \n", 725 "4 1 \n", 726 "\n", 727 " ... \\\n", 728 "0 ... \n", 729 "1 ... \n", 730 "2 ... \n", 731 "3 ... \n", 732 "4 ... \n", 733 "\n", 734 " 2. In a semester, how often have you been feeling down, depressed or hopeless? \\\n", 735 "0 2 \n", 736 "1 1 \n", 737 "2 0 \n", 738 "3 1 \n", 739 "4 1 \n", 740 "\n", 741 " 3. In a semester, how often have you had trouble falling or staying asleep, or sleeping too much? \\\n", 742 "0 1 \n", 743 "1 1 \n", 744 "2 2 \n", 745 "3 1 \n", 746 "4 1 \n", 747 "\n", 748 " 4. In a semester, how often have you been feeling tired or having little energy? \\\n", 749 "0 1 \n", 750 "1 1 \n", 751 "2 3 \n", 752 "3 1 \n", 753 "4 1 \n", 754 "\n", 755 " 5. In a semester, how often have you had poor appetite or overeating? \\\n", 756 "0 2 \n", 757 "1 1 \n", 758 "2 2 \n", 759 "3 1 \n", 760 "4 1 \n", 761 "\n", 762 " 6. In a semester, how often have you been feeling bad about yourself - or that you are a failure or have let yourself or your family down? \\\n", 763 "0 1 \n", 764 "1 1 \n", 765 "2 2 \n", 766 "3 1 \n", 767 "4 1 \n", 768 "\n", 769 " 7. In a semester, how often have you been having trouble concentrating on things, such as reading the books or watching television? \\\n", 770 "0 1 \n", 771 "1 1 \n", 772 "2 2 \n", 773 "3 1 \n", 774 "4 1 \n", 775 "\n", 776 " 8. In a semester, how often have you moved or spoke too slowly for other people to notice? Or you've been moving a lot more than usual because you've been restless? \\\n", 777 "0 1 \n", 778 "1 1 \n", 779 "2 2 \n", 780 "3 1 \n", 781 "4 1 \n", 782 "\n", 783 " 9. In a semester, how often have you had thoughts that you would be better off dead, or of hurting yourself? \\\n", 784 "0 1 \n", 785 "1 1 \n", 786 "2 1 \n", 787 "3 1 \n", 788 "4 1 \n", 789 "\n", 790 " Depression Value Depression Label \n", 791 "0 11 Moderate Depression \n", 792 "1 9 Mild Depression \n", 793 "2 16 Moderately Severe Depression \n", 794 "3 9 Mild Depression \n", 795 "4 9 Mild Depression \n", 796 "\n", 797 "[5 rows x 39 columns]" 798 ] 799 }, 800 "execution_count": 1533, 801 "metadata": {}, 802 "output_type": "execute_result" 803 } 804 ], 805 "source": [ 806 "df.head()" 807 ] 808 }, 809 { 810 "cell_type": "code", 811 "execution_count": 1534, 812 "metadata": {}, 813 "outputs": [ 814 { 815 "data": { 816 "text/plain": [ 817 "Stress Label\n", 818 "Moderate Stress 1316\n", 819 "High Perceived Stress 546\n", 820 "Low Stress 115\n", 821 "Name: count, dtype: int64" 822 ] 823 }, 824 "execution_count": 1534, 825 "metadata": {}, 826 "output_type": "execute_result" 827 } 828 ], 829 "source": [ 830 "df['Stress Label'].value_counts()" 831 ] 832 }, 833 { 834 "cell_type": "code", 835 "execution_count": 1535, 836 "metadata": {}, 837 "outputs": [], 838 "source": [ 839 "df = df.drop(axis=1 , columns=['Stress Label' , 'Anxiety Label'])\n", 840 "# Already have the values no need for the text." 841 ] 842 }, 843 { 844 "cell_type": "code", 845 "execution_count": 1536, 846 "metadata": {}, 847 "outputs": [ 848 { 849 "data": { 850 "text/plain": [ 851 "1. Age\n", 852 "18-22 1273\n", 853 "23-26 673\n", 854 "27-30 24\n", 855 "Below 18 4\n", 856 "Above 30 3\n", 857 "Name: count, dtype: int64" 858 ] 859 }, 860 "execution_count": 1536, 861 "metadata": {}, 862 "output_type": "execute_result" 863 } 864 ], 865 "source": [ 866 "df['1. Age'].value_counts()" 867 ] 868 }, 869 { 870 "cell_type": "code", 871 "execution_count": 1537, 872 "metadata": {}, 873 "outputs": [], 874 "source": [ 875 "def setAges(inp):\n", 876 " if '22' in inp:\n", 877 " return 22\n", 878 " if '26' in inp:\n", 879 " return 26\n", 880 " if 'Above 30' in inp:\n", 881 " return 35\n", 882 " if '30' in inp:\n", 883 " return 30\n", 884 " return 18\n", 885 "\n", 886 "df['1. Age'] = df['1. Age'].apply(setAges)" 887 ] 888 }, 889 { 890 "cell_type": "code", 891 "execution_count": 1538, 892 "metadata": {}, 893 "outputs": [ 894 { 895 "data": { 896 "text/html": [ 897 "<div>\n", 898 "<style scoped>\n", 899 " .dataframe tbody tr th:only-of-type {\n", 900 " vertical-align: middle;\n", 901 " }\n", 902 "\n", 903 " .dataframe tbody tr th {\n", 904 " vertical-align: top;\n", 905 " }\n", 906 "\n", 907 " .dataframe thead th {\n", 908 " text-align: right;\n", 909 " }\n", 910 "</style>\n", 911 "<table border=\"1\" class=\"dataframe\">\n", 912 " <thead>\n", 913 " <tr style=\"text-align: right;\">\n", 914 " <th></th>\n", 915 " <th>3. University</th>\n", 916 " <th>4. Department</th>\n", 917 " <th>Depression Label</th>\n", 918 " </tr>\n", 919 " </thead>\n", 920 " <tbody>\n", 921 " <tr>\n", 922 " <th>0</th>\n", 923 " <td>Independent University, Bangladesh (IUB)</td>\n", 924 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 925 " <td>Moderate Depression</td>\n", 926 " </tr>\n", 927 " <tr>\n", 928 " <th>1</th>\n", 929 " <td>Independent University, Bangladesh (IUB)</td>\n", 930 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 931 " <td>Mild Depression</td>\n", 932 " </tr>\n", 933 " <tr>\n", 934 " <th>2</th>\n", 935 " <td>Independent University, Bangladesh (IUB)</td>\n", 936 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 937 " <td>Moderately Severe Depression</td>\n", 938 " </tr>\n", 939 " <tr>\n", 940 " <th>3</th>\n", 941 " <td>Independent University, Bangladesh (IUB)</td>\n", 942 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 943 " <td>Mild Depression</td>\n", 944 " </tr>\n", 945 " <tr>\n", 946 " <th>4</th>\n", 947 " <td>Independent University, Bangladesh (IUB)</td>\n", 948 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 949 " <td>Mild Depression</td>\n", 950 " </tr>\n", 951 " <tr>\n", 952 " <th>...</th>\n", 953 " <td>...</td>\n", 954 " <td>...</td>\n", 955 " <td>...</td>\n", 956 " </tr>\n", 957 " <tr>\n", 958 " <th>1972</th>\n", 959 " <td>Bangladesh Agricultural University (BAU)</td>\n", 960 " <td>Biological Sciences</td>\n", 961 " <td>Moderate Depression</td>\n", 962 " </tr>\n", 963 " <tr>\n", 964 " <th>1973</th>\n", 965 " <td>Bangladesh Agricultural University (BAU)</td>\n", 966 " <td>Other</td>\n", 967 " <td>Mild Depression</td>\n", 968 " </tr>\n", 969 " <tr>\n", 970 " <th>1974</th>\n", 971 " <td>Bangladesh Agricultural University (BAU)</td>\n", 972 " <td>Biological Sciences</td>\n", 973 " <td>Severe Depression</td>\n", 974 " </tr>\n", 975 " <tr>\n", 976 " <th>1975</th>\n", 977 " <td>Bangladesh Agricultural University (BAU)</td>\n", 978 " <td>Other</td>\n", 979 " <td>Moderate Depression</td>\n", 980 " </tr>\n", 981 " <tr>\n", 982 " <th>1976</th>\n", 983 " <td>Independent University, Bangladesh (IUB)</td>\n", 984 " <td>Engineering - CS / CSE / CSC / Similar to CS</td>\n", 985 " <td>No Depression</td>\n", 986 " </tr>\n", 987 " </tbody>\n", 988 "</table>\n", 989 "<p>1977 rows × 3 columns</p>\n", 990 "</div>" 991 ], 992 "text/plain": [ 993 " 3. University \\\n", 994 "0 Independent University, Bangladesh (IUB) \n", 995 "1 Independent University, Bangladesh (IUB) \n", 996 "2 Independent University, Bangladesh (IUB) \n", 997 "3 Independent University, Bangladesh (IUB) \n", 998 "4 Independent University, Bangladesh (IUB) \n", 999 "... ... \n", 1000 "1972 Bangladesh Agricultural University (BAU) \n", 1001 "1973 Bangladesh Agricultural University (BAU) \n", 1002 "1974 Bangladesh Agricultural University (BAU) \n", 1003 "1975 Bangladesh Agricultural University (BAU) \n", 1004 "1976 Independent University, Bangladesh (IUB) \n", 1005 "\n", 1006 " 4. Department \\\n", 1007 "0 Engineering - CS / CSE / CSC / Similar to CS \n", 1008 "1 Engineering - CS / CSE / CSC / Similar to CS \n", 1009 "2 Engineering - CS / CSE / CSC / Similar to CS \n", 1010 "3 Engineering - CS / CSE / CSC / Similar to CS \n", 1011 "4 Engineering - CS / CSE / CSC / Similar to CS \n", 1012 "... ... \n", 1013 "1972 Biological Sciences \n", 1014 "1973 Other \n", 1015 "1974 Biological Sciences \n", 1016 "1975 Other \n", 1017 "1976 Engineering - CS / CSE / CSC / Similar to CS \n", 1018 "\n", 1019 " Depression Label \n", 1020 "0 Moderate Depression \n", 1021 "1 Mild Depression \n", 1022 "2 Moderately Severe Depression \n", 1023 "3 Mild Depression \n", 1024 "4 Mild Depression \n", 1025 "... ... \n", 1026 "1972 Moderate Depression \n", 1027 "1973 Mild Depression \n", 1028 "1974 Severe Depression \n", 1029 "1975 Moderate Depression \n", 1030 "1976 No Depression \n", 1031 "\n", 1032 "[1977 rows x 3 columns]" 1033 ] 1034 }, 1035 "execution_count": 1538, 1036 "metadata": {}, 1037 "output_type": "execute_result" 1038 } 1039 ], 1040 "source": [ 1041 "df.select_dtypes(exclude=['int', 'float'])" 1042 ] 1043 }, 1044 { 1045 "cell_type": "markdown", 1046 "metadata": {}, 1047 "source": [ 1048 "one hot encode university and department.\n", 1049 "\n", 1050 "pull out depression label as that there seems to be a direct mapping between depression label and value where value is more descriptive." 1051 ] 1052 }, 1053 { 1054 "cell_type": "code", 1055 "execution_count": 1539, 1056 "metadata": {}, 1057 "outputs": [ 1058 { 1059 "data": { 1060 "text/plain": [ 1061 "<matplotlib.collections.PathCollection at 0x7f5cfb996610>" 1062 ] 1063 }, 1064 "execution_count": 1539, 1065 "metadata": {}, 1066 "output_type": "execute_result" 1067 }, 1068 { 1069 "data": { 1070 "image/png": "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", 1071 "text/plain": [ 1072 "<Figure size 640x480 with 1 Axes>" 1073 ] 1074 }, 1075 "metadata": {}, 1076 "output_type": "display_data" 1077 } 1078 ], 1079 "source": [ 1080 "import matplotlib.pyplot as plt\n", 1081 "\n", 1082 "plt.xticks(rotation=45)\n", 1083 "plt.scatter(df['Depression Label'], df['Depression Value'])" 1084 ] 1085 }, 1086 { 1087 "cell_type": "code", 1088 "execution_count": 1540, 1089 "metadata": {}, 1090 "outputs": [], 1091 "source": [ 1092 "def depressionScoreToLabel(score):\n", 1093 " if score == 0:\n", 1094 " return 'No Depression'\n", 1095 " if score < 5:\n", 1096 " return 'Minimal Depression'\n", 1097 " if score < 10:\n", 1098 " return 'Mild Depression'\n", 1099 " if score < 15:\n", 1100 " return 'Moderate Depression'\n", 1101 " if score < 20:\n", 1102 " 'Moderately Severe Depression'\n", 1103 " return 'Severe Depression'" 1104 ] 1105 }, 1106 { 1107 "cell_type": "code", 1108 "execution_count": 1541, 1109 "metadata": {}, 1110 "outputs": [], 1111 "source": [ 1112 "df = df.drop(axis=1, columns=['Depression Label'])" 1113 ] 1114 }, 1115 { 1116 "cell_type": "code", 1117 "execution_count": 1542, 1118 "metadata": {}, 1119 "outputs": [], 1120 "source": [ 1121 "from sklearn.model_selection import train_test_split\n", 1122 "\n", 1123 "df = df.dropna()\n", 1124 "\n", 1125 "y = df['Depression Value']\n", 1126 "df = df.drop(axis=1, columns=['Depression Value'])\n", 1127 "X_train, X_test, y_train, y_test = train_test_split(df,y)\n", 1128 "X_test, X_val, y_test, y_val = train_test_split(X_test,y_test, test_size=.5)" 1129 ] 1130 }, 1131 { 1132 "cell_type": "code", 1133 "execution_count": 1543, 1134 "metadata": {}, 1135 "outputs": [ 1136 { 1137 "data": { 1138 "text/plain": [ 1139 "(1482, 27)" 1140 ] 1141 }, 1142 "execution_count": 1543, 1143 "metadata": {}, 1144 "output_type": "execute_result" 1145 } 1146 ], 1147 "source": [ 1148 "from sklearn.preprocessing import OneHotEncoder\n", 1149 "\n", 1150 "ohe = OneHotEncoder(sparse_output=False, handle_unknown='ignore')\n", 1151 "enc = ohe.fit_transform(X_train[['3. University', '4. Department']])\n", 1152 "enc = pd.DataFrame(data=enc, columns=ohe.get_feature_names_out())\n", 1153 "enc.shape" 1154 ] 1155 }, 1156 { 1157 "cell_type": "code", 1158 "execution_count": 1544, 1159 "metadata": {}, 1160 "outputs": [], 1161 "source": [ 1162 "enc.reset_index(drop=True, inplace=True)\n", 1163 "X_train.reset_index(drop=True, inplace=True)\n", 1164 "X_train_encoded = pd.concat([enc, X_train], axis=1)" 1165 ] 1166 }, 1167 { 1168 "cell_type": "code", 1169 "execution_count": 1545, 1170 "metadata": {}, 1171 "outputs": [], 1172 "source": [ 1173 "X_train_encoded = X_train_encoded.drop(columns=['3. University', '4. Department'])\n" 1174 ] 1175 }, 1176 { 1177 "cell_type": "code", 1178 "execution_count": 1546, 1179 "metadata": {}, 1180 "outputs": [ 1181 { 1182 "data": { 1183 "text/html": [ 1184 "<style>#sk-container-id-37 {\n", 1185 " /* Definition of color scheme common for light and dark mode */\n", 1186 " --sklearn-color-text: black;\n", 1187 " --sklearn-color-line: gray;\n", 1188 " /* Definition of color scheme for unfitted estimators */\n", 1189 " --sklearn-color-unfitted-level-0: #fff5e6;\n", 1190 " --sklearn-color-unfitted-level-1: #f6e4d2;\n", 1191 " --sklearn-color-unfitted-level-2: #ffe0b3;\n", 1192 " --sklearn-color-unfitted-level-3: chocolate;\n", 1193 " /* Definition of color scheme for fitted estimators */\n", 1194 " --sklearn-color-fitted-level-0: #f0f8ff;\n", 1195 " --sklearn-color-fitted-level-1: #d4ebff;\n", 1196 " --sklearn-color-fitted-level-2: #b3dbfd;\n", 1197 " --sklearn-color-fitted-level-3: cornflowerblue;\n", 1198 "\n", 1199 " /* Specific color for light theme */\n", 1200 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 1201 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", 1202 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 1203 " --sklearn-color-icon: #696969;\n", 1204 "\n", 1205 " @media (prefers-color-scheme: dark) {\n", 1206 " /* Redefinition of color scheme for dark theme */\n", 1207 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 1208 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", 1209 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 1210 " --sklearn-color-icon: #878787;\n", 1211 " }\n", 1212 "}\n", 1213 "\n", 1214 "#sk-container-id-37 {\n", 1215 " color: var(--sklearn-color-text);\n", 1216 "}\n", 1217 "\n", 1218 "#sk-container-id-37 pre {\n", 1219 " padding: 0;\n", 1220 "}\n", 1221 "\n", 1222 "#sk-container-id-37 input.sk-hidden--visually {\n", 1223 " border: 0;\n", 1224 " clip: rect(1px 1px 1px 1px);\n", 1225 " clip: rect(1px, 1px, 1px, 1px);\n", 1226 " height: 1px;\n", 1227 " margin: -1px;\n", 1228 " overflow: hidden;\n", 1229 " padding: 0;\n", 1230 " position: absolute;\n", 1231 " width: 1px;\n", 1232 "}\n", 1233 "\n", 1234 "#sk-container-id-37 div.sk-dashed-wrapped {\n", 1235 " border: 1px dashed var(--sklearn-color-line);\n", 1236 " margin: 0 0.4em 0.5em 0.4em;\n", 1237 " box-sizing: border-box;\n", 1238 " padding-bottom: 0.4em;\n", 1239 " background-color: var(--sklearn-color-background);\n", 1240 "}\n", 1241 "\n", 1242 "#sk-container-id-37 div.sk-container {\n", 1243 " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", 1244 " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", 1245 " so we also need the `!important` here to be able to override the\n", 1246 " default hidden behavior on the sphinx rendered scikit-learn.org.\n", 1247 " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", 1248 " display: inline-block !important;\n", 1249 " position: relative;\n", 1250 "}\n", 1251 "\n", 1252 "#sk-container-id-37 div.sk-text-repr-fallback {\n", 1253 " display: none;\n", 1254 "}\n", 1255 "\n", 1256 "div.sk-parallel-item,\n", 1257 "div.sk-serial,\n", 1258 "div.sk-item {\n", 1259 " /* draw centered vertical line to link estimators */\n", 1260 " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", 1261 " background-size: 2px 100%;\n", 1262 " background-repeat: no-repeat;\n", 1263 " background-position: center center;\n", 1264 "}\n", 1265 "\n", 1266 "/* Parallel-specific style estimator block */\n", 1267 "\n", 1268 "#sk-container-id-37 div.sk-parallel-item::after {\n", 1269 " content: \"\";\n", 1270 " width: 100%;\n", 1271 " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", 1272 " flex-grow: 1;\n", 1273 "}\n", 1274 "\n", 1275 "#sk-container-id-37 div.sk-parallel {\n", 1276 " display: flex;\n", 1277 " align-items: stretch;\n", 1278 " justify-content: center;\n", 1279 " background-color: var(--sklearn-color-background);\n", 1280 " position: relative;\n", 1281 "}\n", 1282 "\n", 1283 "#sk-container-id-37 div.sk-parallel-item {\n", 1284 " display: flex;\n", 1285 " flex-direction: column;\n", 1286 "}\n", 1287 "\n", 1288 "#sk-container-id-37 div.sk-parallel-item:first-child::after {\n", 1289 " align-self: flex-end;\n", 1290 " width: 50%;\n", 1291 "}\n", 1292 "\n", 1293 "#sk-container-id-37 div.sk-parallel-item:last-child::after {\n", 1294 " align-self: flex-start;\n", 1295 " width: 50%;\n", 1296 "}\n", 1297 "\n", 1298 "#sk-container-id-37 div.sk-parallel-item:only-child::after {\n", 1299 " width: 0;\n", 1300 "}\n", 1301 "\n", 1302 "/* Serial-specific style estimator block */\n", 1303 "\n", 1304 "#sk-container-id-37 div.sk-serial {\n", 1305 " display: flex;\n", 1306 " flex-direction: column;\n", 1307 " align-items: center;\n", 1308 " background-color: var(--sklearn-color-background);\n", 1309 " padding-right: 1em;\n", 1310 " padding-left: 1em;\n", 1311 "}\n", 1312 "\n", 1313 "\n", 1314 "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", 1315 "clickable and can be expanded/collapsed.\n", 1316 "- Pipeline and ColumnTransformer use this feature and define the default style\n", 1317 "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", 1318 "*/\n", 1319 "\n", 1320 "/* Pipeline and ColumnTransformer style (default) */\n", 1321 "\n", 1322 "#sk-container-id-37 div.sk-toggleable {\n", 1323 " /* Default theme specific background. It is overwritten whether we have a\n", 1324 " specific estimator or a Pipeline/ColumnTransformer */\n", 1325 " background-color: var(--sklearn-color-background);\n", 1326 "}\n", 1327 "\n", 1328 "/* Toggleable label */\n", 1329 "#sk-container-id-37 label.sk-toggleable__label {\n", 1330 " cursor: pointer;\n", 1331 " display: block;\n", 1332 " width: 100%;\n", 1333 " margin-bottom: 0;\n", 1334 " padding: 0.5em;\n", 1335 " box-sizing: border-box;\n", 1336 " text-align: center;\n", 1337 "}\n", 1338 "\n", 1339 "#sk-container-id-37 label.sk-toggleable__label-arrow:before {\n", 1340 " /* Arrow on the left of the label */\n", 1341 " content: \"▸\";\n", 1342 " float: left;\n", 1343 " margin-right: 0.25em;\n", 1344 " color: var(--sklearn-color-icon);\n", 1345 "}\n", 1346 "\n", 1347 "#sk-container-id-37 label.sk-toggleable__label-arrow:hover:before {\n", 1348 " color: var(--sklearn-color-text);\n", 1349 "}\n", 1350 "\n", 1351 "/* Toggleable content - dropdown */\n", 1352 "\n", 1353 "#sk-container-id-37 div.sk-toggleable__content {\n", 1354 " max-height: 0;\n", 1355 " max-width: 0;\n", 1356 " overflow: hidden;\n", 1357 " text-align: left;\n", 1358 " /* unfitted */\n", 1359 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1360 "}\n", 1361 "\n", 1362 "#sk-container-id-37 div.sk-toggleable__content.fitted {\n", 1363 " /* fitted */\n", 1364 " background-color: var(--sklearn-color-fitted-level-0);\n", 1365 "}\n", 1366 "\n", 1367 "#sk-container-id-37 div.sk-toggleable__content pre {\n", 1368 " margin: 0.2em;\n", 1369 " border-radius: 0.25em;\n", 1370 " color: var(--sklearn-color-text);\n", 1371 " /* unfitted */\n", 1372 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1373 "}\n", 1374 "\n", 1375 "#sk-container-id-37 div.sk-toggleable__content.fitted pre {\n", 1376 " /* unfitted */\n", 1377 " background-color: var(--sklearn-color-fitted-level-0);\n", 1378 "}\n", 1379 "\n", 1380 "#sk-container-id-37 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", 1381 " /* Expand drop-down */\n", 1382 " max-height: 200px;\n", 1383 " max-width: 100%;\n", 1384 " overflow: auto;\n", 1385 "}\n", 1386 "\n", 1387 "#sk-container-id-37 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", 1388 " content: \"▾\";\n", 1389 "}\n", 1390 "\n", 1391 "/* Pipeline/ColumnTransformer-specific style */\n", 1392 "\n", 1393 "#sk-container-id-37 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1394 " color: var(--sklearn-color-text);\n", 1395 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1396 "}\n", 1397 "\n", 1398 "#sk-container-id-37 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1399 " background-color: var(--sklearn-color-fitted-level-2);\n", 1400 "}\n", 1401 "\n", 1402 "/* Estimator-specific style */\n", 1403 "\n", 1404 "/* Colorize estimator box */\n", 1405 "#sk-container-id-37 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1406 " /* unfitted */\n", 1407 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1408 "}\n", 1409 "\n", 1410 "#sk-container-id-37 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1411 " /* fitted */\n", 1412 " background-color: var(--sklearn-color-fitted-level-2);\n", 1413 "}\n", 1414 "\n", 1415 "#sk-container-id-37 div.sk-label label.sk-toggleable__label,\n", 1416 "#sk-container-id-37 div.sk-label label {\n", 1417 " /* The background is the default theme color */\n", 1418 " color: var(--sklearn-color-text-on-default-background);\n", 1419 "}\n", 1420 "\n", 1421 "/* On hover, darken the color of the background */\n", 1422 "#sk-container-id-37 div.sk-label:hover label.sk-toggleable__label {\n", 1423 " color: var(--sklearn-color-text);\n", 1424 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1425 "}\n", 1426 "\n", 1427 "/* Label box, darken color on hover, fitted */\n", 1428 "#sk-container-id-37 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", 1429 " color: var(--sklearn-color-text);\n", 1430 " background-color: var(--sklearn-color-fitted-level-2);\n", 1431 "}\n", 1432 "\n", 1433 "/* Estimator label */\n", 1434 "\n", 1435 "#sk-container-id-37 div.sk-label label {\n", 1436 " font-family: monospace;\n", 1437 " font-weight: bold;\n", 1438 " display: inline-block;\n", 1439 " line-height: 1.2em;\n", 1440 "}\n", 1441 "\n", 1442 "#sk-container-id-37 div.sk-label-container {\n", 1443 " text-align: center;\n", 1444 "}\n", 1445 "\n", 1446 "/* Estimator-specific */\n", 1447 "#sk-container-id-37 div.sk-estimator {\n", 1448 " font-family: monospace;\n", 1449 " border: 1px dotted var(--sklearn-color-border-box);\n", 1450 " border-radius: 0.25em;\n", 1451 " box-sizing: border-box;\n", 1452 " margin-bottom: 0.5em;\n", 1453 " /* unfitted */\n", 1454 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1455 "}\n", 1456 "\n", 1457 "#sk-container-id-37 div.sk-estimator.fitted {\n", 1458 " /* fitted */\n", 1459 " background-color: var(--sklearn-color-fitted-level-0);\n", 1460 "}\n", 1461 "\n", 1462 "/* on hover */\n", 1463 "#sk-container-id-37 div.sk-estimator:hover {\n", 1464 " /* unfitted */\n", 1465 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1466 "}\n", 1467 "\n", 1468 "#sk-container-id-37 div.sk-estimator.fitted:hover {\n", 1469 " /* fitted */\n", 1470 " background-color: var(--sklearn-color-fitted-level-2);\n", 1471 "}\n", 1472 "\n", 1473 "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", 1474 "\n", 1475 "/* Common style for \"i\" and \"?\" */\n", 1476 "\n", 1477 ".sk-estimator-doc-link,\n", 1478 "a:link.sk-estimator-doc-link,\n", 1479 "a:visited.sk-estimator-doc-link {\n", 1480 " float: right;\n", 1481 " font-size: smaller;\n", 1482 " line-height: 1em;\n", 1483 " font-family: monospace;\n", 1484 " background-color: var(--sklearn-color-background);\n", 1485 " border-radius: 1em;\n", 1486 " height: 1em;\n", 1487 " width: 1em;\n", 1488 " text-decoration: none !important;\n", 1489 " margin-left: 1ex;\n", 1490 " /* unfitted */\n", 1491 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 1492 " color: var(--sklearn-color-unfitted-level-1);\n", 1493 "}\n", 1494 "\n", 1495 ".sk-estimator-doc-link.fitted,\n", 1496 "a:link.sk-estimator-doc-link.fitted,\n", 1497 "a:visited.sk-estimator-doc-link.fitted {\n", 1498 " /* fitted */\n", 1499 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 1500 " color: var(--sklearn-color-fitted-level-1);\n", 1501 "}\n", 1502 "\n", 1503 "/* On hover */\n", 1504 "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", 1505 ".sk-estimator-doc-link:hover,\n", 1506 "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", 1507 ".sk-estimator-doc-link:hover {\n", 1508 " /* unfitted */\n", 1509 " background-color: var(--sklearn-color-unfitted-level-3);\n", 1510 " color: var(--sklearn-color-background);\n", 1511 " text-decoration: none;\n", 1512 "}\n", 1513 "\n", 1514 "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", 1515 ".sk-estimator-doc-link.fitted:hover,\n", 1516 "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", 1517 ".sk-estimator-doc-link.fitted:hover {\n", 1518 " /* fitted */\n", 1519 " background-color: var(--sklearn-color-fitted-level-3);\n", 1520 " color: var(--sklearn-color-background);\n", 1521 " text-decoration: none;\n", 1522 "}\n", 1523 "\n", 1524 "/* Span, style for the box shown on hovering the info icon */\n", 1525 ".sk-estimator-doc-link span {\n", 1526 " display: none;\n", 1527 " z-index: 9999;\n", 1528 " position: relative;\n", 1529 " font-weight: normal;\n", 1530 " right: .2ex;\n", 1531 " padding: .5ex;\n", 1532 " margin: .5ex;\n", 1533 " width: min-content;\n", 1534 " min-width: 20ex;\n", 1535 " max-width: 50ex;\n", 1536 " color: var(--sklearn-color-text);\n", 1537 " box-shadow: 2pt 2pt 4pt #999;\n", 1538 " /* unfitted */\n", 1539 " background: var(--sklearn-color-unfitted-level-0);\n", 1540 " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", 1541 "}\n", 1542 "\n", 1543 ".sk-estimator-doc-link.fitted span {\n", 1544 " /* fitted */\n", 1545 " background: var(--sklearn-color-fitted-level-0);\n", 1546 " border: var(--sklearn-color-fitted-level-3);\n", 1547 "}\n", 1548 "\n", 1549 ".sk-estimator-doc-link:hover span {\n", 1550 " display: block;\n", 1551 "}\n", 1552 "\n", 1553 "/* \"?\"-specific style due to the `<a>` HTML tag */\n", 1554 "\n", 1555 "#sk-container-id-37 a.estimator_doc_link {\n", 1556 " float: right;\n", 1557 " font-size: 1rem;\n", 1558 " line-height: 1em;\n", 1559 " font-family: monospace;\n", 1560 " background-color: var(--sklearn-color-background);\n", 1561 " border-radius: 1rem;\n", 1562 " height: 1rem;\n", 1563 " width: 1rem;\n", 1564 " text-decoration: none;\n", 1565 " /* unfitted */\n", 1566 " color: var(--sklearn-color-unfitted-level-1);\n", 1567 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 1568 "}\n", 1569 "\n", 1570 "#sk-container-id-37 a.estimator_doc_link.fitted {\n", 1571 " /* fitted */\n", 1572 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 1573 " color: var(--sklearn-color-fitted-level-1);\n", 1574 "}\n", 1575 "\n", 1576 "/* On hover */\n", 1577 "#sk-container-id-37 a.estimator_doc_link:hover {\n", 1578 " /* unfitted */\n", 1579 " background-color: var(--sklearn-color-unfitted-level-3);\n", 1580 " color: var(--sklearn-color-background);\n", 1581 " text-decoration: none;\n", 1582 "}\n", 1583 "\n", 1584 "#sk-container-id-37 a.estimator_doc_link.fitted:hover {\n", 1585 " /* fitted */\n", 1586 " background-color: var(--sklearn-color-fitted-level-3);\n", 1587 "}\n", 1588 "</style><div id=\"sk-container-id-37\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-37\" type=\"checkbox\" checked><label for=\"sk-estimator-id-37\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> LinearRegression<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>LinearRegression()</pre></div> </div></div></div></div>" 1589 ], 1590 "text/plain": [ 1591 "LinearRegression()" 1592 ] 1593 }, 1594 "execution_count": 1546, 1595 "metadata": {}, 1596 "output_type": "execute_result" 1597 } 1598 ], 1599 "source": [ 1600 "from sklearn.linear_model import LinearRegression \n", 1601 "\n", 1602 "model = LinearRegression()\n", 1603 "\n", 1604 "model.fit(X_train_encoded, y_train)" 1605 ] 1606 }, 1607 { 1608 "cell_type": "code", 1609 "execution_count": 1547, 1610 "metadata": {}, 1611 "outputs": [], 1612 "source": [ 1613 "enc = ohe.transform(X_test[['3. University', '4. Department']])\n", 1614 "enc = pd.DataFrame(data=enc, columns=ohe.get_feature_names_out())\n", 1615 "enc.reset_index(drop=True, inplace=True)\n", 1616 "X_test.reset_index(drop=True, inplace=True)\n", 1617 "\n", 1618 "X_test_encoded = pd.concat([enc, X_test], axis=1)\n", 1619 "X_test_encoded = X_test_encoded.drop(columns=['3. University', '4. Department'])" 1620 ] 1621 }, 1622 { 1623 "cell_type": "code", 1624 "execution_count": 1548, 1625 "metadata": {}, 1626 "outputs": [ 1627 { 1628 "data": { 1629 "text/plain": [ 1630 "1.0568174203497604e-14" 1631 ] 1632 }, 1633 "execution_count": 1548, 1634 "metadata": {}, 1635 "output_type": "execute_result" 1636 } 1637 ], 1638 "source": [ 1639 "from sklearn.metrics import mean_absolute_error\n", 1640 "\n", 1641 "y_pred = model.predict(X_test_encoded)\n", 1642 "\n", 1643 "mean_absolute_error(y_pred=y_pred, y_true=y_test)" 1644 ] 1645 } 1646 ], 1647 "metadata": { 1648 "kernelspec": { 1649 "display_name": ".venv", 1650 "language": "python", 1651 "name": "python3" 1652 }, 1653 "language_info": { 1654 "codemirror_mode": { 1655 "name": "ipython", 1656 "version": 3 1657 }, 1658 "file_extension": ".py", 1659 "mimetype": "text/x-python", 1660 "name": "python", 1661 "nbconvert_exporter": "python", 1662 "pygments_lexer": "ipython3", 1663 "version": "3.11.2" 1664 } 1665 }, 1666 "nbformat": 4, 1667 "nbformat_minor": 2 1668 }