├── GB KNN Model.ipynb ├── Linear_Regression.ipynb └── Logistic Regression.ipynb /Linear_Regression.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "id": "GzfdMfk10NE6" 7 | }, 8 | "source": [ 9 | "## **Linear Regression with Python Scikit Learn**\n", 10 | "In this section we will see how the Python Scikit-Learn library for machine learning can be used to implement regression functions. We will start with simple linear regression involving two variables.\n", 11 | "\n", 12 | "### **Simple Linear Regression**\n", 13 | "In this regression task we will predict the percentage of marks that a student is expected to score based upon the number of hours they studied. This is a simple linear regression task as it involves just two variables." 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 1, 19 | "metadata": { 20 | "id": "V9QN2ZxC38pB" 21 | }, 22 | "outputs": [], 23 | "source": [ 24 | "# Importing all libraries required in this notebook\n", 25 | "import pandas as pd\n", 26 | "import numpy as np \n", 27 | "import matplotlib.pyplot as plt " 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 2, 33 | "metadata": { 34 | "colab": { 35 | "base_uri": "https://localhost:8080/", 36 | "height": 380 37 | }, 38 | "id": "LtU4YMEhqm9m", 39 | "outputId": "cae4d898-e81c-4cb0-cae3-b668a921a074" 40 | }, 41 | "outputs": [ 42 | { 43 | "name": "stdout", 44 | "output_type": "stream", 45 | "text": [ 46 | "Data imported successfully\n" 47 | ] 48 | }, 49 | { 50 | "data": { 51 | "text/html": [ 52 | "
\n", 53 | "\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 | "
HoursScores
02.521
15.147
23.227
38.575
43.530
51.520
69.288
75.560
88.381
92.725
\n", 127 | "
" 128 | ], 129 | "text/plain": [ 130 | " Hours Scores\n", 131 | "0 2.5 21\n", 132 | "1 5.1 47\n", 133 | "2 3.2 27\n", 134 | "3 8.5 75\n", 135 | "4 3.5 30\n", 136 | "5 1.5 20\n", 137 | "6 9.2 88\n", 138 | "7 5.5 60\n", 139 | "8 8.3 81\n", 140 | "9 2.7 25" 141 | ] 142 | }, 143 | "execution_count": 2, 144 | "metadata": {}, 145 | "output_type": "execute_result" 146 | } 147 | ], 148 | "source": [ 149 | "# Reading data from remote link\n", 150 | "url = \"https://raw.githubusercontent.com/mhassandata/Regression_model/main/score.csv\"\n", 151 | "s_data = pd.read_csv(url)\n", 152 | "print(\"Data imported successfully\")\n", 153 | "s_data.head(10)" 154 | ] 155 | }, 156 | { 157 | "cell_type": "markdown", 158 | "metadata": { 159 | "id": "RHsPneuM4NgB" 160 | }, 161 | "source": [ 162 | "Let's plot our data points on 2-D graph to eyeball our dataset and see if we can manually find any relationship between the data. We can create the plot with the following script:" 163 | ] 164 | }, 165 | { 166 | "cell_type": "code", 167 | "execution_count": 3, 168 | "metadata": { 169 | "colab": { 170 | "base_uri": "https://localhost:8080/", 171 | "height": 472 172 | }, 173 | "id": "qxYBZkhAqpn9", 174 | "outputId": "36a7e99a-3ffa-41bf-da42-ce089c3e5dbd" 175 | }, 176 | "outputs": [ 177 | { 178 | "data": { 179 | "image/png": "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", 180 | "text/plain": [ 181 | "
" 182 | ] 183 | }, 184 | "metadata": {}, 185 | "output_type": "display_data" 186 | } 187 | ], 188 | "source": [ 189 | "# Plotting the distribution of scores\n", 190 | "s_data.plot(x='Hours', y='Scores', style='o') \n", 191 | "plt.title('Hours vs Percentage') \n", 192 | "plt.xlabel('Hours Studied') \n", 193 | "plt.ylabel('Percentage Score') \n", 194 | "plt.show()" 195 | ] 196 | }, 197 | { 198 | "cell_type": "markdown", 199 | "metadata": { 200 | "id": "fiQaULio4Rzr" 201 | }, 202 | "source": [ 203 | "**From the graph above, we can clearly see that there is a positive linear relation between the number of hours studied and percentage of score.**" 204 | ] 205 | }, 206 | { 207 | "cell_type": "markdown", 208 | "metadata": { 209 | "id": "WWtEr64M4jdz" 210 | }, 211 | "source": [ 212 | "### **Preparing the data**\n", 213 | "\n", 214 | "The next step is to divide the data into \"attributes\" (inputs) and \"labels\" (outputs)." 215 | ] 216 | }, 217 | { 218 | "cell_type": "code", 219 | "execution_count": 4, 220 | "metadata": { 221 | "id": "LiJ5210e4tNX" 222 | }, 223 | "outputs": [], 224 | "source": [ 225 | "X = s_data.iloc[:, :-1].values \n", 226 | "y = s_data.iloc[:, 1].values " 227 | ] 228 | }, 229 | { 230 | "cell_type": "code", 231 | "execution_count": 5, 232 | "metadata": { 233 | "colab": { 234 | "base_uri": "https://localhost:8080/" 235 | }, 236 | "id": "0DrNCxfV_0sS", 237 | "outputId": "31344c84-6445-4b80-f7a9-17ea56604245" 238 | }, 239 | "outputs": [ 240 | { 241 | "data": { 242 | "text/plain": [ 243 | "array([[2.5],\n", 244 | " [5.1],\n", 245 | " [3.2],\n", 246 | " [8.5],\n", 247 | " [3.5],\n", 248 | " [1.5],\n", 249 | " [9.2],\n", 250 | " [5.5],\n", 251 | " [8.3],\n", 252 | " [2.7],\n", 253 | " [7.7],\n", 254 | " [5.9],\n", 255 | " [4.5],\n", 256 | " [3.3],\n", 257 | " [1.1],\n", 258 | " [8.9],\n", 259 | " [2.5],\n", 260 | " [1.9],\n", 261 | " [6.1],\n", 262 | " [7.4],\n", 263 | " [2.7],\n", 264 | " [4.8],\n", 265 | " [3.8],\n", 266 | " [6.9],\n", 267 | " [7.8]])" 268 | ] 269 | }, 270 | "execution_count": 5, 271 | "metadata": {}, 272 | "output_type": "execute_result" 273 | } 274 | ], 275 | "source": [ 276 | "X" 277 | ] 278 | }, 279 | { 280 | "cell_type": "code", 281 | "execution_count": 6, 282 | "metadata": { 283 | "colab": { 284 | "base_uri": "https://localhost:8080/" 285 | }, 286 | "id": "HKJA37KL_0sT", 287 | "outputId": "6ecc3cb9-084d-42eb-de9f-1c57256cca6d" 288 | }, 289 | "outputs": [ 290 | { 291 | "data": { 292 | "text/plain": [ 293 | "array([21, 47, 27, 75, 30, 20, 88, 60, 81, 25, 85, 62, 41, 42, 17, 95, 30,\n", 294 | " 24, 67, 69, 30, 54, 35, 76, 86])" 295 | ] 296 | }, 297 | "execution_count": 6, 298 | "metadata": {}, 299 | "output_type": "execute_result" 300 | } 301 | ], 302 | "source": [ 303 | "y" 304 | ] 305 | }, 306 | { 307 | "cell_type": "markdown", 308 | "metadata": { 309 | "id": "Riz-ZiZ34fO4" 310 | }, 311 | "source": [ 312 | "Now that we have our attributes and labels, the next step is to split this data into training and test sets. We'll do this by using Scikit-Learn's built-in train_test_split() method:" 313 | ] 314 | }, 315 | { 316 | "cell_type": "code", 317 | "execution_count": 7, 318 | "metadata": { 319 | "id": "udFYso1M4BNw" 320 | }, 321 | "outputs": [], 322 | "source": [ 323 | "from sklearn.model_selection import train_test_split\n", 324 | "\n", 325 | "X_train, X_test, y_train, y_test = train_test_split(X, y, \n", 326 | " test_size=0.2, random_state=0) " 327 | ] 328 | }, 329 | { 330 | "cell_type": "code", 331 | "execution_count": 8, 332 | "metadata": { 333 | "colab": { 334 | "base_uri": "https://localhost:8080/" 335 | }, 336 | "id": "LDQkaigQ_0sT", 337 | "outputId": "6162a217-b98c-4c7d-a51a-e417cd8b95cd" 338 | }, 339 | "outputs": [ 340 | { 341 | "data": { 342 | "text/plain": [ 343 | "array([[3.8],\n", 344 | " [1.9],\n", 345 | " [7.8],\n", 346 | " [6.9],\n", 347 | " [1.1],\n", 348 | " [5.1],\n", 349 | " [7.7],\n", 350 | " [3.3],\n", 351 | " [8.3],\n", 352 | " [9.2],\n", 353 | " [6.1],\n", 354 | " [3.5],\n", 355 | " [2.7],\n", 356 | " [5.5],\n", 357 | " [2.7],\n", 358 | " [8.5],\n", 359 | " [2.5],\n", 360 | " [4.8],\n", 361 | " [8.9],\n", 362 | " [4.5]])" 363 | ] 364 | }, 365 | "execution_count": 8, 366 | "metadata": {}, 367 | "output_type": "execute_result" 368 | } 369 | ], 370 | "source": [ 371 | "X_train" 372 | ] 373 | }, 374 | { 375 | "cell_type": "markdown", 376 | "metadata": { 377 | "id": "a6WXptFU5CkC" 378 | }, 379 | "source": [ 380 | "### **Training the Algorithm**\n", 381 | "Now that we have split our data into training and testing sets, we can finally train our algorithm on it. " 382 | ] 383 | }, 384 | { 385 | "cell_type": "code", 386 | "execution_count": 9, 387 | "metadata": { 388 | "colab": { 389 | "base_uri": "https://localhost:8080/" 390 | }, 391 | "id": "qddCuaS84fpK", 392 | "outputId": "41a29249-38ab-4773-f7f6-e1ede34e7536" 393 | }, 394 | "outputs": [], 395 | "source": [ 396 | "from sklearn.linear_model import LinearRegression \n", 397 | "\n", 398 | "regressor = LinearRegression()" 399 | ] 400 | }, 401 | { 402 | "cell_type": "code", 403 | "execution_count": 10, 404 | "metadata": {}, 405 | "outputs": [ 406 | { 407 | "name": "stdout", 408 | "output_type": "stream", 409 | "text": [ 410 | "Training complete.\n" 411 | ] 412 | } 413 | ], 414 | "source": [ 415 | "regressor.fit(X_train, y_train) \n", 416 | "\n", 417 | "print(\"Training complete.\")" 418 | ] 419 | }, 420 | { 421 | "cell_type": "code", 422 | "execution_count": 11, 423 | "metadata": {}, 424 | "outputs": [ 425 | { 426 | "data": { 427 | "text/plain": [ 428 | "array([16.88414476, 33.73226078, 75.357018 , 26.79480124, 60.49103328])" 429 | ] 430 | }, 431 | "execution_count": 11, 432 | "metadata": {}, 433 | "output_type": "execute_result" 434 | } 435 | ], 436 | "source": [ 437 | "regressor.predict(X_test)" 438 | ] 439 | }, 440 | { 441 | "cell_type": "code", 442 | "execution_count": 12, 443 | "metadata": { 444 | "colab": { 445 | "base_uri": "https://localhost:8080/", 446 | "height": 430 447 | }, 448 | "id": "LO3cIcQV_0sU", 449 | "outputId": "9f399f85-9909-4797-b6e2-8b54b017aeda" 450 | }, 451 | "outputs": [ 452 | { 453 | "data": { 454 | "text/plain": [ 455 | "" 456 | ] 457 | }, 458 | "execution_count": 12, 459 | "metadata": {}, 460 | "output_type": "execute_result" 461 | }, 462 | { 463 | "data": { 464 | "image/png": "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uDt48KAKCwt18cUXa/ny5Tpy5IjdJcXFa6+9piuuuEI33nij8vPzdfnll+vZZ5+1u6xRcerUKTU1NWnVqlUxb+yZaK666iq1trbq448/liR9+OGH2rlzpxYtWmRzZSP39ddfKxgMKjMzM+J8VlaWdu7caVNVw5Ma90XHoFAopJqaGl199dUqLy+3u5y42L9/v9xutwKBgCZOnKht27aprKzM7rLi5qWXXtLevXuTYj42WnPmzNHzzz+vSy65RB6PR/X19fre976njo4OZWdn213eiHzyySdqbGzUunXr9OCDD2r37t266667NH78eK1cudLu8uLqlVdeUU9Pj2699Va7S4mbBx54QH6/X6WlpUpPT1cwGNQjjzyi5cuX213aiGVnZ8vtdmvDhg2aMWOGCgoKtHXrVrW1tenb3/623eWdn923XkaLUnza5Sc/+Yk5depU8+jRo3aXEjd9fX3mwYMHzffff9984IEHzL/4i78w//CHP9hdVlwcOXLEzM/PNz/88MPwuVSadjnXF198Yebk5KTEtNm4ceNMt9sdce7OO+80586da1NFo+e6664z/+Zv/sbuMuJq69at5pQpU8ytW7ea//3f/23++te/NnNzc83nn3/e7tLi4tChQ+b3v/99U5KZnp5uXnnlleby5cvN0tJSu0s7L8JHEqqurjanTJlifvLJJ3aXMqquvfZa8/bbb7e7jLjYtm1b+C+H/kOS6XA4zPT0dPPrr7+2u8S4u+KKK8wHHnjA7jJGrLi42Fy9enXEuU2bNpmFhYU2VTQ6Pv30UzMtLc185ZVX7C4lrqZMmWI+9dRTEec2bNhgXnLJJTZVNDpOnjxpHjt2zDRN0/zhD39o/vVf/7XNFZ0faz6SiGmauuOOO7Rt2za99dZbKikpsbukURUKhdTX12d3GXFx7bXXav/+/dq3b1/4uOKKK7R8+XLt27dP6enpdpcYVydPntThw4flcrnsLmXErr766gGPtH/88ceaOnWqTRWNjs2bNys/P1+LFy+2u5S4+uqrr5SWFvlVl56erlAoZFNFo2PChAlyuVz64osvtH37di1ZssTuks4rpdZ8nDx5UocOHQq/7urq0r59+5Sbm6vi4mIbK4uP6upqbdmyRa+++qqys7Pl9XolSYZhKCsry+bqRqa2tlaLFi1ScXGxent7tWXLFv3+97/X9u3b7S4tLrKzsweszZkwYYLy8vJSYs3Ovffeq6qqKk2dOlXHjh1TXV2d0tPTdcstt9hd2oitXbtWV111lR599FH98Ic/VHt7u5555hk988wzdpcWN6FQSJs3b9bKlStT5hHpflVVVXrkkUdUXFysmTNn6oMPPtAvfvELrVq1yu7S4mL79u0yTVOXXHKJDh06pPvuu0+lpaW67bbb7C7t/Oy+9RJPb7/9tilpwLFy5Uq7S4uLwT6bJHPz5s12lzZiq1atMqdOnWqOHz/enDx5snnttdea//Ef/2F3WaMqldZ83HTTTabL5TLHjx9vXnjhheZNN91kHjp0yO6y4qa5udksLy83MzIyzNLSUvOZZ56xu6S42r59uynJPHDggN2lxJ3f7zfvvvtus7i42MzMzDQvvvhi82c/+5nZ19dnd2lx8W//9m/mxRdfbI4fP950Op1mdXW12dPTY3dZ38hhminS5g0AACQF1nwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYKn/BzhaPkf9yNp3AAAAAElFTkSuQmCC", 465 | "text/plain": [ 466 | "
" 467 | ] 468 | }, 469 | "metadata": {}, 470 | "output_type": "display_data" 471 | } 472 | ], 473 | "source": [ 474 | "plt.scatter(X,y)" 475 | ] 476 | }, 477 | { 478 | "cell_type": "code", 479 | "execution_count": 13, 480 | "metadata": {}, 481 | "outputs": [ 482 | { 483 | "name": "stdout", 484 | "output_type": "stream", 485 | "text": [ 486 | "The calculated parameters are theta_1: 9.910656480642233, and theta_2: 2.0181600414346974\n" 487 | ] 488 | } 489 | ], 490 | "source": [ 491 | "print(f\"The calculated parameters are theta_1: {regressor.coef_[0]}, and theta_2: {regressor.intercept_}\")" 492 | ] 493 | }, 494 | { 495 | "cell_type": "code", 496 | "execution_count": 14, 497 | "metadata": {}, 498 | "outputs": [], 499 | "source": [ 500 | "# Plotting the regression line\n", 501 | "line = regressor.coef_*X_test+regressor.intercept_" 502 | ] 503 | }, 504 | { 505 | "cell_type": "code", 506 | "execution_count": 15, 507 | "metadata": {}, 508 | "outputs": [ 509 | { 510 | "data": { 511 | "text/plain": [ 512 | "array([21, 47, 27, 75, 30, 20, 88, 60, 81, 25, 85, 62, 41, 42, 17, 95, 30,\n", 513 | " 24, 67, 69, 30, 54, 35, 76, 86])" 514 | ] 515 | }, 516 | "execution_count": 15, 517 | "metadata": {}, 518 | "output_type": "execute_result" 519 | } 520 | ], 521 | "source": [ 522 | "y" 523 | ] 524 | }, 525 | { 526 | "cell_type": "code", 527 | "execution_count": 16, 528 | "metadata": { 529 | "colab": { 530 | "base_uri": "https://localhost:8080/", 531 | "height": 430 532 | }, 533 | "id": "J61NX2_2-px7", 534 | "outputId": "20d96bf4-8f2c-4a15-c004-b34a63f0f815" 535 | }, 536 | "outputs": [ 537 | { 538 | "data": { 539 | "image/png": "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", 540 | "text/plain": [ 541 | "
" 542 | ] 543 | }, 544 | "metadata": {}, 545 | "output_type": "display_data" 546 | }, 547 | { 548 | "data": { 549 | "image/png": "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", 550 | "text/plain": [ 551 | "
" 552 | ] 553 | }, 554 | "metadata": {}, 555 | "output_type": "display_data" 556 | } 557 | ], 558 | "source": [ 559 | "preds = regressor.predict(X)\n", 560 | "\n", 561 | "plt.subplot(1, 2, 1)\n", 562 | "plt.scatter(X, y)\n", 563 | "plt.plot(X, preds)\n", 564 | "plt.show()\n", 565 | "\n", 566 | "# Plotting for the test data\n", 567 | "plt.subplot(1, 2, 2)\n", 568 | "plt.scatter(X_test, y_test, color=\"red\")\n", 569 | "plt.plot(X_test, line)\n", 570 | "plt.show()" 571 | ] 572 | }, 573 | { 574 | "cell_type": "markdown", 575 | "metadata": { 576 | "id": "JCQn-g4m5OK2" 577 | }, 578 | "source": [ 579 | "### **Making Predictions**\n", 580 | "Now that we have trained our algorithm, it's time to make some predictions." 581 | ] 582 | }, 583 | { 584 | "cell_type": "code", 585 | "execution_count": 15, 586 | "metadata": { 587 | "colab": { 588 | "base_uri": "https://localhost:8080/" 589 | }, 590 | "id": "Tt-Fmzu55EGM", 591 | "outputId": "f03a010b-399e-49c2-ab18-1f41f4b13a89" 592 | }, 593 | "outputs": [ 594 | { 595 | "name": "stdout", 596 | "output_type": "stream", 597 | "text": [ 598 | "[[1.5]\n", 599 | " [3.2]\n", 600 | " [7.4]\n", 601 | " [2.5]\n", 602 | " [5.9]]\n" 603 | ] 604 | } 605 | ], 606 | "source": [ 607 | "print(X_test) # Testing data - In Hours\n", 608 | "y_pred = regressor.predict(X_test) # Predicting the scores" 609 | ] 610 | }, 611 | { 612 | "cell_type": "code", 613 | "execution_count": 16, 614 | "metadata": { 615 | "colab": { 616 | "base_uri": "https://localhost:8080/", 617 | "height": 206 618 | }, 619 | "id": "6bmZUMZh5QLb", 620 | "outputId": "943e567f-fe9d-43ad-9c81-a841d1026ef1" 621 | }, 622 | "outputs": [ 623 | { 624 | "data": { 625 | "text/html": [ 626 | "\n", 627 | "
\n", 628 | "
\n", 629 | "
\n", 630 | "\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 | " \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 | "
ActualPredicted
02016.884145
12733.732261
26975.357018
33026.794801
46260.491033
\n", 679 | "
\n", 680 | " \n", 690 | " \n", 691 | " \n", 728 | "\n", 729 | " \n", 753 | "
\n", 754 | "
\n", 755 | " " 756 | ], 757 | "text/plain": [ 758 | " Actual Predicted\n", 759 | "0 20 16.884145\n", 760 | "1 27 33.732261\n", 761 | "2 69 75.357018\n", 762 | "3 30 26.794801\n", 763 | "4 62 60.491033" 764 | ] 765 | }, 766 | "execution_count": 16, 767 | "metadata": {}, 768 | "output_type": "execute_result" 769 | } 770 | ], 771 | "source": [ 772 | "# Comparing Actual vs Predicted\n", 773 | "df = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred}) \n", 774 | "df " 775 | ] 776 | }, 777 | { 778 | "cell_type": "code", 779 | "execution_count": 21, 780 | "metadata": { 781 | "colab": { 782 | "base_uri": "https://localhost:8080/" 783 | }, 784 | "id": "KAFO8zbx-AH1", 785 | "outputId": "3c003ec3-e681-47fb-a684-e71ab2cee7f5" 786 | }, 787 | "outputs": [ 788 | { 789 | "name": "stdout", 790 | "output_type": "stream", 791 | "text": [ 792 | "No of Hours = 9.5\n", 793 | "Predicted Score = 96.16939660753593\n" 794 | ] 795 | } 796 | ], 797 | "source": [ 798 | "#You can also test with your own data\n", 799 | "hours = 9.5\n", 800 | "own_pred = regressor.predict([[9.5]])\n", 801 | "print(\"No of Hours = {}\".format(hours))\n", 802 | "print(\"Predicted Score = {}\".format(own_pred[0]))" 803 | ] 804 | }, 805 | { 806 | "cell_type": "markdown", 807 | "metadata": { 808 | "id": "0AAsPVA_6KmK" 809 | }, 810 | "source": [ 811 | "### **Evaluating the model**\n", 812 | "\n", 813 | "The final step is to evaluate the performance of algorithm. This step is particularly important to compare how well different algorithms perform on a particular dataset. For simplicity here, we have chosen the mean square error. There are many such metrics." 814 | ] 815 | }, 816 | { 817 | "cell_type": "code", 818 | "execution_count": 22, 819 | "metadata": { 820 | "colab": { 821 | "base_uri": "https://localhost:8080/" 822 | }, 823 | "id": "r5UOrRH-5VCQ", 824 | "outputId": "a4bc5295-e596-40c4-faee-f72ef065f366" 825 | }, 826 | "outputs": [ 827 | { 828 | "name": "stdout", 829 | "output_type": "stream", 830 | "text": [ 831 | "Mean Absolute Error: 4.183859899002982\n" 832 | ] 833 | } 834 | ], 835 | "source": [ 836 | "from sklearn import metrics \n", 837 | "print('Mean Absolute Error:', \n", 838 | " metrics.mean_absolute_error(y_test, y_pred)) " 839 | ] 840 | }, 841 | { 842 | "cell_type": "code", 843 | "execution_count": 18, 844 | "metadata": { 845 | "id": "1MzDbtLh_0sX" 846 | }, 847 | "outputs": [], 848 | "source": [] 849 | } 850 | ], 851 | "metadata": { 852 | "colab": { 853 | "provenance": [] 854 | }, 855 | "kernelspec": { 856 | "display_name": "Python 3 (ipykernel)", 857 | "language": "python", 858 | "name": "python3" 859 | }, 860 | "language_info": { 861 | "codemirror_mode": { 862 | "name": "ipython", 863 | "version": 3 864 | }, 865 | "file_extension": ".py", 866 | "mimetype": "text/x-python", 867 | "name": "python", 868 | "nbconvert_exporter": "python", 869 | "pygments_lexer": "ipython3", 870 | "version": "3.12.4" 871 | } 872 | }, 873 | "nbformat": 4, 874 | "nbformat_minor": 0 875 | } 876 | --------------------------------------------------------------------------------