├── DataPreprocessing.ipynb ├── Data_preprocessing.ipynb ├── Procfile ├── README.md ├── app.py ├── car data.csv ├── index.html ├── model.pkl ├── requirements.txt └── templates └── index.html /DataPreprocessing.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": 2, 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "df=pd.read_csv('car data.csv')" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 3, 24 | "metadata": {}, 25 | "outputs": [ 26 | { 27 | "data": { 28 | "text/html": [ 29 | "
\n", 30 | "\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 | "
Car_NameYearSelling_PricePresent_PriceKms_DrivenFuel_TypeSeller_TypeTransmissionOwner
0ritz20143.355.5927000PetrolDealerManual0
1sx420134.759.5443000DieselDealerManual0
2ciaz20177.259.856900PetrolDealerManual0
3wagon r20112.854.155200PetrolDealerManual0
4swift20144.606.8742450DieselDealerManual0
\n", 121 | "
" 122 | ], 123 | "text/plain": [ 124 | " Car_Name Year Selling_Price Present_Price Kms_Driven Fuel_Type \\\n", 125 | "0 ritz 2014 3.35 5.59 27000 Petrol \n", 126 | "1 sx4 2013 4.75 9.54 43000 Diesel \n", 127 | "2 ciaz 2017 7.25 9.85 6900 Petrol \n", 128 | "3 wagon r 2011 2.85 4.15 5200 Petrol \n", 129 | "4 swift 2014 4.60 6.87 42450 Diesel \n", 130 | "\n", 131 | " Seller_Type Transmission Owner \n", 132 | "0 Dealer Manual 0 \n", 133 | "1 Dealer Manual 0 \n", 134 | "2 Dealer Manual 0 \n", 135 | "3 Dealer Manual 0 \n", 136 | "4 Dealer Manual 0 " 137 | ] 138 | }, 139 | "execution_count": 3, 140 | "metadata": {}, 141 | "output_type": "execute_result" 142 | } 143 | ], 144 | "source": [ 145 | "df.head()" 146 | ] 147 | }, 148 | { 149 | "cell_type": "code", 150 | "execution_count": 4, 151 | "metadata": {}, 152 | "outputs": [], 153 | "source": [ 154 | "df['no_year']=2020-df['Year']" 155 | ] 156 | }, 157 | { 158 | "cell_type": "code", 159 | "execution_count": 5, 160 | "metadata": {}, 161 | "outputs": [ 162 | { 163 | "data": { 164 | "text/html": [ 165 | "
\n", 166 | "\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 | "
Car_NameYearSelling_PricePresent_PriceKms_DrivenFuel_TypeSeller_TypeTransmissionOwnerno_year
0ritz20143.355.5927000PetrolDealerManual06
1sx420134.759.5443000DieselDealerManual07
2ciaz20177.259.856900PetrolDealerManual03
3wagon r20112.854.155200PetrolDealerManual09
4swift20144.606.8742450DieselDealerManual06
\n", 263 | "
" 264 | ], 265 | "text/plain": [ 266 | " Car_Name Year Selling_Price Present_Price Kms_Driven Fuel_Type \\\n", 267 | "0 ritz 2014 3.35 5.59 27000 Petrol \n", 268 | "1 sx4 2013 4.75 9.54 43000 Diesel \n", 269 | "2 ciaz 2017 7.25 9.85 6900 Petrol \n", 270 | "3 wagon r 2011 2.85 4.15 5200 Petrol \n", 271 | "4 swift 2014 4.60 6.87 42450 Diesel \n", 272 | "\n", 273 | " Seller_Type Transmission Owner no_year \n", 274 | "0 Dealer Manual 0 6 \n", 275 | "1 Dealer Manual 0 7 \n", 276 | "2 Dealer Manual 0 3 \n", 277 | "3 Dealer Manual 0 9 \n", 278 | "4 Dealer Manual 0 6 " 279 | ] 280 | }, 281 | "execution_count": 5, 282 | "metadata": {}, 283 | "output_type": "execute_result" 284 | } 285 | ], 286 | "source": [ 287 | "df.head()" 288 | ] 289 | }, 290 | { 291 | "cell_type": "code", 292 | "execution_count": 6, 293 | "metadata": {}, 294 | "outputs": [], 295 | "source": [ 296 | "df.drop(['Car_Name','Year'],axis=1,inplace=True)" 297 | ] 298 | }, 299 | { 300 | "cell_type": "code", 301 | "execution_count": 7, 302 | "metadata": {}, 303 | "outputs": [ 304 | { 305 | "data": { 306 | "text/html": [ 307 | "
\n", 308 | "\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 | "
Selling_PricePresent_PriceKms_DrivenFuel_TypeSeller_TypeTransmissionOwnerno_year
03.355.5927000PetrolDealerManual06
14.759.5443000DieselDealerManual07
27.259.856900PetrolDealerManual03
32.854.155200PetrolDealerManual09
44.606.8742450DieselDealerManual06
\n", 393 | "
" 394 | ], 395 | "text/plain": [ 396 | " Selling_Price Present_Price Kms_Driven Fuel_Type Seller_Type \\\n", 397 | "0 3.35 5.59 27000 Petrol Dealer \n", 398 | "1 4.75 9.54 43000 Diesel Dealer \n", 399 | "2 7.25 9.85 6900 Petrol Dealer \n", 400 | "3 2.85 4.15 5200 Petrol Dealer \n", 401 | "4 4.60 6.87 42450 Diesel Dealer \n", 402 | "\n", 403 | " Transmission Owner no_year \n", 404 | "0 Manual 0 6 \n", 405 | "1 Manual 0 7 \n", 406 | "2 Manual 0 3 \n", 407 | "3 Manual 0 9 \n", 408 | "4 Manual 0 6 " 409 | ] 410 | }, 411 | "execution_count": 7, 412 | "metadata": {}, 413 | "output_type": "execute_result" 414 | } 415 | ], 416 | "source": [ 417 | "df.head()" 418 | ] 419 | }, 420 | { 421 | "cell_type": "code", 422 | "execution_count": 8, 423 | "metadata": {}, 424 | "outputs": [], 425 | "source": [ 426 | "df=pd.get_dummies(df)" 427 | ] 428 | }, 429 | { 430 | "cell_type": "code", 431 | "execution_count": 9, 432 | "metadata": {}, 433 | "outputs": [ 434 | { 435 | "data": { 436 | "text/html": [ 437 | "
\n", 438 | "\n", 451 | "\n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \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 | " \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 | " \n", 536 | " \n", 537 | " \n", 538 | " \n", 539 | " \n", 540 | " \n", 541 | " \n", 542 | " \n", 543 | " \n", 544 | " \n", 545 | " \n", 546 | "
Selling_PricePresent_PriceKms_DrivenOwnerno_yearFuel_Type_CNGFuel_Type_DieselFuel_Type_PetrolSeller_Type_DealerSeller_Type_IndividualTransmission_AutomaticTransmission_Manual
03.355.5927000060011001
14.759.5443000070101001
27.259.856900030011001
32.854.155200090011001
44.606.8742450060101001
\n", 547 | "
" 548 | ], 549 | "text/plain": [ 550 | " Selling_Price Present_Price Kms_Driven Owner no_year Fuel_Type_CNG \\\n", 551 | "0 3.35 5.59 27000 0 6 0 \n", 552 | "1 4.75 9.54 43000 0 7 0 \n", 553 | "2 7.25 9.85 6900 0 3 0 \n", 554 | "3 2.85 4.15 5200 0 9 0 \n", 555 | "4 4.60 6.87 42450 0 6 0 \n", 556 | "\n", 557 | " Fuel_Type_Diesel Fuel_Type_Petrol Seller_Type_Dealer \\\n", 558 | "0 0 1 1 \n", 559 | "1 1 0 1 \n", 560 | "2 0 1 1 \n", 561 | "3 0 1 1 \n", 562 | "4 1 0 1 \n", 563 | "\n", 564 | " Seller_Type_Individual Transmission_Automatic Transmission_Manual \n", 565 | "0 0 0 1 \n", 566 | "1 0 0 1 \n", 567 | "2 0 0 1 \n", 568 | "3 0 0 1 \n", 569 | "4 0 0 1 " 570 | ] 571 | }, 572 | "execution_count": 9, 573 | "metadata": {}, 574 | "output_type": "execute_result" 575 | } 576 | ], 577 | "source": [ 578 | "df.head()" 579 | ] 580 | }, 581 | { 582 | "cell_type": "code", 583 | "execution_count": 10, 584 | "metadata": {}, 585 | "outputs": [], 586 | "source": [ 587 | "x=df.drop('Selling_Price',axis=1)\n", 588 | "y=df['Selling_Price']" 589 | ] 590 | }, 591 | { 592 | "cell_type": "code", 593 | "execution_count": 11, 594 | "metadata": {}, 595 | "outputs": [ 596 | { 597 | "data": { 598 | "text/html": [ 599 | "
\n", 600 | "\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 | " \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 | "
Present_PriceKms_DrivenOwnerno_yearFuel_Type_CNGFuel_Type_DieselFuel_Type_PetrolSeller_Type_DealerSeller_Type_IndividualTransmission_AutomaticTransmission_Manual
05.5927000060011001
19.5443000070101001
29.856900030011001
34.155200090011001
46.8742450060101001
\n", 703 | "
" 704 | ], 705 | "text/plain": [ 706 | " Present_Price Kms_Driven Owner no_year Fuel_Type_CNG Fuel_Type_Diesel \\\n", 707 | "0 5.59 27000 0 6 0 0 \n", 708 | "1 9.54 43000 0 7 0 1 \n", 709 | "2 9.85 6900 0 3 0 0 \n", 710 | "3 4.15 5200 0 9 0 0 \n", 711 | "4 6.87 42450 0 6 0 1 \n", 712 | "\n", 713 | " Fuel_Type_Petrol Seller_Type_Dealer Seller_Type_Individual \\\n", 714 | "0 1 1 0 \n", 715 | "1 0 1 0 \n", 716 | "2 1 1 0 \n", 717 | "3 1 1 0 \n", 718 | "4 0 1 0 \n", 719 | "\n", 720 | " Transmission_Automatic Transmission_Manual \n", 721 | "0 0 1 \n", 722 | "1 0 1 \n", 723 | "2 0 1 \n", 724 | "3 0 1 \n", 725 | "4 0 1 " 726 | ] 727 | }, 728 | "execution_count": 11, 729 | "metadata": {}, 730 | "output_type": "execute_result" 731 | } 732 | ], 733 | "source": [ 734 | "x.head()" 735 | ] 736 | }, 737 | { 738 | "cell_type": "code", 739 | "execution_count": 12, 740 | "metadata": {}, 741 | "outputs": [ 742 | { 743 | "data": { 744 | "text/plain": [ 745 | "0 3.35\n", 746 | "1 4.75\n", 747 | "2 7.25\n", 748 | "3 2.85\n", 749 | "4 4.60\n", 750 | "Name: Selling_Price, dtype: float64" 751 | ] 752 | }, 753 | "execution_count": 12, 754 | "metadata": {}, 755 | "output_type": "execute_result" 756 | } 757 | ], 758 | "source": [ 759 | "y.head()" 760 | ] 761 | }, 762 | { 763 | "cell_type": "code", 764 | "execution_count": 13, 765 | "metadata": {}, 766 | "outputs": [], 767 | "source": [ 768 | "from sklearn.model_selection import train_test_split" 769 | ] 770 | }, 771 | { 772 | "cell_type": "code", 773 | "execution_count": 14, 774 | "metadata": {}, 775 | "outputs": [], 776 | "source": [ 777 | "x_train, x_test, y_train, y_test = train_test_split(x,y,random_state=5)" 778 | ] 779 | }, 780 | { 781 | "cell_type": "code", 782 | "execution_count": 15, 783 | "metadata": {}, 784 | "outputs": [ 785 | { 786 | "data": { 787 | "text/plain": [ 788 | "((225, 11), (225,))" 789 | ] 790 | }, 791 | "execution_count": 15, 792 | "metadata": {}, 793 | "output_type": "execute_result" 794 | } 795 | ], 796 | "source": [ 797 | "x_train.shape , y_train.shape" 798 | ] 799 | }, 800 | { 801 | "cell_type": "code", 802 | "execution_count": 16, 803 | "metadata": {}, 804 | "outputs": [], 805 | "source": [ 806 | "from sklearn.linear_model import LinearRegression" 807 | ] 808 | }, 809 | { 810 | "cell_type": "code", 811 | "execution_count": 17, 812 | "metadata": {}, 813 | "outputs": [ 814 | { 815 | "data": { 816 | "text/plain": [ 817 | "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)" 818 | ] 819 | }, 820 | "execution_count": 17, 821 | "metadata": {}, 822 | "output_type": "execute_result" 823 | } 824 | ], 825 | "source": [ 826 | "lr=LinearRegression()\n", 827 | "lr.fit(x_train,y_train)" 828 | ] 829 | }, 830 | { 831 | "cell_type": "code", 832 | "execution_count": 18, 833 | "metadata": {}, 834 | "outputs": [], 835 | "source": [ 836 | "prediction = lr.predict(x_test)" 837 | ] 838 | }, 839 | { 840 | "cell_type": "code", 841 | "execution_count": 19, 842 | "metadata": {}, 843 | "outputs": [], 844 | "source": [ 845 | "import matplotlib.pyplot as plt\n", 846 | "import seaborn as sns" 847 | ] 848 | }, 849 | { 850 | "cell_type": "code", 851 | "execution_count": 20, 852 | "metadata": {}, 853 | "outputs": [ 854 | { 855 | "data": { 856 | "text/plain": [ 857 | "" 858 | ] 859 | }, 860 | "execution_count": 20, 861 | "metadata": {}, 862 | "output_type": "execute_result" 863 | }, 864 | { 865 | "data": { 866 | "image/png": "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\n", 867 | "text/plain": [ 868 | "
" 869 | ] 870 | }, 871 | "metadata": { 872 | "needs_background": "light" 873 | }, 874 | "output_type": "display_data" 875 | } 876 | ], 877 | "source": [ 878 | "plt.scatter(y_test,prediction)" 879 | ] 880 | }, 881 | { 882 | "cell_type": "code", 883 | "execution_count": 21, 884 | "metadata": {}, 885 | "outputs": [ 886 | { 887 | "data": { 888 | "text/plain": [ 889 | "" 890 | ] 891 | }, 892 | "execution_count": 21, 893 | "metadata": {}, 894 | "output_type": "execute_result" 895 | }, 896 | { 897 | "data": { 898 | "image/png": "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\n", 899 | "text/plain": [ 900 | "
" 901 | ] 902 | }, 903 | "metadata": { 904 | "needs_background": "light" 905 | }, 906 | "output_type": "display_data" 907 | } 908 | ], 909 | "source": [ 910 | "sns.distplot(y_test-prediction)" 911 | ] 912 | }, 913 | { 914 | "cell_type": "code", 915 | "execution_count": 22, 916 | "metadata": {}, 917 | "outputs": [], 918 | "source": [ 919 | "from sklearn import metrics\n", 920 | "import numpy as np" 921 | ] 922 | }, 923 | { 924 | "cell_type": "code", 925 | "execution_count": 23, 926 | "metadata": {}, 927 | "outputs": [ 928 | { 929 | "name": "stdout", 930 | "output_type": "stream", 931 | "text": [ 932 | "MAE: 1.140996108785903\n", 933 | "MSE: 3.2815963416575036\n", 934 | "RMSE: 1.8115176901309862\n", 935 | "R squared: 0.8608525898499443\n" 936 | ] 937 | } 938 | ], 939 | "source": [ 940 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 941 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 942 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 943 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 944 | ] 945 | }, 946 | { 947 | "cell_type": "code", 948 | "execution_count": 25, 949 | "metadata": {}, 950 | "outputs": [], 951 | "source": [ 952 | "from sklearn.linear_model import Ridge" 953 | ] 954 | }, 955 | { 956 | "cell_type": "code", 957 | "execution_count": 26, 958 | "metadata": {}, 959 | "outputs": [], 960 | "source": [ 961 | "ridge=Ridge()\n", 962 | "ridge.fit(x_train,y_train)\n", 963 | "prediction = ridge.predict(x_test)" 964 | ] 965 | }, 966 | { 967 | "cell_type": "code", 968 | "execution_count": 27, 969 | "metadata": {}, 970 | "outputs": [ 971 | { 972 | "name": "stdout", 973 | "output_type": "stream", 974 | "text": [ 975 | "MAE: 1.1332339163458571\n", 976 | "MSE: 3.2738266436526455\n", 977 | "RMSE: 1.8093718920256956\n", 978 | "R squared: 0.8611820433361332\n" 979 | ] 980 | } 981 | ], 982 | "source": [ 983 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 984 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 985 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 986 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 987 | ] 988 | }, 989 | { 990 | "cell_type": "code", 991 | "execution_count": 28, 992 | "metadata": {}, 993 | "outputs": [], 994 | "source": [ 995 | "from sklearn.linear_model import Lasso" 996 | ] 997 | }, 998 | { 999 | "cell_type": "code", 1000 | "execution_count": 29, 1001 | "metadata": {}, 1002 | "outputs": [ 1003 | { 1004 | "name": "stdout", 1005 | "output_type": "stream", 1006 | "text": [ 1007 | "MAE: 1.3349151159008392\n", 1008 | "MSE: 4.47313681445178\n", 1009 | "RMSE: 2.1149791522499175\n", 1010 | "R squared: 0.8103284687770421\n" 1011 | ] 1012 | } 1013 | ], 1014 | "source": [ 1015 | "ridge=Lasso()\n", 1016 | "ridge.fit(x_train,y_train)\n", 1017 | "prediction = ridge.predict(x_test)\n", 1018 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1019 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1020 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1021 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1022 | ] 1023 | }, 1024 | { 1025 | "cell_type": "code", 1026 | "execution_count": 30, 1027 | "metadata": {}, 1028 | "outputs": [], 1029 | "source": [ 1030 | "from sklearn.model_selection import RandomizedSearchCV,GridSearchCV" 1031 | ] 1032 | }, 1033 | { 1034 | "cell_type": "code", 1035 | "execution_count": 31, 1036 | "metadata": {}, 1037 | "outputs": [ 1038 | { 1039 | "name": "stdout", 1040 | "output_type": "stream", 1041 | "text": [ 1042 | "MAE: 1.1187640189415795\n", 1043 | "MSE: 3.2349381933942647\n", 1044 | "RMSE: 1.798593393014181\n", 1045 | "R squared: 0.8628310051750747\n" 1046 | ] 1047 | }, 1048 | { 1049 | "name": "stderr", 1050 | "output_type": "stream", 1051 | "text": [ 1052 | "C:\\Users\\DELL\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_search.py:281: UserWarning: The total space of parameters 2 is smaller than n_iter=10. Running 2 iterations. For exhaustive searches, use GridSearchCV.\n", 1053 | " % (grid_size, self.n_iter, grid_size), UserWarning)\n" 1054 | ] 1055 | } 1056 | ], 1057 | "source": [ 1058 | "r=Ridge()\n", 1059 | "parameters={'alpha':[1,20]}\n", 1060 | "l=RandomizedSearchCV(r,parameters,scoring=\"neg_mean_squared_error\",cv=5)\n", 1061 | "l.fit(x_train,y_train)\n", 1062 | "prediction = l.predict(x_test)\n", 1063 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1064 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1065 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1066 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1067 | ] 1068 | }, 1069 | { 1070 | "cell_type": "code", 1071 | "execution_count": 32, 1072 | "metadata": {}, 1073 | "outputs": [ 1074 | { 1075 | "name": "stdout", 1076 | "output_type": "stream", 1077 | "text": [ 1078 | "MAE: 1.1194605545945522\n", 1079 | "MSE: 3.235117272776871\n", 1080 | "RMSE: 1.798643175501153\n", 1081 | "R squared: 0.8628234117876782\n" 1082 | ] 1083 | } 1084 | ], 1085 | "source": [ 1086 | "r=Ridge()\n", 1087 | "parameters={'alpha':[1000,100,30,40,50]}\n", 1088 | "l=GridSearchCV(r,parameters,scoring=\"neg_mean_squared_error\",cv=5)\n", 1089 | "l.fit(x_train,y_train)\n", 1090 | "prediction = l.predict(x_test)\n", 1091 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1092 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1093 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1094 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1095 | ] 1096 | }, 1097 | { 1098 | "cell_type": "code", 1099 | "execution_count": 33, 1100 | "metadata": {}, 1101 | "outputs": [ 1102 | { 1103 | "data": { 1104 | "text/plain": [ 1105 | "{'alpha': 30}" 1106 | ] 1107 | }, 1108 | "execution_count": 33, 1109 | "metadata": {}, 1110 | "output_type": "execute_result" 1111 | } 1112 | ], 1113 | "source": [ 1114 | "l.best_params_" 1115 | ] 1116 | }, 1117 | { 1118 | "cell_type": "code", 1119 | "execution_count": 24, 1120 | "metadata": {}, 1121 | "outputs": [], 1122 | "source": [ 1123 | "from sklearn.ensemble import RandomForestRegressor" 1124 | ] 1125 | }, 1126 | { 1127 | "cell_type": "code", 1128 | "execution_count": 35, 1129 | "metadata": {}, 1130 | "outputs": [], 1131 | "source": [ 1132 | "n_estimators = [int(x) for x in np.linspace(start = 200, stop = 2000, num = 10)]\n", 1133 | "# Number of features to consider at every split\n", 1134 | "max_features = ['auto', 'sqrt']\n", 1135 | "# Maximum number of levels in tree\n", 1136 | "max_depth = [int(x) for x in np.linspace(10, 110, num = 11)]\n", 1137 | "max_depth.append(None)\n", 1138 | "# Minimum number of samples required to split a node\n", 1139 | "min_samples_split = [2, 5, 10]\n", 1140 | "# Minimum number of samples required at each leaf node\n", 1141 | "min_samples_leaf = [1, 2, 4]\n", 1142 | "# Method of selecting samples for training each tree\n", 1143 | "bootstrap = [True, False]\n", 1144 | "# Create the random grid\n", 1145 | "random_grid = {'n_estimators': n_estimators,\n", 1146 | " 'max_features': max_features,\n", 1147 | " 'max_depth': max_depth,\n", 1148 | " 'min_samples_split': min_samples_split,\n", 1149 | " 'min_samples_leaf': min_samples_leaf,\n", 1150 | " 'bootstrap': bootstrap}" 1151 | ] 1152 | }, 1153 | { 1154 | "cell_type": "code", 1155 | "execution_count": 49, 1156 | "metadata": {}, 1157 | "outputs": [ 1158 | { 1159 | "name": "stdout", 1160 | "output_type": "stream", 1161 | "text": [ 1162 | "Fitting 3 folds for each of 100 candidates, totalling 300 fits\n" 1163 | ] 1164 | }, 1165 | { 1166 | "name": "stderr", 1167 | "output_type": "stream", 1168 | "text": [ 1169 | "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n", 1170 | "[Parallel(n_jobs=-1)]: Done 33 tasks | elapsed: 35.2s\n", 1171 | "[Parallel(n_jobs=-1)]: Done 154 tasks | elapsed: 2.7min\n", 1172 | "[Parallel(n_jobs=-1)]: Done 300 out of 300 | elapsed: 5.0min finished\n" 1173 | ] 1174 | }, 1175 | { 1176 | "name": "stdout", 1177 | "output_type": "stream", 1178 | "text": [ 1179 | "MAE: 0.565409210526331\n", 1180 | "MSE: 1.071250076830035\n", 1181 | "RMSE: 1.0350121143397477\n", 1182 | "R squared: 0.9545764748937227\n" 1183 | ] 1184 | } 1185 | ], 1186 | "source": [ 1187 | "r=RandomForestRegressor(n_estimators=100)\n", 1188 | "rf = RandomForestRegressor()\n", 1189 | "rf_random = RandomizedSearchCV(estimator = rf, param_distributions = random_grid, n_iter = 100, cv = 3, verbose=2, random_state=42, n_jobs = -1)\n", 1190 | "rf_random.fit(x_train,y_train)\n", 1191 | "prediction = rf_random.predict(x_test)\n", 1192 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1193 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1194 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1195 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1196 | ] 1197 | }, 1198 | { 1199 | "cell_type": "code", 1200 | "execution_count": 36, 1201 | "metadata": {}, 1202 | "outputs": [ 1203 | { 1204 | "name": "stdout", 1205 | "output_type": "stream", 1206 | "text": [ 1207 | "MAE: 0.49281447368421116\n", 1208 | "MSE: 0.603024184078948\n", 1209 | "RMSE: 0.7765463180512467\n", 1210 | "R squared: 0.9744303550051941\n" 1211 | ] 1212 | } 1213 | ], 1214 | "source": [ 1215 | "r=RandomForestRegressor(n_estimators=100)\n", 1216 | "\n", 1217 | "r.fit(x_train,y_train)\n", 1218 | "prediction = r.predict(x_test)\n", 1219 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1220 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1221 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1222 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1223 | ] 1224 | }, 1225 | { 1226 | "cell_type": "code", 1227 | "execution_count": 38, 1228 | "metadata": {}, 1229 | "outputs": [], 1230 | "source": [ 1231 | "import pickle \n", 1232 | "pickle.dump(r,open('model.pkl','wb'))" 1233 | ] 1234 | }, 1235 | { 1236 | "cell_type": "code", 1237 | "execution_count": null, 1238 | "metadata": {}, 1239 | "outputs": [], 1240 | "source": [] 1241 | } 1242 | ], 1243 | "metadata": { 1244 | "kernelspec": { 1245 | "display_name": "Python 3", 1246 | "language": "python", 1247 | "name": "python3" 1248 | }, 1249 | "language_info": { 1250 | "codemirror_mode": { 1251 | "name": "ipython", 1252 | "version": 3 1253 | }, 1254 | "file_extension": ".py", 1255 | "mimetype": "text/x-python", 1256 | "name": "python", 1257 | "nbconvert_exporter": "python", 1258 | "pygments_lexer": "ipython3", 1259 | "version": "3.7.6" 1260 | } 1261 | }, 1262 | "nbformat": 4, 1263 | "nbformat_minor": 4 1264 | } 1265 | -------------------------------------------------------------------------------- /Data_preprocessing.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": 2, 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "df=pd.read_csv('car data.csv')" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 3, 24 | "metadata": {}, 25 | "outputs": [ 26 | { 27 | "data": { 28 | "text/html": [ 29 | "
\n", 30 | "\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 | "
Car_NameYearSelling_PricePresent_PriceKms_DrivenFuel_TypeSeller_TypeTransmissionOwner
0ritz20143.355.5927000PetrolDealerManual0
1sx420134.759.5443000DieselDealerManual0
2ciaz20177.259.856900PetrolDealerManual0
3wagon r20112.854.155200PetrolDealerManual0
4swift20144.606.8742450DieselDealerManual0
\n", 121 | "
" 122 | ], 123 | "text/plain": [ 124 | " Car_Name Year Selling_Price Present_Price Kms_Driven Fuel_Type \\\n", 125 | "0 ritz 2014 3.35 5.59 27000 Petrol \n", 126 | "1 sx4 2013 4.75 9.54 43000 Diesel \n", 127 | "2 ciaz 2017 7.25 9.85 6900 Petrol \n", 128 | "3 wagon r 2011 2.85 4.15 5200 Petrol \n", 129 | "4 swift 2014 4.60 6.87 42450 Diesel \n", 130 | "\n", 131 | " Seller_Type Transmission Owner \n", 132 | "0 Dealer Manual 0 \n", 133 | "1 Dealer Manual 0 \n", 134 | "2 Dealer Manual 0 \n", 135 | "3 Dealer Manual 0 \n", 136 | "4 Dealer Manual 0 " 137 | ] 138 | }, 139 | "execution_count": 3, 140 | "metadata": {}, 141 | "output_type": "execute_result" 142 | } 143 | ], 144 | "source": [ 145 | "df.head()" 146 | ] 147 | }, 148 | { 149 | "cell_type": "code", 150 | "execution_count": 4, 151 | "metadata": {}, 152 | "outputs": [], 153 | "source": [ 154 | "df['no_year']=2020-df['Year']" 155 | ] 156 | }, 157 | { 158 | "cell_type": "code", 159 | "execution_count": 5, 160 | "metadata": {}, 161 | "outputs": [ 162 | { 163 | "data": { 164 | "text/html": [ 165 | "
\n", 166 | "\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 | "
Car_NameYearSelling_PricePresent_PriceKms_DrivenFuel_TypeSeller_TypeTransmissionOwnerno_year
0ritz20143.355.5927000PetrolDealerManual06
1sx420134.759.5443000DieselDealerManual07
2ciaz20177.259.856900PetrolDealerManual03
3wagon r20112.854.155200PetrolDealerManual09
4swift20144.606.8742450DieselDealerManual06
\n", 263 | "
" 264 | ], 265 | "text/plain": [ 266 | " Car_Name Year Selling_Price Present_Price Kms_Driven Fuel_Type \\\n", 267 | "0 ritz 2014 3.35 5.59 27000 Petrol \n", 268 | "1 sx4 2013 4.75 9.54 43000 Diesel \n", 269 | "2 ciaz 2017 7.25 9.85 6900 Petrol \n", 270 | "3 wagon r 2011 2.85 4.15 5200 Petrol \n", 271 | "4 swift 2014 4.60 6.87 42450 Diesel \n", 272 | "\n", 273 | " Seller_Type Transmission Owner no_year \n", 274 | "0 Dealer Manual 0 6 \n", 275 | "1 Dealer Manual 0 7 \n", 276 | "2 Dealer Manual 0 3 \n", 277 | "3 Dealer Manual 0 9 \n", 278 | "4 Dealer Manual 0 6 " 279 | ] 280 | }, 281 | "execution_count": 5, 282 | "metadata": {}, 283 | "output_type": "execute_result" 284 | } 285 | ], 286 | "source": [ 287 | "df.head()" 288 | ] 289 | }, 290 | { 291 | "cell_type": "code", 292 | "execution_count": 6, 293 | "metadata": {}, 294 | "outputs": [], 295 | "source": [ 296 | "df.drop(['Car_Name','Year'],axis=1,inplace=True)" 297 | ] 298 | }, 299 | { 300 | "cell_type": "code", 301 | "execution_count": 7, 302 | "metadata": {}, 303 | "outputs": [ 304 | { 305 | "data": { 306 | "text/html": [ 307 | "
\n", 308 | "\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 | "
Selling_PricePresent_PriceKms_DrivenFuel_TypeSeller_TypeTransmissionOwnerno_year
03.355.5927000PetrolDealerManual06
14.759.5443000DieselDealerManual07
27.259.856900PetrolDealerManual03
32.854.155200PetrolDealerManual09
44.606.8742450DieselDealerManual06
\n", 393 | "
" 394 | ], 395 | "text/plain": [ 396 | " Selling_Price Present_Price Kms_Driven Fuel_Type Seller_Type \\\n", 397 | "0 3.35 5.59 27000 Petrol Dealer \n", 398 | "1 4.75 9.54 43000 Diesel Dealer \n", 399 | "2 7.25 9.85 6900 Petrol Dealer \n", 400 | "3 2.85 4.15 5200 Petrol Dealer \n", 401 | "4 4.60 6.87 42450 Diesel Dealer \n", 402 | "\n", 403 | " Transmission Owner no_year \n", 404 | "0 Manual 0 6 \n", 405 | "1 Manual 0 7 \n", 406 | "2 Manual 0 3 \n", 407 | "3 Manual 0 9 \n", 408 | "4 Manual 0 6 " 409 | ] 410 | }, 411 | "execution_count": 7, 412 | "metadata": {}, 413 | "output_type": "execute_result" 414 | } 415 | ], 416 | "source": [ 417 | "df.head()" 418 | ] 419 | }, 420 | { 421 | "cell_type": "code", 422 | "execution_count": 8, 423 | "metadata": {}, 424 | "outputs": [], 425 | "source": [ 426 | "df=pd.get_dummies(df)" 427 | ] 428 | }, 429 | { 430 | "cell_type": "code", 431 | "execution_count": 9, 432 | "metadata": {}, 433 | "outputs": [ 434 | { 435 | "data": { 436 | "text/html": [ 437 | "
\n", 438 | "\n", 451 | "\n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \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 | " \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 | " \n", 536 | " \n", 537 | " \n", 538 | " \n", 539 | " \n", 540 | " \n", 541 | " \n", 542 | " \n", 543 | " \n", 544 | " \n", 545 | " \n", 546 | "
Selling_PricePresent_PriceKms_DrivenOwnerno_yearFuel_Type_CNGFuel_Type_DieselFuel_Type_PetrolSeller_Type_DealerSeller_Type_IndividualTransmission_AutomaticTransmission_Manual
03.355.5927000060011001
14.759.5443000070101001
27.259.856900030011001
32.854.155200090011001
44.606.8742450060101001
\n", 547 | "
" 548 | ], 549 | "text/plain": [ 550 | " Selling_Price Present_Price Kms_Driven Owner no_year Fuel_Type_CNG \\\n", 551 | "0 3.35 5.59 27000 0 6 0 \n", 552 | "1 4.75 9.54 43000 0 7 0 \n", 553 | "2 7.25 9.85 6900 0 3 0 \n", 554 | "3 2.85 4.15 5200 0 9 0 \n", 555 | "4 4.60 6.87 42450 0 6 0 \n", 556 | "\n", 557 | " Fuel_Type_Diesel Fuel_Type_Petrol Seller_Type_Dealer \\\n", 558 | "0 0 1 1 \n", 559 | "1 1 0 1 \n", 560 | "2 0 1 1 \n", 561 | "3 0 1 1 \n", 562 | "4 1 0 1 \n", 563 | "\n", 564 | " Seller_Type_Individual Transmission_Automatic Transmission_Manual \n", 565 | "0 0 0 1 \n", 566 | "1 0 0 1 \n", 567 | "2 0 0 1 \n", 568 | "3 0 0 1 \n", 569 | "4 0 0 1 " 570 | ] 571 | }, 572 | "execution_count": 9, 573 | "metadata": {}, 574 | "output_type": "execute_result" 575 | } 576 | ], 577 | "source": [ 578 | "df.head()" 579 | ] 580 | }, 581 | { 582 | "cell_type": "code", 583 | "execution_count": 10, 584 | "metadata": {}, 585 | "outputs": [], 586 | "source": [ 587 | "x=df.drop('Selling_Price',axis=1)\n", 588 | "y=df['Selling_Price']" 589 | ] 590 | }, 591 | { 592 | "cell_type": "code", 593 | "execution_count": 11, 594 | "metadata": {}, 595 | "outputs": [ 596 | { 597 | "data": { 598 | "text/html": [ 599 | "
\n", 600 | "\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 | " \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 | "
Present_PriceKms_DrivenOwnerno_yearFuel_Type_CNGFuel_Type_DieselFuel_Type_PetrolSeller_Type_DealerSeller_Type_IndividualTransmission_AutomaticTransmission_Manual
05.5927000060011001
19.5443000070101001
29.856900030011001
34.155200090011001
46.8742450060101001
\n", 703 | "
" 704 | ], 705 | "text/plain": [ 706 | " Present_Price Kms_Driven Owner no_year Fuel_Type_CNG Fuel_Type_Diesel \\\n", 707 | "0 5.59 27000 0 6 0 0 \n", 708 | "1 9.54 43000 0 7 0 1 \n", 709 | "2 9.85 6900 0 3 0 0 \n", 710 | "3 4.15 5200 0 9 0 0 \n", 711 | "4 6.87 42450 0 6 0 1 \n", 712 | "\n", 713 | " Fuel_Type_Petrol Seller_Type_Dealer Seller_Type_Individual \\\n", 714 | "0 1 1 0 \n", 715 | "1 0 1 0 \n", 716 | "2 1 1 0 \n", 717 | "3 1 1 0 \n", 718 | "4 0 1 0 \n", 719 | "\n", 720 | " Transmission_Automatic Transmission_Manual \n", 721 | "0 0 1 \n", 722 | "1 0 1 \n", 723 | "2 0 1 \n", 724 | "3 0 1 \n", 725 | "4 0 1 " 726 | ] 727 | }, 728 | "execution_count": 11, 729 | "metadata": {}, 730 | "output_type": "execute_result" 731 | } 732 | ], 733 | "source": [ 734 | "x.head()" 735 | ] 736 | }, 737 | { 738 | "cell_type": "code", 739 | "execution_count": 12, 740 | "metadata": {}, 741 | "outputs": [ 742 | { 743 | "data": { 744 | "text/plain": [ 745 | "0 3.35\n", 746 | "1 4.75\n", 747 | "2 7.25\n", 748 | "3 2.85\n", 749 | "4 4.60\n", 750 | "Name: Selling_Price, dtype: float64" 751 | ] 752 | }, 753 | "execution_count": 12, 754 | "metadata": {}, 755 | "output_type": "execute_result" 756 | } 757 | ], 758 | "source": [ 759 | "y.head()" 760 | ] 761 | }, 762 | { 763 | "cell_type": "code", 764 | "execution_count": 13, 765 | "metadata": {}, 766 | "outputs": [], 767 | "source": [ 768 | "from sklearn.model_selection import train_test_split" 769 | ] 770 | }, 771 | { 772 | "cell_type": "code", 773 | "execution_count": 14, 774 | "metadata": {}, 775 | "outputs": [], 776 | "source": [ 777 | "x_train, x_test, y_train, y_test = train_test_split(x,y,random_state=5)" 778 | ] 779 | }, 780 | { 781 | "cell_type": "code", 782 | "execution_count": 15, 783 | "metadata": {}, 784 | "outputs": [ 785 | { 786 | "data": { 787 | "text/plain": [ 788 | "((225, 11), (225,))" 789 | ] 790 | }, 791 | "execution_count": 15, 792 | "metadata": {}, 793 | "output_type": "execute_result" 794 | } 795 | ], 796 | "source": [ 797 | "x_train.shape , y_train.shape" 798 | ] 799 | }, 800 | { 801 | "cell_type": "code", 802 | "execution_count": 16, 803 | "metadata": {}, 804 | "outputs": [], 805 | "source": [ 806 | "from sklearn.linear_model import LinearRegression" 807 | ] 808 | }, 809 | { 810 | "cell_type": "code", 811 | "execution_count": 17, 812 | "metadata": {}, 813 | "outputs": [ 814 | { 815 | "data": { 816 | "text/plain": [ 817 | "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)" 818 | ] 819 | }, 820 | "execution_count": 17, 821 | "metadata": {}, 822 | "output_type": "execute_result" 823 | } 824 | ], 825 | "source": [ 826 | "lr=LinearRegression()\n", 827 | "lr.fit(x_train,y_train)" 828 | ] 829 | }, 830 | { 831 | "cell_type": "code", 832 | "execution_count": 18, 833 | "metadata": {}, 834 | "outputs": [], 835 | "source": [ 836 | "prediction = lr.predict(x_test)" 837 | ] 838 | }, 839 | { 840 | "cell_type": "code", 841 | "execution_count": 19, 842 | "metadata": {}, 843 | "outputs": [], 844 | "source": [ 845 | "import matplotlib.pyplot as plt\n", 846 | "import seaborn as sns" 847 | ] 848 | }, 849 | { 850 | "cell_type": "code", 851 | "execution_count": 20, 852 | "metadata": {}, 853 | "outputs": [ 854 | { 855 | "data": { 856 | "text/plain": [ 857 | "" 858 | ] 859 | }, 860 | "execution_count": 20, 861 | "metadata": {}, 862 | "output_type": "execute_result" 863 | }, 864 | { 865 | "data": { 866 | "image/png": "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\n", 867 | "text/plain": [ 868 | "
" 869 | ] 870 | }, 871 | "metadata": { 872 | "needs_background": "light" 873 | }, 874 | "output_type": "display_data" 875 | } 876 | ], 877 | "source": [ 878 | "plt.scatter(y_test,prediction)" 879 | ] 880 | }, 881 | { 882 | "cell_type": "code", 883 | "execution_count": 21, 884 | "metadata": {}, 885 | "outputs": [ 886 | { 887 | "data": { 888 | "text/plain": [ 889 | "" 890 | ] 891 | }, 892 | "execution_count": 21, 893 | "metadata": {}, 894 | "output_type": "execute_result" 895 | }, 896 | { 897 | "data": { 898 | "image/png": "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\n", 899 | "text/plain": [ 900 | "
" 901 | ] 902 | }, 903 | "metadata": { 904 | "needs_background": "light" 905 | }, 906 | "output_type": "display_data" 907 | } 908 | ], 909 | "source": [ 910 | "sns.distplot(y_test-prediction)" 911 | ] 912 | }, 913 | { 914 | "cell_type": "code", 915 | "execution_count": 22, 916 | "metadata": {}, 917 | "outputs": [], 918 | "source": [ 919 | "from sklearn import metrics\n", 920 | "import numpy as np" 921 | ] 922 | }, 923 | { 924 | "cell_type": "code", 925 | "execution_count": 23, 926 | "metadata": {}, 927 | "outputs": [ 928 | { 929 | "name": "stdout", 930 | "output_type": "stream", 931 | "text": [ 932 | "MAE: 1.140996108785903\n", 933 | "MSE: 3.2815963416575036\n", 934 | "RMSE: 1.8115176901309862\n", 935 | "R squared: 0.8608525898499443\n" 936 | ] 937 | } 938 | ], 939 | "source": [ 940 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 941 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 942 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 943 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 944 | ] 945 | }, 946 | { 947 | "cell_type": "code", 948 | "execution_count": 25, 949 | "metadata": {}, 950 | "outputs": [], 951 | "source": [ 952 | "from sklearn.linear_model import Ridge" 953 | ] 954 | }, 955 | { 956 | "cell_type": "code", 957 | "execution_count": 26, 958 | "metadata": {}, 959 | "outputs": [], 960 | "source": [ 961 | "ridge=Ridge()\n", 962 | "ridge.fit(x_train,y_train)\n", 963 | "prediction = ridge.predict(x_test)" 964 | ] 965 | }, 966 | { 967 | "cell_type": "code", 968 | "execution_count": 27, 969 | "metadata": {}, 970 | "outputs": [ 971 | { 972 | "name": "stdout", 973 | "output_type": "stream", 974 | "text": [ 975 | "MAE: 1.1332339163458571\n", 976 | "MSE: 3.2738266436526455\n", 977 | "RMSE: 1.8093718920256956\n", 978 | "R squared: 0.8611820433361332\n" 979 | ] 980 | } 981 | ], 982 | "source": [ 983 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 984 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 985 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 986 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 987 | ] 988 | }, 989 | { 990 | "cell_type": "code", 991 | "execution_count": 28, 992 | "metadata": {}, 993 | "outputs": [], 994 | "source": [ 995 | "from sklearn.linear_model import Lasso" 996 | ] 997 | }, 998 | { 999 | "cell_type": "code", 1000 | "execution_count": 29, 1001 | "metadata": {}, 1002 | "outputs": [ 1003 | { 1004 | "name": "stdout", 1005 | "output_type": "stream", 1006 | "text": [ 1007 | "MAE: 1.3349151159008392\n", 1008 | "MSE: 4.47313681445178\n", 1009 | "RMSE: 2.1149791522499175\n", 1010 | "R squared: 0.8103284687770421\n" 1011 | ] 1012 | } 1013 | ], 1014 | "source": [ 1015 | "ridge=Lasso()\n", 1016 | "ridge.fit(x_train,y_train)\n", 1017 | "prediction = ridge.predict(x_test)\n", 1018 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1019 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1020 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1021 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1022 | ] 1023 | }, 1024 | { 1025 | "cell_type": "code", 1026 | "execution_count": 30, 1027 | "metadata": {}, 1028 | "outputs": [], 1029 | "source": [ 1030 | "from sklearn.model_selection import RandomizedSearchCV,GridSearchCV" 1031 | ] 1032 | }, 1033 | { 1034 | "cell_type": "code", 1035 | "execution_count": 31, 1036 | "metadata": {}, 1037 | "outputs": [ 1038 | { 1039 | "name": "stdout", 1040 | "output_type": "stream", 1041 | "text": [ 1042 | "MAE: 1.1187640189415795\n", 1043 | "MSE: 3.2349381933942647\n", 1044 | "RMSE: 1.798593393014181\n", 1045 | "R squared: 0.8628310051750747\n" 1046 | ] 1047 | }, 1048 | { 1049 | "name": "stderr", 1050 | "output_type": "stream", 1051 | "text": [ 1052 | "C:\\Users\\DELL\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_search.py:281: UserWarning: The total space of parameters 2 is smaller than n_iter=10. Running 2 iterations. For exhaustive searches, use GridSearchCV.\n", 1053 | " % (grid_size, self.n_iter, grid_size), UserWarning)\n" 1054 | ] 1055 | } 1056 | ], 1057 | "source": [ 1058 | "r=Ridge()\n", 1059 | "parameters={'alpha':[1,20]}\n", 1060 | "l=RandomizedSearchCV(r,parameters,scoring=\"neg_mean_squared_error\",cv=5)\n", 1061 | "l.fit(x_train,y_train)\n", 1062 | "prediction = l.predict(x_test)\n", 1063 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1064 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1065 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1066 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1067 | ] 1068 | }, 1069 | { 1070 | "cell_type": "code", 1071 | "execution_count": 32, 1072 | "metadata": {}, 1073 | "outputs": [ 1074 | { 1075 | "name": "stdout", 1076 | "output_type": "stream", 1077 | "text": [ 1078 | "MAE: 1.1194605545945522\n", 1079 | "MSE: 3.235117272776871\n", 1080 | "RMSE: 1.798643175501153\n", 1081 | "R squared: 0.8628234117876782\n" 1082 | ] 1083 | } 1084 | ], 1085 | "source": [ 1086 | "r=Ridge()\n", 1087 | "parameters={'alpha':[1000,100,30,40,50]}\n", 1088 | "l=GridSearchCV(r,parameters,scoring=\"neg_mean_squared_error\",cv=5)\n", 1089 | "l.fit(x_train,y_train)\n", 1090 | "prediction = l.predict(x_test)\n", 1091 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1092 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1093 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1094 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1095 | ] 1096 | }, 1097 | { 1098 | "cell_type": "code", 1099 | "execution_count": 33, 1100 | "metadata": {}, 1101 | "outputs": [ 1102 | { 1103 | "data": { 1104 | "text/plain": [ 1105 | "{'alpha': 30}" 1106 | ] 1107 | }, 1108 | "execution_count": 33, 1109 | "metadata": {}, 1110 | "output_type": "execute_result" 1111 | } 1112 | ], 1113 | "source": [ 1114 | "l.best_params_" 1115 | ] 1116 | }, 1117 | { 1118 | "cell_type": "code", 1119 | "execution_count": 24, 1120 | "metadata": {}, 1121 | "outputs": [], 1122 | "source": [ 1123 | "from sklearn.ensemble import RandomForestRegressor" 1124 | ] 1125 | }, 1126 | { 1127 | "cell_type": "code", 1128 | "execution_count": 35, 1129 | "metadata": {}, 1130 | "outputs": [], 1131 | "source": [ 1132 | "n_estimators = [int(x) for x in np.linspace(start = 200, stop = 2000, num = 10)]\n", 1133 | "# Number of features to consider at every split\n", 1134 | "max_features = ['auto', 'sqrt']\n", 1135 | "# Maximum number of levels in tree\n", 1136 | "max_depth = [int(x) for x in np.linspace(10, 110, num = 11)]\n", 1137 | "max_depth.append(None)\n", 1138 | "# Minimum number of samples required to split a node\n", 1139 | "min_samples_split = [2, 5, 10]\n", 1140 | "# Minimum number of samples required at each leaf node\n", 1141 | "min_samples_leaf = [1, 2, 4]\n", 1142 | "# Method of selecting samples for training each tree\n", 1143 | "bootstrap = [True, False]\n", 1144 | "# Create the random grid\n", 1145 | "random_grid = {'n_estimators': n_estimators,\n", 1146 | " 'max_features': max_features,\n", 1147 | " 'max_depth': max_depth,\n", 1148 | " 'min_samples_split': min_samples_split,\n", 1149 | " 'min_samples_leaf': min_samples_leaf,\n", 1150 | " 'bootstrap': bootstrap}" 1151 | ] 1152 | }, 1153 | { 1154 | "cell_type": "code", 1155 | "execution_count": 49, 1156 | "metadata": {}, 1157 | "outputs": [ 1158 | { 1159 | "name": "stdout", 1160 | "output_type": "stream", 1161 | "text": [ 1162 | "Fitting 3 folds for each of 100 candidates, totalling 300 fits\n" 1163 | ] 1164 | }, 1165 | { 1166 | "name": "stderr", 1167 | "output_type": "stream", 1168 | "text": [ 1169 | "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n", 1170 | "[Parallel(n_jobs=-1)]: Done 33 tasks | elapsed: 35.2s\n", 1171 | "[Parallel(n_jobs=-1)]: Done 154 tasks | elapsed: 2.7min\n", 1172 | "[Parallel(n_jobs=-1)]: Done 300 out of 300 | elapsed: 5.0min finished\n" 1173 | ] 1174 | }, 1175 | { 1176 | "name": "stdout", 1177 | "output_type": "stream", 1178 | "text": [ 1179 | "MAE: 0.565409210526331\n", 1180 | "MSE: 1.071250076830035\n", 1181 | "RMSE: 1.0350121143397477\n", 1182 | "R squared: 0.9545764748937227\n" 1183 | ] 1184 | } 1185 | ], 1186 | "source": [ 1187 | "r=RandomForestRegressor(n_estimators=100)\n", 1188 | "rf = RandomForestRegressor()\n", 1189 | "rf_random = RandomizedSearchCV(estimator = rf, param_distributions = random_grid, n_iter = 100, cv = 3, verbose=2, random_state=42, n_jobs = -1)\n", 1190 | "rf_random.fit(x_train,y_train)\n", 1191 | "prediction = rf_random.predict(x_test)\n", 1192 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1193 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1194 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1195 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1196 | ] 1197 | }, 1198 | { 1199 | "cell_type": "code", 1200 | "execution_count": 36, 1201 | "metadata": {}, 1202 | "outputs": [ 1203 | { 1204 | "name": "stdout", 1205 | "output_type": "stream", 1206 | "text": [ 1207 | "MAE: 0.49281447368421116\n", 1208 | "MSE: 0.603024184078948\n", 1209 | "RMSE: 0.7765463180512467\n", 1210 | "R squared: 0.9744303550051941\n" 1211 | ] 1212 | } 1213 | ], 1214 | "source": [ 1215 | "r=RandomForestRegressor(n_estimators=100)\n", 1216 | "\n", 1217 | "r.fit(x_train,y_train)\n", 1218 | "prediction = r.predict(x_test)\n", 1219 | "print('MAE: ',metrics.mean_absolute_error(y_test,prediction))\n", 1220 | "print('MSE: ',metrics.mean_squared_error(y_test,prediction))\n", 1221 | "print('RMSE: ',np.sqrt(metrics.mean_squared_error(y_test,prediction)))\n", 1222 | "print('R squared: ',metrics.r2_score(y_test,prediction))" 1223 | ] 1224 | }, 1225 | { 1226 | "cell_type": "code", 1227 | "execution_count": 38, 1228 | "metadata": {}, 1229 | "outputs": [], 1230 | "source": [ 1231 | "import pickle \n", 1232 | "pickle.dump(r,open('model.pkl','wb'))" 1233 | ] 1234 | }, 1235 | { 1236 | "cell_type": "code", 1237 | "execution_count": null, 1238 | "metadata": {}, 1239 | "outputs": [], 1240 | "source": [] 1241 | } 1242 | ], 1243 | "metadata": { 1244 | "kernelspec": { 1245 | "display_name": "Python 3", 1246 | "language": "python", 1247 | "name": "python3" 1248 | }, 1249 | "language_info": { 1250 | "codemirror_mode": { 1251 | "name": "ipython", 1252 | "version": 3 1253 | }, 1254 | "file_extension": ".py", 1255 | "mimetype": "text/x-python", 1256 | "name": "python", 1257 | "nbconvert_exporter": "python", 1258 | "pygments_lexer": "ipython3", 1259 | "version": "3.7.6" 1260 | } 1261 | }, 1262 | "nbformat": 4, 1263 | "nbformat_minor": 4 1264 | } 1265 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn app:app 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Car-Price-Prediction 2 | * This is a machine learning model made using python and flask which predicts the selling price of second-hand cars. 3 | * Do ⭐ the repository, if it helped you in anyway. 4 | * If you want to try this out, head to https://car-price-pr.herokuapp.com 5 | 6 | ## Data source: 7 | https://www.kaggle.com/nehalbirla/vehicle-dataset-from-cardekho?select=car+data.csv 8 | 9 | ## Dependencies: 10 | * Python - 3.7 11 | * Scikit-Learn 12 | * Pandas 13 | * Numpy 14 | * Matplotlib 15 | * Seaborn 16 | 17 | ## Algorithms Used: 18 | * Linear Regression 19 | * Ridge Regression 20 | * Lasso Regression 21 | * Random Forest Regression 22 | 23 | 24 | ## A glimpse of the web app: 25 | ![ezgif com-video-to-gif (1)](https://user-images.githubusercontent.com/49580063/111056632-85d99980-84a6-11eb-8134-d431672dc425.gif) 26 | -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, redirect, url_for, request, render_template 2 | import pickle 3 | import sklearn 4 | from sklearn.preprocessing import StandardScaler 5 | app = Flask(__name__) 6 | model = pickle.load(open('model.pkl', 'rb')) 7 | standard_to = StandardScaler() 8 | 9 | 10 | @app.route('/',methods=['GET']) 11 | def Home(): 12 | return render_template('index.html') 13 | 14 | 15 | @app.route("/predict", methods=['POST']) 16 | def predict(): 17 | Fuel_Type_Diesel=0 18 | if request.method == 'POST': 19 | Year = int(request.form['Year']) 20 | Present_Price=float(request.form['Present_Price']) 21 | Kms_Driven=int(request.form['Kms_Driven']) 22 | Owner=int(request.form['Owner']) 23 | Fuel_Type_Petrol=request.form['Fuel_Type_Petrol'] 24 | if(Fuel_Type_Petrol=='CNG'): 25 | Fuel_Type_CNG=1 26 | Fuel_Type_Diesel=0 27 | Fuel_Type_Petrol=0 28 | elif(Fuel_Type_Petrol=='Diesel'): 29 | Fuel_Type_CNG=0 30 | Fuel_Type_Diesel=1 31 | Fuel_Type_Petrol=0 32 | else: 33 | Fuel_Type_CNG=0 34 | Fuel_Type_Diesel=0 35 | Fuel_Type_Petrol=1 36 | 37 | Year=2020-Year 38 | Seller_Type_Individual=request.form['Seller_Type_Individual'] 39 | if(Seller_Type_Individual=='Individual'): 40 | Seller_Type_Individual=1 41 | Seller_Type_Dealer=0 42 | else: 43 | Seller_Type_Dealer=1 44 | Seller_Type_Individual=0 45 | Transmission_Mannual=request.form['Transmission_Mannual'] 46 | if(Transmission_Mannual=='Mannual'): 47 | Transmission_Mannual=1 48 | Transmission_Automatic=0 49 | else: 50 | Transmission_Automatic=1 51 | Transmission_Mannual=0 52 | prediction=model.predict([[Present_Price,Kms_Driven,Owner,Year,Fuel_Type_CNG,Fuel_Type_Diesel,Fuel_Type_Petrol,Seller_Type_Dealer,Seller_Type_Individual,Transmission_Automatic,Transmission_Mannual]]) 53 | output=round(prediction[0],2) 54 | if output<0: 55 | return render_template('index.html',prediction_texts="Sorry you cannot sell this car") 56 | else: 57 | return render_template('index.html',prediction_text="You Can Sell Your Car at {} Lakhs".format(output)) 58 | else: 59 | return render_template('index.html') 60 | 61 | if __name__=="__main__": 62 | app.run(debug = True) 63 | 64 | -------------------------------------------------------------------------------- /car data.csv: -------------------------------------------------------------------------------- 1 | Car_Name,Year,Selling_Price,Present_Price,Kms_Driven,Fuel_Type,Seller_Type,Transmission,Owner 2 | ritz,2014,3.35,5.59,27000,Petrol,Dealer,Manual,0 3 | sx4,2013,4.75,9.54,43000,Diesel,Dealer,Manual,0 4 | ciaz,2017,7.25,9.85,6900,Petrol,Dealer,Manual,0 5 | wagon r,2011,2.85,4.15,5200,Petrol,Dealer,Manual,0 6 | swift,2014,4.6,6.87,42450,Diesel,Dealer,Manual,0 7 | vitara brezza,2018,9.25,9.83,2071,Diesel,Dealer,Manual,0 8 | ciaz,2015,6.75,8.12,18796,Petrol,Dealer,Manual,0 9 | s cross,2015,6.5,8.61,33429,Diesel,Dealer,Manual,0 10 | ciaz,2016,8.75,8.89,20273,Diesel,Dealer,Manual,0 11 | ciaz,2015,7.45,8.92,42367,Diesel,Dealer,Manual,0 12 | alto 800,2017,2.85,3.6,2135,Petrol,Dealer,Manual,0 13 | ciaz,2015,6.85,10.38,51000,Diesel,Dealer,Manual,0 14 | ciaz,2015,7.5,9.94,15000,Petrol,Dealer,Automatic,0 15 | ertiga,2015,6.1,7.71,26000,Petrol,Dealer,Manual,0 16 | dzire,2009,2.25,7.21,77427,Petrol,Dealer,Manual,0 17 | ertiga,2016,7.75,10.79,43000,Diesel,Dealer,Manual,0 18 | ertiga,2015,7.25,10.79,41678,Diesel,Dealer,Manual,0 19 | ertiga,2016,7.75,10.79,43000,Diesel,Dealer,Manual,0 20 | wagon r,2015,3.25,5.09,35500,CNG,Dealer,Manual,0 21 | sx4,2010,2.65,7.98,41442,Petrol,Dealer,Manual,0 22 | alto k10,2016,2.85,3.95,25000,Petrol,Dealer,Manual,0 23 | ignis,2017,4.9,5.71,2400,Petrol,Dealer,Manual,0 24 | sx4,2011,4.4,8.01,50000,Petrol,Dealer,Automatic,0 25 | alto k10,2014,2.5,3.46,45280,Petrol,Dealer,Manual,0 26 | wagon r,2013,2.9,4.41,56879,Petrol,Dealer,Manual,0 27 | swift,2011,3,4.99,20000,Petrol,Dealer,Manual,0 28 | swift,2013,4.15,5.87,55138,Petrol,Dealer,Manual,0 29 | swift,2017,6,6.49,16200,Petrol,Individual,Manual,0 30 | alto k10,2010,1.95,3.95,44542,Petrol,Dealer,Manual,0 31 | ciaz,2015,7.45,10.38,45000,Diesel,Dealer,Manual,0 32 | ritz,2012,3.1,5.98,51439,Diesel,Dealer,Manual,0 33 | ritz,2011,2.35,4.89,54200,Petrol,Dealer,Manual,0 34 | swift,2014,4.95,7.49,39000,Diesel,Dealer,Manual,0 35 | ertiga,2014,6,9.95,45000,Diesel,Dealer,Manual,0 36 | dzire,2014,5.5,8.06,45000,Diesel,Dealer,Manual,0 37 | sx4,2011,2.95,7.74,49998,CNG,Dealer,Manual,0 38 | dzire,2015,4.65,7.2,48767,Petrol,Dealer,Manual,0 39 | 800,2003,0.35,2.28,127000,Petrol,Individual,Manual,0 40 | alto k10,2016,3,3.76,10079,Petrol,Dealer,Manual,0 41 | sx4,2003,2.25,7.98,62000,Petrol,Dealer,Manual,0 42 | baleno,2016,5.85,7.87,24524,Petrol,Dealer,Automatic,0 43 | alto k10,2014,2.55,3.98,46706,Petrol,Dealer,Manual,0 44 | sx4,2008,1.95,7.15,58000,Petrol,Dealer,Manual,0 45 | dzire,2014,5.5,8.06,45780,Diesel,Dealer,Manual,0 46 | omni,2012,1.25,2.69,50000,Petrol,Dealer,Manual,0 47 | ciaz,2014,7.5,12.04,15000,Petrol,Dealer,Automatic,0 48 | ritz,2013,2.65,4.89,64532,Petrol,Dealer,Manual,0 49 | wagon r,2006,1.05,4.15,65000,Petrol,Dealer,Manual,0 50 | ertiga,2015,5.8,7.71,25870,Petrol,Dealer,Manual,0 51 | ciaz,2017,7.75,9.29,37000,Petrol,Dealer,Automatic,0 52 | fortuner,2012,14.9,30.61,104707,Diesel,Dealer,Automatic,0 53 | fortuner,2015,23,30.61,40000,Diesel,Dealer,Automatic,0 54 | innova,2017,18,19.77,15000,Diesel,Dealer,Automatic,0 55 | fortuner,2013,16,30.61,135000,Diesel,Individual,Automatic,0 56 | innova,2005,2.75,10.21,90000,Petrol,Individual,Manual,0 57 | corolla altis,2009,3.6,15.04,70000,Petrol,Dealer,Automatic,0 58 | etios cross,2015,4.5,7.27,40534,Petrol,Dealer,Manual,0 59 | corolla altis,2010,4.75,18.54,50000,Petrol,Dealer,Manual,0 60 | etios g,2014,4.1,6.8,39485,Petrol,Dealer,Manual,1 61 | fortuner,2014,19.99,35.96,41000,Diesel,Dealer,Automatic,0 62 | corolla altis,2013,6.95,18.61,40001,Petrol,Dealer,Manual,0 63 | etios cross,2015,4.5,7.7,40588,Petrol,Dealer,Manual,0 64 | fortuner,2014,18.75,35.96,78000,Diesel,Dealer,Automatic,0 65 | fortuner,2015,23.5,35.96,47000,Diesel,Dealer,Automatic,0 66 | fortuner,2017,33,36.23,6000,Diesel,Dealer,Automatic,0 67 | etios liva,2014,4.75,6.95,45000,Diesel,Dealer,Manual,0 68 | innova,2017,19.75,23.15,11000,Petrol,Dealer,Automatic,0 69 | fortuner,2010,9.25,20.45,59000,Diesel,Dealer,Manual,0 70 | corolla altis,2011,4.35,13.74,88000,Petrol,Dealer,Manual,0 71 | corolla altis,2016,14.25,20.91,12000,Petrol,Dealer,Manual,0 72 | etios liva,2014,3.95,6.76,71000,Diesel,Dealer,Manual,0 73 | corolla altis,2011,4.5,12.48,45000,Diesel,Dealer,Manual,0 74 | corolla altis,2013,7.45,18.61,56001,Petrol,Dealer,Manual,0 75 | etios liva,2011,2.65,5.71,43000,Petrol,Dealer,Manual,0 76 | etios cross,2014,4.9,8.93,83000,Diesel,Dealer,Manual,0 77 | etios g,2015,3.95,6.8,36000,Petrol,Dealer,Manual,0 78 | corolla altis,2013,5.5,14.68,72000,Petrol,Dealer,Manual,0 79 | corolla,2004,1.5,12.35,135154,Petrol,Dealer,Automatic,0 80 | corolla altis,2010,5.25,22.83,80000,Petrol,Dealer,Automatic,0 81 | fortuner,2012,14.5,30.61,89000,Diesel,Dealer,Automatic,0 82 | corolla altis,2016,14.73,14.89,23000,Diesel,Dealer,Manual,0 83 | etios gd,2015,4.75,7.85,40000,Diesel,Dealer,Manual,0 84 | innova,2017,23,25.39,15000,Diesel,Dealer,Automatic,0 85 | innova,2015,12.5,13.46,38000,Diesel,Dealer,Manual,0 86 | innova,2005,3.49,13.46,197176,Diesel,Dealer,Manual,0 87 | camry,2006,2.5,23.73,142000,Petrol,Individual,Automatic,3 88 | land cruiser,2010,35,92.6,78000,Diesel,Dealer,Manual,0 89 | corolla altis,2012,5.9,13.74,56000,Petrol,Dealer,Manual,0 90 | etios liva,2013,3.45,6.05,47000,Petrol,Dealer,Manual,0 91 | etios g,2014,4.75,6.76,40000,Petrol,Dealer,Manual,0 92 | corolla altis,2009,3.8,18.61,62000,Petrol,Dealer,Manual,0 93 | innova,2014,11.25,16.09,58242,Diesel,Dealer,Manual,0 94 | innova,2005,3.51,13.7,75000,Petrol,Dealer,Manual,0 95 | fortuner,2015,23,30.61,40000,Diesel,Dealer,Automatic,0 96 | corolla altis,2008,4,22.78,89000,Petrol,Dealer,Automatic,0 97 | corolla altis,2012,5.85,18.61,72000,Petrol,Dealer,Manual,0 98 | innova,2016,20.75,25.39,29000,Diesel,Dealer,Automatic,0 99 | corolla altis,2017,17,18.64,8700,Petrol,Dealer,Manual,0 100 | corolla altis,2013,7.05,18.61,45000,Petrol,Dealer,Manual,0 101 | fortuner,2010,9.65,20.45,50024,Diesel,Dealer,Manual,0 102 | Royal Enfield Thunder 500,2016,1.75,1.9,3000,Petrol,Individual,Manual,0 103 | UM Renegade Mojave,2017,1.7,1.82,1400,Petrol,Individual,Manual,0 104 | KTM RC200,2017,1.65,1.78,4000,Petrol,Individual,Manual,0 105 | Bajaj Dominar 400,2017,1.45,1.6,1200,Petrol,Individual,Manual,0 106 | Royal Enfield Classic 350,2017,1.35,1.47,4100,Petrol,Individual,Manual,0 107 | KTM RC390,2015,1.35,2.37,21700,Petrol,Individual,Manual,0 108 | Hyosung GT250R,2014,1.35,3.45,16500,Petrol,Individual,Manual,1 109 | Royal Enfield Thunder 350,2013,1.25,1.5,15000,Petrol,Individual,Manual,0 110 | Royal Enfield Thunder 350,2016,1.2,1.5,18000,Petrol,Individual,Manual,0 111 | Royal Enfield Classic 350,2017,1.2,1.47,11000,Petrol,Individual,Manual,0 112 | KTM RC200,2016,1.2,1.78,6000,Petrol,Individual,Manual,0 113 | Royal Enfield Thunder 350,2016,1.15,1.5,8700,Petrol,Individual,Manual,0 114 | KTM 390 Duke ,2014,1.15,2.4,7000,Petrol,Individual,Manual,0 115 | Mahindra Mojo XT300,2016,1.15,1.4,35000,Petrol,Individual,Manual,0 116 | Royal Enfield Classic 350,2015,1.15,1.47,17000,Petrol,Individual,Manual,0 117 | Royal Enfield Classic 350,2015,1.11,1.47,17500,Petrol,Individual,Manual,0 118 | Royal Enfield Classic 350,2013,1.1,1.47,33000,Petrol,Individual,Manual,0 119 | Royal Enfield Thunder 500,2015,1.1,1.9,14000,Petrol,Individual,Manual,0 120 | Royal Enfield Classic 350,2015,1.1,1.47,26000,Petrol,Individual,Manual,0 121 | Royal Enfield Thunder 500,2013,1.05,1.9,5400,Petrol,Individual,Manual,0 122 | Bajaj Pulsar RS200,2016,1.05,1.26,5700,Petrol,Individual,Manual,0 123 | Royal Enfield Thunder 350,2011,1.05,1.5,6900,Petrol,Individual,Manual,0 124 | Royal Enfield Bullet 350,2016,1.05,1.17,6000,Petrol,Individual,Manual,0 125 | Royal Enfield Classic 350,2013,1,1.47,46500,Petrol,Individual,Manual,0 126 | Royal Enfield Classic 500,2012,0.95,1.75,11500,Petrol,Individual,Manual,0 127 | Royal Enfield Classic 500,2009,0.9,1.75,40000,Petrol,Individual,Manual,0 128 | Bajaj Avenger 220,2017,0.9,0.95,1300,Petrol,Individual,Manual,0 129 | Bajaj Avenger 150,2016,0.75,0.8,7000,Petrol,Individual,Manual,0 130 | Honda CB Hornet 160R,2017,0.8,0.87,3000,Petrol,Individual,Manual,0 131 | Yamaha FZ S V 2.0,2017,0.78,0.84,5000,Petrol,Individual,Manual,0 132 | Honda CB Hornet 160R,2017,0.75,0.87,11000,Petrol,Individual,Manual,0 133 | Yamaha FZ 16,2015,0.75,0.82,18000,Petrol,Individual,Manual,0 134 | Bajaj Avenger 220,2017,0.75,0.95,3500,Petrol,Individual,Manual,0 135 | Bajaj Avenger 220,2016,0.72,0.95,500,Petrol,Individual,Manual,0 136 | TVS Apache RTR 160,2017,0.65,0.81,11800,Petrol,Individual,Manual,0 137 | Bajaj Pulsar 150,2015,0.65,0.74,5000,Petrol,Individual,Manual,0 138 | Honda CBR 150,2014,0.65,1.2,23500,Petrol,Individual,Manual,0 139 | Hero Extreme,2013,0.65,0.787,16000,Petrol,Individual,Manual,0 140 | Honda CB Hornet 160R,2016,0.6,0.87,15000,Petrol,Individual,Manual,0 141 | Bajaj Avenger 220 dtsi,2015,0.6,0.95,16600,Petrol,Individual,Manual,0 142 | Honda CBR 150,2013,0.6,1.2,32000,Petrol,Individual,Manual,0 143 | Bajaj Avenger 150 street,2016,0.6,0.8,20000,Petrol,Individual,Manual,0 144 | Yamaha FZ v 2.0,2015,0.6,0.84,29000,Petrol,Individual,Manual,0 145 | Yamaha FZ v 2.0,2016,0.6,0.84,25000,Petrol,Individual,Manual,0 146 | Bajaj Pulsar NS 200,2014,0.6,0.99,25000,Petrol,Individual,Manual,0 147 | TVS Apache RTR 160,2012,0.6,0.81,19000,Petrol,Individual,Manual,0 148 | Hero Extreme,2014,0.55,0.787,15000,Petrol,Individual,Manual,0 149 | Yamaha FZ S V 2.0,2015,0.55,0.84,58000,Petrol,Individual,Manual,0 150 | Bajaj Pulsar 220 F,2010,0.52,0.94,45000,Petrol,Individual,Manual,0 151 | Bajaj Pulsar 220 F,2016,0.51,0.94,24000,Petrol,Individual,Manual,0 152 | TVS Apache RTR 180,2011,0.5,0.826,6000,Petrol,Individual,Manual,0 153 | Hero Passion X pro,2016,0.5,0.55,31000,Petrol,Individual,Manual,0 154 | Bajaj Pulsar NS 200,2012,0.5,0.99,13000,Petrol,Individual,Manual,0 155 | Bajaj Pulsar NS 200,2013,0.5,0.99,45000,Petrol,Individual,Manual,0 156 | Yamaha Fazer ,2014,0.5,0.88,8000,Petrol,Individual,Manual,0 157 | Honda Activa 4G,2017,0.48,0.51,4300,Petrol,Individual,Automatic,0 158 | TVS Sport ,2017,0.48,0.52,15000,Petrol,Individual,Manual,0 159 | Yamaha FZ S V 2.0,2015,0.48,0.84,23000,Petrol,Individual,Manual,0 160 | Honda Dream Yuga ,2017,0.48,0.54,8600,Petrol,Individual,Manual,0 161 | Honda Activa 4G,2017,0.45,0.51,4000,Petrol,Individual,Automatic,0 162 | Bajaj Avenger Street 220,2011,0.45,0.95,24000,Petrol,Individual,Manual,0 163 | TVS Apache RTR 180,2014,0.45,0.826,23000,Petrol,Individual,Manual,0 164 | Bajaj Pulsar NS 200,2012,0.45,0.99,14500,Petrol,Individual,Manual,0 165 | Bajaj Avenger 220 dtsi,2010,0.45,0.95,27000,Petrol,Individual,Manual,0 166 | Hero Splender iSmart,2016,0.45,0.54,14000,Petrol,Individual,Manual,0 167 | Activa 3g,2016,0.45,0.54,500,Petrol,Individual,Automatic,0 168 | Hero Passion Pro,2016,0.45,0.55,1000,Petrol,Individual,Manual,0 169 | TVS Apache RTR 160,2014,0.42,0.81,42000,Petrol,Individual,Manual,0 170 | Honda CB Trigger,2013,0.42,0.73,12000,Petrol,Individual,Manual,0 171 | Hero Splender iSmart,2015,0.4,0.54,14000,Petrol,Individual,Manual,0 172 | Yamaha FZ S ,2012,0.4,0.83,5500,Petrol,Individual,Manual,0 173 | Hero Passion Pro,2015,0.4,0.55,6700,Petrol,Individual,Manual,0 174 | Bajaj Pulsar 135 LS,2014,0.4,0.64,13700,Petrol,Individual,Manual,0 175 | Activa 4g,2017,0.4,0.51,1300,Petrol,Individual,Automatic,0 176 | Honda CB Unicorn,2015,0.38,0.72,38600,Petrol,Individual,Manual,0 177 | Hero Honda CBZ extreme,2011,0.38,0.787,75000,Petrol,Individual,Manual,0 178 | Honda Karizma,2011,0.35,1.05,30000,Petrol,Individual,Manual,0 179 | Honda Activa 125,2016,0.35,0.57,24000,Petrol,Individual,Automatic,0 180 | TVS Jupyter,2014,0.35,0.52,19000,Petrol,Individual,Automatic,0 181 | Honda Karizma,2010,0.31,1.05,213000,Petrol,Individual,Manual,0 182 | Hero Honda Passion Pro,2012,0.3,0.51,60000,Petrol,Individual,Manual,0 183 | Hero Splender Plus,2016,0.3,0.48,50000,Petrol,Individual,Manual,0 184 | Honda CB Shine,2013,0.3,0.58,30000,Petrol,Individual,Manual,0 185 | Bajaj Discover 100,2013,0.27,0.47,21000,Petrol,Individual,Manual,0 186 | Bajaj Pulsar 150,2008,0.25,0.75,26000,Petrol,Individual,Manual,1 187 | Suzuki Access 125,2008,0.25,0.58,1900,Petrol,Individual,Automatic,0 188 | TVS Wego,2010,0.25,0.52,22000,Petrol,Individual,Automatic,0 189 | Honda CB twister,2013,0.25,0.51,32000,Petrol,Individual,Manual,0 190 | Hero Glamour,2013,0.25,0.57,18000,Petrol,Individual,Manual,0 191 | Hero Super Splendor,2005,0.2,0.57,55000,Petrol,Individual,Manual,0 192 | Bajaj Pulsar 150,2008,0.2,0.75,60000,Petrol,Individual,Manual,0 193 | Bajaj Discover 125,2012,0.2,0.57,25000,Petrol,Individual,Manual,1 194 | Hero Hunk,2007,0.2,0.75,49000,Petrol,Individual,Manual,1 195 | Hero Ignitor Disc,2013,0.2,0.65,24000,Petrol,Individual,Manual,1 196 | Hero CBZ Xtreme,2008,0.2,0.787,50000,Petrol,Individual,Manual,0 197 | Bajaj ct 100,2015,0.18,0.32,35000,Petrol,Individual,Manual,0 198 | Activa 3g,2008,0.17,0.52,500000,Petrol,Individual,Automatic,0 199 | Honda CB twister,2010,0.16,0.51,33000,Petrol,Individual,Manual,0 200 | Bajaj Discover 125,2011,0.15,0.57,35000,Petrol,Individual,Manual,1 201 | Honda CB Shine,2007,0.12,0.58,53000,Petrol,Individual,Manual,0 202 | Bajaj Pulsar 150,2006,0.1,0.75,92233,Petrol,Individual,Manual,0 203 | i20,2010,3.25,6.79,58000,Diesel,Dealer,Manual,1 204 | grand i10,2015,4.4,5.7,28200,Petrol,Dealer,Manual,0 205 | i10,2011,2.95,4.6,53460,Petrol,Dealer,Manual,0 206 | eon,2015,2.75,4.43,28282,Petrol,Dealer,Manual,0 207 | grand i10,2016,5.25,5.7,3493,Petrol,Dealer,Manual,1 208 | xcent,2017,5.75,7.13,12479,Petrol,Dealer,Manual,0 209 | grand i10,2015,5.15,5.7,34797,Petrol,Dealer,Automatic,0 210 | i20,2017,7.9,8.1,3435,Petrol,Dealer,Manual,0 211 | grand i10,2015,4.85,5.7,21125,Diesel,Dealer,Manual,0 212 | i10,2012,3.1,4.6,35775,Petrol,Dealer,Manual,0 213 | elantra,2015,11.75,14.79,43535,Diesel,Dealer,Manual,0 214 | creta,2016,11.25,13.6,22671,Petrol,Dealer,Manual,0 215 | i20,2011,2.9,6.79,31604,Petrol,Dealer,Manual,0 216 | grand i10,2017,5.25,5.7,20114,Petrol,Dealer,Manual,0 217 | verna,2012,4.5,9.4,36100,Petrol,Dealer,Manual,0 218 | eon,2016,2.9,4.43,12500,Petrol,Dealer,Manual,0 219 | eon,2016,3.15,4.43,15000,Petrol,Dealer,Manual,0 220 | verna,2014,6.45,9.4,45078,Petrol,Dealer,Manual,0 221 | verna,2012,4.5,9.4,36000,Petrol,Dealer,Manual,0 222 | eon,2017,3.5,4.43,38488,Petrol,Dealer,Manual,0 223 | i20,2013,4.5,6.79,32000,Petrol,Dealer,Automatic,0 224 | i20,2014,6,7.6,77632,Diesel,Dealer,Manual,0 225 | verna,2015,8.25,9.4,61381,Diesel,Dealer,Manual,0 226 | verna,2013,5.11,9.4,36198,Petrol,Dealer,Automatic,0 227 | i10,2011,2.7,4.6,22517,Petrol,Dealer,Manual,0 228 | grand i10,2015,5.25,5.7,24678,Petrol,Dealer,Manual,0 229 | i10,2011,2.55,4.43,57000,Petrol,Dealer,Manual,0 230 | verna,2012,4.95,9.4,60000,Diesel,Dealer,Manual,0 231 | i20,2012,3.1,6.79,52132,Diesel,Dealer,Manual,0 232 | verna,2013,6.15,9.4,45000,Diesel,Dealer,Manual,0 233 | verna,2017,9.25,9.4,15001,Petrol,Dealer,Manual,0 234 | elantra,2015,11.45,14.79,12900,Petrol,Dealer,Automatic,0 235 | grand i10,2013,3.9,5.7,53000,Diesel,Dealer,Manual,0 236 | grand i10,2015,5.5,5.7,4492,Petrol,Dealer,Manual,0 237 | verna,2017,9.1,9.4,15141,Petrol,Dealer,Manual,0 238 | eon,2016,3.1,4.43,11849,Petrol,Dealer,Manual,0 239 | creta,2015,11.25,13.6,68000,Diesel,Dealer,Manual,0 240 | verna,2013,4.8,9.4,60241,Petrol,Dealer,Manual,0 241 | eon,2012,2,4.43,23709,Petrol,Dealer,Manual,0 242 | verna,2012,5.35,9.4,32322,Diesel,Dealer,Manual,0 243 | xcent,2015,4.75,7.13,35866,Petrol,Dealer,Manual,1 244 | xcent,2014,4.4,7.13,34000,Petrol,Dealer,Manual,0 245 | i20,2016,6.25,7.6,7000,Petrol,Dealer,Manual,0 246 | verna,2013,5.95,9.4,49000,Diesel,Dealer,Manual,0 247 | verna,2012,5.2,9.4,71000,Diesel,Dealer,Manual,0 248 | i20,2012,3.75,6.79,35000,Petrol,Dealer,Manual,0 249 | verna,2015,5.95,9.4,36000,Petrol,Dealer,Manual,0 250 | i10,2013,4,4.6,30000,Petrol,Dealer,Manual,0 251 | i20,2016,5.25,7.6,17000,Petrol,Dealer,Manual,0 252 | creta,2016,12.9,13.6,35934,Diesel,Dealer,Manual,0 253 | city,2013,5,9.9,56701,Petrol,Dealer,Manual,0 254 | brio,2015,5.4,6.82,31427,Petrol,Dealer,Automatic,0 255 | city,2014,7.2,9.9,48000,Diesel,Dealer,Manual,0 256 | city,2013,5.25,9.9,54242,Petrol,Dealer,Manual,0 257 | brio,2012,3,5.35,53675,Petrol,Dealer,Manual,0 258 | city,2016,10.25,13.6,49562,Petrol,Dealer,Manual,0 259 | city,2015,8.5,13.6,40324,Petrol,Dealer,Manual,0 260 | city,2015,8.4,13.6,25000,Petrol,Dealer,Manual,0 261 | amaze,2014,3.9,7,36054,Petrol,Dealer,Manual,0 262 | city,2016,9.15,13.6,29223,Petrol,Dealer,Manual,0 263 | brio,2016,5.5,5.97,5600,Petrol,Dealer,Manual,0 264 | amaze,2015,4,5.8,40023,Petrol,Dealer,Manual,0 265 | jazz,2016,6.6,7.7,16002,Petrol,Dealer,Manual,0 266 | amaze,2015,4,7,40026,Petrol,Dealer,Manual,0 267 | jazz,2017,6.5,8.7,21200,Petrol,Dealer,Manual,0 268 | amaze,2014,3.65,7,35000,Petrol,Dealer,Manual,0 269 | city,2016,8.35,9.4,19434,Diesel,Dealer,Manual,0 270 | brio,2017,4.8,5.8,19000,Petrol,Dealer,Manual,0 271 | city,2015,6.7,10,18828,Petrol,Dealer,Manual,0 272 | city,2011,4.1,10,69341,Petrol,Dealer,Manual,0 273 | city,2009,3,10,69562,Petrol,Dealer,Manual,0 274 | city,2015,7.5,10,27600,Petrol,Dealer,Manual,0 275 | jazz,2010,2.25,7.5,61203,Petrol,Dealer,Manual,0 276 | brio,2014,5.3,6.8,16500,Petrol,Dealer,Manual,0 277 | city,2016,10.9,13.6,30753,Petrol,Dealer,Automatic,0 278 | city,2015,8.65,13.6,24800,Petrol,Dealer,Manual,0 279 | city,2015,9.7,13.6,21780,Petrol,Dealer,Manual,0 280 | jazz,2016,6,8.4,4000,Petrol,Dealer,Manual,0 281 | city,2014,6.25,13.6,40126,Petrol,Dealer,Manual,0 282 | brio,2015,5.25,5.9,14465,Petrol,Dealer,Manual,0 283 | city,2006,2.1,7.6,50456,Petrol,Dealer,Manual,0 284 | city,2014,8.25,14,63000,Diesel,Dealer,Manual,0 285 | city,2016,8.99,11.8,9010,Petrol,Dealer,Manual,0 286 | brio,2013,3.5,5.9,9800,Petrol,Dealer,Manual,0 287 | jazz,2016,7.4,8.5,15059,Petrol,Dealer,Automatic,0 288 | jazz,2016,5.65,7.9,28569,Petrol,Dealer,Manual,0 289 | amaze,2015,5.75,7.5,44000,Petrol,Dealer,Automatic,0 290 | city,2015,8.4,13.6,34000,Petrol,Dealer,Manual,0 291 | city,2016,10.11,13.6,10980,Petrol,Dealer,Manual,0 292 | amaze,2014,4.5,6.4,19000,Petrol,Dealer,Manual,0 293 | brio,2015,5.4,6.1,31427,Petrol,Dealer,Manual,0 294 | jazz,2016,6.4,8.4,12000,Petrol,Dealer,Manual,0 295 | city,2010,3.25,9.9,38000,Petrol,Dealer,Manual,0 296 | amaze,2014,3.75,6.8,33019,Petrol,Dealer,Manual,0 297 | city,2015,8.55,13.09,60076,Diesel,Dealer,Manual,0 298 | city,2016,9.5,11.6,33988,Diesel,Dealer,Manual,0 299 | brio,2015,4,5.9,60000,Petrol,Dealer,Manual,0 300 | city,2009,3.35,11,87934,Petrol,Dealer,Manual,0 301 | city,2017,11.5,12.5,9000,Diesel,Dealer,Manual,0 302 | brio,2016,5.3,5.9,5464,Petrol,Dealer,Manual,0 303 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 23 | 24 | 57 | 58 | Car Price Prediction 59 | 60 | 61 |
62 |

CAR PRICE PREDICTION

63 |
Machine Learning Model
64 |
65 | 104 |
105 | 106 | -------------------------------------------------------------------------------- /model.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rohanvp07/Car-Price-Prediction/da17c8671439ba6de32949f6c04dd483c170ae3f/model.pkl -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | gunicorn==19.9.0 3 | itsdangerous==1.1.0 4 | Jinja2==2.10.1 5 | MarkupSafe==1.1.1 6 | Werkzeug==0.15.5 7 | numpy>=1.9.2 8 | scipy>=0.15.1 9 | scikit-learn>=0.18 10 | matplotlib>=1.4.3 11 | pandas>=0.19 12 | -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 23 | 24 | 57 | 58 | Car Price Prediction 59 | 60 | 61 |
62 |

CAR PRICE PREDICTION

63 |
Machine Learning Model
64 |
65 | 104 |
105 | 106 | 107 | --------------------------------------------------------------------------------