Spaces:
Runtime error
Runtime error
File size: 123,890 Bytes
a3c4049 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 |
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"#the goal is to make an attack predictor based on total points, sp Atk, hp and defense, generation and weather or not its a legendary\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"\n",
"df = pd.read_csv(\"pokemon_data.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>#</th>\n",
" <th>Name</th>\n",
" <th>Type 1</th>\n",
" <th>Type 2</th>\n",
" <th>Total</th>\n",
" <th>HP</th>\n",
" <th>Attack</th>\n",
" <th>Defense</th>\n",
" <th>Sp. Atk</th>\n",
" <th>Sp. Def</th>\n",
" <th>Speed</th>\n",
" <th>Generation</th>\n",
" <th>Legendary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>Bulbasaur</td>\n",
" <td>Grass</td>\n",
" <td>Poison</td>\n",
" <td>318</td>\n",
" <td>45</td>\n",
" <td>49</td>\n",
" <td>49</td>\n",
" <td>65</td>\n",
" <td>65</td>\n",
" <td>45</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>Ivysaur</td>\n",
" <td>Grass</td>\n",
" <td>Poison</td>\n",
" <td>405</td>\n",
" <td>60</td>\n",
" <td>62</td>\n",
" <td>63</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>60</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>Venusaur</td>\n",
" <td>Grass</td>\n",
" <td>Poison</td>\n",
" <td>525</td>\n",
" <td>80</td>\n",
" <td>82</td>\n",
" <td>83</td>\n",
" <td>100</td>\n",
" <td>100</td>\n",
" <td>80</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>VenusaurMega Venusaur</td>\n",
" <td>Grass</td>\n",
" <td>Poison</td>\n",
" <td>625</td>\n",
" <td>80</td>\n",
" <td>100</td>\n",
" <td>123</td>\n",
" <td>122</td>\n",
" <td>120</td>\n",
" <td>80</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>Charmander</td>\n",
" <td>Fire</td>\n",
" <td>NaN</td>\n",
" <td>309</td>\n",
" <td>39</td>\n",
" <td>52</td>\n",
" <td>43</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>65</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" # Name Type 1 Type 2 Total HP Attack Defense \n",
"0 1 Bulbasaur Grass Poison 318 45 49 49 \\\n",
"1 2 Ivysaur Grass Poison 405 60 62 63 \n",
"2 3 Venusaur Grass Poison 525 80 82 83 \n",
"3 3 VenusaurMega Venusaur Grass Poison 625 80 100 123 \n",
"4 4 Charmander Fire NaN 309 39 52 43 \n",
"\n",
" Sp. Atk Sp. Def Speed Generation Legendary \n",
"0 65 65 45 1 False \n",
"1 80 80 60 1 False \n",
"2 100 100 80 1 False \n",
"3 122 120 80 1 False \n",
"4 60 50 65 1 False "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Name</th>\n",
" <th>Total</th>\n",
" <th>HP</th>\n",
" <th>Attack</th>\n",
" <th>Defense</th>\n",
" <th>Generation</th>\n",
" <th>Legendary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Bulbasaur</td>\n",
" <td>318</td>\n",
" <td>45</td>\n",
" <td>49</td>\n",
" <td>49</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Ivysaur</td>\n",
" <td>405</td>\n",
" <td>60</td>\n",
" <td>62</td>\n",
" <td>63</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Venusaur</td>\n",
" <td>525</td>\n",
" <td>80</td>\n",
" <td>82</td>\n",
" <td>83</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>VenusaurMega Venusaur</td>\n",
" <td>625</td>\n",
" <td>80</td>\n",
" <td>100</td>\n",
" <td>123</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Charmander</td>\n",
" <td>309</td>\n",
" <td>39</td>\n",
" <td>52</td>\n",
" <td>43</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Name Total HP Attack Defense Generation Legendary\n",
"0 Bulbasaur 318 45 49 49 1 False\n",
"1 Ivysaur 405 60 62 63 1 False\n",
"2 Venusaur 525 80 82 83 1 False\n",
"3 VenusaurMega Venusaur 625 80 100 123 1 False\n",
"4 Charmander 309 39 52 43 1 False"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df[[\"Name\",\"Total\", \"HP\", \"Attack\", \"Defense\", \"Generation\", \"Legendary\"]]\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Name 0\n",
"Total 0\n",
"HP 0\n",
"Attack 0\n",
"Defense 0\n",
"Generation 0\n",
"Legendary 0\n",
"dtype: int64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABA4AAAKQCAYAAAAfYjhJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADBk0lEQVR4nOz9f1yW9f3//9/lBBFQMU0FtYSkRIMyrfAXIDVtKpuM2MvV1rb3em2fvfqxTUE3fVer1vQ7FW1ruV57t1Vz6VyMaC+mvWZFeLZiJWWDEgsDy0RNTdQTRDg5v3+080x+nHAC54/jOM/b9XLxUudxHOfxfBw/zpPzeDx/DXI4HA4BAAAAAAB0IyzQAQAAAAAAAOMicQAAAAAAANwicQAAAAAAANwicQAAAAAAANwicQAAAAAAANwicQAAAAAAANwicQAAAAAAANwicQAAAAAAANwicQAAAAAAANwicQAAANCN+vp6DRo0SBs2bAh0KAAABBSJAwAATO7JJ5/UoEGDtGfPnm7Xz5s3TykpKR2WJSQkaNCgQa5/Y8aMUXp6up599ll/hCxJ2rx5swYNGqS0tLRu17/77ru6//77VV9f3+17n3zySd8GCAAAJJE4AAAgZE2bNk1btmzRli1bVFBQoMOHDys3N1ePPfaYX8p/+umnlZCQoNdff121tbVd1r/77rt64IEHSBwAABBgJA4AAAhR48eP1ze+8Q194xvf0MqVK/WPf/xDMTEx2rRpk8/Lrqur06uvvqqNGzdq9OjRevrpp31eJgAA6B8SBwAAQJIUFxenKVOmqK6uzu02GzZs0KBBg3Tw4MEu61atWqXBgwfr008/7bWsp59+WhdddJEWL16svLy8LomDJ598Ul/96lclSVlZWa4uFS+//LISEhL0zjvvqLy83LV83rx5kqSTJ0+qoKBAqampGjp0qIYPH66FCxfq7bff7hLDuXPndP/99+uKK67QkCFDFB8fr9zcXB04cMBt3A6HQ9/73vc0ePBgFRcX93qcAAAEAxIHAAAEicbGRh0/frzLv9bWVo/e39raqo8++kijRo1yu81//Md/aNCgQfrzn//cZd2f//xnLViwQBdddFGvZT399NPKzc3V4MGDdcstt+j999/XG2+84VqfkZGhH/zgB5Kk1atXu7pUTJkyRQ8//LAmTJig5ORk1/L/+3//ryTpgw8+UElJibKzs7Vx40atWLFCVVVVyszM1OHDh137t9vtys7O1gMPPKAZM2aosLBQP/zhD9XY2Kjq6upuY7bb7fr2t7+tP/zhD3r22WeVm5vb63ECABAMwgMdAAAA8I4vfOELbtddeeWVXZa1trbq+PHjkqTDhw9r7dq1Onr0qO6++263+7n00ks1c+ZMbd++XStWrHAtf+ONN/TBBx/o/vvv7zXOyspK1dTU6JFHHpEkzZ07VxMmTNDTTz+t6667TpJ02WWXKT09Xb/61a80f/58V4sCScrJydE999yjiy++WN/4xjc67Ds1NVXvvfeewsI+rxu57bbblJycrN/97ne69957JUl/+MMf9OKLL2rjxo1atmyZa9uf/OQncjgcXWJua2vTN77xDf31r3/VX//6Vy1YsKDX4wQAIFiQOAAAIEg8+uijuuKKK7osz8/Pl91u77L873//u0aPHu16bbFYdNttt+kXv/hFj+UsXbpUP/rRj3TgwAFNmjRJkrR9+3ZFRkZqyZIlvcb59NNPa+zYscrKypIkDRo0SEuXLtUf//hHFRYWymKx9LoPdyIjI13/b7fbderUKQ0dOlSTJ0/Wm2++6Vr3l7/8RRdffHG3SZJBgwZ1eH3+/Hl99atf1a5du7Rjx44OSQwAAEIBiQMAAILE9ddfr2uvvbbL8osuusjVsuBCaWlpeuihhzRo0CBFR0drypQpGjFiRK/lfPWrX9Xy5cu1fft2rV69Wg6HQ88884wWLlyo4cOH9/heu92uP/3pT8rKyuowlkJaWpoKCwv14osvDqg2v729Xb/85S+1efNm1dXVdUiYXNgF48CBA5o8ebLCw3v/KbR27VqdPXtWO3fuJGkAAAhJjHEAAECIuvjii/WFL3xBN954o2bNmuVR0kCSxo0bp/T0dNc4BxUVFfrwww+1dOnSXt/70ksvqaGhQX/60590+eWXu/79x3/8hyQNeHaFNWvWaPny5crIyNAf//hH/e///q927dqlK6+8Uu3t7f3a50033aSYmBitW7dO586dG1B8AACYES0OAABAny1dulR33HGH9u/fr+3btys6Olpf+tKXen3f008/rTFjxujRRx/tsq64uFjPPvusHnvsMUVFRXXpMnAhd+uKioqUlZWl3/3udx2Wnzp1ShdffLHr9aRJk/TPf/5Tra2tioiI6DHmmTNn6vvf/76ys7P11a9+Vc8++6xHLRUAAAgWtDgAAAB9dvPNN8tisWjbtm165plnlJ2drZiYmB7f09zcrOLiYmVnZysvL6/Lv7vuuktnzpzRX//6V0ly7e/UqVNd9hUTE9PtcovF0mVww2eeeUYff/xxl/iPHz+uX//611320d3giF/4whf0pz/9Sc8//7xuu+22frdeAADAjEiXAwCAPhszZoyysrK0ceNGnTlzxqNuCn/961915swZffnLX+52/cyZMzV69Gg9/fTTWrp0qaZNmyaLxaJf/OIXamxsVGRkpG644QaNGTNGM2bM0G9+8xs99NBDSkpK0pgxY3TDDTcoOztbDz74oP7P//k/mj17tqqqqvT000/rsssu61DWN7/5Tf3hD3/Q8uXL9frrrys9PV02m00vvPCC7rjjjm4HeczJydETTzyhb37zmxo+fLj++7//u38nDwAAkyFxAAAA+mXp0qV64YUXNGzYMC1atKjX7Z9++mkNGTJE8+fP73Z9WFiYFi9erKefflonTpxQXFycHnvsMa1du1a333677Ha7ysrKNGbMGN133306ePCg1q1bpzNnzigzM1M33HCDVq9eLZvNpq1bt2r79u2aPn26/va3v+knP/lJh7IsFot27Nihn//859q6dav+8pe/aNSoUZo7d65SU1PdHsM3vvENnTlzRnfccYeGDx+u9evX9+2kAQBgQoMc3bXHAwAAAAAAEGMcAAAAAACAHpA4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAbpE4AAAAAAAAboUHOgAjaG9v1+HDhzVs2DANGjQo0OEAAAAAAOATDodDZ86c0bhx4xQW5llbAhIHkg4fPqxLLrkk0GEAAAAAAOAXH330kSZMmODRtiQOJA0bNkzSZydu+PDham1t1d///nctWLBAERER3b6nt228sY9gK8dMsVKOscsxU6yUQzlmi5VyjF2OmWKlHMoxW6yUY+xyzBSr0cs5ffq0LrnkEtdzsCdIHEiu7gnDhw93JQ6io6M1fPjwHi9QT9t4Yx/BVo6ZYqUcY5djplgph3LMFivlGLscM8VKOZRjtlgpx9jlmClWs5TTl276DI4IAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInEAAAAAAADcInHQD01NTXrt9T16teqAXnt9j5qamgIdEgAAAAAAPhEe6ADMqKamRplzZ0uS1kmqrKzU9OnTAxsUAAAAAAA+QIuDfkhOTtbW0hcV962HtbX0RSUnJwc6JAAAAAAAfILEQT9ER0drSsrVioxL0pSUqxUdHR3okAAAAAAA8AkSBwAAAAAAwC0SBwAAAAAAwC0SBwAAAAAAwK2AJg7Wrl2r6667TsOGDdOYMWOUk5Oj/fv3d9hm3rx5GjRoUId/3//+9zts8+GHH2rx4sWKjo7WmDFjtGLFCrW1tfnzUAAAAAAACEoBnY6xvLxcd955p6677jq1tbVp9erVWrBggd59913FxMS4tvvud7+rBx980PX6wsEI7Xa7Fi9erLi4OL366qtqaGjQN7/5TUVERGjNmjV+PR4AAAAAAIJNQBMHzz//fIfXTz75pMaMGaPKykplZGS4lkdHRysuLq7bffz973/Xu+++qxdeeEFjx47VtGnT9LOf/Uw//vGPdf/992vw4MFd3tPS0qKWlhbX69OnT0uSWltb1djYqMq9/9KrVQc0bESFZky7qttZE5wtGtra2tTa2tplvXNZd+u8uY2ZyjFTrJRj7HLMFCvlUI7ZYqUcY5djplgph3LMFivlGLscM8Vq9HJ62p87gxwOh6PP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z5/Xq6++qqeeekpPPvmk7rvvvkAcEgAAAAAAQSU8kIU///zzHV4/+eSTGjNmjCorK5WRkaHGxkb97ne/09atW3XDDTdIkp544glNmTJFFRUVmjlzpv7+97/r3Xff1QsvvKCxY8dq2rRp+tnPfqYf//jHuv/++zV48OAu5ba0tKilpcX1+vTp05Kktjb7v//b1uW/ra2tHfbR0zpJrmXdrfPmNmYqx0yxUo6xyzFTrJRDOWaLlXKMXY6ZYqUcyjFbrJRj7HLMFKvRy+lpf+4Mcjgcjj6/y0dqa2t1+eWXq6qqSikpKXrppZd044036tNPP9WIESNc202cOFE/+tGPtGzZMt13333661//qr1797rW19XV6bLLLtObb76pa665pks5999/vx544IEuy9f9dqsePTBcBaltumSo9NFZaUNVuOv1hXpaBwAAAACAETU1NenWW29VY2Ojhg8f7tmbHAZht9sdixcvdsyZM8e17Omnn3YMHjy4y7bXXXedY+XKlQ6Hw+H47ne/61iwYEGH9TabzSHJsWPHjm7LOnfunKOxsdH176OPPnJIclir6hwTf1zqeKP2iKOkpMTxRu0Rx8Qflzreqj/uOH/+fId/znVv1B7psu78+fMOm83mKCkpcdhstm7Xe2sbM5Vjplgpx9jlmClWyqEcs8VKOcYux0yxUg7lmC1WyjF2OWaK1ejlHD9+3CHJ0djY6PHzekC7KlzozjvvVHV1tV555RWflxUZGanIyMguy8PDLf/+b3iX/0ZERHTa1v26C0VERPS43lvbmKkcM8VKOcYux0yxUg7lmC1WyjF2OWaKlXIox2yxUo6xyzFTrEYtp7d9dccQ0zHeddddKi0tVVlZmSZMmOBaHhcXp/Pnz+vUqVMdtj969Kji4uJc23SeZcH52rkNAAAAAADon4AmDhwOh+666y49++yzeumll5SYmNhh/YwZMxQREaEXX3zRtWz//v368MMPNWvWLEnSrFmzVFVVpWPHjrm22bVrl4YPH66pU6f650AAAAAAAAhSAe2qcOedd2rr1q167rnnNGzYMB05ckSSFBsbq6ioKMXGxur222/X8uXLNXLkSA0fPlx33323Zs2apZkzZ0qSFixYoKlTp+q2227TunXrdOTIEd1zzz268847u+2OAAAAAAAAPBfQxMFvfvMbSdK8efM6LH/iiSf07W9/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",
"text/plain": [
"<Figure size 1200x700 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(1, 1, figsize=(12,7))\n",
"df.boxplot('HP', 'Attack', ax=ax)\n",
"plt.suptitle('HP v Attack')\n",
"plt.title('')\n",
"plt.ylabel('HP')\n",
"plt.xticks(rotation=90) \n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"df = df[df[\"HP\"] <= 150]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([False, True])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"Legendary\"].unique()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Total</th>\n",
" <th>HP</th>\n",
" <th>Attack</th>\n",
" <th>Defense</th>\n",
" <th>Generation</th>\n",
" <th>Legendary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>318</td>\n",
" <td>45</td>\n",
" <td>49</td>\n",
" <td>49</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>405</td>\n",
" <td>60</td>\n",
" <td>62</td>\n",
" <td>63</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>525</td>\n",
" <td>80</td>\n",
" <td>82</td>\n",
" <td>83</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>625</td>\n",
" <td>80</td>\n",
" <td>100</td>\n",
" <td>123</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>309</td>\n",
" <td>39</td>\n",
" <td>52</td>\n",
" <td>43</td>\n",
" <td>1</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Total HP Attack Defense Generation Legendary\n",
"0 318 45 49 49 1 False\n",
"1 405 60 62 63 1 False\n",
"2 525 80 82 83 1 False\n",
"3 625 80 100 123 1 False\n",
"4 309 39 52 43 1 False"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df.drop(\"Name\", axis=1)\n",
"df.head()\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Legendary\n",
"False 729\n",
"True 65\n",
"Name: count, dtype: int64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"Legendary\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 0\n",
"1 0\n",
"2 0\n",
"3 0\n",
"4 0\n",
" ..\n",
"795 1\n",
"796 1\n",
"797 1\n",
"798 1\n",
"799 1\n",
"Name: Legendary, Length: 794, dtype: int32"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.preprocessing import LabelBinarizer\n",
"\n",
"lb = LabelBinarizer()\n",
"df[\"Legendary\"] = lb.fit_transform(df[\"Legendary\"])\n",
"df[\"Legendary\"]"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Total</th>\n",
" <th>HP</th>\n",
" <th>Defense</th>\n",
" <th>Generation</th>\n",
" <th>Legendary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>318</td>\n",
" <td>45</td>\n",
" <td>49</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>405</td>\n",
" <td>60</td>\n",
" <td>63</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>525</td>\n",
" <td>80</td>\n",
" <td>83</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>625</td>\n",
" <td>80</td>\n",
" <td>123</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>309</td>\n",
" <td>39</td>\n",
" <td>43</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>795</th>\n",
" <td>600</td>\n",
" <td>50</td>\n",
" <td>150</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>796</th>\n",
" <td>700</td>\n",
" <td>50</td>\n",
" <td>110</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>797</th>\n",
" <td>600</td>\n",
" <td>80</td>\n",
" <td>60</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>798</th>\n",
" <td>680</td>\n",
" <td>80</td>\n",
" <td>60</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>799</th>\n",
" <td>600</td>\n",
" <td>80</td>\n",
" <td>120</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>794 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" Total HP Defense Generation Legendary\n",
"0 318 45 49 1 0\n",
"1 405 60 63 1 0\n",
"2 525 80 83 1 0\n",
"3 625 80 123 1 0\n",
"4 309 39 43 1 0\n",
".. ... .. ... ... ...\n",
"795 600 50 150 6 1\n",
"796 700 50 110 6 1\n",
"797 600 80 60 6 1\n",
"798 680 80 60 6 1\n",
"799 600 80 120 6 1\n",
"\n",
"[794 rows x 5 columns]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X = df.drop(\"Attack\", axis=1)\n",
"y = df[\"Attack\"]\n",
"\n",
"X"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" 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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearRegression</label><div class=\"sk-toggleable__content\"><pre>LinearRegression()</pre></div></div></div></div></div>"
],
"text/plain": [
"LinearRegression()"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.linear_model import LinearRegression\n",
"\n",
"linear_reg = LinearRegression()\n",
"linear_reg.fit(X, y.values)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"y_pred = linear_reg.predict(X)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import mean_squared_error\n",
"import numpy as np\n",
"\n",
"error = np.sqrt(mean_squared_error(y, y_pred))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"21.496482234141062"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"error"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor()</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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeRegressor</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeRegressor()</pre></div></div></div></div></div>"
],
"text/plain": [
"DecisionTreeRegressor()"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.tree import DecisionTreeRegressor\n",
"dec_tree_reg = DecisionTreeRegressor()\n",
"dec_tree_reg.fit(X, y.values)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"y_pred = dec_tree_reg.predict(X)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"error = np.sqrt(mean_squared_error(y, y_pred))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3.0236612389606883"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"error"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestRegressor()</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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" checked><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestRegressor</label><div class=\"sk-toggleable__content\"><pre>RandomForestRegressor()</pre></div></div></div></div></div>"
],
"text/plain": [
"RandomForestRegressor()"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.ensemble import RandomForestRegressor\n",
"random_for_reg = RandomForestRegressor()\n",
"random_for_reg.fit(X, y.values)\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"y_pred = random_for_reg.predict(X)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"error = np.sqrt(mean_squared_error(y, y_pred))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8.880529131242248"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"error"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n"
]
}
],
"source": [
"y_pred = dec_tree_reg.predict(X)\n",
"error = np.sqrt(mean_squared_error(y, y_pred))\n",
"print(\"{:,.0f}\".format(error))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Total</th>\n",
" <th>HP</th>\n",
" <th>Defense</th>\n",
" <th>Generation</th>\n",
" <th>Legendary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>318</td>\n",
" <td>45</td>\n",
" <td>49</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>405</td>\n",
" <td>60</td>\n",
" <td>63</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>525</td>\n",
" <td>80</td>\n",
" <td>83</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>625</td>\n",
" <td>80</td>\n",
" <td>123</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>309</td>\n",
" <td>39</td>\n",
" <td>43</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>795</th>\n",
" <td>600</td>\n",
" <td>50</td>\n",
" <td>150</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>796</th>\n",
" <td>700</td>\n",
" <td>50</td>\n",
" <td>110</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>797</th>\n",
" <td>600</td>\n",
" <td>80</td>\n",
" <td>60</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>798</th>\n",
" <td>680</td>\n",
" <td>80</td>\n",
" <td>60</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>799</th>\n",
" <td>600</td>\n",
" <td>80</td>\n",
" <td>120</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>794 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" Total HP Defense Generation Legendary\n",
"0 318 45 49 1 0\n",
"1 405 60 63 1 0\n",
"2 525 80 83 1 0\n",
"3 625 80 123 1 0\n",
"4 309 39 43 1 0\n",
".. ... .. ... ... ...\n",
"795 600 50 150 6 1\n",
"796 700 50 110 6 1\n",
"797 600 80 60 6 1\n",
"798 680 80 60 6 1\n",
"799 600 80 120 6 1\n",
"\n",
"[794 rows x 5 columns]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"import pickle\n",
"\n",
"data = {\"model\":dec_tree_reg, \"lb\":lb}\n",
"\n",
"with open('saved_data.pkl', 'wb') as file:\n",
" pickle.dump(data, file)\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"with open('saved_data.pkl', 'rb') as file:\n",
" data = pickle.load(file)\n",
"\n",
"regressor_loaded = data[\"model\"]\n",
"lb = data[\"lb\"]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 49. , 62. , 82. , 100. ,\n",
" 52. , 64. , 84. , 130. ,\n",
" 104. , 48. , 63. , 83. ,\n",
" 103. , 30. , 20. , 45. ,\n",
" 35. , 25. , 90. , 150. ,\n",
" 45. , 60. , 80. , 80. ,\n",
" 56. , 81. , 60. , 90. ,\n",
" 60. , 85. , 55. , 90. ,\n",
" 75. , 100. , 47. , 62. ,\n",
" 92. , 57. , 72. , 102. ,\n",
" 45. , 70. , 41. , 76. ,\n",
" 45. , 70. , 45. , 80. ,\n",
" 50. , 65. , 80. , 70. ,\n",
" 95. , 55. , 65. , 55. ,\n",
" 80. , 45. , 70. , 52. ,\n",
" 82. , 80. , 105. , 70. ,\n",
" 110. , 50. , 65. , 95. ,\n",
" 20. , 35. , 50. , 50. ,\n",
" 80. , 100. , 130. , 75. ,\n",
" 90. , 105. , 40. , 87.5 ,\n",
" 80. , 95. , 120. , 85. ,\n",
" 100. , 65. , 75. , 75. ,\n",
" 35. , 60. , 65. , 85. ,\n",
" 110. , 45. , 70. , 80. ,\n",
" 105. , 65. , 95. , 35. ,\n",
" 50. , 65. , 65. , 45. ,\n",
" 48. , 73. , 105. , 130. ,\n",
" 30. , 50. , 40. , 95. ,\n",
" 50. , 80. , 120. , 105. ,\n",
" 55. , 65. , 90. , 85. ,\n",
" 130. , 55. , 95. , 125. ,\n",
" 40. , 65. , 67. , 92. ,\n",
" 45. , 75. , 45. , 110. ,\n",
" 50. , 83. , 95. , 125. ,\n",
" 155. , 100. , 10. , 125. ,\n",
" 155. , 85. , 48. , 55. ,\n",
" 65. , 97.5 , 97.5 , 60. ,\n",
" 40. , 60. , 80. , 115. ,\n",
" 87.5 , 135. , 85. , 90. ,\n",
" 100. , 64. , 84. , 134. ,\n",
" 110. , 190. , 150. , 100. ,\n",
" 49. , 62. , 82. , 52. ,\n",
" 64. , 84. , 65. , 80. ,\n",
" 105. , 46. , 76. , 30. ,\n",
" 50. , 20. , 35. , 50. ,\n",
" 90. , 90. , 38. , 58. ,\n",
" 40. , 25. , 30. , 20. ,\n",
" 40. , 50. , 75. , 40. ,\n",
" 55. , 75. , 95. , 80. ,\n",
" 20. , 50. , 100. , 102.5 ,\n",
" 35. , 45. , 55. , 70. ,\n",
" 30. , 75. , 65. , 45. ,\n",
" 85. , 65. , 65. , 85. ,\n",
" 75. , 60. , 72. , 80. ,\n",
" 65. , 90. , 70. , 75. ,\n",
" 85. , 125. , 80. , 120. ,\n",
" 95. , 130. , 150. , 10. ,\n",
" 125. , 185. , 95. , 80. ,\n",
" 102.5 , 50. , 50. , 50. ,\n",
" 100. , 55. , 65. , 105. ,\n",
" 55. , 40. , 80. , 60. ,\n",
" 90. , 90. , 95. , 60. ,\n",
" 120. , 80. , 95. , 20. ,\n",
" 35. , 95. , 30. , 63. ,\n",
" 75. , 80. , 85. , 115. ,\n",
" 75. , 64. , 84. , 134. ,\n",
" 164. , 90. , 130. , 100. ,\n",
" 45. , 65. , 85. , 110. ,\n",
" 60. , 85. , 120. , 160. ,\n",
" 70. , 85. , 110. , 150. ,\n",
" 55. , 80. , 30. , 70. ,\n",
" 45. , 35. , 70. , 35. ,\n",
" 50. , 30. , 50. , 70. ,\n",
" 40. , 70. , 100. , 42.5 ,\n",
" 85. , 42.5 , 50. , 25. ,\n",
" 35. , 65. , 85. , 30. ,\n",
" 60. , 40. , 130. , 60. ,\n",
" 80. , 160. , 45. , 90. ,\n",
" 90. , 51. , 71. , 91. ,\n",
" 60. , 120. , 20. , 45. ,\n",
" 45. , 65. , 75. , 95. ,\n",
" 85. , 95. , 70. , 90. ,\n",
" 110. , 140. , 40. , 60. ,\n",
" 100. , 45. , 95. , 75. ,\n",
" 50. , 40. , 60. , 60. ,\n",
" 60. , 43. , 73. , 90. ,\n",
" 120. , 140. , 70. , 60. ,\n",
" 100. , 120. , 85. , 25. ,\n",
" 45. , 60. , 100. , 70. ,\n",
" 100. , 85. , 95. , 40. ,\n",
" 70. , 110. , 107.5 , 107.5 ,\n",
" 55. , 95. , 48. , 78. ,\n",
" 80. , 120. , 40. , 70. ,\n",
" 41. , 81. , 95. , 125. ,\n",
" 15. , 60. , 80. , 90. ,\n",
" 75. , 115. , 165. , 40. ,\n",
" 70. , 68. , 50. , 130. ,\n",
" 150. , 23. , 50. , 80. ,\n",
" 120. , 40. , 60. , 80. ,\n",
" 64. , 94. , 94. , 90. ,\n",
" 30. , 75. , 95. , 135. ,\n",
" 145. , 55. , 75. , 135. ,\n",
" 145. , 100. , 50. , 75. ,\n",
" 80. , 100. , 90. , 130. ,\n",
" 100. , 150. , 150. , 180. ,\n",
" 150. , 180. , 100. , 150. ,\n",
" 180. , 70. , 95. , 68. ,\n",
" 89. , 109. , 58. , 78. ,\n",
" 104. , 51. , 66. , 86. ,\n",
" 55. , 75. , 120. , 45. ,\n",
" 85. , 25. , 85. , 65. ,\n",
" 85. , 120. , 30. , 70. ,\n",
" 125. , 165. , 42. , 52. ,\n",
" 29. , 59. , 79. , 69. ,\n",
" 94. , 30. , 80. , 45. ,\n",
" 65. , 105. , 35. , 60. ,\n",
" 48. , 83. , 100. , 50. ,\n",
" 80. , 66. , 76. , 136. ,\n",
" 60. , 125. , 55. , 82. ,\n",
" 30. , 63. , 93. , 24. ,\n",
" 89. , 80. , 25. , 5. ,\n",
" 65. , 92. , 70. , 90. ,\n",
" 130. , 170. , 85. , 70. ,\n",
" 110. , 145. , 72. , 112. ,\n",
" 50. , 90. , 61. , 106. ,\n",
" 100. , 49. , 69. , 20. ,\n",
" 62. , 92. , 132. , 120. ,\n",
" 70. , 85. , 140. , 100. ,\n",
" 109. , 109. , 50. , 76. ,\n",
" 110. , 60. , 95. , 130. ,\n",
" 80. , 125. , 165. , 55. ,\n",
" 100. , 80. , 50. , 65. ,\n",
" 65. , 65. , 65. , 65. ,\n",
" 75. , 105. , 125. , 120. ,\n",
" 120. , 90. , 160. , 100. ,\n",
" 120. , 70. , 80. , 100. ,\n",
" 90. , 100. , 103. , 120. ,\n",
" 100. , 45. , 60. , 75. ,\n",
" 63. , 93. , 123. , 55. ,\n",
" 75. , 100. , 55. , 85. ,\n",
" 60. , 80. , 110. , 50. ,\n",
" 88. , 53. , 98. , 53. ,\n",
" 98. , 53. , 98. , 25. ,\n",
" 55. , 55. , 77. , 115. ,\n",
" 60. , 100. , 75. , 105. ,\n",
" 135. , 45. , 57. , 85. ,\n",
" 135. , 60. , 60. , 80. ,\n",
" 105. , 140. , 50. , 65. ,\n",
" 95. , 100. , 125. , 53. ,\n",
" 63. , 103. , 45. , 55. ,\n",
" 100. , 27. , 67. , 35. ,\n",
" 60. , 92. , 72. , 82. ,\n",
" 117. , 90. , 140. , 30. ,\n",
" 86. , 65. , 95. , 75. ,\n",
" 90. , 58. , 30. , 50. ,\n",
" 78. , 108. , 112. , 140. ,\n",
" 50. , 95. , 65. , 105. ,\n",
" 50. , 95. , 30. , 45. ,\n",
" 55. , 30. , 40. , 65. ,\n",
" 44. , 87. , 50. , 65. ,\n",
" 95. , 60. , 100. , 75. ,\n",
" 75. , 135. , 55. , 85. ,\n",
" 40. , 60. , 47. , 77. ,\n",
" 50. , 94. , 55. , 80. ,\n",
" 100. , 55. , 85. , 115. ,\n",
" 55. , 75. , 30. , 40. ,\n",
" 55. , 87. , 117. , 147. ,\n",
" 70. , 110. , 50. , 40. ,\n",
" 70. , 66. , 85. , 125. ,\n",
" 120. , 74. , 124. , 85. ,\n",
" 125. , 110. , 83. , 123. ,\n",
" 55. , 65. , 97. , 109. ,\n",
" 65. , 85. , 105. , 85. ,\n",
" 60. , 90. , 129. , 90. ,\n",
" 111.66666667, 100. , 111.66666667, 111.66666667,\n",
" 120. , 150. , 135. , 135. ,\n",
" 130. , 170. , 120. , 72. ,\n",
" 72. , 77. , 128. , 120. ,\n",
" 61. , 78. , 107. , 45. ,\n",
" 59. , 69. , 56. , 63. ,\n",
" 95. , 36. , 56. , 50. ,\n",
" 73. , 81. , 35. , 22. ,\n",
" 52. , 50. , 68. , 38. ,\n",
" 45. , 65. , 65. , 100. ,\n",
" 82. , 124. , 80. , 48. ,\n",
" 48. , 48. , 80. , 110. ,\n",
" 150. , 50. , 52. , 72. ,\n",
" 48. , 80. , 54. , 92. ,\n",
" 52. , 105. , 60. , 75. ,\n",
" 53. , 73. , 38. , 55. ,\n",
" 89. , 121. , 59. , 77. ,\n",
" 65. , 92. , 58. , 50. ,\n",
" 50. , 75. , 100. , 80. ,\n",
" 70. , 110. , 66. , 66. ,\n",
" 66. , 66. , 90. , 85. ,\n",
" 95. , 100. , 69. , 117. ,\n",
" 30. , 70. , 131. , 131. ,\n",
" 100. , 100. , 160. , 110. ,\n",
" 160. , 110. ])"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_pred = regressor_loaded.predict(X)\n",
"y_pred"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "ml",
"language": "python",
"name": "ml"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.2"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}
|