├── P01-DataCleaning.ipynb ├── P02-DataCleaning.ipynb ├── P03-Correlation.ipynb ├── P04-ANOVA.ipynb ├── P05-SimpleLinearRegression.ipynb ├── P06-MultipleLinearRegression.ipynb ├── P07-PolynomialRegression.ipynb ├── P08-Model Evaluation.ipynb ├── P09-LogisticRegression.ipynb └── README.md /P03-Correlation.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Practical - Correlation\n", 8 | "This practical session will demonstrate how to handle missing data. We assume everyone to have adequate understanding of Python programming language. For those who would like to refresh Python skill, we would like to recommend our \"Programming for Data Science Series\" where we covered almost all aspects of Python programming in data science domain.\n", 9 | "Refer below URL for full playlist of almost 10 hours video lesson in Burmese Language.\n", 10 | "URL : https://www.youtube.com/watch?v=jOZNjVVZIVs&list=PLD_eiqVVLZDi9GZZJDC8Zx4-3Np8LHs52" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 2, 16 | "metadata": {}, 17 | "outputs": [ 18 | { 19 | "data": { 20 | "text/html": [ 21 | "
\n", 22 | "\n", 35 | "\n", 36 | " \n", 37 | " \n", 38 | " \n", 39 | " \n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | "
Day_NoTempCold_DrinkHot_DrinkSnacks
013512017545
123512217050
233612517251
343613017052
453512817745
\n", 89 | "
" 90 | ], 91 | "text/plain": [ 92 | " Day_No Temp Cold_Drink Hot_Drink Snacks\n", 93 | "0 1 35 120 175 45\n", 94 | "1 2 35 122 170 50\n", 95 | "2 3 36 125 172 51\n", 96 | "3 4 36 130 170 52\n", 97 | "4 5 35 128 177 45" 98 | ] 99 | }, 100 | "execution_count": 2, 101 | "metadata": {}, 102 | "output_type": "execute_result" 103 | } 104 | ], 105 | "source": [ 106 | "import pandas as pd\n", 107 | "data = pd.read_csv('https://raw.githubusercontent.com/myanmards/resource_files/master/correlation.csv')\n", 108 | "data.head()" 109 | ] 110 | }, 111 | { 112 | "cell_type": "code", 113 | "execution_count": 3, 114 | "metadata": {}, 115 | "outputs": [ 116 | { 117 | "data": { 118 | "text/html": [ 119 | "
\n", 120 | "\n", 133 | "\n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | "
Day_NoTempCold_DrinkHot_DrinkSnacks
count120.000000120.000000120.000000120.000000120.000000
mean60.50000038.533333141.750000128.76666750.066667
std34.7850542.31521613.11183319.6159482.946963
min1.00000034.000000115.000000109.00000045.000000
25%30.75000036.000000130.000000114.75000048.000000
50%60.50000039.000000145.000000120.00000051.000000
75%90.25000040.000000151.000000139.25000052.000000
max120.00000042.000000162.000000177.00000056.000000
\n", 211 | "
" 212 | ], 213 | "text/plain": [ 214 | " Day_No Temp Cold_Drink Hot_Drink Snacks\n", 215 | "count 120.000000 120.000000 120.000000 120.000000 120.000000\n", 216 | "mean 60.500000 38.533333 141.750000 128.766667 50.066667\n", 217 | "std 34.785054 2.315216 13.111833 19.615948 2.946963\n", 218 | "min 1.000000 34.000000 115.000000 109.000000 45.000000\n", 219 | "25% 30.750000 36.000000 130.000000 114.750000 48.000000\n", 220 | "50% 60.500000 39.000000 145.000000 120.000000 51.000000\n", 221 | "75% 90.250000 40.000000 151.000000 139.250000 52.000000\n", 222 | "max 120.000000 42.000000 162.000000 177.000000 56.000000" 223 | ] 224 | }, 225 | "execution_count": 3, 226 | "metadata": {}, 227 | "output_type": "execute_result" 228 | } 229 | ], 230 | "source": [ 231 | "data.describe()" 232 | ] 233 | }, 234 | { 235 | "cell_type": "markdown", 236 | "metadata": {}, 237 | "source": [ 238 | "There are few methods to calculate correlation statistics using python:\n", 239 | "* Pearson\n", 240 | "* Kendall\n", 241 | "* Spearman\n", 242 | "

It is good to take note that result of the calculated values may differ but the meaning behind the data, i.e. how it is correlated/whether correlated or not, is the same.

" 243 | ] 244 | }, 245 | { 246 | "cell_type": "code", 247 | "execution_count": 4, 248 | "metadata": {}, 249 | "outputs": [ 250 | { 251 | "data": { 252 | "text/html": [ 253 | "
\n", 254 | "\n", 267 | "\n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | "
Day_NoTempCold_DrinkHot_DrinkSnacks
Day_No1.0000000.2698340.378274-0.4688870.045251
Temp0.2698341.0000000.890255-0.734043-0.021266
Cold_Drink0.3782740.8902551.000000-0.7566590.042191
Hot_Drink-0.468887-0.734043-0.7566591.000000-0.100323
Snacks0.045251-0.0212660.042191-0.1003231.000000
\n", 321 | "
" 322 | ], 323 | "text/plain": [ 324 | " Day_No Temp Cold_Drink Hot_Drink Snacks\n", 325 | "Day_No 1.000000 0.269834 0.378274 -0.468887 0.045251\n", 326 | "Temp 0.269834 1.000000 0.890255 -0.734043 -0.021266\n", 327 | "Cold_Drink 0.378274 0.890255 1.000000 -0.756659 0.042191\n", 328 | "Hot_Drink -0.468887 -0.734043 -0.756659 1.000000 -0.100323\n", 329 | "Snacks 0.045251 -0.021266 0.042191 -0.100323 1.000000" 330 | ] 331 | }, 332 | "execution_count": 4, 333 | "metadata": {}, 334 | "output_type": "execute_result" 335 | } 336 | ], 337 | "source": [ 338 | "data.corr(method='pearson', min_periods=1)" 339 | ] 340 | }, 341 | { 342 | "cell_type": "code", 343 | "execution_count": 5, 344 | "metadata": {}, 345 | "outputs": [ 346 | { 347 | "data": { 348 | "text/html": [ 349 | "
\n", 350 | "\n", 363 | "\n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | " \n", 368 | " \n", 369 | " \n", 370 | " \n", 371 | " \n", 372 | " \n", 373 | " \n", 374 | " \n", 375 | " \n", 376 | " \n", 377 | " \n", 378 | " \n", 379 | " \n", 380 | " \n", 381 | " \n", 382 | " \n", 383 | " \n", 384 | " \n", 385 | " \n", 386 | " \n", 387 | " \n", 388 | " \n", 389 | " \n", 390 | " \n", 391 | " \n", 392 | " \n", 393 | " \n", 394 | " \n", 395 | " \n", 396 | " \n", 397 | " \n", 398 | " \n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | " \n", 404 | " \n", 405 | " \n", 406 | " \n", 407 | " \n", 408 | " \n", 409 | " \n", 410 | " \n", 411 | " \n", 412 | " \n", 413 | " \n", 414 | " \n", 415 | " \n", 416 | "
Day_NoTempCold_DrinkHot_DrinkSnacks
Day_No1.0000000.1891720.275782-0.3416090.009087
Temp0.1891721.0000000.736854-0.551354-0.033551
Cold_Drink0.2757820.7368541.000000-0.5115300.025593
Hot_Drink-0.341609-0.551354-0.5115301.000000-0.036256
Snacks0.009087-0.0335510.025593-0.0362561.000000
\n", 417 | "
" 418 | ], 419 | "text/plain": [ 420 | " Day_No Temp Cold_Drink Hot_Drink Snacks\n", 421 | "Day_No 1.000000 0.189172 0.275782 -0.341609 0.009087\n", 422 | "Temp 0.189172 1.000000 0.736854 -0.551354 -0.033551\n", 423 | "Cold_Drink 0.275782 0.736854 1.000000 -0.511530 0.025593\n", 424 | "Hot_Drink -0.341609 -0.551354 -0.511530 1.000000 -0.036256\n", 425 | "Snacks 0.009087 -0.033551 0.025593 -0.036256 1.000000" 426 | ] 427 | }, 428 | "execution_count": 5, 429 | "metadata": {}, 430 | "output_type": "execute_result" 431 | } 432 | ], 433 | "source": [ 434 | "data.corr(method='kendall', min_periods=1)" 435 | ] 436 | }, 437 | { 438 | "cell_type": "code", 439 | "execution_count": 6, 440 | "metadata": {}, 441 | "outputs": [ 442 | { 443 | "data": { 444 | "text/html": [ 445 | "
\n", 446 | "\n", 459 | "\n", 460 | " \n", 461 | " \n", 462 | " \n", 463 | " \n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | " \n", 485 | " \n", 486 | " \n", 487 | " \n", 488 | " \n", 489 | " \n", 490 | " \n", 491 | " \n", 492 | " \n", 493 | " \n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | "
Day_NoTempCold_DrinkHot_DrinkSnacks
Day_No1.0000000.2642970.380530-0.4573850.009190
Temp0.2642971.0000000.870657-0.690304-0.043479
Cold_Drink0.3805300.8706571.000000-0.6869860.029932
Hot_Drink-0.457385-0.690304-0.6869861.000000-0.045372
Snacks0.009190-0.0434790.029932-0.0453721.000000
\n", 513 | "
" 514 | ], 515 | "text/plain": [ 516 | " Day_No Temp Cold_Drink Hot_Drink Snacks\n", 517 | "Day_No 1.000000 0.264297 0.380530 -0.457385 0.009190\n", 518 | "Temp 0.264297 1.000000 0.870657 -0.690304 -0.043479\n", 519 | "Cold_Drink 0.380530 0.870657 1.000000 -0.686986 0.029932\n", 520 | "Hot_Drink -0.457385 -0.690304 -0.686986 1.000000 -0.045372\n", 521 | "Snacks 0.009190 -0.043479 0.029932 -0.045372 1.000000" 522 | ] 523 | }, 524 | "execution_count": 6, 525 | "metadata": {}, 526 | "output_type": "execute_result" 527 | } 528 | ], 529 | "source": [ 530 | "data.corr(method='spearman', min_periods=1)" 531 | ] 532 | }, 533 | { 534 | "cell_type": "markdown", 535 | "metadata": {}, 536 | "source": [ 537 | "Note: We can find correlation between two variables only as shown below." 538 | ] 539 | }, 540 | { 541 | "cell_type": "code", 542 | "execution_count": 7, 543 | "metadata": {}, 544 | "outputs": [ 545 | { 546 | "data": { 547 | "text/html": [ 548 | "
\n", 549 | "\n", 562 | "\n", 563 | " \n", 564 | " \n", 565 | " \n", 566 | " \n", 567 | " \n", 568 | " \n", 569 | " \n", 570 | " \n", 571 | " \n", 572 | " \n", 573 | " \n", 574 | " \n", 575 | " \n", 576 | " \n", 577 | " \n", 578 | " \n", 579 | " \n", 580 | " \n", 581 | " \n", 582 | "
TempCold_Drink
Temp1.0000000.890255
Cold_Drink0.8902551.000000
\n", 583 | "
" 584 | ], 585 | "text/plain": [ 586 | " Temp Cold_Drink\n", 587 | "Temp 1.000000 0.890255\n", 588 | "Cold_Drink 0.890255 1.000000" 589 | ] 590 | }, 591 | "execution_count": 7, 592 | "metadata": {}, 593 | "output_type": "execute_result" 594 | } 595 | ], 596 | "source": [ 597 | "data[['Temp', 'Cold_Drink']].corr()" 598 | ] 599 | }, 600 | { 601 | "cell_type": "markdown", 602 | "metadata": {}, 603 | "source": [ 604 | "Since the correlation value between Temperature and Cold_Drink gave us positive and somewhere close to one, we can conclude that these two variables has positive correlation." 605 | ] 606 | }, 607 | { 608 | "cell_type": "code", 609 | "execution_count": 8, 610 | "metadata": {}, 611 | "outputs": [ 612 | { 613 | "data": { 614 | "text/html": [ 615 | "
\n", 616 | "\n", 629 | "\n", 630 | " \n", 631 | " \n", 632 | " \n", 633 | " \n", 634 | " \n", 635 | " \n", 636 | " \n", 637 | " \n", 638 | " \n", 639 | " \n", 640 | " \n", 641 | " \n", 642 | " \n", 643 | " \n", 644 | " \n", 645 | " \n", 646 | " \n", 647 | " \n", 648 | " \n", 649 | "
TempHot_Drink
Temp1.000000-0.734043
Hot_Drink-0.7340431.000000
\n", 650 | "
" 651 | ], 652 | "text/plain": [ 653 | " Temp Hot_Drink\n", 654 | "Temp 1.000000 -0.734043\n", 655 | "Hot_Drink -0.734043 1.000000" 656 | ] 657 | }, 658 | "execution_count": 8, 659 | "metadata": {}, 660 | "output_type": "execute_result" 661 | } 662 | ], 663 | "source": [ 664 | "data[['Temp', 'Hot_Drink']].corr()" 665 | ] 666 | }, 667 | { 668 | "cell_type": "markdown", 669 | "metadata": {}, 670 | "source": [ 671 | "Since the correlation value between Temperature and Hot_Drink gave us negative and somewhere close to minus one, we can conclude that these two variables has negative correlation." 672 | ] 673 | }, 674 | { 675 | "cell_type": "code", 676 | "execution_count": 9, 677 | "metadata": {}, 678 | "outputs": [ 679 | { 680 | "data": { 681 | "text/html": [ 682 | "
\n", 683 | "\n", 696 | "\n", 697 | " \n", 698 | " \n", 699 | " \n", 700 | " \n", 701 | " \n", 702 | " \n", 703 | " \n", 704 | " \n", 705 | " \n", 706 | " \n", 707 | " \n", 708 | " \n", 709 | " \n", 710 | " \n", 711 | " \n", 712 | " \n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | "
TempSnacks
Temp1.000000-0.021266
Snacks-0.0212661.000000
\n", 717 | "
" 718 | ], 719 | "text/plain": [ 720 | " Temp Snacks\n", 721 | "Temp 1.000000 -0.021266\n", 722 | "Snacks -0.021266 1.000000" 723 | ] 724 | }, 725 | "execution_count": 9, 726 | "metadata": {}, 727 | "output_type": "execute_result" 728 | } 729 | ], 730 | "source": [ 731 | "data[['Temp', 'Snacks']].corr()" 732 | ] 733 | }, 734 | { 735 | "cell_type": "markdown", 736 | "metadata": {}, 737 | "source": [ 738 | "Since the correlation value between Temperature and Snacks is far from one and minus one, we can conclude that these two variables has no correlation." 739 | ] 740 | }, 741 | { 742 | "cell_type": "code", 743 | "execution_count": 10, 744 | "metadata": {}, 745 | "outputs": [ 746 | { 747 | "data": { 748 | "text/html": [ 749 | " \n", 801 | " \n", 802 | " \n", 803 | " \n", 804 | " \n", 805 | " \n", 806 | " \n", 807 | " \n", 808 | " \n", 809 | " \n", 810 | " \n", 811 | " \n", 812 | " \n", 813 | " \n", 814 | " \n", 815 | " \n", 816 | " \n", 817 | " \n", 818 | " \n", 819 | " \n", 820 | " \n", 821 | " \n", 822 | " \n", 823 | " \n", 824 | " \n", 825 | " \n", 826 | " \n", 827 | " \n", 828 | " \n", 829 | " \n", 830 | " \n", 831 | " \n", 832 | " \n", 833 | " \n", 834 | " \n", 835 | " \n", 836 | " \n", 837 | " \n", 838 | " \n", 839 | " \n", 840 | " \n", 841 | " \n", 842 | " \n", 843 | " \n", 844 | " \n", 845 | " \n", 846 | "
Day_NoTempCold_DrinkHot_DrinkSnacks
Day_No10.2698340.378274-0.4688870.0452506
Temp0.26983410.890255-0.734043-0.0212665
Cold_Drink0.3782740.8902551-0.7566590.0421907
Hot_Drink-0.468887-0.734043-0.7566591-0.100323
Snacks0.0452506-0.02126650.0421907-0.1003231
" 847 | ], 848 | "text/plain": [ 849 | "" 850 | ] 851 | }, 852 | "execution_count": 10, 853 | "metadata": {}, 854 | "output_type": "execute_result" 855 | } 856 | ], 857 | "source": [ 858 | "import matplotlib.pyplot as plt\n", 859 | "%matplotlib inline\n", 860 | "\n", 861 | "data.corr().style.background_gradient(cmap='coolwarm')" 862 | ] 863 | }, 864 | { 865 | "cell_type": "code", 866 | "execution_count": 11, 867 | "metadata": {}, 868 | "outputs": [ 869 | { 870 | "data": { 871 | "text/html": [ 872 | " \n", 924 | " \n", 925 | " \n", 926 | " \n", 927 | " \n", 928 | " \n", 929 | " \n", 930 | " \n", 931 | " \n", 932 | " \n", 933 | " \n", 934 | " \n", 935 | " \n", 936 | " \n", 937 | " \n", 938 | " \n", 939 | " \n", 940 | " \n", 941 | " \n", 942 | " \n", 943 | " \n", 944 | " \n", 945 | " \n", 946 | " \n", 947 | " \n", 948 | " \n", 949 | " \n", 950 | " \n", 951 | " \n", 952 | " \n", 953 | " \n", 954 | " \n", 955 | " \n", 956 | " \n", 957 | " \n", 958 | " \n", 959 | " \n", 960 | " \n", 961 | " \n", 962 | " \n", 963 | " \n", 964 | " \n", 965 | " \n", 966 | " \n", 967 | " \n", 968 | " \n", 969 | "
Day_NoTempCold_DrinkHot_DrinkSnacks
Day_No10.270.38-0.470.045
Temp0.2710.89-0.73-0.021
Cold_Drink0.380.891-0.760.042
Hot_Drink-0.47-0.73-0.761-0.1
Snacks0.045-0.0210.042-0.11
" 970 | ], 971 | "text/plain": [ 972 | "" 973 | ] 974 | }, 975 | "execution_count": 11, 976 | "metadata": {}, 977 | "output_type": "execute_result" 978 | } 979 | ], 980 | "source": [ 981 | "data.corr().style.background_gradient(cmap='coolwarm').set_precision(2)" 982 | ] 983 | }, 984 | { 985 | "cell_type": "markdown", 986 | "metadata": {}, 987 | "source": [ 988 | "Note: Scatter plots are very common visualization technique to see correlation between two variables." 989 | ] 990 | }, 991 | { 992 | "cell_type": "code", 993 | "execution_count": 12, 994 | "metadata": {}, 995 | "outputs": [ 996 | { 997 | "data": { 998 | "image/png": "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\n", 999 | "text/plain": [ 1000 | "" 1001 | ] 1002 | }, 1003 | "metadata": {}, 1004 | "output_type": "display_data" 1005 | } 1006 | ], 1007 | "source": [ 1008 | "plt.scatter(data['Temp'], data['Cold_Drink'])\n", 1009 | "plt.show()" 1010 | ] 1011 | }, 1012 | { 1013 | "cell_type": "code", 1014 | "execution_count": 13, 1015 | "metadata": {}, 1016 | "outputs": [ 1017 | { 1018 | "data": { 1019 | "image/png": "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\n", 1020 | "text/plain": [ 1021 | "" 1022 | ] 1023 | }, 1024 | "metadata": {}, 1025 | "output_type": "display_data" 1026 | } 1027 | ], 1028 | "source": [ 1029 | "plt.scatter(data['Temp'], data['Hot_Drink'])\n", 1030 | "plt.show()" 1031 | ] 1032 | }, 1033 | { 1034 | "cell_type": "code", 1035 | "execution_count": 14, 1036 | "metadata": {}, 1037 | "outputs": [ 1038 | { 1039 | "data": { 1040 | "image/png": "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\n", 1041 | "text/plain": [ 1042 | "" 1043 | ] 1044 | }, 1045 | "metadata": {}, 1046 | "output_type": "display_data" 1047 | } 1048 | ], 1049 | "source": [ 1050 | "plt.scatter(data['Temp'], data['Snacks'])\n", 1051 | "plt.show()" 1052 | ] 1053 | }, 1054 | { 1055 | "cell_type": "code", 1056 | "execution_count": null, 1057 | "metadata": {}, 1058 | "outputs": [], 1059 | "source": [] 1060 | } 1061 | ], 1062 | "metadata": { 1063 | "kernelspec": { 1064 | "display_name": "Python 3", 1065 | "language": "python", 1066 | "name": "python3" 1067 | }, 1068 | "language_info": { 1069 | "codemirror_mode": { 1070 | "name": "ipython", 1071 | "version": 3 1072 | }, 1073 | "file_extension": ".py", 1074 | "mimetype": "text/x-python", 1075 | "name": "python", 1076 | "nbconvert_exporter": "python", 1077 | "pygments_lexer": "ipython3", 1078 | "version": "3.6.4" 1079 | } 1080 | }, 1081 | "nbformat": 4, 1082 | "nbformat_minor": 2 1083 | } 1084 | -------------------------------------------------------------------------------- /P04-ANOVA.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Practical - ANOVA\n", 8 | "This practical session will demonstrate how to handle missing data. We assume everyone to have adequate understanding of Python programming language. For those who would like to refresh Python skill, we would like to recommend our \"Programming for Data Science Series\" where we covered almost all aspects of Python programming in data science domain.\n", 9 | "Refer below URL for full playlist of almost 10 hours video lesson in Burmese Language.\n", 10 | "URL : https://www.youtube.com/watch?v=jOZNjVVZIVs&list=PLD_eiqVVLZDi9GZZJDC8Zx4-3Np8LHs52" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 1, 16 | "metadata": {}, 17 | "outputs": [ 18 | { 19 | "data": { 20 | "text/html": [ 21 | "
\n", 22 | "\n", 35 | "\n", 36 | " \n", 37 | " \n", 38 | " \n", 39 | " \n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | "
emp_idfirst_namelast_namegendersalarywork_exp
01GeorgiFacelloM500000Mid
12BezalelSimmelF120000Junior
23PartoBamfordM350000Junior
34ChirstianKoblickM400000Mid
45KyoichiMaliniakM200000Junior
\n", 95 | "
" 96 | ], 97 | "text/plain": [ 98 | " emp_id first_name last_name gender salary work_exp\n", 99 | "0 1 Georgi Facello M 500000 Mid\n", 100 | "1 2 Bezalel Simmel F 120000 Junior\n", 101 | "2 3 Parto Bamford M 350000 Junior\n", 102 | "3 4 Chirstian Koblick M 400000 Mid\n", 103 | "4 5 Kyoichi Maliniak M 200000 Junior" 104 | ] 105 | }, 106 | "execution_count": 1, 107 | "metadata": {}, 108 | "output_type": "execute_result" 109 | } 110 | ], 111 | "source": [ 112 | "import pandas as pd\n", 113 | "data = pd.read_csv('https://raw.githubusercontent.com/myanmards/resource_files/master/sample_anova.csv')\n", 114 | "data.head()" 115 | ] 116 | }, 117 | { 118 | "cell_type": "code", 119 | "execution_count": 2, 120 | "metadata": {}, 121 | "outputs": [ 122 | { 123 | "data": { 124 | "text/html": [ 125 | "
\n", 126 | "\n", 139 | "\n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | " \n", 245 | " \n", 246 | " \n", 247 | " \n", 248 | " \n", 249 | " \n", 250 | " \n", 251 | " \n", 252 | " \n", 253 | " \n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | "
emp_idfirst_namelast_namegendersalarywork_exp
01GeorgiFacelloM500000Mid
12BezalelSimmelF120000Junior
23PartoBamfordM350000Junior
34ChirstianKoblickM400000Mid
45KyoichiMaliniakM200000Junior
56AnnekePreusigF300000Junior
67TzvetanZielinskiF150000Junior
78SaniyaKalloufiM750000Mid
89SumantPeacF750000Senior
910DuangkaewPiveteauF200000Junior
1011MarySluisF400000Mid
1112PatricioBridglandM200000Junior
1213EberhardtTerkkiM300000Junior
1314BerniGeninM150000Junior
1415GuoxiangNooteboomM300000Mid
1516KazuhitoCappellettiM150000Junior
1617CristinelBouloucosF750000Senior
1718KazuhidePehaF200000Junior
1819LillianHaddadiM400000Junior
1920MayukoWarwickM200000Mid
\n", 334 | "
" 335 | ], 336 | "text/plain": [ 337 | " emp_id first_name last_name gender salary work_exp\n", 338 | "0 1 Georgi Facello M 500000 Mid\n", 339 | "1 2 Bezalel Simmel F 120000 Junior\n", 340 | "2 3 Parto Bamford M 350000 Junior\n", 341 | "3 4 Chirstian Koblick M 400000 Mid\n", 342 | "4 5 Kyoichi Maliniak M 200000 Junior\n", 343 | "5 6 Anneke Preusig F 300000 Junior\n", 344 | "6 7 Tzvetan Zielinski F 150000 Junior\n", 345 | "7 8 Saniya Kalloufi M 750000 Mid\n", 346 | "8 9 Sumant Peac F 750000 Senior\n", 347 | "9 10 Duangkaew Piveteau F 200000 Junior\n", 348 | "10 11 Mary Sluis F 400000 Mid\n", 349 | "11 12 Patricio Bridgland M 200000 Junior\n", 350 | "12 13 Eberhardt Terkki M 300000 Junior\n", 351 | "13 14 Berni Genin M 150000 Junior\n", 352 | "14 15 Guoxiang Nooteboom M 300000 Mid\n", 353 | "15 16 Kazuhito Cappelletti M 150000 Junior\n", 354 | "16 17 Cristinel Bouloucos F 750000 Senior\n", 355 | "17 18 Kazuhide Peha F 200000 Junior\n", 356 | "18 19 Lillian Haddadi M 400000 Junior\n", 357 | "19 20 Mayuko Warwick M 200000 Mid" 358 | ] 359 | }, 360 | "execution_count": 2, 361 | "metadata": {}, 362 | "output_type": "execute_result" 363 | } 364 | ], 365 | "source": [ 366 | "data.head(20)" 367 | ] 368 | }, 369 | { 370 | "cell_type": "markdown", 371 | "metadata": {}, 372 | "source": [ 373 | "First, we will create a dataframe consists with features we would like to perform ANOVA, i.e. salary & work_exp in this case" 374 | ] 375 | }, 376 | { 377 | "cell_type": "code", 378 | "execution_count": 3, 379 | "metadata": {}, 380 | "outputs": [ 381 | { 382 | "data": { 383 | "text/html": [ 384 | "
\n", 385 | "\n", 398 | "\n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | " \n", 404 | " \n", 405 | " \n", 406 | " \n", 407 | " \n", 408 | " \n", 409 | " \n", 410 | " \n", 411 | " \n", 412 | " \n", 413 | " \n", 414 | " \n", 415 | " \n", 416 | " \n", 417 | " \n", 418 | " \n", 419 | " \n", 420 | " \n", 421 | " \n", 422 | " \n", 423 | " \n", 424 | " \n", 425 | " \n", 426 | " \n", 427 | " \n", 428 | " \n", 429 | " \n", 430 | " \n", 431 | " \n", 432 | " \n", 433 | "
salarywork_exp
0500000Mid
1120000Junior
2350000Junior
3400000Mid
4200000Junior
\n", 434 | "
" 435 | ], 436 | "text/plain": [ 437 | " salary work_exp\n", 438 | "0 500000 Mid\n", 439 | "1 120000 Junior\n", 440 | "2 350000 Junior\n", 441 | "3 400000 Mid\n", 442 | "4 200000 Junior" 443 | ] 444 | }, 445 | "execution_count": 3, 446 | "metadata": {}, 447 | "output_type": "execute_result" 448 | } 449 | ], 450 | "source": [ 451 | "df = data[['salary', 'work_exp']]\n", 452 | "df.head()" 453 | ] 454 | }, 455 | { 456 | "cell_type": "markdown", 457 | "metadata": {}, 458 | "source": [ 459 | "Following step, we will import the required library and perform oneway ANOVA" 460 | ] 461 | }, 462 | { 463 | "cell_type": "code", 464 | "execution_count": 4, 465 | "metadata": {}, 466 | "outputs": [ 467 | { 468 | "data": { 469 | "text/plain": [ 470 | "(43.767065333017584, 2.84255584357536e-14)" 471 | ] 472 | }, 473 | "execution_count": 4, 474 | "metadata": {}, 475 | "output_type": "execute_result" 476 | } 477 | ], 478 | "source": [ 479 | "from scipy import stats\n", 480 | "\n", 481 | "F, p = stats.f_oneway(df[df.work_exp == 'Junior'].salary,\n", 482 | " df[df.work_exp == 'Mid'].salary,\n", 483 | " df[df.work_exp == 'Senior'].salary)\n", 484 | "F, p" 485 | ] 486 | }, 487 | { 488 | "cell_type": "markdown", 489 | "metadata": {}, 490 | "source": [ 491 | "Now we will perform few things to understand the concept better:\n", 492 | "* Create 3 bins based on salary and name them as Low, Medium, High\n", 493 | "* Notice that these bins are created according to the salary value inside dataset\n", 494 | "* Now we will perform oneway ANOVA based on newly created bins
" 495 | ] 496 | }, 497 | { 498 | "cell_type": "code", 499 | "execution_count": 5, 500 | "metadata": {}, 501 | "outputs": [ 502 | { 503 | "data": { 504 | "text/plain": [ 505 | "array([120000., 330000., 540000., 750000.])" 506 | ] 507 | }, 508 | "execution_count": 5, 509 | "metadata": {}, 510 | "output_type": "execute_result" 511 | } 512 | ], 513 | "source": [ 514 | "import numpy as np\n", 515 | "bins = np.linspace(min(df['salary']), max(df['salary']), 4)\n", 516 | "bins" 517 | ] 518 | }, 519 | { 520 | "cell_type": "code", 521 | "execution_count": 6, 522 | "metadata": {}, 523 | "outputs": [ 524 | { 525 | "data": { 526 | "text/html": [ 527 | "
\n", 528 | "\n", 541 | "\n", 542 | " \n", 543 | " \n", 544 | " \n", 545 | " \n", 546 | " \n", 547 | " \n", 548 | " \n", 549 | " \n", 550 | " \n", 551 | " \n", 552 | " \n", 553 | " \n", 554 | " \n", 555 | " \n", 556 | " \n", 557 | " \n", 558 | " \n", 559 | " \n", 560 | " \n", 561 | " \n", 562 | " \n", 563 | " \n", 564 | " \n", 565 | " \n", 566 | " \n", 567 | " \n", 568 | " \n", 569 | " \n", 570 | " \n", 571 | " \n", 572 | " \n", 573 | " \n", 574 | " \n", 575 | " \n", 576 | " \n", 577 | " \n", 578 | " \n", 579 | " \n", 580 | " \n", 581 | " \n", 582 | " \n", 583 | " \n", 584 | " \n", 585 | " \n", 586 | " \n", 587 | " \n", 588 | " \n", 589 | " \n", 590 | " \n", 591 | " \n", 592 | " \n", 593 | " \n", 594 | " \n", 595 | " \n", 596 | " \n", 597 | " \n", 598 | " \n", 599 | " \n", 600 | " \n", 601 | " \n", 602 | " \n", 603 | " \n", 604 | " \n", 605 | " \n", 606 | " \n", 607 | " \n", 608 | " \n", 609 | " \n", 610 | " \n", 611 | " \n", 612 | " \n", 613 | " \n", 614 | " \n", 615 | " \n", 616 | " \n", 617 | " \n", 618 | " \n", 619 | " \n", 620 | " \n", 621 | " \n", 622 | " \n", 623 | " \n", 624 | " \n", 625 | " \n", 626 | " \n", 627 | " \n", 628 | " \n", 629 | " \n", 630 | " \n", 631 | " \n", 632 | " \n", 633 | " \n", 634 | " \n", 635 | " \n", 636 | " \n", 637 | " \n", 638 | " \n", 639 | " \n", 640 | " \n", 641 | " \n", 642 | " \n", 643 | " \n", 644 | " \n", 645 | " \n", 646 | " \n", 647 | " \n", 648 | " \n", 649 | " \n", 650 | " \n", 651 | " \n", 652 | " \n", 653 | " \n", 654 | " \n", 655 | " \n", 656 | "
emp_idfirst_namelast_namegendersalarywork_expnew_salary_group
01GeorgiFacelloM500000MidMedium
12BezalelSimmelF120000JuniorLow
23PartoBamfordM350000JuniorMedium
34ChirstianKoblickM400000MidMedium
45KyoichiMaliniakM200000JuniorLow
56AnnekePreusigF300000JuniorLow
67TzvetanZielinskiF150000JuniorLow
78SaniyaKalloufiM750000MidHigh
89SumantPeacF750000SeniorHigh
910DuangkaewPiveteauF200000JuniorLow
\n", 657 | "
" 658 | ], 659 | "text/plain": [ 660 | " emp_id first_name last_name gender salary work_exp new_salary_group\n", 661 | "0 1 Georgi Facello M 500000 Mid Medium\n", 662 | "1 2 Bezalel Simmel F 120000 Junior Low\n", 663 | "2 3 Parto Bamford M 350000 Junior Medium\n", 664 | "3 4 Chirstian Koblick M 400000 Mid Medium\n", 665 | "4 5 Kyoichi Maliniak M 200000 Junior Low\n", 666 | "5 6 Anneke Preusig F 300000 Junior Low\n", 667 | "6 7 Tzvetan Zielinski F 150000 Junior Low\n", 668 | "7 8 Saniya Kalloufi M 750000 Mid High\n", 669 | "8 9 Sumant Peac F 750000 Senior High\n", 670 | "9 10 Duangkaew Piveteau F 200000 Junior Low" 671 | ] 672 | }, 673 | "execution_count": 6, 674 | "metadata": {}, 675 | "output_type": "execute_result" 676 | } 677 | ], 678 | "source": [ 679 | "bin_names = ['Low', 'Medium', 'High']\n", 680 | "data['new_salary_group'] = pd.cut(data['salary'], bins, labels=bin_names, include_lowest=True)\n", 681 | "data.head(10)" 682 | ] 683 | }, 684 | { 685 | "cell_type": "markdown", 686 | "metadata": {}, 687 | "source": [ 688 | "Since lowest salary will fall into employee type \"Low\" for newly created bin, the f-test score will be high" 689 | ] 690 | }, 691 | { 692 | "cell_type": "code", 693 | "execution_count": 7, 694 | "metadata": {}, 695 | "outputs": [ 696 | { 697 | "data": { 698 | "text/plain": [ 699 | "(579.7277387424342, 1.1214878408179476e-54)" 700 | ] 701 | }, 702 | "execution_count": 7, 703 | "metadata": {}, 704 | "output_type": "execute_result" 705 | } 706 | ], 707 | "source": [ 708 | "F, p = stats.f_oneway(data[data.new_salary_group == 'Low'].salary,\n", 709 | " data[data.new_salary_group == 'Medium'].salary,\n", 710 | " data[data.new_salary_group == 'High'].salary)\n", 711 | "F, p" 712 | ] 713 | }, 714 | { 715 | "cell_type": "code", 716 | "execution_count": null, 717 | "metadata": {}, 718 | "outputs": [], 719 | "source": [] 720 | } 721 | ], 722 | "metadata": { 723 | "kernelspec": { 724 | "display_name": "Python 3", 725 | "language": "python", 726 | "name": "python3" 727 | }, 728 | "language_info": { 729 | "codemirror_mode": { 730 | "name": "ipython", 731 | "version": 3 732 | }, 733 | "file_extension": ".py", 734 | "mimetype": "text/x-python", 735 | "name": "python", 736 | "nbconvert_exporter": "python", 737 | "pygments_lexer": "ipython3", 738 | "version": "3.9.1" 739 | } 740 | }, 741 | "nbformat": 4, 742 | "nbformat_minor": 4 743 | } 744 | -------------------------------------------------------------------------------- /P06-MultipleLinearRegression.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd\n", 10 | "import numpy as np\n", 11 | "import matplotlib.pyplot as plt\n", 12 | "%matplotlib inline" 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 3, 18 | "metadata": {}, 19 | "outputs": [ 20 | { 21 | "data": { 22 | "text/html": [ 23 | "
\n", 24 | "\n", 37 | "\n", 38 | " \n", 39 | " \n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | "
CountryYearStatusLife expectancyAdult Mortalityinfant deathsAlcoholpercentage expenditureHepatitis BMeasles...PolioTotal expenditureDiphtheriaHIV/AIDSGDPPopulationthinness 1-19 yearsthinness 5-9 yearsIncome composition of resourcesSchooling
0Afghanistan2015Developing65.0263.0620.0171.27962465.01154...6.08.1665.00.1584.25921033736494.017.217.30.47910.1
1Afghanistan2014Developing59.9271.0640.0173.52358262.0492...58.08.1862.00.1612.696514327582.017.517.50.47610.0
2Afghanistan2013Developing59.9268.0660.0173.21924364.0430...62.08.1364.00.1631.74497631731688.017.717.70.4709.9
3Afghanistan2012Developing59.5272.0690.0178.18421567.02787...67.08.5267.00.1669.9590003696958.017.918.00.4639.8
4Afghanistan2011Developing59.2275.0710.017.09710968.03013...68.07.8768.00.163.5372312978599.018.218.20.4549.5
\n", 187 | "

5 rows × 22 columns

\n", 188 | "
" 189 | ], 190 | "text/plain": [ 191 | " Country Year Status Life expectancy Adult Mortality \\\n", 192 | "0 Afghanistan 2015 Developing 65.0 263.0 \n", 193 | "1 Afghanistan 2014 Developing 59.9 271.0 \n", 194 | "2 Afghanistan 2013 Developing 59.9 268.0 \n", 195 | "3 Afghanistan 2012 Developing 59.5 272.0 \n", 196 | "4 Afghanistan 2011 Developing 59.2 275.0 \n", 197 | "\n", 198 | " infant deaths Alcohol percentage expenditure Hepatitis B Measles \\\n", 199 | "0 62 0.01 71.279624 65.0 1154 \n", 200 | "1 64 0.01 73.523582 62.0 492 \n", 201 | "2 66 0.01 73.219243 64.0 430 \n", 202 | "3 69 0.01 78.184215 67.0 2787 \n", 203 | "4 71 0.01 7.097109 68.0 3013 \n", 204 | "\n", 205 | " ... Polio Total expenditure Diphtheria HIV/AIDS GDP \\\n", 206 | "0 ... 6.0 8.16 65.0 0.1 584.259210 \n", 207 | "1 ... 58.0 8.18 62.0 0.1 612.696514 \n", 208 | "2 ... 62.0 8.13 64.0 0.1 631.744976 \n", 209 | "3 ... 67.0 8.52 67.0 0.1 669.959000 \n", 210 | "4 ... 68.0 7.87 68.0 0.1 63.537231 \n", 211 | "\n", 212 | " Population thinness 1-19 years thinness 5-9 years \\\n", 213 | "0 33736494.0 17.2 17.3 \n", 214 | "1 327582.0 17.5 17.5 \n", 215 | "2 31731688.0 17.7 17.7 \n", 216 | "3 3696958.0 17.9 18.0 \n", 217 | "4 2978599.0 18.2 18.2 \n", 218 | "\n", 219 | " Income composition of resources Schooling \n", 220 | "0 0.479 10.1 \n", 221 | "1 0.476 10.0 \n", 222 | "2 0.470 9.9 \n", 223 | "3 0.463 9.8 \n", 224 | "4 0.454 9.5 \n", 225 | "\n", 226 | "[5 rows x 22 columns]" 227 | ] 228 | }, 229 | "execution_count": 3, 230 | "metadata": {}, 231 | "output_type": "execute_result" 232 | } 233 | ], 234 | "source": [ 235 | "df = pd.read_csv('https://raw.githubusercontent.com/myanmards/resource_files/master/regression-one.csv')\n", 236 | "df.head()" 237 | ] 238 | }, 239 | { 240 | "cell_type": "code", 241 | "execution_count": 4, 242 | "metadata": {}, 243 | "outputs": [ 244 | { 245 | "data": { 246 | "text/html": [ 247 | "
\n", 248 | "\n", 261 | "\n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | " \n", 363 | " \n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | " \n", 368 | " \n", 369 | " \n", 370 | " \n", 371 | " \n", 372 | " \n", 373 | " \n", 374 | " \n", 375 | " \n", 376 | " \n", 377 | " \n", 378 | " \n", 379 | " \n", 380 | " \n", 381 | " \n", 382 | " \n", 383 | " \n", 384 | " \n", 385 | " \n", 386 | " \n", 387 | " \n", 388 | " \n", 389 | " \n", 390 | " \n", 391 | " \n", 392 | " \n", 393 | " \n", 394 | " \n", 395 | " \n", 396 | " \n", 397 | " \n", 398 | " \n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | " \n", 404 | " \n", 405 | " \n", 406 | " \n", 407 | " \n", 408 | " \n", 409 | " \n", 410 | "
CountryYearStatuslife-expectAdult Mortalityinfant deathsAlcoholpercentage expenditureHepatitis BMeasles...PolioTotal expenditureDiphtheriaHIV/AIDSGDPPopulationthinness 1-19 yearsthinness 5-9 yearsIncome composition of resourcesSchooling
0Afghanistan2015Developing65.0263.0620.0171.27962465.01154...6.08.1665.00.1584.25921033736494.017.217.30.47910.1
1Afghanistan2014Developing59.9271.0640.0173.52358262.0492...58.08.1862.00.1612.696514327582.017.517.50.47610.0
2Afghanistan2013Developing59.9268.0660.0173.21924364.0430...62.08.1364.00.1631.74497631731688.017.717.70.4709.9
3Afghanistan2012Developing59.5272.0690.0178.18421567.02787...67.08.5267.00.1669.9590003696958.017.918.00.4639.8
4Afghanistan2011Developing59.2275.0710.017.09710968.03013...68.07.8768.00.163.5372312978599.018.218.20.4549.5
\n", 411 | "

5 rows × 22 columns

\n", 412 | "
" 413 | ], 414 | "text/plain": [ 415 | " Country Year Status life-expect Adult Mortality infant deaths \\\n", 416 | "0 Afghanistan 2015 Developing 65.0 263.0 62 \n", 417 | "1 Afghanistan 2014 Developing 59.9 271.0 64 \n", 418 | "2 Afghanistan 2013 Developing 59.9 268.0 66 \n", 419 | "3 Afghanistan 2012 Developing 59.5 272.0 69 \n", 420 | "4 Afghanistan 2011 Developing 59.2 275.0 71 \n", 421 | "\n", 422 | " Alcohol percentage expenditure Hepatitis B Measles ... Polio \\\n", 423 | "0 0.01 71.279624 65.0 1154 ... 6.0 \n", 424 | "1 0.01 73.523582 62.0 492 ... 58.0 \n", 425 | "2 0.01 73.219243 64.0 430 ... 62.0 \n", 426 | "3 0.01 78.184215 67.0 2787 ... 67.0 \n", 427 | "4 0.01 7.097109 68.0 3013 ... 68.0 \n", 428 | "\n", 429 | " Total expenditure Diphtheria HIV/AIDS GDP Population \\\n", 430 | "0 8.16 65.0 0.1 584.259210 33736494.0 \n", 431 | "1 8.18 62.0 0.1 612.696514 327582.0 \n", 432 | "2 8.13 64.0 0.1 631.744976 31731688.0 \n", 433 | "3 8.52 67.0 0.1 669.959000 3696958.0 \n", 434 | "4 7.87 68.0 0.1 63.537231 2978599.0 \n", 435 | "\n", 436 | " thinness 1-19 years thinness 5-9 years Income composition of resources \\\n", 437 | "0 17.2 17.3 0.479 \n", 438 | "1 17.5 17.5 0.476 \n", 439 | "2 17.7 17.7 0.470 \n", 440 | "3 17.9 18.0 0.463 \n", 441 | "4 18.2 18.2 0.454 \n", 442 | "\n", 443 | " Schooling \n", 444 | "0 10.1 \n", 445 | "1 10.0 \n", 446 | "2 9.9 \n", 447 | "3 9.8 \n", 448 | "4 9.5 \n", 449 | "\n", 450 | "[5 rows x 22 columns]" 451 | ] 452 | }, 453 | "execution_count": 4, 454 | "metadata": {}, 455 | "output_type": "execute_result" 456 | } 457 | ], 458 | "source": [ 459 | "df.rename(columns= {'Life expectancy': 'life-expect'}, inplace = True)\n", 460 | "df.head()" 461 | ] 462 | }, 463 | { 464 | "cell_type": "code", 465 | "execution_count": 5, 466 | "metadata": {}, 467 | "outputs": [ 468 | { 469 | "data": { 470 | "text/plain": [ 471 | "(1649, 22)" 472 | ] 473 | }, 474 | "execution_count": 5, 475 | "metadata": {}, 476 | "output_type": "execute_result" 477 | } 478 | ], 479 | "source": [ 480 | "df = df.dropna()\n", 481 | "df.shape" 482 | ] 483 | }, 484 | { 485 | "cell_type": "code", 486 | "execution_count": 7, 487 | "metadata": {}, 488 | "outputs": [ 489 | { 490 | "data": { 491 | "text/html": [ 492 | "
\n", 493 | "\n", 506 | "\n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | " \n", 520 | " \n", 521 | " \n", 522 | " \n", 523 | " \n", 524 | " \n", 525 | " \n", 526 | " \n", 527 | " \n", 528 | " \n", 529 | " \n", 530 | " \n", 531 | " \n", 532 | " \n", 533 | " \n", 534 | " \n", 535 | "
CountryYearStatuslife-expectAdult Mortalityinfant deathsAlcoholpercentage expenditureHepatitis BMeasles...PolioTotal expenditureDiphtheriaHIV/AIDSGDPPopulationthinness 1-19 yearsthinness 5-9 yearsIncome composition of resourcesSchooling
\n", 536 | "

0 rows × 22 columns

\n", 537 | "
" 538 | ], 539 | "text/plain": [ 540 | "Empty DataFrame\n", 541 | "Columns: [Country, Year, Status, life-expect, Adult Mortality, infant deaths, Alcohol, percentage expenditure, Hepatitis B, Measles, BMI, under-five deaths, Polio, Total expenditure, Diphtheria, HIV/AIDS, GDP, Population, thinness 1-19 years, thinness 5-9 years, Income composition of resources, Schooling]\n", 542 | "Index: []\n", 543 | "\n", 544 | "[0 rows x 22 columns]" 545 | ] 546 | }, 547 | "execution_count": 7, 548 | "metadata": {}, 549 | "output_type": "execute_result" 550 | } 551 | ], 552 | "source": [ 553 | "df[df.isnull().any(axis=1)]" 554 | ] 555 | }, 556 | { 557 | "cell_type": "code", 558 | "execution_count": 8, 559 | "metadata": {}, 560 | "outputs": [], 561 | "source": [ 562 | "X = df[['GDP', 'Alcohol', 'BMI', 'Schooling']]\n", 563 | "Y = df['life-expect']" 564 | ] 565 | }, 566 | { 567 | "cell_type": "code", 568 | "execution_count": 11, 569 | "metadata": {}, 570 | "outputs": [ 571 | { 572 | "data": { 573 | "text/plain": [ 574 | "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" 575 | ] 576 | }, 577 | "execution_count": 11, 578 | "metadata": {}, 579 | "output_type": "execute_result" 580 | } 581 | ], 582 | "source": [ 583 | "from sklearn.linear_model import LinearRegression\n", 584 | "lm = LinearRegression()\n", 585 | "lm.fit(X, Y)" 586 | ] 587 | }, 588 | { 589 | "cell_type": "markdown", 590 | "metadata": {}, 591 | "source": [ 592 | "lm.intercept_" 593 | ] 594 | }, 595 | { 596 | "cell_type": "code", 597 | "execution_count": 15, 598 | "metadata": {}, 599 | "outputs": [ 600 | { 601 | "data": { 602 | "text/plain": [ 603 | "array([ 1.15265737e-04, -2.52732304e-01, 8.91904815e-02, 1.94339619e+00])" 604 | ] 605 | }, 606 | "execution_count": 15, 607 | "metadata": {}, 608 | "output_type": "execute_result" 609 | } 610 | ], 611 | "source": [ 612 | "lm.coef_" 613 | ] 614 | }, 615 | { 616 | "cell_type": "code", 617 | "execution_count": 16, 618 | "metadata": {}, 619 | "outputs": [], 620 | "source": [ 621 | "Y_hat = lm.predict(X)" 622 | ] 623 | }, 624 | { 625 | "cell_type": "code", 626 | "execution_count": 17, 627 | "metadata": {}, 628 | "outputs": [ 629 | { 630 | "data": { 631 | "text/html": [ 632 | "
\n", 633 | "\n", 646 | "\n", 647 | " \n", 648 | " \n", 649 | " \n", 650 | " \n", 651 | " \n", 652 | " \n", 653 | " \n", 654 | " \n", 655 | " \n", 656 | " \n", 657 | " \n", 658 | " \n", 659 | " \n", 660 | " \n", 661 | " \n", 662 | " \n", 663 | " \n", 664 | " \n", 665 | " \n", 666 | " \n", 667 | " \n", 668 | " \n", 669 | " \n", 670 | " \n", 671 | " \n", 672 | " \n", 673 | " \n", 674 | " \n", 675 | " \n", 676 | " \n", 677 | " \n", 678 | " \n", 679 | " \n", 680 | " \n", 681 | " \n", 682 | " \n", 683 | " \n", 684 | " \n", 685 | " \n", 686 | " \n", 687 | " \n", 688 | " \n", 689 | " \n", 690 | " \n", 691 | " \n", 692 | " \n", 693 | " \n", 694 | " \n", 695 | " \n", 696 | " \n", 697 | " \n", 698 | " \n", 699 | " \n", 700 | " \n", 701 | " \n", 702 | " \n", 703 | " \n", 704 | " \n", 705 | " \n", 706 | " \n", 707 | " \n", 708 | " \n", 709 | " \n", 710 | " \n", 711 | " \n", 712 | " \n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | " \n", 717 | " \n", 718 | " \n", 719 | " \n", 720 | " \n", 721 | " \n", 722 | " \n", 723 | " \n", 724 | " \n", 725 | " \n", 726 | " \n", 727 | " \n", 728 | " \n", 729 | " \n", 730 | " \n", 731 | " \n", 732 | " \n", 733 | " \n", 734 | " \n", 735 | " \n", 736 | " \n", 737 | " \n", 738 | " \n", 739 | " \n", 740 | " \n", 741 | " \n", 742 | " \n", 743 | " \n", 744 | " \n", 745 | " \n", 746 | " \n", 747 | " \n", 748 | " \n", 749 | " \n", 750 | " \n", 751 | " \n", 752 | " \n", 753 | " \n", 754 | " \n", 755 | " \n", 756 | "
ActualPredicted
065.064.248614
159.964.012957
259.963.776218
359.563.541688
459.262.853093
558.862.281935
658.661.641938
758.161.195248
857.560.569755
957.359.928401
1057.359.469152
1157.057.318084
1256.756.699564
1356.256.079614
1455.355.452810
1554.854.639437
1677.874.914449
1777.574.937484
1877.274.793305
1976.974.615572
\n", 757 | "
" 758 | ], 759 | "text/plain": [ 760 | " Actual Predicted\n", 761 | "0 65.0 64.248614\n", 762 | "1 59.9 64.012957\n", 763 | "2 59.9 63.776218\n", 764 | "3 59.5 63.541688\n", 765 | "4 59.2 62.853093\n", 766 | "5 58.8 62.281935\n", 767 | "6 58.6 61.641938\n", 768 | "7 58.1 61.195248\n", 769 | "8 57.5 60.569755\n", 770 | "9 57.3 59.928401\n", 771 | "10 57.3 59.469152\n", 772 | "11 57.0 57.318084\n", 773 | "12 56.7 56.699564\n", 774 | "13 56.2 56.079614\n", 775 | "14 55.3 55.452810\n", 776 | "15 54.8 54.639437\n", 777 | "16 77.8 74.914449\n", 778 | "17 77.5 74.937484\n", 779 | "18 77.2 74.793305\n", 780 | "19 76.9 74.615572" 781 | ] 782 | }, 783 | "execution_count": 17, 784 | "metadata": {}, 785 | "output_type": "execute_result" 786 | } 787 | ], 788 | "source": [ 789 | "data = pd.DataFrame({'Actual':df['life-expect'], 'Predicted': Y_hat})\n", 790 | "data.head(20)" 791 | ] 792 | }, 793 | { 794 | "cell_type": "code", 795 | "execution_count": 18, 796 | "metadata": {}, 797 | "outputs": [ 798 | { 799 | "data": { 800 | "image/png": "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tWowZw785S9FN6oYRCGzMjt27CA1NRWA+vXrM27cuH37UlJSuO6666hatSq33347AF27dqVz58706NEDsNw2L7zwAieccAKzZs1iwIABzJgxg5tvvpnrr7+ePn36MGTIkFyPnZycTMuWLfnggw/o1q0bI0eO5PLLL0dEqFixIuPGjaN69eqsX7+e008/na5du4aUBC4jI4Mbb7yRCRMmUKtWLUaNGsU//vEPXnvtNR599FGWL19OhQoV2Lx5c6gfY8i46DtOLkyaZCts//vf4vVzyCGWNblHD3jxRbjhhmDHzJnmyy9MeoMyZWwyN8FG+lnunaKwdetWvvrqKy69dH9Eedao/csvv9yXgO3Pf/4zf//733PtI8vFkyX6r732GmDZMe+55x4+++wzypQpw2+//caaNWuoXbt2gXYtWrSIH374gfbt2wOwd+9ejjzySACaNGlC7969ueiii7jooouKdN754aLvOLnw7LOWZqGwvvzcuOQSi7h88EFbwFW1Kib6LVuakBeG5s3t6rF3r4UKRZgIZ1YuNpmZmdSoUSPPi0Yoo/KLLrqI2267jblz57Jjxw6aB2624cOHs27dOubMmUO5cuVISUk5IHUz5J9OuWHDhnz99dcHHW/y5Ml89tlnTJw4kX/9618sWLCAsmXDJ9Xu03ecHPz4oyW1vP76bO6YYiBi8wJr1waiuX07fPdd4Vw7WTRvbjPMBZT2SyRyplLO/rp69erUr1+f0aNHAya28+fPB+DMM8/cN0k7PK9kd1gkTps2bfjrX/96UDrlww8/nHLlyvHxxx/nmg65Xr16/Pjjj+zatYstW7YwfbrlmjzppJNYt27dPtHPyMhgwYIFZGZmsnLlStq2bcvjjz/O5s2b2bp1a3E+noNw0XecHDz3nGU0vuaa8PV5+ulW5/zxx2H95wttpF6UjJlZ7wnywzvQpUsXxo0bR2pqKp9//jk9e/bkP//5D82aNWPp0qUMHz6cV199laZNm9KwYcN9E65PP/00Q4YM4bTTTmPLli35HqNXr17Mnz//gInV3r17k5aWRosWLRg+fDgnn3zyQe87+uijueyyy/a5bJoFpTDLly/PmDFj+Pvf/07Tpk1JTU3lq6++Yu/evVx55ZU0btyYZs2aceutt1KjRo0wflohpFaONJ5a2Ykmu3bBkUda/rO33w5v3wsXQqNGcEf7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\n", 801 | "text/plain": [ 802 | "" 803 | ] 804 | }, 805 | "metadata": {}, 806 | "output_type": "display_data" 807 | } 808 | ], 809 | "source": [ 810 | "import seaborn as sns\n", 811 | "\n", 812 | "axs = sns.distplot(df['life-expect'], hist=False, color=\"r\", label=\"Actual Value\")\n", 813 | "sns.distplot(Y_hat, hist=False, color=\"b\", label=\"Fitted Values\", ax=axs)\n", 814 | "\n", 815 | "plt.title('Acutal vs Fitted Values for LE')\n", 816 | "plt.xlabel('Age Range')\n", 817 | "plt.show()" 818 | ] 819 | }, 820 | { 821 | "cell_type": "code", 822 | "execution_count": null, 823 | "metadata": {}, 824 | "outputs": [], 825 | "source": [] 826 | } 827 | ], 828 | "metadata": { 829 | "kernelspec": { 830 | "display_name": "Python 3", 831 | "language": "python", 832 | "name": "python3" 833 | }, 834 | "language_info": { 835 | "codemirror_mode": { 836 | "name": "ipython", 837 | "version": 3 838 | }, 839 | "file_extension": ".py", 840 | "mimetype": "text/x-python", 841 | "name": "python", 842 | "nbconvert_exporter": "python", 843 | "pygments_lexer": "ipython3", 844 | "version": "3.6.4" 845 | } 846 | }, 847 | "nbformat": 4, 848 | "nbformat_minor": 2 849 | } 850 | -------------------------------------------------------------------------------- /P08-Model Evaluation.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 5, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd\n", 10 | "import numpy as np\n", 11 | "import matplotlib.pyplot as plt\n", 12 | "%matplotlib inline" 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 6, 18 | "metadata": {}, 19 | "outputs": [ 20 | { 21 | "data": { 22 | "text/html": [ 23 | "
\n", 24 | "\n", 37 | "\n", 38 | " \n", 39 | " \n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | "
CountryYearStatusLife expectancyAdult Mortalityinfant deathsAlcoholpercentage expenditureHepatitis BMeasles...PolioTotal expenditureDiphtheriaHIV/AIDSGDPPopulationthinness 1-19 yearsthinness 5-9 yearsIncome composition of resourcesSchooling
0Afghanistan2015Developing65.0263.0620.0171.27962465.01154...6.08.1665.00.1584.25921033736494.017.217.30.47910.1
1Afghanistan2014Developing59.9271.0640.0173.52358262.0492...58.08.1862.00.1612.696514327582.017.517.50.47610.0
2Afghanistan2013Developing59.9268.0660.0173.21924364.0430...62.08.1364.00.1631.74497631731688.017.717.70.4709.9
3Afghanistan2012Developing59.5272.0690.0178.18421567.02787...67.08.5267.00.1669.9590003696958.017.918.00.4639.8
4Afghanistan2011Developing59.2275.0710.017.09710968.03013...68.07.8768.00.163.5372312978599.018.218.20.4549.5
\n", 187 | "

5 rows × 22 columns

\n", 188 | "
" 189 | ], 190 | "text/plain": [ 191 | " Country Year Status Life expectancy Adult Mortality \\\n", 192 | "0 Afghanistan 2015 Developing 65.0 263.0 \n", 193 | "1 Afghanistan 2014 Developing 59.9 271.0 \n", 194 | "2 Afghanistan 2013 Developing 59.9 268.0 \n", 195 | "3 Afghanistan 2012 Developing 59.5 272.0 \n", 196 | "4 Afghanistan 2011 Developing 59.2 275.0 \n", 197 | "\n", 198 | " infant deaths Alcohol percentage expenditure Hepatitis B Measles ... \\\n", 199 | "0 62 0.01 71.279624 65.0 1154 ... \n", 200 | "1 64 0.01 73.523582 62.0 492 ... \n", 201 | "2 66 0.01 73.219243 64.0 430 ... \n", 202 | "3 69 0.01 78.184215 67.0 2787 ... \n", 203 | "4 71 0.01 7.097109 68.0 3013 ... \n", 204 | "\n", 205 | " Polio Total expenditure Diphtheria HIV/AIDS GDP Population \\\n", 206 | "0 6.0 8.16 65.0 0.1 584.259210 33736494.0 \n", 207 | "1 58.0 8.18 62.0 0.1 612.696514 327582.0 \n", 208 | "2 62.0 8.13 64.0 0.1 631.744976 31731688.0 \n", 209 | "3 67.0 8.52 67.0 0.1 669.959000 3696958.0 \n", 210 | "4 68.0 7.87 68.0 0.1 63.537231 2978599.0 \n", 211 | "\n", 212 | " thinness 1-19 years thinness 5-9 years Income composition of resources \\\n", 213 | "0 17.2 17.3 0.479 \n", 214 | "1 17.5 17.5 0.476 \n", 215 | "2 17.7 17.7 0.470 \n", 216 | "3 17.9 18.0 0.463 \n", 217 | "4 18.2 18.2 0.454 \n", 218 | "\n", 219 | " Schooling \n", 220 | "0 10.1 \n", 221 | "1 10.0 \n", 222 | "2 9.9 \n", 223 | "3 9.8 \n", 224 | "4 9.5 \n", 225 | "\n", 226 | "[5 rows x 22 columns]" 227 | ] 228 | }, 229 | "execution_count": 6, 230 | "metadata": {}, 231 | "output_type": "execute_result" 232 | } 233 | ], 234 | "source": [ 235 | "df = pd.read_csv('https://raw.githubusercontent.com/myanmards/resource_files/master/regression-one.csv')\n", 236 | "df.head()" 237 | ] 238 | }, 239 | { 240 | "cell_type": "code", 241 | "execution_count": 7, 242 | "metadata": {}, 243 | "outputs": [ 244 | { 245 | "data": { 246 | "text/plain": [ 247 | "(1649, 22)" 248 | ] 249 | }, 250 | "execution_count": 7, 251 | "metadata": {}, 252 | "output_type": "execute_result" 253 | } 254 | ], 255 | "source": [ 256 | "df.rename(columns={'Life expectancy': 'life-expect'}, inplace=True)\n", 257 | "df = df.dropna()\n", 258 | "df.shape" 259 | ] 260 | }, 261 | { 262 | "cell_type": "code", 263 | "execution_count": 9, 264 | "metadata": {}, 265 | "outputs": [ 266 | { 267 | "data": { 268 | "text/html": [ 269 | "
\n", 270 | "\n", 283 | "\n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | "
CountryYearStatuslife-expectAdult Mortalityinfant deathsAlcoholpercentage expenditureHepatitis BMeasles...PolioTotal expenditureDiphtheriaHIV/AIDSGDPPopulationthinness 1-19 yearsthinness 5-9 yearsIncome composition of resourcesSchooling
\n", 313 | "

0 rows × 22 columns

\n", 314 | "
" 315 | ], 316 | "text/plain": [ 317 | "Empty DataFrame\n", 318 | "Columns: [Country, Year, Status, life-expect, Adult Mortality, infant deaths, Alcohol, percentage expenditure, Hepatitis B, Measles, BMI, under-five deaths, Polio, Total expenditure, Diphtheria, HIV/AIDS, GDP, Population, thinness 1-19 years, thinness 5-9 years, Income composition of resources, Schooling]\n", 319 | "Index: []\n", 320 | "\n", 321 | "[0 rows x 22 columns]" 322 | ] 323 | }, 324 | "execution_count": 9, 325 | "metadata": {}, 326 | "output_type": "execute_result" 327 | } 328 | ], 329 | "source": [ 330 | "df[df.isnull().any(axis=1)]" 331 | ] 332 | }, 333 | { 334 | "cell_type": "code", 335 | "execution_count": 11, 336 | "metadata": {}, 337 | "outputs": [ 338 | { 339 | "name": "stdout", 340 | "output_type": "stream", 341 | "text": [ 342 | "Collecting sklearn\n", 343 | " Downloading sklearn-0.0.tar.gz (1.1 kB)\n", 344 | "Collecting scikit-learn\n", 345 | " Downloading scikit_learn-0.24.0-cp39-cp39-win_amd64.whl (6.9 MB)\n", 346 | "Requirement already satisfied: numpy>=1.13.3 in c:\\users\\zinmy\\appdata\\local\\programs\\python\\python39\\lib\\site-packages (from scikit-learn->sklearn) (1.19.4)\n", 347 | "Collecting joblib>=0.11\n", 348 | " Downloading joblib-1.0.0-py3-none-any.whl (302 kB)\n", 349 | "Collecting scipy>=0.19.1\n", 350 | " Downloading scipy-1.5.4-cp39-cp39-win_amd64.whl (31.4 MB)\n", 351 | "Collecting threadpoolctl>=2.0.0\n", 352 | " Downloading threadpoolctl-2.1.0-py3-none-any.whl (12 kB)\n", 353 | "Using legacy 'setup.py install' for sklearn, since package 'wheel' is not installed.\n", 354 | "Installing collected packages: threadpoolctl, scipy, joblib, scikit-learn, sklearn\n", 355 | " Running setup.py install for sklearn: started\n", 356 | " Running setup.py install for sklearn: finished with status 'done'\n", 357 | "Successfully installed joblib-1.0.0 scikit-learn-0.24.0 scipy-1.5.4 sklearn-0.0 threadpoolctl-2.1.0\n" 358 | ] 359 | } 360 | ], 361 | "source": [ 362 | "!pip install sklearn" 363 | ] 364 | }, 365 | { 366 | "cell_type": "code", 367 | "execution_count": 12, 368 | "metadata": {}, 369 | "outputs": [ 370 | { 371 | "data": { 372 | "text/plain": [ 373 | "LinearRegression()" 374 | ] 375 | }, 376 | "execution_count": 12, 377 | "metadata": {}, 378 | "output_type": "execute_result" 379 | } 380 | ], 381 | "source": [ 382 | "from sklearn.linear_model import LinearRegression\n", 383 | "\n", 384 | "slr = LinearRegression()\n", 385 | "SLRX = df[['Schooling']]\n", 386 | "Y = df['life-expect']\n", 387 | "slr.fit(SLRX, Y)" 388 | ] 389 | }, 390 | { 391 | "cell_type": "code", 392 | "execution_count": 13, 393 | "metadata": {}, 394 | "outputs": [], 395 | "source": [ 396 | "SLRYhat = slr.predict(SLRX)" 397 | ] 398 | }, 399 | { 400 | "cell_type": "code", 401 | "execution_count": 14, 402 | "metadata": {}, 403 | "outputs": [ 404 | { 405 | "name": "stdout", 406 | "output_type": "stream", 407 | "text": [ 408 | "[64.6771856 64.44820695 64.2192283 63.99024965]\n" 409 | ] 410 | } 411 | ], 412 | "source": [ 413 | "print(SLRYhat[0:4])" 414 | ] 415 | }, 416 | { 417 | "cell_type": "code", 418 | "execution_count": 16, 419 | "metadata": {}, 420 | "outputs": [ 421 | { 422 | "name": "stdout", 423 | "output_type": "stream", 424 | "text": [ 425 | "MSE for Simple Linear Regression : 36.39144686879598\n" 426 | ] 427 | } 428 | ], 429 | "source": [ 430 | "from sklearn.metrics import mean_squared_error\n", 431 | "\n", 432 | "SLR_MSE = mean_squared_error(df['life-expect'], SLRYhat)\n", 433 | "print('MSE for Simple Linear Regression : ', SLR_MSE)" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": 17, 439 | "metadata": {}, 440 | "outputs": [ 441 | { 442 | "name": "stdout", 443 | "output_type": "stream", 444 | "text": [ 445 | "R2 for Simple Linear Regression : 0.5294454639356108\n" 446 | ] 447 | } 448 | ], 449 | "source": [ 450 | "SLR_R2 = slr.score(SLRX, Y)\n", 451 | "print('R2 for Simple Linear Regression : ', SLR_R2)" 452 | ] 453 | }, 454 | { 455 | "cell_type": "code", 456 | "execution_count": 18, 457 | "metadata": {}, 458 | "outputs": [ 459 | { 460 | "data": { 461 | "text/plain": [ 462 | "LinearRegression()" 463 | ] 464 | }, 465 | "execution_count": 18, 466 | "metadata": {}, 467 | "output_type": "execute_result" 468 | } 469 | ], 470 | "source": [ 471 | "MLRX = df[['GDP', 'Alcohol', 'BMI', 'Schooling']]\n", 472 | "mlr = LinearRegression()\n", 473 | "mlr.fit(MLRX, Y)" 474 | ] 475 | }, 476 | { 477 | "cell_type": "code", 478 | "execution_count": 19, 479 | "metadata": {}, 480 | "outputs": [ 481 | { 482 | "name": "stdout", 483 | "output_type": "stream", 484 | "text": [ 485 | "[64.24861418 64.01295717 63.77621795 63.54168785]\n" 486 | ] 487 | } 488 | ], 489 | "source": [ 490 | "MLRYhat = mlr.predict(MLRX)\n", 491 | "print(MLRYhat[0:4])" 492 | ] 493 | }, 494 | { 495 | "cell_type": "code", 496 | "execution_count": 20, 497 | "metadata": {}, 498 | "outputs": [ 499 | { 500 | "name": "stdout", 501 | "output_type": "stream", 502 | "text": [ 503 | "MSE for Multiple Linear Regression : 32.66263978796142\n" 504 | ] 505 | } 506 | ], 507 | "source": [ 508 | "MLR_MSE = mean_squared_error(df['life-expect'], MLRYhat)\n", 509 | "print('MSE for Multiple Linear Regression : ', MLR_MSE)" 510 | ] 511 | }, 512 | { 513 | "cell_type": "code", 514 | "execution_count": 22, 515 | "metadata": {}, 516 | "outputs": [ 517 | { 518 | "name": "stdout", 519 | "output_type": "stream", 520 | "text": [ 521 | "R2 for Multiple Linear Regression : 0.5776602846411929\n" 522 | ] 523 | } 524 | ], 525 | "source": [ 526 | "MLR_R2 = mlr.score(MLRX, Y)\n", 527 | "print('R2 for Multiple Linear Regression : ', MLR_R2)" 528 | ] 529 | }, 530 | { 531 | "cell_type": "code", 532 | "execution_count": 23, 533 | "metadata": {}, 534 | "outputs": [], 535 | "source": [ 536 | "PRX = df['Schooling']\n", 537 | "f = np.polyfit(PRX, Y, 3)\n", 538 | "PR = np.poly1d(f)" 539 | ] 540 | }, 541 | { 542 | "cell_type": "code", 543 | "execution_count": 24, 544 | "metadata": {}, 545 | "outputs": [ 546 | { 547 | "name": "stdout", 548 | "output_type": "stream", 549 | "text": [ 550 | "[63.54170723 63.28970051 63.04117145 62.79627248]\n" 551 | ] 552 | } 553 | ], 554 | "source": [ 555 | "PRYhat = PR(PRX)\n", 556 | "print(PRYhat[0:4])" 557 | ] 558 | }, 559 | { 560 | "cell_type": "code", 561 | "execution_count": 25, 562 | "metadata": {}, 563 | "outputs": [ 564 | { 565 | "name": "stdout", 566 | "output_type": "stream", 567 | "text": [ 568 | "MSE for Polynomial Regression : 34.73390295312004\n" 569 | ] 570 | } 571 | ], 572 | "source": [ 573 | "PR_MSE = mean_squared_error(df['life-expect'], PRYhat)\n", 574 | "print('MSE for Polynomial Regression : ', PR_MSE)" 575 | ] 576 | }, 577 | { 578 | "cell_type": "code", 579 | "execution_count": 26, 580 | "metadata": {}, 581 | "outputs": [ 582 | { 583 | "name": "stdout", 584 | "output_type": "stream", 585 | "text": [ 586 | "R2 for Polynomial Regression : 0.5508781047168166\n" 587 | ] 588 | } 589 | ], 590 | "source": [ 591 | "from sklearn.metrics import r2_score\n", 592 | "PR_R2 = r2_score(df['life-expect'], PRYhat)\n", 593 | "print('R2 for Polynomial Regression : ', PR_R2)" 594 | ] 595 | }, 596 | { 597 | "cell_type": "code", 598 | "execution_count": 27, 599 | "metadata": {}, 600 | "outputs": [ 601 | { 602 | "name": "stdout", 603 | "output_type": "stream", 604 | "text": [ 605 | "Simple Linear Regression\n", 606 | "MSE for Simple Linear Regression : 36.39144686879598\n", 607 | "R2 for Simple Linear Regression : 0.5294454639356108\n" 608 | ] 609 | } 610 | ], 611 | "source": [ 612 | "print('Simple Linear Regression')\n", 613 | "print('MSE for Simple Linear Regression : ', SLR_MSE)\n", 614 | "print('R2 for Simple Linear Regression : ', SLR_R2)" 615 | ] 616 | }, 617 | { 618 | "cell_type": "code", 619 | "execution_count": 28, 620 | "metadata": {}, 621 | "outputs": [ 622 | { 623 | "name": "stdout", 624 | "output_type": "stream", 625 | "text": [ 626 | "Multiple Linear Regression\n", 627 | "MSE for Multiple Linear Regression : 32.66263978796142\n", 628 | "R2 for Multiple Linear Regression : 0.5776602846411929\n" 629 | ] 630 | } 631 | ], 632 | "source": [ 633 | "print('Multiple Linear Regression')\n", 634 | "print('MSE for Multiple Linear Regression : ', MLR_MSE)\n", 635 | "print('R2 for Multiple Linear Regression : ', MLR_R2)" 636 | ] 637 | }, 638 | { 639 | "cell_type": "code", 640 | "execution_count": 29, 641 | "metadata": {}, 642 | "outputs": [ 643 | { 644 | "name": "stdout", 645 | "output_type": "stream", 646 | "text": [ 647 | "Polynomial Regression\n", 648 | "MSE for Polynomial Regression : 34.73390295312004\n", 649 | "R2 for Polynomial Regression : 0.5508781047168166\n" 650 | ] 651 | } 652 | ], 653 | "source": [ 654 | "print('Polynomial Regression')\n", 655 | "print('MSE for Polynomial Regression : ', PR_MSE)\n", 656 | "print('R2 for Polynomial Regression : ', PR_R2)" 657 | ] 658 | }, 659 | { 660 | "cell_type": "code", 661 | "execution_count": null, 662 | "metadata": {}, 663 | "outputs": [], 664 | "source": [] 665 | } 666 | ], 667 | "metadata": { 668 | "kernelspec": { 669 | "display_name": "Python 3", 670 | "language": "python", 671 | "name": "python3" 672 | }, 673 | "language_info": { 674 | "codemirror_mode": { 675 | "name": "ipython", 676 | "version": 3 677 | }, 678 | "file_extension": ".py", 679 | "mimetype": "text/x-python", 680 | "name": "python", 681 | "nbconvert_exporter": "python", 682 | "pygments_lexer": "ipython3", 683 | "version": "3.9.1" 684 | } 685 | }, 686 | "nbformat": 4, 687 | "nbformat_minor": 4 688 | } 689 | -------------------------------------------------------------------------------- /P09-LogisticRegression.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Practical - Logistic Regression\n", 8 | "\n", 9 | "Please refer to two parts of lecture before proceeding to this lab session.\n", 10 | "Part 1 - https://www.youtube.com/watch?v=jLe1nILDRbU\n", 11 | "Part 2 - https://www.youtube.com/watch?v=wD5wJvwVohU\n", 12 | "For those who would like to refresh Python skill, we would like to recommend our \"Programming for Data Science Series\" where we covered almost all aspects of Python programming in data science domain. Refer below URL for full playlist of almost 10 hours video lesson in Burmese Language. URL : https://www.youtube.com/watch?v=jOZNjVVZIVs&list=PLD_eiqVVLZDi9GZZJDC8Zx4-3Np8LHs52" 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 1, 18 | "metadata": {}, 19 | "outputs": [ 20 | { 21 | "data": { 22 | "text/html": [ 23 | "
\n", 24 | "\n", 37 | "\n", 38 | " \n", 39 | " \n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | "
ageeducationexperienceselected
0241.020
1353.581
2231.010
3353.071
4451.0100
\n", 85 | "
" 86 | ], 87 | "text/plain": [ 88 | " age education experience selected\n", 89 | "0 24 1.0 2 0\n", 90 | "1 35 3.5 8 1\n", 91 | "2 23 1.0 1 0\n", 92 | "3 35 3.0 7 1\n", 93 | "4 45 1.0 10 0" 94 | ] 95 | }, 96 | "execution_count": 1, 97 | "metadata": {}, 98 | "output_type": "execute_result" 99 | } 100 | ], 101 | "source": [ 102 | "import pandas as pd\n", 103 | "from sklearn.model_selection import train_test_split\n", 104 | "from sklearn.linear_model import LogisticRegression\n", 105 | "from sklearn import metrics\n", 106 | "import seaborn as sn\n", 107 | "\n", 108 | "df = pd.read_csv('https://raw.githubusercontent.com/myanmards/resource_files/master/job-fit.csv')\n", 109 | "df.head()" 110 | ] 111 | }, 112 | { 113 | "cell_type": "code", 114 | "execution_count": 2, 115 | "metadata": {}, 116 | "outputs": [], 117 | "source": [ 118 | "X = df[['age', 'education', 'experience']]\n", 119 | "y = df['selected']" 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "execution_count": 3, 125 | "metadata": {}, 126 | "outputs": [], 127 | "source": [ 128 | "X_train,X_test,y_train,y_test = train_test_split(X, y, test_size=0.25, random_state=0)" 129 | ] 130 | }, 131 | { 132 | "cell_type": "code", 133 | "execution_count": 4, 134 | "metadata": {}, 135 | "outputs": [ 136 | { 137 | "data": { 138 | "text/plain": [ 139 | "LogisticRegression()" 140 | ] 141 | }, 142 | "execution_count": 4, 143 | "metadata": {}, 144 | "output_type": "execute_result" 145 | } 146 | ], 147 | "source": [ 148 | "LR = LogisticRegression()\n", 149 | "LR.fit(X_train, y_train)" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": 5, 155 | "metadata": {}, 156 | "outputs": [ 157 | { 158 | "data": { 159 | "text/plain": [ 160 | "array([1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1], dtype=int64)" 161 | ] 162 | }, 163 | "execution_count": 5, 164 | "metadata": {}, 165 | "output_type": "execute_result" 166 | } 167 | ], 168 | "source": [ 169 | "y_pred = LR.predict(X_test)\n", 170 | "y_pred" 171 | ] 172 | }, 173 | { 174 | "cell_type": "code", 175 | "execution_count": 6, 176 | "metadata": {}, 177 | "outputs": [ 178 | { 179 | "data": { 180 | "text/plain": [ 181 | "" 182 | ] 183 | }, 184 | "execution_count": 6, 185 | "metadata": {}, 186 | "output_type": "execute_result" 187 | }, 188 | { 189 | "data": { 190 | "image/png": "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\n", 191 | "text/plain": [ 192 | "
" 193 | ] 194 | }, 195 | "metadata": { 196 | "needs_background": "light" 197 | }, 198 | "output_type": "display_data" 199 | } 200 | ], 201 | "source": [ 202 | "confusion_matrix = pd.crosstab(y_test, y_pred, rownames=['Actual'], colnames=['Predicted'])\n", 203 | "sn.heatmap(confusion_matrix, annot=True)" 204 | ] 205 | }, 206 | { 207 | "cell_type": "code", 208 | "execution_count": 7, 209 | "metadata": {}, 210 | "outputs": [ 211 | { 212 | "name": "stdout", 213 | "output_type": "stream", 214 | "text": [ 215 | "Accuracy Score : 0.8461538461538461\n" 216 | ] 217 | } 218 | ], 219 | "source": [ 220 | "print('Accuracy Score : ', metrics.accuracy_score(y_test, y_pred))" 221 | ] 222 | }, 223 | { 224 | "cell_type": "code", 225 | "execution_count": 10, 226 | "metadata": {}, 227 | "outputs": [ 228 | { 229 | "data": { 230 | "text/html": [ 231 | "
\n", 232 | "\n", 245 | "\n", 246 | " \n", 247 | " \n", 248 | " \n", 249 | " \n", 250 | " \n", 251 | " \n", 252 | " \n", 253 | " \n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | "
ageeducationexperience
02535
\n", 263 | "
" 264 | ], 265 | "text/plain": [ 266 | " age education experience\n", 267 | "0 25 3 5" 268 | ] 269 | }, 270 | "execution_count": 10, 271 | "metadata": {}, 272 | "output_type": "execute_result" 273 | } 274 | ], 275 | "source": [ 276 | "new_candidate = {\n", 277 | " 'age': [25],\n", 278 | " 'education' : [3],\n", 279 | " 'experience' : [5]\n", 280 | "}\n", 281 | "\n", 282 | "new_df = pd.DataFrame(new_candidate, columns=['age', 'education', 'experience'])\n", 283 | "new_df" 284 | ] 285 | }, 286 | { 287 | "cell_type": "code", 288 | "execution_count": 11, 289 | "metadata": {}, 290 | "outputs": [ 291 | { 292 | "name": "stdout", 293 | "output_type": "stream", 294 | "text": [ 295 | "[1]\n" 296 | ] 297 | } 298 | ], 299 | "source": [ 300 | "y_new_pred = LR.predict(new_df)\n", 301 | "print(y_new_pred)" 302 | ] 303 | }, 304 | { 305 | "cell_type": "code", 306 | "execution_count": null, 307 | "metadata": {}, 308 | "outputs": [], 309 | "source": [] 310 | } 311 | ], 312 | "metadata": { 313 | "kernelspec": { 314 | "display_name": "Python 3", 315 | "language": "python", 316 | "name": "python3" 317 | }, 318 | "language_info": { 319 | "codemirror_mode": { 320 | "name": "ipython", 321 | "version": 3 322 | }, 323 | "file_extension": ".py", 324 | "mimetype": "text/x-python", 325 | "name": "python", 326 | "nbconvert_exporter": "python", 327 | "pygments_lexer": "ipython3", 328 | "version": "3.9.1" 329 | } 330 | }, 331 | "nbformat": 4, 332 | "nbformat_minor": 4 333 | } 334 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # data-analysis --------------------------------------------------------------------------------